Ejemplo n.º 1
0
        public static void Click(Players.Player player, Box <PlayerClickedData> boxedData)
        {
            var healed = false;

            if (!_coolDown.ContainsKey(player))
            {
                _coolDown.Add(player, 0);
            }

            if (boxedData.item1.clickType == PlayerClickedData.ClickType.Right &&
                boxedData.item1.typeSelected == Item.ItemIndex)
            {
                if (Time.MillisecondsSinceStart > _coolDown[player])
                {
                    var healing = new HealingOverTimePC(player, INITIALHEAL, TOTALHOT, 5);
                    healed = true;
                }
            }
            else if (boxedData.item1.clickType == PlayerClickedData.ClickType.Left &&
                     boxedData.item1.typeSelected == Item.ItemIndex &&
                     boxedData.item1.rayCastHit.rayHitType == RayHitType.NPC)
            {
                if (NPCTracker.TryGetNPC(boxedData.item1.rayCastHit.hitNPCID, out var npc))
                {
                    if (Time.MillisecondsSinceStart > _coolDown[player])
                    {
                        var heal = new HealingOverTimeNPC(npc, INITIALHEAL, TOTALHOT, 5, Item.ItemIndex);
                        healed = true;
                    }
                }
            }

            if (healed)
            {
                _coolDown[player]            = Time.MillisecondsSinceStart + COOLDOWN;
                boxedData.item1.consumedType = PlayerClickedData.ConsumedType.UsedByMod;
                ServerManager.SendAudio(player.Position, GameLoader.NAMESPACE + ".Bandage");

                if (Inventory.TryGetInventory(player, out var inv))
                {
                    inv.TryRemove(Item.ItemIndex);
                }
            }
        }
Ejemplo n.º 2
0
        public static void Click(Players.Player player, PlayerClickedData playerClickData)
        {
            var healed = false;

            if (!_coolDown.ContainsKey(player))
            {
                _coolDown.Add(player, 0);
            }

            if (playerClickData.ClickType == PlayerClickedData.EClickType.Right &&
                playerClickData.TypeSelected == Item.ItemIndex)
            {
                if (Time.MillisecondsSinceStart > _coolDown[player])
                {
                    var healing = new HealingOverTimePC(player, INITIALHEAL, TOTALHOT, 5);
                    healed = true;
                }
            }
            else if (playerClickData.ClickType == PlayerClickedData.EClickType.Left &&
                     playerClickData.TypeSelected == Item.ItemIndex &&
                     playerClickData.HitType == PlayerClickedData.EHitType.NPC)
            {
                if (NPCTracker.TryGetNPC(playerClickData.GetNPCHit().NPCID, out var npc))
                {
                    if (Time.MillisecondsSinceStart > _coolDown[player])
                    {
                        var heal = new HealingOverTimeNPC(npc, INITIALHEAL, TOTALHOT, 5, Item.ItemIndex);
                        healed = true;
                    }
                }
            }

            if (healed)
            {
                _coolDown[player]            = Time.MillisecondsSinceStart + COOLDOWN;
                playerClickData.ConsumedType = PlayerClickedData.EConsumedType.UsedByMod;
                AudioManager.SendAudio(player.Position, GameLoader.NAMESPACE + ".Bandage");
                player.Inventory.TryRemove(Item.ItemIndex);
            }
        }