public void Visit(DisembarkMission mission) { if (fleet.Ships.Sum(x => x.PopulationTransport) > 0 || this.remainingMissions.Any(x => x is LoadMission)) { this.remainingMissions.AddLast(mission); } }
void IMissionVisitor.Visit(DisembarkMission mission) { if (!this.game.States.Stars.At.Contains(this.fleet.Position)) { this.unfinishedMissions.AddLast(mission); this.stay(); return; } var newFleet = this.localFleet(); var destinations = this.game.States.Colonies. AtStar[this.game.States.Stars.At[this.fleet.Position], this.fleet.Owner]. Select(x => this.game.Derivates[x]). ToList(); foreach (var group in newFleet.Ships.Where(x => x.PopulationTransport > 0)) { group.PopulationTransport = Methods.WeightedPointDealing( group.PopulationTransport, destinations.Select(site => new PointReceiver <ColonyProcessor>( site, site.Desirability, () => site.MaxPopulation - site.Colony.Population, x => site.Colony.Population += x )) ); } this.movementSteps.Add(new FleetMovement( this.fleet, newFleet, this.time, 1, new Vector2D() )); this.time = 1; }
public void Visit(DisembarkMission mission) { //No operation }
void IMissionVisitor.Visit(DisembarkMission mission) { this.stop = true; }