Terraria.ModLoader.NPCLoader.CanBeHitByItem C# (CSharp) Method

CanBeHitByItem() public static method

public static CanBeHitByItem ( NPC npc, Player player, System.Item item ) : bool?
npc NPC
player Player
item System.Item
return bool?
        public static bool? CanBeHitByItem(NPC npc, Player player, Item item)
        {
            bool? flag = null;
            foreach (var hook in HookCanBeHitByItem)
            {
                bool? canHit = hook(npc, player, item);
                if (canHit.HasValue && !canHit.Value)
                {
                    return false;
                }
                if (canHit.HasValue)
                {
                    flag = canHit.Value;
                }
            }
            if (npc.modNPC != null)
            {
                bool? canHit = npc.modNPC.CanBeHitByItem(player, item);
                if (canHit.HasValue && !canHit.Value)
                {
                    return false;
                }
                if (canHit.HasValue)
                {
                    flag = canHit.Value;
                }
            }
            return flag;
        }

Usage Example

Ejemplo n.º 1
0
        public static bool?CanPlayerHitNPCWithItem(Player player, Item item, NPC npc)
        {
            bool?result = null;

            bool ModifyResult(bool?nbool)
            {
                if (nbool.HasValue)
                {
                    result = nbool.Value;
                }

                return(result != false);
            }

            if (!ModifyResult(PlayerHooks.CanHitNPC(player, item, npc)))
            {
                return(false);
            }

            if (!ModifyResult(ItemLoader.CanHitNPC(item, player, npc)))
            {
                return(false);
            }

            if (!ModifyResult(NPCLoader.CanBeHitByItem(npc, player, item)))
            {
                return(false);
            }

            return(result);
        }