diff --git a/.idea/dictionaries/moritz.xml b/.idea/dictionaries/moritz.xml index d291cb96b..46f54007e 100644 --- a/.idea/dictionaries/moritz.xml +++ b/.idea/dictionaries/moritz.xml @@ -12,6 +12,7 @@ overworld serverbound singleplayer + unluck \ No newline at end of file diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/StatusEffect.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/StatusEffect.java new file mode 100644 index 000000000..e25135c95 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/StatusEffect.java @@ -0,0 +1,77 @@ +package de.bixilon.minosoft.game.datatypes.entities; + +public enum StatusEffect { + SPEED("speed", 1, Impact.POSITIVE), + SLOWNESS("slowness", 2, Impact.NEGATIVE), + HASTE("haste", 3, Impact.POSITIVE), + MINING_FATIGUE("mining_fatigue", 4, Impact.NEGATIVE), + STRENGTH("strength", 5, Impact.POSITIVE), + INSTANT_HEALTH("instant_health", 6, Impact.POSITIVE), + INSTANT_DAMAGE("instant_damage", 7, Impact.POSITIVE), + JUMP_BOOST("jump_boost", 8, Impact.POSITIVE), + NAUSEA("nausea", 9, Impact.NEGATIVE), + REGENERATION("regeneration", 10, Impact.POSITIVE), + RESISTANCE("resistance", 11, Impact.POSITIVE), + FIRE_RESISTANCE("fire_resistance", 12, Impact.POSITIVE), + WATER_BREATHING("water_breathing", 13, Impact.POSITIVE), + INVISIBILITY("invisibility", 14, Impact.POSITIVE), + BLINDNESS("blindness", 15, Impact.NEGATIVE), + NIGHT_VISION("night_vision", 16, Impact.POSITIVE), + HUNGER("hunger", 17, Impact.NEGATIVE), + WEAKNESS("weakness", 18, Impact.NEGATIVE), + POISON("poison", 19, Impact.NEGATIVE), + WITHER("wither", 20, Impact.NEGATIVE), + HEALTH_BOOST("health_boost", 21, Impact.POSITIVE), + ABSORPTION("absorption", 22, Impact.POSITIVE), + SATURATION("saturation", 23, Impact.POSITIVE), + GLOWING("glowing", 24, Impact.NEGATIVE), + LEVITATION("levitation", 25, Impact.NEGATIVE), + LUCK("luck", 26, Impact.POSITIVE), + UNLUCK("unluck", 27, Impact.NEGATIVE), + SLOW_FALLING("slow_falling", 28, Impact.POSITIVE), + CONDUIT_POWER("conduit_power", 29, Impact.POSITIVE), + DOLPHINS_GRACE("dolphins_grace", 30, Impact.POSITIVE), + BAD_OMEN("bad_omen", 31, Impact.NEGATIVE), + HERO_OF_THE_VILLAGE("hero_of_the_village", 32, Impact.POSITIVE); + + final String name; + final int id; + final Impact impact; + + StatusEffect(String name, int id, Impact impact) { + this.name = name; + this.id = id; + this.impact = impact; + } + + public static StatusEffect byId(int id) { + for (StatusEffect s : values()) { + if (s.getId() == id) { + return s; + } + } + return null; + } + + public static StatusEffect byName(String name) { + for (StatusEffect s : values()) { + if (s.getName().equals(name)) { + return s; + } + } + return null; + } + + public String getName() { + return name; + } + + public int getId() { + return id; + } + + public enum Impact { + POSITIVE, + NEGATIVE + } +}