keaft

Untitled

May 11th, 2023
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #loader contenttweaker
  2. import mods.contenttweaker.enchantments.EnchantmentBuilder;
  3. import crafttweaker.world.IWorld;
  4. import crafttweaker.world.IBlockPos;
  5. import crafttweaker.world.IExplosion;
  6. import crafttweaker.potions.IPotionEffect;
  7. import crafttweaker.potions.IPotion;
  8. import crafttweaker.entity.IEntityLivingBase;
  9. import crafttweaker.entity.IEntityDefinition;
  10. import crafttweaker.entity.IEntity;
  11.  
  12. val corruptEnch = mods.contenttweaker.enchantments.EnchantmentBuilder.create("corrupt");
  13. corruptEnch.setTypeAll();
  14. corruptEnch.setRarityVeryRare();
  15. corruptEnch.curse = true;
  16. corruptEnch.allowedOnBooks = true;
  17. corruptEnch.register();
  18.  
  19. val weakEnch = mods.contenttweaker.enchantments.EnchantmentBuilder.create("weakening");
  20. weakEnch.setTypeWeapon();
  21. weakEnch.setRarityRare();
  22. weakEnch.minLevel = 1;
  23. weakEnch.maxLevel = 3;
  24. weakEnch.allowedOnBooks = true;
  25. weakEnch.onEntityDamaged = function(ench, user, target, level){
  26. var dur = level * 1.5 * 20;
  27. val victim as crafttweaker.entity.IEntityLivingBase = target;
  28. victim.addPotionEffect(<potion:minecraft:slowness>.makePotionEffect(dur, level));
  29. victim.addPotionEffect(<potion:minecraft:weakness>.makePotionEffect(dur, level));
  30. };
  31. weakEnch.register();
  32.  
  33. val unstableEnch = mods.contenttweaker.enchantments.EnchantmentBuilder.create("unstable");
  34. unstableEnch.setTypeAll();
  35. unstableEnch.setRarityVeryRare();
  36. unstableEnch.curse = true;
  37. unstableEnch.allowedOnBooks = true;
  38. unstableEnch.applicableSlots = [mainHand];
  39. unstableEnch.calcModifierDamage = function(ench, level, damageSource){
  40. return 100 as int;
  41. };
  42. unstableEnch.onEntityDamaged = function(ench, user, target, level){
  43. if(user.world.isRemote || user.hand == "OFF_HAND"){
  44. return;
  45. }
  46. val userRanDouble = user.world.random.nextDouble(-0.2, 0.2);
  47. val targetRanDouble = target.world.random.nextDouble(-0.5, 0.5);
  48. val userPos as IBlockPos = user.position3f as IBlockPos;
  49. val world = user.world;
  50. val levelD = level as double;
  51. val boomPower as float = level as float * 0.2f as float;
  52. val boomChance as int = target.world.random.nextInt(0, 3 - level);
  53.  
  54. if (boomChance < 1){
  55. world.performExplosion(user as IEntity, target.x, target.y, target.z, boomPower, true, true);
  56. } else {
  57. world.addFlux(userPos, 5.0f * levelD as float);
  58. }
  59. };
  60. unstableEnch.register();
Advertisement
Add Comment
Please, Sign In to add comment