public override void Patch() { base.Patch(); ObjectInteraction allAccess = RogueLibsInteractions.CreateOriginalInteraction("AllAccessAlarmButton", InteractionType.Button, (agent, obj) => obj is AlarmButton a && agent.interactionHelper.interactingFar && !a.hacked); allAccess.Action = (_, obj) => { AlarmButton alarmButton = (AlarmButton)obj; alarmButton.hacked = true; if (!alarmButton.gc.serverPlayer) { alarmButton.gc.playerAgent.objectMult.ObjectAction(alarmButton.objectNetID, "AllAccess"); } alarmButton.StopInteraction(); return(true); }; ObjectInteraction pressAlarmButton = RogueLibsInteractions.CreateOriginalInteraction("PressAlarmButton", InteractionType.InteractOrButton, new CustomNameInfo("Call a Supercop", null, null, null, null, "Вызвать Суперкопа", null, null), (agent, obj) => obj is AlarmButton a && !a.isBroken() && (agent.upperCrusty || a.hacked)); pressAlarmButton.Action = (agent, obj) => { ((AlarmButton)obj).ToggleSwitch(agent, null); return(true); }; }
public override void Patch() { base.Patch(); ObjectInteraction insertItem = RogueLibsInteractions.CreateOriginalInteraction("InsertItem", InteractionType.Button, (_, obj) => obj is AirConditioner); insertItem.Action = (_, obj) => { obj.ShowUseOn("InsertItem"); return(false); }; }
public override void Patch() { base.Patch(); ObjectInteraction increaseVolume = RogueLibsInteractions.CreateOriginalInteraction("IncreaseVolume", InteractionType.Button, (agent, obj) => obj is ArcadeGame a && agent.interactionHelper.interactingFar && !a.isHighVolume); increaseVolume.Action = (_, obj) => { (obj as ArcadeGame)?.IncreaseVolume(); return(false); }; ObjectInteraction hackExplode = RogueLibsInteractions.CreateOriginalInteraction("HackExplode", InteractionType.Button, (agent, obj) => obj is ArcadeGame a && !a.isBroken() && !a.tempNoOperating && agent.interactionHelper.interactingFar && ((agent.oma.superSpecialAbility && agent.agentName == "Hacker") || agent.statusEffects.hasTrait("HacksBlowUpObjects"))); // action is defined in ObjectReal.PressedButton }
public override void Patch() { base.Patch(); ObjectInteraction grillFud = RogueLibsInteractions.CreateOriginalInteraction("GrillFud", InteractionType.Button, (_, obj) => obj is Barbecue b && !b.burntOut && b.ora.hasParticleEffect && b.interactingAgent.inventory.HasItem("Fud")); grillFud.Action = (_, obj) => { obj.StartCoroutine(obj.Operating(obj.interactingAgent, null, 2f, true, "Grilling")); return(false); }; ObjectInteraction lightBarbecue = RogueLibsInteractions.CreateOriginalInteraction("LightBarbecue", InteractionType.Button, (_, obj) => obj is Barbecue b && !b.burntOut && !b.ora.hasParticleEffect && b.interactingAgent.inventory.HasItem("CigaretteLighter")); lightBarbecue.Action = (_, obj) => { ((Barbecue)obj).StartFireInObject(); return(true); }; }