Effect.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package me.km.effects;
  2. import java.util.ArrayList;
  3. import me.km.effects.active.*;
  4. import me.km.skills.Skill;
  5. public enum Effect
  6. {
  7. // comments indicate, that events aren't in active oder passive effect packages
  8. // passive effects
  9. ENCHANTER , // me.kt.custom.CustomEnchanting
  10. LESS_HUNGER , // me.kt.environment.EnvironmentTick
  11. LESS_THIRST , // me.kt.environment.EnvironmentAPI
  12. LESS_ENERGY_USE , // me.kt.environment.EnvironmentAPI
  13. LESS_COLD , // me.kt.environment.EnvironmentAPI
  14. FASTER_MANA , // me.kt.environment.EnvironmentAPI
  15. BREED_COW ,
  16. BREED_PIG ,
  17. BREED_SHEEP ,
  18. BREED_RABBIT ,
  19. BREED_CHICKEN ,
  20. BREED_HORSE ,
  21. BREED_MUSHROOMCOW ,
  22. GRAVEL_SAND_DIGGER ,
  23. MORE_MINERALS ,
  24. MORE_CROPS ,
  25. TREE_PICKER ,
  26. MORE_SAPLINGS ,
  27. CAKE_POWER ,
  28. SNEAKING ,
  29. SCENT ,
  30. MUGGING ,
  31. FAST_DIGGING ,
  32. XP_COLLECTOR ,
  33. MORE_DROPS ,
  34. FASTER_ARROWS ,
  35. ARROW_SAVER ,
  36. MORE_AXE_DAMAGE ,
  37. MORE_HOE_DAMAGE ,
  38. MORE_PICKAXE_DAMAGE ,
  39. MORE_SHOVEL_DAMAGE ,
  40. MORE_SWORD_DAMAGE ,
  41. MORE_DAGGER_DAMAGE ,
  42. MORE_HAMMER_DAMAGE ,
  43. MORE_STICK_DAMAGE ,
  44. FISHING ,
  45. POTION_SAVER ,
  46. BREWING ,
  47. CAULDRON_FILLING ,
  48. SMELTING ,
  49. NO_POISON ,
  50. LESS_FALL_DAMAGE ,
  51. LESS_DAMAGE ,
  52. SMITH ,
  53. FAST_ENDERPEARL_SHOOT ,
  54. PEARL_SAVER ,
  55. NO_ENDERPEARL_DAMAGE ,
  56. GOLD_WASHER ,
  57. GOLD_RUSH ,
  58. USE_WAND ,
  59. LESS_ITEM_LOSS ,
  60. NO_ARMOR_DROPPING ,
  61. // active effects
  62. POISON_VOLLEY (PoisonVolley.class),
  63. FIRE (Fire.class),
  64. SHADOW_STEP (ShadowStep.class),
  65. BLINDING_SHOT (BlindingShot.class),
  66. KICK (Kick.class),
  67. CRIPPLE (Cripple.class),
  68. ELEVATION (Elevation.class),
  69. SUN (Sun.class),
  70. IMMORTALITY (Immortality.class),
  71. LUCKY (Lucky.class),
  72. POISONED_BLADE (PoisonedBlade.class),
  73. BUNNY_HOP (BunnyHop.class),
  74. CONSTANT_POWER (ConstantPower.class),
  75. ARMOR_PASSER (ArmorPasser.class),
  76. IMPACT_PUNCH (ImpactPunch.class),
  77. ENDERCHEST (Enderchest.class),
  78. NAIL_DOWN (NailDown.class),
  79. DOOMED (Doomed.class),
  80. PUSH (Push.class),
  81. PUSH_UP (PushUp.class),
  82. HUNGER_PUNCH (HungerPunch.class),
  83. FIRE_SHOT (FireShot.class),
  84. PULL (Pull.class),
  85. HEAL_RAIN (HealRain.class),
  86. UNLUCKY (Unlucky.class),
  87. NAIL_TRAP (NailTrap.class),
  88. NIGHT (Night.class),
  89. AREA_DAMAGE (AreaDamage.class),
  90. EARTHQUAKE (Earthquake.class),
  91. FIREBALL (Fireball.class),
  92. JUMP (Jump.class),
  93. THOR (Thor.class),
  94. GRAPPLING_HOOK (GrapplingHook.class),
  95. QUICK_SHOT (QuickShot.class),
  96. CALL_BACK (CallBack.class),
  97. SHADOW_HIT (ShadowHit.class),
  98. LOCK_PICK (LockPick.class),
  99. HEART_SEEKER (HeartSeeker.class),
  100. TELEPORT_PLAYER (TeleportPlayer.class),
  101. SPRINT (Sprint.class),
  102. LIFE_BREAKER (LifeBreaker.class),
  103. POWER (Power.class),
  104. MUSKET (Musket.class),
  105. HEARTS (Hearts.class),
  106. ROOTING (Rooting.class),
  107. WORKBENCH (Workbench.class),
  108. NET_TRAP (NetTrap.class),
  109. LEAF_COCOON (LeafCocoon.class),
  110. POISON (Poison.class),
  111. SMASH (Smash.class),
  112. LIFE_STEAL (LifeSteal.class),
  113. SHADOW (Shadow.class),
  114. SLOWING_SHOT (SlowingShot.class),
  115. VINE_TRAP (VineTrap.class),
  116. RAPID_FIRE (RapidFire.class),
  117. STONE (Stone.class),
  118. FIRE_PROTECTION_RAIN (FireProtectionRain.class),
  119. BONE_BREAKER (BoneBreaker.class),
  120. ARCANE_SHOT (ArcaneShot.class),
  121. RAIN (Rain.class),
  122. INVISIBILITY (Invisibility.class),
  123. DAY (Day.class),
  124. FLYING (Flying.class),
  125. EXPLOSION (Explosion.class),
  126. SMOKE_BOMB (SmokeBomb.class),
  127. HARVEST (Harvest.class),
  128. FREEZE (Freeze.class),
  129. FALL_IMMUNITY (FallImmunity.class),
  130. ELVISH_HORN (ElvishHorn.class),
  131. GRAVITY (Gravity.class),
  132. TELEPORT_BLOCK (TeleportBlock.class),
  133. CLUSTER_BOMB (ClusterBomb.class),
  134. HARM (Harm.class),
  135. SILENCE (Silence.class),
  136. POWER_ATTACK (PowerAttack.class),
  137. HEAL (Heal.class),
  138. JUMP_ATTACK (JumpAttack.class);
  139. private final ArrayList<Skill> skills;
  140. private final Class<? extends ActiveEffectBase> c;
  141. private final boolean active;
  142. Effect(Class<? extends ActiveEffectBase> c)
  143. {
  144. skills = new ArrayList<>();
  145. this.active = c != null;
  146. this.c = c;
  147. }
  148. Effect()
  149. {
  150. this(null);
  151. }
  152. public void addSkill(Skill s)
  153. {
  154. skills.add(s);
  155. }
  156. public ArrayList<Skill> getSkills()
  157. {
  158. return skills;
  159. }
  160. public void clearSkills()
  161. {
  162. skills.clear();
  163. }
  164. public boolean isActive()
  165. {
  166. return active;
  167. }
  168. public int getManaCost(int power)
  169. {
  170. if(c != null)
  171. {
  172. try
  173. {
  174. return c.newInstance().getManaCost(power);
  175. }
  176. catch(InstantiationException | IllegalAccessException ex)
  177. {
  178. return 0;
  179. }
  180. }
  181. return 0;
  182. }
  183. public Class<? extends ActiveEffectBase> getEffectBase()
  184. {
  185. return c;
  186. }
  187. public String getEffectString()
  188. {
  189. if(c == null)
  190. {
  191. return null;
  192. }
  193. return c.getSimpleName();
  194. }
  195. }