public void SendArmyToCamp(IBuildingInfo campInfo) { TilePosition targetPoint = this.FindCampStandablePoint(campInfo); ArmyWalkState walkState = new ArmyWalkState(this.MapData, targetPoint, this, campInfo); this.ChangeState(walkState); }
protected override void OnTargetReached() { if (this.m_TargetObjectPosition.Equals(this.m_TargetInfo.ActorPosition)) { ArmyIdleState idleState = new ArmyIdleState(this.m_AIBehavior, this.m_TargetInfo as IBuildingInfo); this.m_AIBehavior.ChangeState(idleState); } else { ArmyWalkState walkState = new ArmyWalkState( this.m_MapData, ((ArmyAI)this.m_AIBehavior).FindCampStandablePoint(this.m_TargetInfo as IBuildingInfo), this.m_AIBehavior, this.m_TargetInfo as IBuildingInfo); this.m_AIBehavior.ChangeState(walkState); } }
protected override void OnTimeUp() { TilePosition targetPosition = ((ArmyAI)this.m_AIBehavior).FindCampStandablePoint(this.m_CampInfo); if (this.m_CampPosition.Equals(this.m_CampInfo.BuildingPosition)) { ArmyHoverState hoverState = new ArmyHoverState(((ArmyAI)this.m_AIBehavior).MapData, targetPosition, this.m_AIBehavior, this.m_CampInfo); this.m_AIBehavior.ChangeState(hoverState); } else { ArmyWalkState walkState = new ArmyWalkState(((ArmyAI)this.m_AIBehavior).MapData, targetPosition, this.m_AIBehavior, this.m_CampInfo); this.m_AIBehavior.ChangeState(walkState); } }