From 3dc658a78ec4cc70bdc84e70f9825fb2d748e815 Mon Sep 17 00:00:00 2001 From: JAWolfe04 Date: Mon, 1 Feb 2016 22:30:52 -0600 Subject: [PATCH] Tweaked player damage to TFC levels Adjusted all player damage to behave as expected in TFC and not vanilla --- build.prop | 2 +- builds/[1.7.10]TerraFirmaPunkTweaks-1.02.jar | Bin 6751 -> 0 bytes builds/[1.7.10]TerraFirmaPunkTweaks-1.03.jar | Bin 0 -> 10014 bytes ...1.7.10]TerraFirmaPunkTweaks-deobf-1.02.jar | Bin 6525 -> 0 bytes ...1.7.10]TerraFirmaPunkTweaks-deobf-1.03.jar | Bin 0 -> 9803 bytes .../[1.7.10]TerraFirmaPunkTweaks-src-1.02.jar | Bin 4070 -> 0 bytes .../[1.7.10]TerraFirmaPunkTweaks-src-1.03.jar | Bin 0 -> 5951 bytes .../com/onewolfe/tfptweaks/PlayerHandler.java | 231 +++++++++++++++++- 8 files changed, 228 insertions(+), 5 deletions(-) delete mode 100644 builds/[1.7.10]TerraFirmaPunkTweaks-1.02.jar create mode 100644 builds/[1.7.10]TerraFirmaPunkTweaks-1.03.jar delete mode 100644 builds/[1.7.10]TerraFirmaPunkTweaks-deobf-1.02.jar create mode 100644 builds/[1.7.10]TerraFirmaPunkTweaks-deobf-1.03.jar delete mode 100644 builds/[1.7.10]TerraFirmaPunkTweaks-src-1.02.jar create mode 100644 builds/[1.7.10]TerraFirmaPunkTweaks-src-1.03.jar diff --git a/build.prop b/build.prop index bd577f6..2c808f9 100644 --- a/build.prop +++ b/build.prop @@ -1,6 +1,6 @@ minecraft_version=1.7.10 forge_version=10.13.4.1558-1.7.10 tfc_version=0.79.27 -mod_version=1.02 +mod_version=1.03 mod_id=TerraFirmaPunkTweaks group_name=com.onewolfe.tfptweaks \ No newline at end of file diff --git a/builds/[1.7.10]TerraFirmaPunkTweaks-1.02.jar b/builds/[1.7.10]TerraFirmaPunkTweaks-1.02.jar deleted file mode 100644 index e35c3fbbfb034a06a4d94b4a7f6b39a07cd96d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6751 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 f&hId#`D6W2Q$l>Yef)7 literal 0 HcmV?d00001 diff --git a/builds/[1.7.10]TerraFirmaPunkTweaks-deobf-1.02.jar b/builds/[1.7.10]TerraFirmaPunkTweaks-deobf-1.02.jar deleted file mode 100644 index 21a33f49d5e45342d1e6f57bf4af72556eab834d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6525 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 Hx%~AnO|k4i diff --git a/builds/[1.7.10]TerraFirmaPunkTweaks-deobf-1.03.jar b/builds/[1.7.10]TerraFirmaPunkTweaks-deobf-1.03.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6afb1310e5f39bdf4a6a00c62cc1f119069b6c2 GIT binary patch literal 9803 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 F_do1yP^$m{ diff --git a/builds/[1.7.10]TerraFirmaPunkTweaks-src-1.03.jar b/builds/[1.7.10]TerraFirmaPunkTweaks-src-1.03.jar new file mode 100644 index 0000000000000000000000000000000000000000..ef96d073cd6376c7d6463afbec9cd296c11f3220 GIT binary patch literal 5951 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 ax17IiRGKQ-I6oK&(LY;sP7vfj{{0_{&-Ls8 literal 0 HcmV?d00001 diff --git a/src/main/java/com/onewolfe/tfptweaks/PlayerHandler.java b/src/main/java/com/onewolfe/tfptweaks/PlayerHandler.java index b624c8f..4556b8c 100644 --- a/src/main/java/com/onewolfe/tfptweaks/PlayerHandler.java +++ b/src/main/java/com/onewolfe/tfptweaks/PlayerHandler.java @@ -2,15 +2,32 @@ package com.onewolfe.tfptweaks; import java.util.Random; +import com.bioxx.tfc.TerraFirmaCraft; +import com.bioxx.tfc.Handlers.EntityDamageHandler; +import com.bioxx.tfc.Items.ItemTFCArmor; import com.bioxx.tfc.api.TFCBlocks; +import com.bioxx.tfc.api.Enums.EnumDamageType; +import com.bioxx.tfc.api.Events.EntityArmorCalcEvent; +import com.bioxx.tfc.api.Interfaces.ICausesDamage; +import com.bioxx.tfc.api.Interfaces.IInnateArmor; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingHealEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; @@ -40,12 +57,38 @@ public class PlayerHandler @SubscribeEvent public void onDamaged(LivingHurtEvent event) { - if(event.entity instanceof EntityPlayer && event.source == DamageSource.magic && event.ammount <= 20) + if(event.entity instanceof EntityPlayer) { - event.ammount = event.ammount * 50; + //LogHelper.info(event.source.getDamageType() + " " + event.ammount); - if(event.source == DamageSource.magic && (event.entityLiving.getHealth() - event.ammount) <= 0) - event.setCanceled(true); + if (event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown || + event.source == DamageSource.lava || event.source == DamageSource.inWall || event.source == DamageSource.fallingBlock || + event.source.isExplosion() || event.source == DamageSource.inFire || event.source == DamageSource.starve) + return; + else if(event.source == DamageSource.magic && event.ammount <= 20) + { + event.ammount = event.ammount * 50; + + if(event.source == DamageSource.magic && (event.entityLiving.getHealth() - event.ammount) <= 0) + event.setCanceled(true); + } + else + { + if(!event.source.isUnblockable()) + { + event.ammount = applyArmorCalculations(event.entityLiving, event.source, event.ammount); + } + else if(event.source.isUnblockable() && event.source.getSourceOfDamage() instanceof EntityLivingBase) + { + LogHelper.info("Unblockable"); + float damage = (float)((EntityLivingBase)event.source.getSourceOfDamage()).getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + + if(damage <= 20) + damage *= 50; + + event.ammount = applyArmorCalculations(event.entityLiving, event.source, damage); + } + } } } @@ -55,4 +98,184 @@ public class PlayerHandler if(event.amount > 1 && event.amount < 9) event.amount = event.amount * 50; } + + @SubscribeEvent + public void entityAttack(LivingAttackEvent event) + { + if(event.entityLiving.worldObj.isRemote) + return; + + if(event.entity instanceof EntityPlayerMP) + { + if(event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown || + event.source == DamageSource.lava || event.source == DamageSource.inWall || event.source == DamageSource.fallingBlock || + event.source.isExplosion() || event.source == DamageSource.inFire || event.source == DamageSource.starve) + return; + else if(event.ammount < 20) + { + event.entity.attackEntityFrom(event.source, event.ammount * 50); + } + } + } + + protected int applyArmorCalculations(EntityLivingBase entity, DamageSource source, float originalDamage) + { + ItemStack[] armor = entity.getLastActiveItems(); + int pierceRating = 0; + int slashRating = 0; + int crushRating = 0; + + EntityArmorCalcEvent eventPre = new EntityArmorCalcEvent(entity, originalDamage, EntityArmorCalcEvent.EventType.PRE); + MinecraftForge.EVENT_BUS.post(eventPre); + float damage = eventPre.incomingDamage; + + if (armor != null) + { + //1. Get Random Hit Location + int location = getRandomSlot(entity.getRNG()); + + //2. Get Armor Rating for armor in hit Location + if(armor[location] != null && armor[location].getItem() instanceof ItemTFCArmor) + { + pierceRating = ((ItemTFCArmor)armor[location].getItem()).armorTypeTFC.getPiercingAR(); + slashRating = ((ItemTFCArmor)armor[location].getItem()).armorTypeTFC.getSlashingAR(); + crushRating = ((ItemTFCArmor)armor[location].getItem()).armorTypeTFC.getCrushingAR(); + if(entity instanceof IInnateArmor) + { + pierceRating += ((IInnateArmor)entity).getPierceArmor(); + slashRating += ((IInnateArmor)entity).getSlashArmor(); + crushRating += ((IInnateArmor) entity).getCrushArmor(); + } + + //3. Convert the armor rating to % damage reduction + float pierceMult = getDamageReduction(pierceRating); + float slashMult = getDamageReduction(slashRating); + float crushMult = getDamageReduction(crushRating); + + //4. Reduce incoming damage + damage = processDamageSource(source, damage, pierceMult, + slashMult, crushMult); + + //5. Damage the armor that was hit + armor[location].damageItem((int) processArmorDamage(armor[location], damage), entity); + } + else if (armor[location] == null || armor[location] != null && !(armor[location].getItem() instanceof ItemTFCArmor)) + { + if(entity instanceof IInnateArmor) + { + pierceRating += ((IInnateArmor)entity).getPierceArmor(); + slashRating += ((IInnateArmor)entity).getSlashArmor(); + crushRating += ((IInnateArmor) entity).getCrushArmor(); + } + //1. Convert the armor rating to % damage reduction + float pierceMult = getDamageReduction(pierceRating); + float slashMult = getDamageReduction(slashRating); + float crushMult = getDamageReduction(crushRating); + //4. Reduce incoming damage + damage = processDamageSource(source, damage, pierceMult, slashMult, crushMult); + + //a. If the attack hits an unprotected head, it does 75% more damage + //b. If the attack hits unprotected feet, it applies a slow to the player + if(location == 3) + damage *= 1.75f; + else if(location == 0) + entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 100, 1)); + } + //6. Apply the damage to the player + EntityArmorCalcEvent eventPost = new EntityArmorCalcEvent(entity, damage, EntityArmorCalcEvent.EventType.POST); + MinecraftForge.EVENT_BUS.post(eventPost); + LogHelper.info(entity.getClass() + " " + source.getDamageType() +", "+eventPre.incomingDamage+", "+eventPost.incomingDamage); + float hasHealth = entity.getHealth(); + entity.setHealth(entity.getHealth()-eventPost.incomingDamage); + entity.func_110142_aN().func_94547_a(source, hasHealth, eventPost.incomingDamage); + } + return 0; + } + + private int getRandomSlot(Random rand) + { + int chance = rand.nextInt(100); + if(chance < 10) + return 3;//Helm + else if(chance < 20) + return 0;//Feet + else if(chance < 80) + return 2;//Chest + else + return 1;//Legs + } + + protected float getDamageReduction(int armorRating) + { + if(armorRating == -1000) + armorRating=-999; + return 1000f / (1000f + armorRating); + } + + private float processDamageSource(DamageSource source, float damage, + float pierceMult, float slashMult, float crushMult) + { + EnumDamageType damageType = getDamageType(source); + //4.2 Reduce the damage based upon the incoming Damage Type + if(damageType == EnumDamageType.PIERCING) + { + damage *= pierceMult; + } + else if(damageType == EnumDamageType.SLASHING) + { + damage *= slashMult; + } + else if(damageType == EnumDamageType.CRUSHING) + { + damage *= crushMult; + } + else if(damageType == EnumDamageType.GENERIC) + { + damage *= (crushMult + slashMult + pierceMult) / 3 - 0.25; + } + return Math.max(0, damage); + } + + private EnumDamageType getDamageType(DamageSource source) + { + //4.1 Determine the source of the damage and get the appropriate Damage Type + if(source.getSourceOfDamage() instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer)source.getSourceOfDamage(); + if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ICausesDamage) + { + return ((ICausesDamage)player.getCurrentEquippedItem().getItem()).getDamageType(); + } + } + + if(source.getSourceOfDamage() instanceof EntityLiving) + { + EntityLiving el = (EntityLiving)source.getSourceOfDamage(); + if(el.getHeldItem() != null && el.getHeldItem().getItem() instanceof ICausesDamage) + { + return ((ICausesDamage)el.getHeldItem().getItem()).getDamageType(); + } + } + + if(source.getSourceOfDamage() instanceof ICausesDamage) + { + return ((ICausesDamage)source.getSourceOfDamage()).getDamageType(); + } + + return EnumDamageType.GENERIC; + } + + private float processArmorDamage(ItemStack armor, float baseDamage) + { + if(armor.hasTagCompound()) + { + NBTTagCompound nbt = armor.getTagCompound(); + if(nbt.hasKey("armorReductionBuff")) + { + float reductBuff = nbt.getByte("armorReductionBuff")/100f; + return baseDamage - (baseDamage * reductBuff); + } + } + return baseDamage; + } }