Beispiel #1
0
        protected override bool Push()
        {
            SimDescription injured = Target;
            SimDescription killer  = Sim;

            if (mFail)
            {
                killer = null;

                if (AllowGoToJail)
                {
                    Manager.AddAlarm(new GoToJailScenario(Sim, Bail));

                    injured = null;
                }
                else
                {
                    injured = Sim;
                }
            }

            if ((AllowInjury) && (injured != null) && (injured.CreatedSim != null) && (injured.CreatedSim.LotCurrent == mVictim.LotCurrent))
            {
                Handiness skill = injured.SkillManager.GetSkill <Handiness>(SkillNames.Handiness);
                if ((skill == null) || (RandomUtil.RandomChance01((skill.MaxSkillLevel - skill.SkillLevel) / (float)skill.MaxSkillLevel)))
                {
                    if ((mVictim is Bathtub) || (mVictim is Shower) || (mVictim is Toilet) || (mVictim is Sink))
                    {
                        ManagerSim.AddBuff(Manager, injured, BuffNames.Soaked, Origin.FromFailedRepair);

                        Manager.AddAlarm(new GoToHospitalScenario(injured, killer, mVictim, "InjuredDrown", SimDescription.DeathType.Drown));
                    }
                    else
                    {
                        ManagerSim.AddBuff(Manager, injured, BuffNames.SingedElectricity, Origin.FromFailedRepair);

                        Manager.AddAlarm(new GoToHospitalScenario(injured, killer, mVictim, "InjuredElectrocute", SimDescription.DeathType.Electrocution));
                    }
                }
            }

            return(Situations.PushVisit(this, Sim, Target.LotHome));
        }
Beispiel #2
0
 public SkillAlteration(Handiness.UpgradeTuning tuning)
     : base(tuning, Relativity.Settings.GetSkillFactor(SkillNames.Handiness), 0)
 {}
Beispiel #3
0
 public TimeAlteration(Handiness.UpgradeTuning tuning, float factor)
     : base(tuning, factor, sDefaultMinimum)
 {}
Beispiel #4
0
 public TuningAlteration(Handiness.UpgradeTuning tuning, float factor, float minimum)
     : base(factor, minimum)
 {
     mTuning = tuning;
 }
Beispiel #5
0
 public UpgradeAlteration(Handiness.UpgradeTuning tuning, float factor)
 {
     Add(new TimeAlteration(tuning, factor));
     Add(new SkillAlteration(tuning));
 }