public void Enter(Architecture a, bool doAsk) { if (doAsk && base.Scenario.CurrentPlayer != null && this.OnTransportArrived != null) { this.OnTransportArrived(this, a); } else if (a.BelongedFaction == this.BelongedFaction) { PersonList list = new PersonList(); foreach (Person person in this.Persons) { person.LocationArchitecture = a; person.LocationTroop = null; if (base.Scenario.IsPlayer(this.BelongedFaction) && this.StartingArchitecture != null && this.StartingArchitecture.BelongedFaction == this.BelongedFaction && this.StartingArchitecture.BelongedSection != a.BelongedSection && this.StartingArchitecture != transportReturningTo) { person.MoveToArchitecture(this.StartingArchitecture); } } this.Persons.ApplyInfluences(); if (this.Army.ShelledMilitary == null) { if (this.Army.Quantity > this.Army.Kind.MaxScale) { this.Army.Quantity = this.Army.Kind.MaxScale; } a.AddMilitary(this.Army); } else { if (this.Army.Quantity > this.Army.ShelledMilitary.Kind.MaxScale) { this.Army.Quantity = this.Army.ShelledMilitary.Kind.MaxScale; } a.AddMilitary(this.Army.ShelledMilitary); base.Scenario.Militaries.Remove(this.Army); } a.callReturnedOfficerToWork(); if (this.Food > 0) { a.IncreaseFood(this.Food); } if (this.zijin > 0) { a.IncreaseFund(this.zijin); } this.MoveCaptiveIntoArchitecture(a); this.Destroy(true, false); foreach (Person p in this.persons) { p.LocationTroop = null; p.LocationArchitecture = a; p.WorkKind = p.OldWorkKind; } this.persons.ApplyInfluences(); this.persons.Clear(); ExtensionInterface.call("EnterArchitecture", new Object[] { this.Scenario, this, a }); } }
public void Enter(Architecture a) { if (a.BelongedFaction == this.BelongedFaction) { PersonList list = new PersonList(); foreach (Person person in this.Persons) { list.Add(person); a.AddPerson(person); } this.Persons.ApplyInfluences(); foreach (Person person in list) { this.RemovePerson(person); } if (this.Army.ShelledMilitary == null) { a.AddMilitary(this.Army); } else { a.AddMilitary(this.Army.ShelledMilitary); base.Scenario.Militaries.Remove(this.Army); } if (this.Food > 0) { a.IncreaseFood(this.Food); } this.MoveCaptiveIntoArchitecture(a); this.Destroy(); this.BelongedLegion.RemoveTroop(this); this.BelongedFaction.RemoveTroop(this); base.Scenario.Troops.RemoveTroop(this); } }
public override void ApplyEffectKind(Architecture a, Event e) { a.IncreaseFood(increment); }