Effect.java 6.7 KB

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