public static Captive Create(GameScenario scenario, Person person, Faction faction) { if (person.BelongedFaction == null) { return(null); } if (person.BelongedFaction == faction) { return(null); } Captive captive = new Captive(); captive.Scenario = scenario; captive.ID = scenario.Captives.GetFreeGameObjectID(); captive.CaptivePerson = person; person.BelongedCaptive = captive; captive.CaptiveFaction = person.BelongedFaction; scenario.Captives.AddCaptiveWithEvent(captive); captive.CaptiveFaction.AddSelfCaptive(captive); faction.AddCaptive(captive); return(captive); }