pjc21

PowerArmor.zs

Feb 22nd, 2021
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #priority 500
  2.  
  3. import crafttweaker.entity.IEntityLivingBase;
  4. import crafttweaker.player.IPlayer;
  5. import crafttweaker.item.IItemStack;
  6. import crafttweaker.data.IData;
  7. import crafttweaker.entity.AttributeInstance;
  8. import crafttweaker.entity.Attribute;
  9. import crafttweaker.entity.AttributeModifier;
  10.  
  11. function playerModifier(player as IPlayer) {
  12.  
  13. val playerEntity as IEntityLivingBase = player;
  14. val playerAttribute as AttributeInstance = playerEntity.getAttribute("generic.attackDamage");
  15. val damageBoostUUID as string = "f264a9eb-a8f8-4cfb-bea5-0dcc296a29dd";
  16. val damageBoostModifier as AttributeModifier = AttributeModifier.createModifier("effect.damageBoost 3", 12.0, 0, damageBoostUUID);
  17.  
  18. if (wearingFullSetAndCharged(player) == true) {
  19. if !(playerAttribute.hasModifier(damageBoostModifier) == true) {
  20. playerAttribute.applyModifier(damageBoostModifier);
  21. }
  22. } else {
  23. if playerAttribute.hasModifier(damageBoostModifier) == true {
  24. playerAttribute.removeModifier(damageBoostUUID);
  25. }
  26. }
  27. }
  28.  
  29.  
  30. function wearingFullSetAndCharged(player as IPlayer) as bool {
  31.  
  32. if ((!(isNull(player.getInventoryStack(39)))) && (!(isNull(player.getInventoryStack(38)))) && (!(isNull(player.getInventoryStack(37)))) && (!(isNull(player.getInventoryStack(36))))) {
  33.  
  34. val armorArray = {
  35. 1 : player.getInventoryStack(39),
  36. 2 : player.getInventoryStack(38),
  37. 3 : player.getInventoryStack(37),
  38. 4 : player.getInventoryStack(36)
  39. } as IItemStack[int];
  40.  
  41. val tagArray = {
  42. 1 : {head : armorArray[1].tag},
  43. 2 : {torso : armorArray[2].tag},
  44. 3 : {legs : armorArray[3].tag},
  45. 4 : {feet : armorArray[4].tag}
  46. } as IData[int];
  47.  
  48. if (((armorArray[1].definition.id).matches("powersuits:powerarmor_head"))
  49. && ((armorArray[2].definition.id).matches("powersuits:powerarmor_torso"))
  50. && ((armorArray[3].definition.id).matches("powersuits:powerarmor_legs"))
  51. && ((armorArray[4].definition.id).matches("powersuits:powerarmor_feet"))) {
  52.  
  53. if ((!(isNull(tagArray[1].head.MMModItem.currEnergy)))
  54. && (!(isNull(tagArray[2].torso.MMModItem.currEnergy)))
  55. && (!(isNull(tagArray[3].legs.MMModItem.currEnergy)))
  56. && (!(isNull(tagArray[4].feet.MMModItem.currEnergy)))) {
  57.  
  58. return true;
  59. } else {
  60. return false;
  61. }
  62. }
  63.  
  64. if (((armorArray[1].definition.id).matches("redstonearsenal:armor.helmet_flux"))
  65. && ((armorArray[2].definition.id).matches("redstonearsenal:armor.plate_flux"))
  66. && ((armorArray[3].definition.id).matches("redstonearsenal:armor.legs_flux"))
  67. && ((armorArray[4].definition.id).matches("redstonearsenal:armor.boots_flux"))) {
  68.  
  69. if (((tagArray[1].head.Energy) as int > 0)
  70. && ((tagArray[2].torso.Energy) as int > 0)
  71. && ((tagArray[3].legs.Energy) as int > 0)
  72. && ((tagArray[4].feet.Energy) as int > 0)) {
  73.  
  74. return true;
  75. } else {
  76. return false;
  77. }
  78. }
  79. }
  80. return false;
  81. }
  82.  
  83. events.onPlayerTick(function (event as PlayerTickEvent) {
  84.  
  85. if (event.phase == "START") {
  86. playerModifier(event.player);
  87. }
  88. });
Advertisement
Add Comment
Please, Sign In to add comment