Пример #1
0
 public void JoinIn(Army armyToAdd)
 {
     if (armyToAdd != this)
     {
         Corps found;
         foreach (var corpsToTransfert in armyToAdd.personal.ToList())
         {
             if (corpsToTransfert.Value.getSize() > 0)
             {
                 if (personal.TryGetValue(corpsToTransfert.Key, out found))
                 {
                     found.add(corpsToTransfert.Value);
                 }
                 else
                 {
                     personal.Add(corpsToTransfert.Key, corpsToTransfert.Value);
                 }
             }
             else
             {
                 armyToAdd.personal.Remove(corpsToTransfert.Key);
                 CorpsPool.ReleaseObject(corpsToTransfert.Value);
             }
         }
         armyToAdd.personal.Clear();
         armyToAdd.owner.KillArmy(armyToAdd);
         Game.provincesToRedrawArmies.Add(Province);
         //Province.RedrawLocalArmies();
     }
 }
Пример #2
0
 public void joinin(Army armyToAdd)
 {
     if (armyToAdd != this)
     {
         Corps found;
         foreach (var corpsToTransfert in armyToAdd.personal.ToList())
         {
             if (corpsToTransfert.Value.getSize() > 0)
             {
                 if (this.personal.TryGetValue(corpsToTransfert.Key, out found))
                 {
                     found.add(corpsToTransfert.Value);
                 }
                 else
                 {
                     this.personal.Add(corpsToTransfert.Key, corpsToTransfert.Value);
                 }
             }
             else
             {
                 armyToAdd.personal.Remove(corpsToTransfert.Key);
                 CorpsPool.ReleaseObject(corpsToTransfert.Value);
             }
         }
         armyToAdd.personal.Clear();
     }
 }
Пример #3
0
        //public Army(Army army)
        //{
        //    personal = new List<Corps>(army.personal);
        //    destination = army.destination;
        //    this.owner = army.owner;
        //}

        public void demobilize()
        {
            foreach (var corps in personal.Values.ToList())
            {
                personal.Remove(corps.getPopUnit());
                CorpsPool.ReleaseObject(corps);
            }
        }
Пример #4
0
 public void demobilize(Func <Corps, bool> predicate)
 {
     foreach (var corps in personal.Values.ToList())
     {
         if (predicate(corps))
         {
             personal.Remove(corps.getPopUnit());
             CorpsPool.ReleaseObject(corps);
         }
     }
 }
Пример #5
0
        public static Corps mobilize(Staff staff, PopUnit origin)
        {
            int howMuch = origin.mobilize(staff);

            if (howMuch > 0)
            {
                return(CorpsPool.GetObject(origin, howMuch));
            }
            else
            {
                return(null);
            }
        }
Пример #6
0
        //public Army(Army army)
        //{
        //    personal = new List<Corps>(army.personal);
        //    destination = army.destination;
        //    this.owner = army.owner;
        //}

        //public void demobilize()
        //{
        //    foreach (var corps in personal.Values.ToList())
        //    {
        //        personal.Remove(corps.getPopUnit());
        //        CorpsPool.ReleaseObject(corps);
        //    }
        //    owner.KillArmy(this);
        //}

        public void demobilize(Func <Corps, bool> predicate = null)
        {
            foreach (var corps in personal.Values.ToList())
            {
                if (predicate == null || predicate(corps))
                {
                    personal.Remove(corps.getPopUnit());
                    CorpsPool.ReleaseObject(corps);
                }
            }
            if (personal.Count == 0)
            {
                owner.KillArmy(this);
            }
        }