public virtual bool TroopStubCreate(out ITroopStub troopStub, ICity city, ISimpleStub stub, TroopState initialState = TroopState.Idle) { if (!city.DefaultTroop.RemoveFromFormation(FormationType.Normal, stub)) { troopStub = null; return(false); } troopStub = city.CreateTroopStub(); troopStub.BeginUpdate(); troopStub.Add(stub); troopStub.State = initialState; troopStub.EndUpdate(); return(true); }