抽象 Goal

master
lightyears 2 years ago
parent 8f8b1b7da1
commit f4e4d78758
Signed by: lightyears
GPG Key ID: 98D80DDF26D4F2F9

@ -1,20 +1,55 @@
using System.Collections.Generic;
namespace CMSGame
{
public class Goal
public class Goal<TContext>
{
public string Name = string.Empty;
public bool IsValid;
public int BasePriority;
public List<GoalValidityModifier<TContext>> ValidityModifiers = new();
public List<GoalPriorityModifier<TContext>> PriorityModifiers = new();
public bool IsValid()
{
return ValidityModifiers.All(modifier => modifier.Execute());
}
public int Priority()
{
return BasePriority + PriorityModifiers.Sum(modifier => modifier.Execute());
}
}
public class BattleGoal : Goal
public abstract class GoalModifier<TContext>
{
public string Name = string.Empty;
public TContext Context;
protected GoalModifier(TContext context)
{
Context = context;
}
}
public abstract class GoalValidityModifier<TContext> : GoalModifier<TContext>
{
protected GoalValidityModifier(TContext context) : base(context)
{
}
public abstract bool Execute();
}
public class GoalModifier
public abstract class GoalPriorityModifier<TContext> : GoalModifier<TContext>
{
protected GoalPriorityModifier(TContext context) : base(context)
{
}
public abstract int Execute();
}
}

@ -41,7 +41,7 @@ namespace CMSGame
public void UpdateUI()
{
StatusLabel!.Text = $"HP {120}\nAP {ActionPoint}";
StatusLabel!.Text = $"HP {Character!.HealthPoint}/{Character.MaxHealthPoint}\nAP {ActionPoint}";
}
public override void _InputEvent(Camera3D camera, InputEvent @event, Vector3 position, Vector3 normal, int shapeIdx)

Loading…
Cancel
Save