Exemplo n.º 1
0
    public override void AssignCommander(BaseNavyCommander commander)
    {
        NavyCommander navyCommander = base.Commander as NavyCommander;

        if (navyCommander != null)
        {
            navyCommander.NavyArmies.Remove(this);
        }
        base.AssignCommander(commander);
        navyCommander = (base.Commander as NavyCommander);
        if (navyCommander != null)
        {
            navyCommander.NavyArmies.Add(this);
        }
    }
Exemplo n.º 2
0
 public override void AssignCommander(BaseNavyCommander commander)
 {
     if (base.Commander != null)
     {
         NavyCommander navyCommander = base.Commander as NavyCommander;
         if (navyCommander != null)
         {
             navyCommander.NavyFortresses.Remove(this);
         }
     }
     base.AssignCommander(commander);
     if (base.Commander != null)
     {
         NavyCommander navyCommander2 = base.Commander as NavyCommander;
         if (navyCommander2 != null)
         {
             navyCommander2.NavyFortresses.Add(this);
         }
     }
 }
Exemplo n.º 3
0
    public override bool CheckValidity()
    {
        if (this.Target == null || this.targetArmy.Army == null)
        {
            return(false);
        }
        if (this.Target.Army.Empire.Index == base.Owner.Index)
        {
            return(false);
        }
        if (base.Owner is MajorEmpire && this.Target.Army.Empire is MajorEmpire && base.NavyLayer.diplomacyLayer.GetPeaceWish(this.Target.Army.Empire.Index))
        {
            return(false);
        }
        if (this.worldPositionService.IsFrozenWaterTile(this.Target.Army.WorldPosition))
        {
            return(false);
        }
        if (!this.worldPositionService.IsOceanTile(this.Target.Army.WorldPosition))
        {
            return(false);
        }
        if (this.Target.Army.IsCamouflaged && !this.visibilityService.IsWorldPositionDetectedFor(this.Target.Army.WorldPosition, base.Owner))
        {
            return(false);
        }
        NavyCommander navyCommander = base.NavyLayer.FindCommanderForTaskAt(this.Target.Army.WorldPosition) as NavyCommander;

        if (navyCommander == null || navyCommander.CommanderState == NavyCommander.NavyCommanderState.Inactive)
        {
            return(false);
        }
        Region region = this.worldPositionService.GetRegion(this.Target.Army.WorldPosition);

        return(base.NavyLayer.MightAttackArmyOwner(region, this.Target.Army.Empire));
    }