Exemple #1
0
 internal StruckNpcKilledEventArgs(NPC npc, int npcHitPoints, PlayerStrikeInfo playerStrikeInfo)
 {
     //Npc = npc;
     //NpcValue = npc.value;
     NpcHitPoints         = npcHitPoints;
     NpcType              = npc.type;
     NpcGivenOrTypeName   = npc.GivenOrTypeName;
     NpcSpawnedFromStatue = npc.SpawnedFromStatue;
     PlayerStrikeInfo     = playerStrikeInfo;
 }
Exemple #2
0
        public void OnNpcStrike(Player player, NPC npc, int damage, bool isCritical, string itemName)
        {
            //var playerIndex = player.whoAmI;
            var npcIndex = npc.whoAmI;
            PlayerStrikeInfo playerStrikes = null;

            if (!npcStrikes.TryGetValue(npcIndex, out playerStrikes))
            {
                playerStrikes = new PlayerStrikeInfo();
                playerStrikes.OriginalNpcType = npc.type;                //used to help determine despawns.
                //npcStrikes.Add(npcIndex, playerStrikes);
                npcStrikes.TryAdd(npcIndex, playerStrikes);
            }

            var realDamage     = CalculateNpcDamage(npc, damage, isCritical);
            var damageDefended = (int)(CalculateNpcDefense(npc) * (Main.expertMode ? 0.75f : 0.50f));

            //Debug.Print($"Banking - realDamage: {realDamage}, Critical: {isCritical}");

            //Debug.Print($"OnNpcStrike item: {itemName}");
            playerStrikes.AddStrike(player.name, realDamage, damageDefended, itemName);
        }