示例#1
0
        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);
        }