mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-05 16:49:04 +00:00
79 lines
4.2 KiB
Kotlin
79 lines
4.2 KiB
Kotlin
import CrushableIngredient.CHOCOLATE_BAR
|
|
import CrushableIngredient.DRAGON_SCALE
|
|
import CrushableIngredient.UNICORN_HORN
|
|
import NormalIngredient.*
|
|
import UnfinishedPotion.*
|
|
import org.apollo.game.plugin.api.Definitions
|
|
|
|
const val VIAL_OF_WATER = 227
|
|
|
|
interface Potion {
|
|
val id: Int
|
|
val level: Int
|
|
}
|
|
|
|
enum class UnfinishedPotion(override val id: Int, herb: Herb, override val level: Int) : Potion {
|
|
GUAM(id = 91, herb = Herb.GUAM_LEAF, level = 1),
|
|
MARRENTILL(id = 93, herb = Herb.MARRENTILL, level = 5),
|
|
TARROMIN(id = 95, herb = Herb.TARROMIN, level = 12),
|
|
HARRALANDER(id = 97, herb = Herb.HARRALANDER, level = 22),
|
|
RANARR(id = 99, herb = Herb.RANARR, level = 30),
|
|
TOADFLAX(id = 3002, herb = Herb.TOADFLAX, level = 34),
|
|
IRIT(id = 101, herb = Herb.IRIT_LEAF, level = 45),
|
|
AVANTOE(id = 103, herb = Herb.AVANTOE, level = 50),
|
|
KWUARM(id = 105, herb = Herb.KWUARM, level = 55),
|
|
SNAPDRAGON(id = 3004, herb = Herb.SNAPDRAGON, level = 63),
|
|
CADANTINE(id = 107, herb = Herb.CADANTINE, level = 66),
|
|
LANTADYME(id = 2483, herb = Herb.LANTADYME, level = 69),
|
|
DWARF_WEED(id = 109, herb = Herb.DWARF_WEED, level = 72),
|
|
TORSTOL(id = 111, herb = Herb.TORSTOL, level = 78);
|
|
|
|
val herb = herb.identified
|
|
val herbName: String = Definitions.item(herb.identified)!!.name
|
|
|
|
companion object {
|
|
private val ids = values().map(UnfinishedPotion::id).toHashSet()
|
|
private val potions = values().associateBy(UnfinishedPotion::herb)
|
|
|
|
operator fun get(id: Int) = potions[id]
|
|
internal fun Int.isUnfinished(): Boolean = this in ids
|
|
}
|
|
}
|
|
|
|
enum class FinishedPotion(
|
|
override val id: Int,
|
|
val unfinished: UnfinishedPotion,
|
|
ingredient: Ingredient,
|
|
override val level: Int,
|
|
val experience: Double
|
|
) : Potion {
|
|
ATTACK(id = 121, unfinished = GUAM, ingredient = EYE_NEWT, level = 1, experience = 25.0),
|
|
ANTIPOISON(id = 175, unfinished = MARRENTILL, ingredient = UNICORN_HORN, level = 5, experience = 37.5),
|
|
STRENGTH(id = 115, unfinished = TARROMIN, ingredient = LIMPWURT_ROOT, level = 12, experience = 50.0),
|
|
RESTORE(id = 127, unfinished = HARRALANDER, ingredient = RED_SPIDERS_EGGS, level = 18, experience = 62.5),
|
|
ENERGY(id = 3010, unfinished = HARRALANDER, ingredient = CHOCOLATE_BAR, level = 26, experience = 67.5),
|
|
DEFENCE(id = 133, unfinished = RANARR, ingredient = WHITE_BERRIES, level = 30, experience = 75.0),
|
|
AGILITY(id = 3034, unfinished = TOADFLAX, ingredient = TOADS_LEGS, level = 34, experience = 80.0),
|
|
PRAYER(id = 139, unfinished = RANARR, ingredient = SNAPE_GRASS, level = 38, experience = 87.5),
|
|
SUPER_ATTACK(id = 145, unfinished = IRIT, ingredient = EYE_NEWT, level = 45, experience = 100.0),
|
|
SUPER_ANTIPOISON(id = 181, unfinished = IRIT, ingredient = UNICORN_HORN, level = 48, experience = 106.3),
|
|
FISHING(id = 151, unfinished = AVANTOE, ingredient = SNAPE_GRASS, level = 50, experience = 112.5),
|
|
SUPER_ENERGY(id = 3018, unfinished = AVANTOE, ingredient = MORT_MYRE_FUNGI, level = 52, experience = 117.5),
|
|
SUPER_STRENGTH(id = 157, unfinished = KWUARM, ingredient = LIMPWURT_ROOT, level = 55, experience = 125.0),
|
|
WEAPON_POISON(id = 187, unfinished = KWUARM, ingredient = DRAGON_SCALE, level = 60, experience = 137.5),
|
|
SUPER_RESTORE(id = 3026, unfinished = SNAPDRAGON, ingredient = RED_SPIDERS_EGGS, level = 63, experience = 142.5),
|
|
SUPER_DEFENCE(id = 163, unfinished = CADANTINE, ingredient = WHITE_BERRIES, level = 66, experience = 150.0),
|
|
ANTIFIRE(id = 2428, unfinished = LANTADYME, ingredient = DRAGON_SCALE, level = 69, experience = 157.5),
|
|
RANGING(id = 169, unfinished = DWARF_WEED, ingredient = WINE_ZAMORAK, level = 72, experience = 162.5),
|
|
MAGIC(id = 3042, unfinished = LANTADYME, ingredient = POTATO_CACTUS, level = 76, experience = 172.5),
|
|
ZAMORAK_BREW(id = 189, unfinished = TORSTOL, ingredient = JANGERBERRIES, level = 78, experience = 175.0);
|
|
|
|
val ingredientName = Definitions.item(ingredient.id)!!.name.toLowerCase()
|
|
val ingredient = ingredient.id
|
|
|
|
companion object {
|
|
private val potions = FinishedPotion.values().associateBy { Pair(it.unfinished.id, it.ingredient) }
|
|
operator fun get(key: Pair<Int, Int>) = potions[key]
|
|
}
|
|
}
|