protected virtual void OnRegisterFSM() { var startTurnState = new FSMStartTurnState(this); var endTurnState = new FSMEndTurnState(this); var leaveTurnState = new FSMLeaveTurnState(this); var joinTurnState = new FSMJoinTurnState(this); var rollDiceState = new FSMRollDiceState(this); var enterBlockState = new FSMEnterBlockState(this); var waitingState = new FSMWaitingState(this); m_FSMManager.RegisterState("StartTurnState", startTurnState); m_FSMManager.RegisterState("EndTurnState", endTurnState); m_FSMManager.RegisterState("LeaveTurnState", leaveTurnState); m_FSMManager.RegisterState("JoinTurnState", joinTurnState); m_FSMManager.RegisterState("RollDiceState", rollDiceState); m_FSMManager.RegisterState("EnterBlockState", enterBlockState); m_FSMManager.RegisterState("WaitingState", waitingState); m_FSMManager.RegisterCondition("IsStartTurn", IsStartTurn); m_FSMManager.RegisterCondition("IsEndTurn", IsEndTurn); m_FSMManager.RegisterCondition("IsDeath", IsDeath); m_FSMManager.RegisterCondition("DidMoveToTargetBlock", DidMoveToTargetBlock); m_FSMManager.RegisterCondition("IsActive", GetActive); m_FSMManager.RegisterCondition("DidRollDice", GetRollDice); m_FSMManager.RegisterCondition("CanRollDice", CanRollDice); m_FSMManager.RegisterCondition("Did5Turn", m_GameManager.Did5Turn); m_FSMManager.RegisterCondition("Did10Turn", m_GameManager.Did10Turn); m_FSMManager.RegisterCondition("Did20Turn", m_GameManager.Did20Turn); m_FSMManager.RegisterCondition("Did30Turn", m_GameManager.Did30Turn); m_FSMManager.RegisterCondition("Did40Turn", m_GameManager.Did40Turn); m_FSMManager.RegisterCondition("Did50Turn", m_GameManager.Did50Turn); }
protected virtual void OnRegisterFSM() { var waitingState = new FSMWaitingState(this); m_FSMManager.RegisterState("WaitingState", waitingState); m_FSMManager.RegisterCondition("IsUnderHealth", this.IsUnderHealth); m_FSMManager.RegisterCondition("IsActive", this.GetActive); m_FSMManager.RegisterCondition("DidEndWaiting", this.DidEndWaiting); }
protected override void Awake() { base.Awake(); m_NavMeshAgent = this.GetComponent <NavMeshAgent> (); havestObjects = new LinkedList <CObjectController> (); m_FSMManager = new FSMManager(); m_FSMManager.LoadFSM("FSM/SimpleWorkerFSM"); var idleState = new FSMIdleState(this); var moveState = new FSMMoveState(this); var waitingState = new FSMWaitingState(this); var waitingCommandState = new FSMWaitCommandState(this); var havestState = new FSMHavestState(this); var goNestState = new FSMGoNestState(this); var productFoodState = new FSMProductFoodState(this); var deathState = new FSMDeathState(this); m_FSMManager.RegisterState("IdleState", idleState); m_FSMManager.RegisterState("MoveState", moveState); m_FSMManager.RegisterState("WaitingState", waitingState); m_FSMManager.RegisterState("WaitingCommandState", waitingCommandState); m_FSMManager.RegisterState("HavestState", havestState); m_FSMManager.RegisterState("GoNestState", goNestState); m_FSMManager.RegisterState("ProductFoodState", productFoodState); m_FSMManager.RegisterState("DeathState", deathState); m_FSMManager.RegisterCondition("HaveTarget", HaveTarget); m_FSMManager.RegisterCondition("HaveHavest", HaveHavest); m_FSMManager.RegisterCondition("DidMoveToSignPoint", DidMoveToSignPoint); m_FSMManager.RegisterCondition("DidMoveToTarget", DidMoveToTarget); m_FSMManager.RegisterCondition("DidMoveToNest", DidMoveToNest); m_FSMManager.RegisterCondition("DidFullStorable", DidFullStorable); m_FSMManager.RegisterCondition("DidProductFoodComplete", DidProductFoodComplete); m_FSMManager.RegisterCondition("IsDeath", IsDeath); m_MovableComponent = new CMovableComponent(this, m_NavMeshAgent); m_MovableComponent.currentTransform = m_Transform; m_MovableComponent.obstacles = m_ObstacleLayerMasks; m_MovableComponent.radiusBase = 0f; m_CurrentLayerMask = this.gameObject.layer; }
public virtual void Init() { m_Transform = this.transform; SetStartPosition (m_Transform.position); SetTargetPosition (m_Transform.position); m_AnimatorController = this.GetComponent<Animator> (); m_Collider = this.GetComponent<CapsuleCollider> (); m_ObjectCurrentvalue = new Dictionary<string, object>(); m_GameManager = TDCGameManager.GetInstance(); m_FSMManager = new FSMManager(); var waiting = new FSMWaitingState (this); var waitingOne = new FSMWaitingOneSecondState (this); var waitingOne2Three = new FSMWaitingOne2ThreeSecondState (this); var waitingThree2Five = new FSMWaitingThree2FiveSecondState (this); var sleepState = new FSMSleepState(this); var dayModeState = new FSMDayModeState(this); var nightModeState = new FSMNightModeState(this); m_FSMManager.RegisterState("WaitingState", waiting); m_FSMManager.RegisterState("WaitingOneSecondState", waitingOne); m_FSMManager.RegisterState("WaitingOne2ThreeSecondState", waitingOne2Three); m_FSMManager.RegisterState("WaitingThree2FiveSecondState", waitingThree2Five); m_FSMManager.RegisterState("DayModeState", dayModeState); m_FSMManager.RegisterState("NightModeState", nightModeState); m_FSMManager.RegisterState("SleepState", sleepState); m_FSMManager.RegisterCondition("IsActive", IsActive); m_FSMManager.RegisterCondition("CountdownWaitingTime", CountdownWaitingTime); m_FSMManager.RegisterCondition("IsDayTime", TDCDateTime.IsDayTime); m_FSMManager.RegisterCondition("IsMidDayTime", TDCDateTime.IsMidDayTime); m_FSMManager.RegisterCondition("IsNightTime", TDCDateTime.IsNightTime); m_FSMManager.RegisterCondition("IsMidNightTime", TDCDateTime.IsMidNightTime); m_FSMManager.RegisterCondition("IsSpring", IsSpring); m_FSMManager.RegisterCondition("IsSummer", IsSummer); m_FSMManager.RegisterCondition("IsAutumn", IsAutumn); m_FSMManager.RegisterCondition("IsWinter", IsWinter); m_FSMManager.RegisterCondition("IsRainy", IsRainy); m_FSMManager.RegisterCondition("IsOverHeat", IsOverHeat); m_FSMManager.RegisterCondition("IsWindy", IsWindy); m_FSMManager.RegisterCondition("IsSnowy", IsSnowy); }