Example #1
0
 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 });
     }
 }