public override void implement(VoteOption option) { base.implement(option); if (option.index == 1) { bool canVassalise = false; Society receiever = (Society)target; List <Location> trans = new List <Location>(); foreach (Location loc in society.map.locations) { if (loc.soc == society) { trans.Add(loc); } if (loc.soc == target && loc.settlement != null) { canVassalise = true; } } if (canVassalise) { World.log(society.getName() + " VASSALISES UNDER " + target.getName()); society.map.turnMessages.Add(new MsgEvent(society.getName() + " vassalises under " + target.getName() + ", transferring all lands and landed nobles.", MsgEvent.LEVEL_RED, true, society.getCapitalHex())); foreach (Location loc in trans) { receiever.map.takeLocationFromOther(receiever, society, loc); if (loc.settlement != null && loc.settlement.embeddedUnit != null) { loc.settlement.embeddedUnit.society = target; } } receiever.addHistory("#GRN_We absorbed " + society.getName() + ", as they vassalised under us. Took " + trans.Count + " locations."); } } }