//FSM _fsm; public StateNeutralityToPlayer(FSM fsm, Star star) : base(star, Star.e_State.NeutralityToPlayer) { _fsm = fsm; //_fsm.AddState(this); FSMTransition.CheckCondition toPlayer = () => { if (star.Schedule >= 1) { return(true); } else { return(false); } }; FSMTransition.CheckCondition neutral = () => { if (star.PlayerTroops < 1f) { return(true); } else { return(false); } }; _transitions.Add(new FSMTransition(Star.e_State.Player, toPlayer)); _transitions.Add(new FSMTransition(Star.e_State.NeutralityPeace, neutral)); }
public StateNeutralityPeace(FSM fsm, Star star) : base(star, Star.e_State.NeutralityPeace) { _fsm = fsm; //_fsm.AddState(this); FSMTransition.CheckCondition neutralToAI = () => { if (star.EnemyTroops >= 1f && star.PlayerTroops < 1f) { return(true); } else { return(false); } }; FSMTransition.CheckCondition neutralToPlayer = () => { if (star.EnemyTroops < 1f && star.PlayerTroops >= 1f) { return(true); } else { return(false); } }; _transitions.Add(new FSMTransition(Star.e_State.NeutralityToAI, neutralToAI)); _transitions.Add(new FSMTransition(Star.e_State.NeutralityToPlayer, neutralToPlayer)); }