public static void SetCanBeChanged(this HealthWriter health, bool canBeChanged) { var update = new Health.Update() { CanBeChanged = canBeChanged }; health.SendUpdate(update); }
public static void SetCurrentHealth(this HealthWriter health, int newHealth) { if (health.Data.CanBeChanged) { var update = new Health.Update() { CurrentHealth = Mathf.Max(newHealth, 0) }; health.SendUpdate(update); } }
public TreeStateMachine( TreeBehaviour owner, TreeStateWriter inTree, HealthWriter health, FlammableBehaviour flammableInterface, FlammableWriter flammable ) { tree = inTree; var healthyState = new TreeHealthyState(this, flammable, health); var burningState = new TreeBurningState(this, flammable, health); var burntState = new TreeBurntState(this, owner, flammable, flammableInterface); var stumpState = new TreeStumpState(this, owner, flammable); var stateList = new Dictionary <TreeFSMState, IFsmState>(); stateList.Add(TreeFSMState.HEALTHY, healthyState); stateList.Add(TreeFSMState.BURNING, burningState); stateList.Add(TreeFSMState.BURNT, burntState); stateList.Add(TreeFSMState.STUMP, stumpState); SetStates(stateList); var allowedTransitions = new Dictionary <TreeFSMState, IList <TreeFSMState> >(); allowedTransitions.Add(TreeFSMState.HEALTHY, new List <TreeFSMState>() { TreeFSMState.BURNING, TreeFSMState.STUMP }); allowedTransitions.Add(TreeFSMState.BURNING, new List <TreeFSMState>() { TreeFSMState.HEALTHY, TreeFSMState.BURNT }); allowedTransitions.Add(TreeFSMState.BURNT, new List <TreeFSMState>() { TreeFSMState.HEALTHY }); allowedTransitions.Add(TreeFSMState.STUMP, new List <TreeFSMState>() { TreeFSMState.HEALTHY }); SetTransitions(allowedTransitions); }
public static void AddCurrentHealthDelta(this HealthWriter health, int delta) { if (health.Data.CanBeChanged) { if (health.TryingToDecreaseHealthBelowZero(delta)) { return; } var update = new Health.Update() { CurrentHealth = Mathf.Max(health.Data.CurrentHealth + delta, 0) }; health.SendUpdate(update); } }
public TreeBurningState(TreeStateMachine owner, FlammableWriter inFlammable, HealthWriter inHealth) : base(owner) { flammable = inFlammable; health = inHealth; }