Ejemplo n.º 1
0
        private void NPC_GetMeleeCollisionData(On.Terraria.NPC.orig_GetMeleeCollisionData orig, Rectangle victimHitbox, int enemyIndex, ref int specialHitSetter, ref float damageMultiplier, ref Rectangle npcRect)
        {
            NPC self = Main.npc[enemyIndex];

            MeleeCollisionNPCData.knockbackMult = 1f;
            if (self.modNPC is IMeleeCollisionDataNPC meleeNPC)
            {
                meleeNPC.GetMeleeCollisionData(victimHitbox, enemyIndex, ref specialHitSetter, ref damageMultiplier, ref npcRect, ref MeleeCollisionNPCData.knockbackMult);
            }
            else
            {
                orig(victimHitbox, enemyIndex, ref specialHitSetter, ref damageMultiplier, ref npcRect);
            }
        }
Ejemplo n.º 2
0
        private void NPC_GetMeleeCollisionData(On.Terraria.NPC.orig_GetMeleeCollisionData orig, Rectangle victimHitbox, int enemyIndex, ref int specialHitSetter, ref float damageMultiplier, ref Rectangle npcRect)
        {
            orig(victimHitbox, enemyIndex, ref specialHitSetter, ref damageMultiplier, ref npcRect);
            NPC npc = Main.npc[enemyIndex];

            if (npc.ai[2] > 18f)
            {
                int num = 30;
                if (npc.spriteDirection < 0)
                {
                    npcRect.X     -= num;
                    npcRect.Width += num;
                }
                else
                {
                    npcRect.Width += num;
                }
                damageMultiplier *= 2f;
                return;
            }
        }