package me.km.effects; import java.util.ArrayList; import me.km.effects.active.*; import me.km.skills.Skill; public enum Effect { // comments indicate, that events aren't in active oder passive effect packages // passive effects ENCHANTER , // me.kt.custom.CustomEnchanting LESS_HUNGER , // me.kt.environment.EnvironmentTick LESS_THIRST , // me.kt.environment.EnvironmentAPI LESS_ENERGY_USE , // me.kt.environment.EnvironmentAPI LESS_COLD , // me.kt.environment.EnvironmentAPI FASTER_MANA , // me.kt.environment.EnvironmentAPI BREED_COW , BREED_PIG , BREED_SHEEP , BREED_RABBIT , BREED_CHICKEN , BREED_HORSE , BREED_MUSHROOMCOW , GRAVEL_SAND_DIGGER , MORE_MINERALS , MORE_CROPS , TREE_PICKER , MORE_SAPLINGS , CAKE_POWER , SNEAKING , SCENT , MUGGING , FAST_DIGGING , XP_COLLECTOR , MORE_DROPS , FASTER_ARROWS , ARROW_SAVER , MORE_AXE_DAMAGE , MORE_HOE_DAMAGE , MORE_PICKAXE_DAMAGE , MORE_SHOVEL_DAMAGE , MORE_SWORD_DAMAGE , MORE_DAGGER_DAMAGE , MORE_HAMMER_DAMAGE , MORE_STICK_DAMAGE , FISHING , POTION_SAVER , BREWING , CAULDRON_FILLING , SMELTING , NO_POISON , LESS_FALL_DAMAGE , LESS_DAMAGE , SMITH , FAST_ENDERPEARL_SHOOT , PEARL_SAVER , NO_ENDERPEARL_DAMAGE , GOLD_WASHER , GOLD_RUSH , USE_WAND , LESS_ITEM_LOSS , NO_ARMOR_DROPPING , // active effects POISON_VOLLEY (new PoisonVolley()), FIRE (new Fire()), SHADOW_STEP (new ShadowStep()), BLINDING_SHOT (new BlindingShot()), KICK (new Kick()), CRIPPLE (new Cripple()), ELEVATION (new Elevation()), SUN (new Sun()), IMMORTALITY (new Immortality()), LUCKY (new Lucky()), POISONED_BLADE (new PoisonedBlade()), BUNNY_HOP (new BunnyHop()), CONSTANT_POWER (new ConstantPower()), ARMOR_PASSER (new ArmorPasser()), IMPACT_PUNCH (new ImpactPunch()), ENDERCHEST (new Enderchest()), NAIL_DOWN (new NailDown()), DOOMED (new Doomed()), PUSH (new Push()), HUNGER_PUNCH (new HungerPunch()), FIRE_SHOT (new FireShot()), PULL (new Pull()), HEAL_RAIN (new HealRain()), UNLUCKY (new Unlucky()), NAIL_TRAP (new NailTrap()), NIGHT (new Night()), AREA_DAMAGE (new AreaDamage()), EARTHQUAKE (new Earthquake()), FIREBALL (new Fireball()), JUMP (new Jump()), PUSH_UP (new PushUp()), THOR (new Thor()), GRAPPLING_HOOK (new GrapplingHook()), QUICK_SHOT (new QuickShot()), CALL_BACK (new CallBack()), SHADOW_HIT (new ShadowHit()), LOCK_PICK (new LockPick()), HEART_SEEKER (new HeartSeeker()), TELEPORT_PLAYER (new TeleportPlayer()), SPRINT (new Sprint()), LIFE_BREAKER (new LifeBreaker()), POWER (new Power()), MUSKET (new Musket()), HEARTS (new Hearts()), ROOTING (new Rooting()), WORKBENCH (new Workbench()), NET_TRAP (new NetTrap()), LEAF_COCOON (new LeafCocoon()), POISON (new Poison()), SMASH (new Smash()), LIFE_STEAL (new LifeSteal()), SHADOW (new Shadow()), SLOWING_SHOT (new SlowingShot()), VINE_TRAP (new VineTrap()), RAPID_FIRE (new RapidFire()), STONE (new Stone()), FIRE_PROTECTION_RAIN (new FireProtectionRain()), BONE_BREAKER (new BoneBreaker()), ARCANE_SHOT (new ArcaneShot()), RAIN (new Rain()), INVISIBILITY (new Invisibility()), DAY (new Day()), FLYING (new Flying()), EXPLOSION (new Explosion()), SMOKE_BOMB (new SmokeBomb()), HARVEST (new Harvest()), FREEZE (new Freeze()), FALL_IMMUNITY (new FallImmunity()), BLOCK_EXPLOSION (new BlockExplosion()), ELVISH_HORN (new ElvishHorn()), GRAVITY (new Gravity()), TELEPORT_BLOCK (new TeleportBlock()), CLUSTER_BOMB (new ClusterBomb()), HARM (new Harm()), SILENCE (new Silence()), POWER_ATTACK (new PowerAttack()), HEAL (new Heal()), JUMP_ATTACK (new JumpAttack()); private static Effect[] effects = Effect.values(); private final ArrayList skills; private final ActiveEffectBase aeb; private final boolean active; Effect(ActiveEffectBase aeb) { skills = new ArrayList<>(); this.active = aeb != null; this.aeb = aeb; } Effect() { this(null); } public void addSkill(Skill s) { skills.add(s); } public ArrayList getSkills() { return skills; } public void clearSkills() { skills.clear(); } public boolean isActive() { return active; } public ActiveEffectBase getEffectInstance() { return aeb; } public static Effect getEffect(int id) { if(id < 0 || id >= effects.length) { return null; } return effects[id]; } }