Effect.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. DODGE ,
  62. BLOOD_THIRST ,
  63. // active effects
  64. POISON_VOLLEY (new PoisonVolley()),
  65. STRONG_STUN_PUNCH (new StrongStunPunch()),
  66. IGNORANCE (new Ignorance()),
  67. FIRE (new Fire()),
  68. ARMOR_BOOST (new ArmorBoost()),
  69. SHADOW_STEP (new ShadowStep()),
  70. BLINDING_SHOT (new BlindingShot()),
  71. KICK (new Kick()),
  72. CRIPPLE (new Cripple()),
  73. ELEVATION (new Elevation()),
  74. SUN (new Sun()),
  75. IMMORTALITY (new Immortality()),
  76. LUCKY (new Lucky()),
  77. POISONED_BLADE (new PoisonedBlade()),
  78. BUNNY_HOP (new BunnyHop()),
  79. CONSTANT_POWER (new ConstantPower()),
  80. ARMOR_PASSER (new ArmorPasser()),
  81. IMPACT_PUNCH (new ImpactPunch()),
  82. ENDERCHEST (new Enderchest()),
  83. NAIL_DOWN (new NailDown()),
  84. DOOMED (new Doomed()),
  85. PUSH (new Push()),
  86. HUNGER_PUNCH (new HungerPunch()),
  87. FIRE_SHOT (new FireShot()),
  88. PULL (new Pull()),
  89. HEAL_RAIN (new HealRain()),
  90. UNLUCKY (new Unlucky()),
  91. NAIL_TRAP (new NailTrap()),
  92. NIGHT (new Night()),
  93. AREA_DAMAGE (new AreaDamage()),
  94. SILENCE_PUNCH (new SilencePunch()),
  95. EARTHQUAKE (new Earthquake()),
  96. FIREBALL (new Fireball()),
  97. JUMP (new Jump()),
  98. STUN_PUNCH (new StunPunch()),
  99. PUSH_UP (new PushUp()),
  100. THOR (new Thor()),
  101. GRAPPLING_HOOK (new GrapplingHook()),
  102. QUICK_SHOT (new QuickShot()),
  103. CALL_BACK (new CallBack()),
  104. THORNS (new Thorns()),
  105. SHADOW_HIT (new ShadowHit()),
  106. LOCK_PICK (new LockPick()),
  107. HEART_SEEKER (new HeartSeeker()),
  108. TELEPORT_PLAYER (new TeleportPlayer()),
  109. SPRINT (new Sprint()),
  110. LIFE_BREAKER (new LifeBreaker()),
  111. TIMED_HEAL (new TimedHeal()),
  112. POWER (new Power()),
  113. MUSKET (new Musket()),
  114. HEARTS (new Hearts()),
  115. ROOTING (new Rooting()),
  116. WORKBENCH (new Workbench()),
  117. NET_TRAP (new NetTrap()),
  118. LEAF_COCOON (new LeafCocoon()),
  119. POISON (new Poison()),
  120. SMASH (new Smash()),
  121. LIFE_STEAL (new LifeSteal()),
  122. SHADOW (new Shadow()),
  123. SLOWING_SHOT (new SlowingShot()),
  124. WAR_CALL (new WarCall()),
  125. VINE_TRAP (new VineTrap()),
  126. RAPID_FIRE (new RapidFire()),
  127. STONE (new Stone()),
  128. FIRE_PROTECTION_RAIN (new FireProtectionRain()),
  129. BONE_BREAKER (new BoneBreaker()),
  130. PULL_ATTACK (new PullAttack()),
  131. ARCANE_SHOT (new ArcaneShot()),
  132. RAIN (new Rain()),
  133. INVISIBILITY (new Invisibility()),
  134. REVENGE (new Revenge()),
  135. DAY (new Day()),
  136. FLYING (new Flying()),
  137. EXPLOSION (new Explosion()),
  138. SMOKE_BOMB (new SmokeBomb()),
  139. CHARGE (new Charge()),
  140. HARVEST (new Harvest()),
  141. FREEZE (new Freeze()),
  142. FALL_IMMUNITY (new FallImmunity()),
  143. DISARM (new Disarm()),
  144. BLOCK_EXPLOSION (new BlockExplosion()),
  145. BLADE_STORM (new BladeStorm()),
  146. ELVISH_HORN (new ElvishHorn()),
  147. SHIELD (new Shield()),
  148. GRAVITY (new Gravity()),
  149. TELEPORT_BLOCK (new TeleportBlock()),
  150. CLUSTER_BOMB (new ClusterBomb()),
  151. HARM (new Harm()),
  152. SILENCE (new Silence()),
  153. POWER_ATTACK (new PowerAttack()),
  154. HEAL (new Heal()),
  155. JUMP_ATTACK (new JumpAttack()),
  156. DRAGON_SKIN (new DragonSkin());
  157. private static Effect[] effects = Effect.values();
  158. private final ArrayList<Skill> skills;
  159. private final ActiveEffectBase aeb;
  160. private final boolean active;
  161. Effect(ActiveEffectBase aeb)
  162. {
  163. skills = new ArrayList<>();
  164. this.active = aeb != null;
  165. this.aeb = aeb;
  166. }
  167. Effect()
  168. {
  169. this(null);
  170. }
  171. public void addSkill(Skill s)
  172. {
  173. skills.add(s);
  174. }
  175. public ArrayList<Skill> getSkills()
  176. {
  177. return skills;
  178. }
  179. public void clearSkills()
  180. {
  181. skills.clear();
  182. }
  183. public boolean isActive()
  184. {
  185. return active;
  186. }
  187. public ActiveEffectBase getEffectInstance()
  188. {
  189. return aeb;
  190. }
  191. public static Effect getEffect(int id)
  192. {
  193. if(id < 0 || id >= effects.length)
  194. {
  195. return null;
  196. }
  197. return effects[id];
  198. }
  199. }