114 lines
2.3 KiB
Kotlin
114 lines
2.3 KiB
Kotlin
package ru.dbotthepony.kstarbound.defs.projectile
|
|
|
|
import com.google.gson.stream.JsonWriter
|
|
import ru.dbotthepony.kstarbound.io.json.IStringSerializable
|
|
|
|
enum class ProjectilePhysics(private vararg val aliases: String) : IStringSerializable {
|
|
GAS,
|
|
LASER,
|
|
BOOMERANG,
|
|
DEFAULT,
|
|
BULLET,
|
|
STICKY_BULLET("STICKYBULLET"),
|
|
ARROW,
|
|
UNDERWATER_ARROW("UNDERWATERARROW"),
|
|
UNDERWATER_ARROW_NO_STICKY("UNDERWATERARROWNOSTICKY"),
|
|
ROCKET,
|
|
GRAVITY_BULLET("GRAVITYBULLET"),
|
|
FLAME,
|
|
ARROW_NO_STICKY("ARROWNOSTICKY"),
|
|
|
|
SQUIRT,
|
|
FLYBUG,
|
|
ROLLER,
|
|
BOWLDER,
|
|
SMOOTH_ROLLING_BOULDER("SMOOTHROLLINGBOULDER"),
|
|
ROLLING_BOULDER("ROLLINGBOULDER"),
|
|
|
|
DRAGON_BONE("DRAGONBONE"),
|
|
DRAGON_HEAD("DRAGONHEAD"),
|
|
|
|
STICKY,
|
|
BOWLING_BALL("BOWLINGBALL"),
|
|
PAPER_PLANE("PAPERPLANE"),
|
|
BOULDER,
|
|
|
|
STATUS_POD("STATUSPOD"),
|
|
|
|
// ???
|
|
ILLUSION,
|
|
ILLUSION_ROCKET("ROCKETILLUSION"),
|
|
|
|
// ?????????????
|
|
FRIENDLY_BUBBLE("FRIENDLYBUBBLE"),
|
|
|
|
STICKY_HEAVY_GAS("STICKYHEAVYGAS"),
|
|
HEAVY_GAS("HEAVYGAS"),
|
|
BOUNCY_GAS("BOUNCYGAS"),
|
|
FIREBALL,
|
|
SLIDER,
|
|
GOOP,
|
|
HOVER,
|
|
|
|
BONE_THORN("BONETHORN"),
|
|
|
|
BIG_BUBBLE("BIGBUBBLE"),
|
|
FIREWORK_FALL("FIREWORKFALL"),
|
|
LIGHTNING_BOLT("LIGHTNINGBOLT"),
|
|
SIMPLE_ARC("SIMPLEARC"),
|
|
LOW_GRAVITY_ARC("LOWGRAVARC"),
|
|
|
|
SPIKE_BALL("SPIKEBALL"),
|
|
SHRAPNEL,
|
|
|
|
// что
|
|
WEATHER,
|
|
|
|
FIRE_SPREAD("FIRESPREAD"),
|
|
|
|
GRAPPLE_HOOK("GRAPPLEHOOK"),
|
|
BALLISTIC_GRAPPLE_HOOK("BALLISTICGRAPPLEHOOK"),
|
|
|
|
FLOATY_STICKY_BOMB("FLOATYSTICKYBOMB"),
|
|
STICKY_BOMB("STICKYBOMB"),
|
|
BOUNCY,
|
|
GRAVITY_BOMB("GRAVITYBOMB"),
|
|
DISC,
|
|
HEAVY_BOUNCER("HEAVYBOUNCER"),
|
|
|
|
WALL_STICKY("WALLSTICKY"),
|
|
FISHING_LURE_SINKING("FISHINGLURESINKING"),
|
|
FISHING_LURE("FISHINGLURE"),
|
|
RAIN("RAIN"),
|
|
|
|
PET_BALL("PETBALL"),
|
|
BOUNCY_BALL("BOUNCYBALL"),
|
|
BEACH_BALL("BEACHBALL"),
|
|
NOVELTY_BANANA("NOVELTYBANANA"),
|
|
|
|
SPACE_MINE("SPACEMINE"),
|
|
MECH_BATTERY("MECHBATTERY"),
|
|
|
|
GRENADE,
|
|
GRENADE_LARGE("LARGEGRENADE"),
|
|
GRENADE_Z_BOMB("GRENADEZBOMB"),
|
|
GRENADE_STICKY("STICKYGRENADE"),
|
|
GRENADE_SUPER_GRAVITY("SUPERHIGHGRAVGRENADE"),
|
|
GRENADE_HIGH_GRAVITY_V("VHIGHGRAVGRENADE"),
|
|
GRENADE_HIGH_GRAVITY("HIGHGRAVGRENADE"),
|
|
GRENADE_LOW_BOUNCE("GRENADELOWBOUNCE"),
|
|
GRENADE_NO_BOUNCE("GRENADENOBOUNCE");
|
|
|
|
override fun match(name: String): Boolean {
|
|
for (alias in aliases)
|
|
if (name == alias)
|
|
return true
|
|
|
|
return name == this.name
|
|
}
|
|
|
|
override fun write(out: JsonWriter) {
|
|
out.value(this.name)
|
|
}
|
|
}
|