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)); }
public SkillAlteration(Handiness.UpgradeTuning tuning) : base(tuning, Relativity.Settings.GetSkillFactor(SkillNames.Handiness), 0) {}
public TimeAlteration(Handiness.UpgradeTuning tuning, float factor) : base(tuning, factor, sDefaultMinimum) {}
public TuningAlteration(Handiness.UpgradeTuning tuning, float factor, float minimum) : base(factor, minimum) { mTuning = tuning; }
public UpgradeAlteration(Handiness.UpgradeTuning tuning, float factor) { Add(new TimeAlteration(tuning, factor)); Add(new SkillAlteration(tuning)); }