public static void OnTrained(Event e) { Sim actor = e.Actor as Sim; if (actor == null) { return; } if ((actor.Household == null) || (actor.Household.IsSpecialHousehold)) { return; } if (actor.InteractionQueue == null) { return; } InteractionInstance interaction = actor.InteractionQueue.GetCurrentInteraction(); if (interaction == null) { return; } if (!(interaction.Target is TrainingDummy)) { return; } TimePassedEvent pEvent = e as TimePassedEvent; Sim target = e.TargetObject as Sim; if (target == null) { return; } if (actor.Household == target.Household) { return; } AddAccrued(actor, target, GetPay(actor) * pEvent.mIncrement); if (!CollectAccrued(actor, target)) { if (actor.InteractionQueue != null) { actor.InteractionQueue.CancelAllInteractions(); } Common.Notify(Common.Localize("Trainer:UnableToPay"), actor.ObjectId); } }
public static void OnMeditated(Event e) { Sim actor = e.Actor as Sim; if (actor == null) { return; } if (SkillBasedCareerBooter.GetSkillBasedCareer(actor, SkillNames.MartialArts) == null) { return; } TimePassedEvent tEvent = e as TimePassedEvent; float perSimValue = 0; perSimValue *= tEvent.Increment; foreach (Sim sim in actor.LotCurrent.GetSims()) { if (sim == actor) { continue; } if (sim.RoomId != actor.RoomId) { continue; } if (sim.FamilyFunds >= perSimValue) { sim.Motives.SetMax(CommodityKind.VampireThirst); sim.Motives.SetMax(CommodityKind.Hunger); sim.Motives.SetMax(CommodityKind.Energy); AddAccrued(actor, sim, perSimValue); } } CollectAccrued(actor, null); }
public static void OnTrained(Event e) { Sim actor = e.Actor as Sim; if (actor == null) { return; } if ((actor.Household == null) || (actor.Household.IsSpecialHousehold)) { return; } if (actor.InteractionQueue == null) { return; } InteractionInstance interaction = actor.InteractionQueue.GetCurrentInteraction(); if (interaction == null) { return; } if (!(interaction.Target is AthleticGameObject)) { return; } TimePassedEvent pEvent = e as TimePassedEvent; Sim target = e.TargetObject as Sim; if (target == null) { return; } if (actor.Household == target.Household) { return; } float cash = GetPay(actor) * pEvent.mIncrement; if (sAccrued.ContainsKey(actor.SimDescription.SimDescriptionId)) { cash += sAccrued[actor.SimDescription.SimDescriptionId]; } if (cash >= target.FamilyFunds) { cash = target.FamilyFunds; if (cash == 0) { if (actor.InteractionQueue != null) { actor.InteractionQueue.CancelAllInteractions(); } if (actor.IsSelectable) { Common.Notify(Common.Localize("Trainer:UnableToPay"), actor.ObjectId); } return; } } sAccrued.Remove(actor.SimDescription.SimDescriptionId); if (cash < 1) { sAccrued.Add(actor.SimDescription.SimDescriptionId, cash); } else { target.ModifyFunds(-(int)cash); actor.ModifyFunds((int)cash); SkillBasedCareerBooter.UpdateExperience(actor, SkillNames.Athletic, (int)cash); } }