public static void Hobo_MugMoney(Agent agent, Agent interactingAgent, int moneyValue, string relStatus, string transactionType) { logger.LogDebug("Hobo_MugMoney"); if (GC.serverPlayer) { for (int i = 0; i < agent.gangMembers.Count; i++) { agent.gangMembers[i].hasMugged = true; } for (int j = 0; j < GC.playerAgentList.Count; j++) { GC.playerAgentList[j].gangMugging = 0; } agent.objectMult.SetGangMuggingOff(); agent.doingMugging = -1; BMHeaderTools.SayDialogue(agent, "Hobo_Donate_" + relStatus, vNameType.Dialogue); // InvItem invItem = new InvItem(); invItem.invItemName = "Money"; invItem.invItemCount = agent.determineMoneyCost("Hobo_GiveMoney1"); // ← invItem.ItemSetup(true); agent.inventory.AddItem(invItem); agent.relationships.SetRel(interactingAgent, relStatus); return; } interactingAgent.objectMult.ObjectAction(agent.objectNetID, "MugMoney"); // ← }
public override void Patch() { base.Patch(); ObjectInteraction reduceAmmoPrices = RogueLibsInteractions.CreateOriginalInteraction("ReduceAmmoPrices", InteractionType.Button, (agent, obj) => obj is AmmoDispenser a && !a.isBrokenShowButtons() && agent.interactionHelper.interactingFar && a.hacked == 0); reduceAmmoPrices.Action = (agent, obj) => { obj.gc.audioHandler.Play(agent, "Success"); ((AmmoDispenser)obj).ReduceAmmoPrices(agent); return(true); }; ObjectInteraction hackExplode = RogueLibsInteractions.CreateOriginalInteraction("HackExplode", InteractionType.Button, (agent, obj) => obj is AmmoDispenser a && !a.isBrokenShowButtons() && agent.interactionHelper.interactingFar && ((agent.oma.superSpecialAbility && agent.agentName == "Hacker") || agent.statusEffects.hasTrait("HacksBlowUpObjects"))); // action is defined in ObjectReal.PressedButton ObjectInteraction refillGun = RogueLibsInteractions.CreateOriginalInteraction("RefillGun", InteractionType.Button, (agent, obj) => obj is AmmoDispenser a && !a.isBrokenShowButtons() && !agent.interactionHelper.interactingFar && agent.inventory.InvItemList.Any(i => i.itemType == "WeaponProjectile")); refillGun.Action = (_, obj) => { obj.ShowUseOn("RefillGun"); return(false); }; ObjectInteraction giveMechOil = RogueLibsInteractions.CreateOriginalInteraction("GiveMechOil", InteractionType.Button, (agent, obj) => { if (!(obj is AmmoDispenser a) || a.isBrokenShowButtons() || !agent.statusEffects.hasTrait("OilRestoresHealth")) { return(false); } InvItem invItem = new InvItem { invItemName = "OilContainer", invItemCount = 1 }; invItem.ItemSetup(false); float num = 1.5f; if (agent.statusEffects.hasTrait("OilRestoresMoreHealth") || agent.oma.superSpecialAbility) { num = 3f; } invItem.itemValue = (int)(invItem.itemValue / num); float num2 = agent.health / invItem.initCount * invItem.itemValue; int num3 = Mathf.Max(obj.determineMoneyCost((int)(agent.healthMax / invItem.initCount * invItem.itemValue - num2), "AmmoDispenser"), 0); return(num3 > 0); });
public static void EquipReinforcement(Agent agent) { InvItem item = new InvItem { invItemName = gc.Choose(vItem.Pistol, vItem.Knife) }; item.ItemSetup(false); item.invItemCount = item.rewardCount; agent.inventory.AddItemAtEmptySlot(item, true, false); agent.inventory.equippedWeapon = item; agent.inventory.startingHeadPiece = vArmorHead.HardHat; }
public static void EquipReinforcement(Agent agent) { InvItem item = new InvItem { invItemName = gc.Choose(vItem.Revolver, vItem.MachineGun) }; item.ItemSetup(false); item.invItemCount = item.rewardCount; agent.inventory.AddItemAtEmptySlot(item, true, false); agent.inventory.equippedWeapon = item; agent.inventory.startingHeadPiece = vArmorHead.SoldierHelmet; }