private void OnSettlementEntered(MobileParty party, Settlement settlement, Hero hero) { if (party != null) { if ((!party.IsCaravan || !settlement.IsTown ? false : party.LeaderHero != null)) { party.LeaderHero.AddSkillXp(DefaultSkills.Trade, 10f); if (party.Party.NumberOfRegularMembers < party.Party.PartySizeLimit - 1) { if ((settlement.Town.MercenaryData.HasAvailableMercenary(Occupation.CaravanGuard) ? true : settlement.Town.MercenaryData.HasAvailableMercenary(Occupation.Mercenary))) { CharacterObject troopType = settlement.Town.MercenaryData.TroopType; int num = 1; if (party.Party.NumberOfRegularMembers < party.Party.PartySizeLimit / 2) { num = 5; } RecruitAction.ApplyRecruitMercenary(party, settlement, troopType, num); party.LeaderHero.AddSkillXp(DefaultSkills.Leadership, (float)(5 * num)); MobileParty partyTradeGold = party; partyTradeGold.PartyTradeGold = partyTradeGold.PartyTradeGold - 50 * num; } } } } }
public static void AddToQueue(BaseRegiment regiment) { RecruitAction act = new RecruitAction(Player.curRegion.data, regiment, regiment.time); Player.curRegion.data.AddRecruit(act); instance.UpdateQueue(); }
public void AddRecruit(RecruitAction act) { region.owner.SpendTreasure(act.regiment.cost); recruitQueue.Add(act); }
public void RemoveRecruit(RecruitAction act) { region.owner.IncomeTreasure(act.regiment.cost * 0.5f); recruitQueue.Remove(act); }
public static void RemoveFromQueue(RecruitAction act) { act.actually = false; Player.curRegion.data.RemoveRecruit(act); instance.UpdateQueue(); }