public void GenerateArmyInCamp(IBuildingInfo campInfo) { this.transform.position = PositionConvertor.GetWorldPositionFromActorTileIndex( this.FindCampStandablePoint(campInfo)) + new Vector3(Random.Range(-ClientSystemConstants.ACTOR_TILE_MAP_TILE_SIZE.width / 2, ClientSystemConstants.ACTOR_TILE_MAP_TILE_SIZE.height / 2), Random.Range(-ClientSystemConstants.ACTOR_TILE_MAP_TILE_SIZE.width / 2, ClientSystemConstants.ACTOR_TILE_MAP_TILE_SIZE.height / 2), 0); ArmyIdleState idleState = new ArmyIdleState(this, campInfo); this.ChangeState(idleState); }
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 OnTargetReached() { ArmyIdleState idleState = new ArmyIdleState(this.m_AIBehavior, this.m_TargetInfo as IBuildingInfo); this.m_AIBehavior.ChangeState(idleState); }