protected override bool PrivateUpdate(ScenarioFrame frame) { if (!mSuccess.TestBeforehand(Manager, Sim, Target)) { IncStat("Success TestBeforehand Fail"); return(false); } if (!mFailure.TestBeforehand(Manager, Sim, Target)) { IncStat("Failure TestBeforehand Fail"); return(false); } if (!RandomUtil.RandomChance(mChance)) { IncStat("Chance Fail"); return(false); } SimPersonality clan = Personalities.GetPersonality(TargetFilter.Clan); if (clan == null) { clan = Manager as SimPersonality; } if (clan == null) { IncStat("Clan Missing"); return(false); } mFail = ((!string.IsNullOrEmpty(mAcceptanceScoring)) && (AddScoring("Acceptance", ScoringLookup.GetScore(mAcceptanceScoring, Target, Sim)) <= 0)); if (!mFail) { if (!clan.RemoveFromClan(Target)) { return(false); } mSuccess.Perform(this, frame, "Success", Sim, Target); } else { mFailure.Perform(this, frame, "Failure", Sim, Target); } return(true); }