diff --git a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java index 59dc1d7..3357fcf 100644 --- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java +++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java @@ -20,38 +20,38 @@ public class LOTRMaterialTransformer implements IClassTransformer { reader.accept(classNode, 0); - modifyMaterial("ANGMAR", 350, 0.6F, classNode); //Original Durability = 350 | Add 81 | 162 if Upgraded Armory | 1/4 (Unupgraded) - modifyMaterial("URUK", 550, 0.7F, classNode); //Original Durability = 550 | Add 56 | 112 if Upgraded Armory | 1/4 (Unupgraded) - modifyMaterial("BLACK_URUK", 550, 0.7F, classNode); //Original Durability = 550 | Add 56 | 112 if Upgraded Armory | 2/4 (Unupgraded) - modifyMaterial("HALF_TROLL", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 1/4 (Unupgraded) + modifyMaterial("ANGMAR", 350, 0.6F, 2.5F, classNode); //Original Durability = 350 | Add 81 | 162 if Upgraded Armory | 1/4 (Unupgraded) + modifyMaterial("URUK", 550, 0.7F, 3.0F, classNode); //Original Durability = 550 | Add 56 | 112 if Upgraded Armory | 1/4 (Unupgraded) + modifyMaterial("BLACK_URUK", 550, 0.7F, 3.0F, classNode); //Original Durability = 550 | Add 56 | 112 if Upgraded Armory | 2/4 (Unupgraded) + modifyMaterial("HALF_TROLL", 350, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 1/4 (Unupgraded) // Good Humans - modifyMaterial("DALE", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 1/4 (Unupgraded) - modifyMaterial("GONDOR", 450, 0.6F, classNode); //Original Durability = 450 | Add 68 | 137 if Upgraded Armory | 3/4 (Unupgraded) - modifyMaterial("DORWINION_ELF", 500, 0.6F, classNode); //Original Durability = 500 | Add 62 | 125 if Upgraded Armory | 3/4 (Unupgraded) - modifyMaterial("ROHAN", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 - modifyMaterial("TAUREDAIN", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 - modifyMaterial("DORWINION", 400, 0.6F, classNode); //Original Durability = 400 | Add 75 | 150 if Upgraded Armory | 0/4 - modifyMaterial("LOSSARNACH", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory 0/4 - modifyMaterial("LAMEDON", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 + modifyMaterial("DALE", 350, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 1/4 (Unupgraded) + modifyMaterial("GONDOR", 450, 0.6F, 2.5F, classNode); //Original Durability = 450 | Add 68 | 137 if Upgraded Armory | 3/4 (Unupgraded) + modifyMaterial("DORWINION_ELF", 500, 0.6F, 3.0F, classNode); //Original Durability = 500 | Add 62 | 125 if Upgraded Armory | 3/4 (Unupgraded) + modifyMaterial("ROHAN", 350, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 + modifyMaterial("TAUREDAIN", 350, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 + modifyMaterial("DORWINION", 400, 0.6F, 2.5F, classNode); //Original Durability = 400 | Add 75 | 150 if Upgraded Armory | 0/4 + modifyMaterial("LOSSARNACH", 350, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory 0/4 + modifyMaterial("LAMEDON", 350, 0.6F, 2.0F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 // Evil Humans - modifyMaterial("RHUN_GOLD", 450, 0.6F, classNode); //Original Durability = 450 | Add 68 | 137 if Upgraded Armory | 0/4 - modifyMaterial("RHUN", 400, 0.6F, classNode); //Original Durability = 400 | Add 75 | 150 if Upgraded Armory | 0/4 - modifyMaterial("DUNLENDING", 350, 0.6F, classNode); //Original Durability = 250 | Add 93 | 187 if Upgraded Armory | 1/4 (Unupgraded) - modifyMaterial("NEAR_HARAD", 450, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 3/4 (Unupgraded) - modifyMaterial("HARNEDOR", 350, 0.6F, classNode); //Original Durability = 250 | Add 93 | 187 if Upgraded Armory | 0/4 - modifyMaterial("CORSAIR", 350, 0.6F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 - modifyMaterial("GULF_HARAD", 350, 0.6F, classNode); //Original Durability = 350 | Add 81 | 162 if Upgraded Armory | 0/4 - modifyMaterial("UMBAR", 450, 0.6F, classNode); //Original Durability = 450 | Add 68 | 137 if Upgraded Armory | 2/4 (Unupgraded) - modifyMaterial("MOREDAIN", 350, 0.6F, classNode); //Original Durability = 250 | Add 93 | 187 if Upgraded Armory | 0/4 + modifyMaterial("RHUN_GOLD", 450, 0.6F, 2.5F, classNode); //Original Durability = 450 | Add 68 | 137 if Upgraded Armory | 0/4 + modifyMaterial("RHUN", 400, 0.6F, 2.5F, classNode); //Original Durability = 400 | Add 75 | 150 if Upgraded Armory | 0/4 + modifyMaterial("DUNLENDING", 350, 0.6F, 2.0F, classNode); //Original Durability = 250 | Add 93 | 187 if Upgraded Armory | 1/4 (Unupgraded) + modifyMaterial("NEAR_HARAD", 450, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 3/4 (Unupgraded) + modifyMaterial("HARNEDOR", 350, 0.6F, 2.0F, classNode); //Original Durability = 250 | Add 93 | 187 if Upgraded Armory | 0/4 + modifyMaterial("CORSAIR", 350, 0.6F, 2.5F, classNode); //Original Durability = 300 | Add 87 | 175 if Upgraded Armory | 0/4 + modifyMaterial("GULF_HARAD", 350, 0.6F, 2.5F, classNode); //Original Durability = 350 | Add 81 | 162 if Upgraded Armory | 0/4 + modifyMaterial("UMBAR", 450, 0.6F, 2.5F, classNode); //Original Durability = 450 | Add 68 | 137 if Upgraded Armory | 2/4 (Unupgraded) + modifyMaterial("MOREDAIN", 350, 0.6F, 2.0F, classNode); //Original Durability = 250 | Add 93 | 187 if Upgraded Armory | 0/4 //Elves - modifyMaterial("WOOD_ELVEN", 500, 0.6F, classNode); //Original Durability = 500 | Add 62 | 125 if Upgraded Armory | 4/4 (Unupgraded) + modifyMaterial("WOOD_ELVEN", 500, 0.6F, 3.0F, classNode); //Original Durability = 500 | Add 62 | 125 if Upgraded Armory | 4/4 (Unupgraded) // Custom - modifyMaterial("UTUMNO", 1500, 0.7F, classNode); + modifyMaterial("UTUMNO", 1500, 0.7F, 3.5F, classNode); addMaterial("RED_DWARF", classNode); addMaterial("WIZARD", classNode); @@ -96,11 +96,12 @@ public class LOTRMaterialTransformer implements IClassTransformer { classNode.fields.add(field); } - public void modifyMaterial(String fieldName, int durability, float protection, ClassNode classNode) { + public void modifyMaterial(String fieldName, int durability, float protection, float weapon_damage, ClassNode classNode) { MethodNode clinit = null; boolean foundField = false; boolean durabilityModified = false; boolean protectionModified = false; + boolean damageModified = false; // First, find the method for (MethodNode method : classNode.methods) { @@ -152,7 +153,17 @@ public class LOTRMaterialTransformer implements IClassTransformer { } } - if (durabilityModified && protectionModified) { + if (foundField && !damageModified && insn instanceof MethodInsnNode && ((MethodInsnNode) insn).name.equals("setDamage")) { + AbstractInsnNode damage_insn = insn.getPrevious(); + + if (damage_insn instanceof LdcInsnNode) { + ((LdcInsnNode) damage_insn).cst = weapon_damage; + System.out.println("[CinderLoE] Updated damage for " + fieldName + " to " + weapon_damage); + damageModified = true; + } + } + + if (durabilityModified && protectionModified && damageModified) { return; } }