コード例 #1
0
ファイル: Hooks.cs プロジェクト: tung362/RoR2PVP
 static void PreventRevivesShuffle(On.RoR2.ShrineRestackBehavior.orig_AddShrineStack orig, ShrineRestackBehavior self, Interactor interactor)
 {
     if (NetworkServer.active)
     {
         //Remove revives before shuffling so it doesn't add to the shuffle
         RoR2.Inventory playerInventory = interactor.GetComponent <CharacterBody>().master.inventory;
         playerInventory.RemoveItem(RoR2Content.Items.ExtraLife, 9999);
         playerInventory.RemoveItem(RoR2Content.Items.ExtraLifeConsumed, 9999);
         //Shuffle
         orig(self, interactor);
         //Reshuffle if shuffle landed on a revive item
         while (playerInventory.GetItemCount(RoR2Content.Items.ExtraLife) != 0 || playerInventory.GetItemCount(RoR2Content.Items.ExtraLife) != 0)
         {
             playerInventory.ShrineRestackInventory(Run.instance.treasureRng);
         }
     }
     else
     {
         orig(self, interactor);
     }
 }
コード例 #2
0
        public void AddShrineStack(Interactor interactor)
        {
            if (!NetworkServer.active)
            {
                Debug.LogWarning("[Server] function 'System.Void RoR2.ShrineRestackBehavior::AddShrineStack(RoR2.Interactor)' called on client");
                return;
            }
            this.waitingForRefresh = true;
            CharacterBody component = interactor.GetComponent <CharacterBody>();

            if (component && component.master)
            {
                Inventory inventory = component.master.inventory;
                if (inventory)
                {
                    inventory.ShrineRestackInventory(this.rng);
                    Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage
                    {
                        subjectCharacterBodyGameObject = interactor.gameObject,
                        baseToken = "SHRINE_RESTACK_USE_MESSAGE"
                    });
                }
            }
            EffectManager.instance.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ShrineUseEffect"), new EffectData
            {
                origin   = base.transform.position,
                rotation = Quaternion.identity,
                scale    = 1f,
                color    = new Color(1f, 0.23f, 0.6337214f)
            }, true);
            this.purchaseCount++;
            this.refreshTimer = 2f;
            if (this.purchaseCount >= this.maxPurchaseCount)
            {
                this.symbolTransform.gameObject.SetActive(false);
            }
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: cleoman/RoR2ModMenu
 private static void StackInventory()
 {
     //Does the same thing as the shrine of order. Orders all your items into stacks of several random items.
     LocalPlayerInv.ShrineRestackInventory(Run.instance.runRNG);
 }