Exemple #1
0
    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);
     }
 }
Exemple #3
0
    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);
        }
    }