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); } }
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); } } }
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)); }