public WizardOnFireState(WizardStateMachine owner, TargetNavigationBehaviour inNavigation, TargetNavigation.Writer inTargetNavigation) : base(owner) { navigation = inNavigation; targetNavigation = inTargetNavigation; }
public LumberjackOnFireState(LumberjackStateMachine owner, TargetNavigationBehaviour inNavigation, TargetNavigation.Writer inTargetNavigation) : base(owner) { navigation = inNavigation; targetNavigation = inTargetNavigation; }
public WizardMoveToTargetState(WizardStateMachine owner, WizardBehaviour inParentBehaviour, TargetNavigation.Writer inTargetNavigation, TargetNavigationBehaviour inNavigation) : base(owner) { parentBehaviour = inParentBehaviour; targetNavigation = inTargetNavigation; navigation = inNavigation; }
public LumberjackMoveToTargetState(LumberjackStateMachine owner, LumberjackBehaviour inParentBehaviour, TargetNavigation.Writer inTargetNavigation, TargetNavigationBehaviour inNavigation) : base(owner) { targetNavigation = inTargetNavigation; parentBehaviour = inParentBehaviour; navigation = inNavigation; }
public WizardStateMachine(WizardBehaviour behaviour, NPCWizard.Writer inNpcWizard, TargetNavigationBehaviour navigation, TeamAssignmentVisualizerFSim teamAssignment, TargetNavigation.Writer targetNavigation, SpellsBehaviour spellsBehaviour, IList <Coordinates> cachedTeamHqCoordinates) { npcWizard = inNpcWizard; var idleState = new WizardIdleState(this, teamAssignment, cachedTeamHqCoordinates); var moveToTargetState = new WizardMoveToTargetState(this, behaviour, targetNavigation, navigation); var attackingState = new WizardAttackingState(this, behaviour, spellsBehaviour); var defendingState = new WizardDefendingState(this, behaviour, spellsBehaviour); var onFireState = new WizardOnFireState(this, navigation, targetNavigation); var stateList = new Dictionary <WizardFSMState.StateEnum, IFsmState>() { { WizardFSMState.StateEnum.IDLE, idleState }, { WizardFSMState.StateEnum.MOVING_TO_TARGET, moveToTargetState }, { WizardFSMState.StateEnum.ATTACKING_TARGET, attackingState }, { WizardFSMState.StateEnum.DEFENDING_TARGET, defendingState }, { WizardFSMState.StateEnum.ON_FIRE, onFireState } }; SetStates(stateList); var allowedTransitions = new Dictionary <WizardFSMState.StateEnum, IList <WizardFSMState.StateEnum> >(); allowedTransitions.Add(WizardFSMState.StateEnum.IDLE, new List <WizardFSMState.StateEnum> { WizardFSMState.StateEnum.IDLE, WizardFSMState.StateEnum.MOVING_TO_TARGET, WizardFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(WizardFSMState.StateEnum.MOVING_TO_TARGET, new List <WizardFSMState.StateEnum> { WizardFSMState.StateEnum.IDLE, WizardFSMState.StateEnum.MOVING_TO_TARGET, WizardFSMState.StateEnum.ATTACKING_TARGET, WizardFSMState.StateEnum.DEFENDING_TARGET, WizardFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(WizardFSMState.StateEnum.ATTACKING_TARGET, new List <WizardFSMState.StateEnum> { WizardFSMState.StateEnum.IDLE, WizardFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(WizardFSMState.StateEnum.DEFENDING_TARGET, new List <WizardFSMState.StateEnum> { WizardFSMState.StateEnum.IDLE, WizardFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(WizardFSMState.StateEnum.ON_FIRE, new List <WizardFSMState.StateEnum> { WizardFSMState.StateEnum.IDLE, WizardFSMState.StateEnum.ON_FIRE }); SetTransitions(allowedTransitions); }
public LumberjackStateMachine(LumberjackBehaviour behaviour, TargetNavigationBehaviour navigation, Inventory.Writer inventory, TargetNavigation.Writer targetNavigation, NPCLumberjack.Writer inNpcLumberjack, TeamAssignment.Reader teamAssignment) { npcLumberjack = inNpcLumberjack; var idleState = new LumberjackIdleState(this, behaviour, teamAssignment, inventory); var moveToTargetState = new LumberjackMoveToTargetState(this, behaviour, targetNavigation, navigation); var harvestingState = new LumberjackHarvestingState(this, behaviour, inventory); var stockPilingState = new LumberjackStockpilingState(this, behaviour, inventory); var onFireState = new LumberjackOnFireState(this, navigation, targetNavigation); var stateList = new Dictionary <LumberjackFSMState.StateEnum, IFsmState> { { LumberjackFSMState.StateEnum.IDLE, idleState }, { LumberjackFSMState.StateEnum.MOVING_TO_TARGET, moveToTargetState }, { LumberjackFSMState.StateEnum.HARVESTING, harvestingState }, { LumberjackFSMState.StateEnum.STOCKPILING, stockPilingState }, { LumberjackFSMState.StateEnum.ON_FIRE, onFireState } }; SetStates(stateList); var allowedTransitions = new Dictionary <LumberjackFSMState.StateEnum, IList <LumberjackFSMState.StateEnum> >(); allowedTransitions.Add(LumberjackFSMState.StateEnum.IDLE, new List <LumberjackFSMState.StateEnum> { LumberjackFSMState.StateEnum.MOVING_TO_TARGET, LumberjackFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(LumberjackFSMState.StateEnum.MOVING_TO_TARGET, new List <LumberjackFSMState.StateEnum> { LumberjackFSMState.StateEnum.IDLE, LumberjackFSMState.StateEnum.HARVESTING, LumberjackFSMState.StateEnum.STOCKPILING, LumberjackFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(LumberjackFSMState.StateEnum.HARVESTING, new List <LumberjackFSMState.StateEnum> { LumberjackFSMState.StateEnum.IDLE, LumberjackFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(LumberjackFSMState.StateEnum.STOCKPILING, new List <LumberjackFSMState.StateEnum> { LumberjackFSMState.StateEnum.IDLE, LumberjackFSMState.StateEnum.ON_FIRE }); allowedTransitions.Add(LumberjackFSMState.StateEnum.ON_FIRE, new List <LumberjackFSMState.StateEnum> { LumberjackFSMState.StateEnum.IDLE, LumberjackFSMState.StateEnum.ON_FIRE }); SetTransitions(allowedTransitions); }