public ProxyDefinition(IWooHooProxyDefinition definition, Sim actor, IGameObject obj) : base(CommonWoohoo.GetSocialName(definition.GetStyle(null), actor), new string[0x0], null, false) { mDefinition = definition; mObject = obj; ChecksToSkip |= ActionData.ChecksToSkip.ProceduralTests; }
public override bool Run() { try { IWooHooProxyDefinition definition = InteractionDefinition as IWooHooProxyDefinition; // Initiate from standing social Sim selectedTarget = definition.ITarget(this); // Join in progress if (definition.IJoinInProgress(Actor, selectedTarget, Target, this)) { return(true); } if (selectedTarget == null) { return(false); } bool allowSocial = (definition.PushSocial) && (NRaas.Woohooer.Settings.mAllowForeplay); if (allowSocial) { if ((Actor.SimDescription.IsZombie) || (selectedTarget.SimDescription.IsZombie)) { allowSocial = false; } else if ((Actor.SimDescription.IsRobot) || (selectedTarget.SimDescription.IsRobot)) { allowSocial = false; } } if (allowSocial) { InteractionInstance entry = new WooHooSocialInteraction.ProxyDefinition(definition, Actor, Target).CreateInstance(selectedTarget, Actor, GetPriority(), Autonomous, CancellableByPlayer); return(Actor.InteractionQueue.Add(entry)); } else { definition.PushWooHoo(Actor, selectedTarget, Target); return(true); } } catch (ResetException) { throw; } catch (Exception exception) { Common.Exception(Actor, Target, exception); return(false); } }