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(); } }
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(); } }
//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); } }
public void demobilize(Func <Corps, bool> predicate) { foreach (var corps in personal.Values.ToList()) { if (predicate(corps)) { personal.Remove(corps.getPopUnit()); CorpsPool.ReleaseObject(corps); } } }
public static Corps mobilize(Staff staff, PopUnit origin) { int howMuch = origin.mobilize(staff); if (howMuch > 0) { return(CorpsPool.GetObject(origin, howMuch)); } else { return(null); } }
//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); } }