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); } }
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; } }