veloren/assets/common/abilities/ability_set_manifest.ron

545 lines
22 KiB
Rust

// Maps a tool kind to a set of abilities
// A set of abilities is a primary, a secondary, and a vec of all extra abilities
({
Tool(Sword): (
primary: "common.abilities.sword.balanced_combo",
secondary: "common.abilities.sword.balanced_thrust",
abilities: [
Simple(Some(Sword(OffensiveCombo)), "common.abilities.sword.offensive_combo"),
Simple(Some(Sword(CripplingCombo)), "common.abilities.sword.crippling_combo"),
Simple(Some(Sword(CleavingCombo)), "common.abilities.sword.cleaving_combo"),
Simple(Some(Sword(DefensiveCombo)), "common.abilities.sword.defensive_combo"),
Simple(Some(Sword(ParryingCombo)), "common.abilities.sword.parrying_combo"),
Simple(Some(Sword(HeavyCombo)), "common.abilities.sword.heavy_combo"),
Simple(Some(Sword(MobilityCombo)), "common.abilities.sword.mobility_combo"),
Simple(Some(Sword(ReachingCombo)), "common.abilities.sword.reaching_combo"),
// Damagey ones
Contextualized({
Sword(Balanced): (Some(Sword(BalancedFinisher)), "common.abilities.sword.balanced_finisher"),
Sword(Offensive): (Some(Sword(OffensiveFinisher)), "common.abilities.sword.offensive_finisher"),
Sword(Crippling): (Some(Sword(CripplingFinisher)), "common.abilities.sword.crippling_finisher"),
Sword(Cleaving): (Some(Sword(CleavingFinisher)), "common.abilities.sword.cleaving_finisher"),
Sword(Parrying): (Some(Sword(ParryingCounter)), "common.abilities.sword.parrying_counter"),
Sword(Heavy): (Some(Sword(HeavyFinisher)), "common.abilities.sword.heavy_finisher"),
Sword(Reaching): (Some(Sword(ReachingFlurry)), "common.abilities.sword.reaching_flurry"),
}),
// Movementy ones
Contextualized({
Sword(Offensive): (Some(Sword(OffensiveAdvance)), "common.abilities.sword.offensive_advance"),
Sword(Crippling): (Some(Sword(CripplingStrike)), "common.abilities.sword.crippling_strike"),
Sword(Cleaving): (Some(Sword(CleavingDive)), "common.abilities.sword.cleaving_dive"),
Sword(Defensive): (Some(Sword(DefensiveRetreat)), "common.abilities.sword.defensive_retreat"),
Sword(Parrying): (Some(Sword(ParryingRiposte)), "common.abilities.sword.parrying_riposte"),
Sword(Heavy): (Some(Sword(HeavyFortitude)), "common.abilities.sword.heavy_fortitude"),
Sword(Mobility): (Some(Sword(MobilityFeint)), "common.abilities.sword.mobility_feint"),
Sword(Reaching): (Some(Sword(ReachingCharge)), "common.abilities.sword.reaching_charge"),
}),
// Utilityy ones
Contextualized({
Sword(Crippling): (Some(Sword(CripplingGouge)), "common.abilities.sword.crippling_gouge"),
Sword(Cleaving): (Some(Sword(CleavingSpin)), "common.abilities.sword.cleaving_spin"),
Sword(Defensive): (Some(Sword(DefensiveBulwark)), "common.abilities.sword.defensive_bulwark"),
Sword(Parrying): (Some(Sword(ParryingParry)), "common.abilities.sword.parrying_parry"),
Sword(Heavy): (Some(Sword(HeavyPommelStrike)), "common.abilities.sword.heavy_pommelstrike"),
Sword(Mobility): (Some(Sword(MobilityAgility)), "common.abilities.sword.mobility_agility"),
Sword(Reaching): (Some(Sword(ReachingSkewer)), "common.abilities.sword.reaching_skewer"),
}),
],
),
Tool(Axe): (
primary: "common.abilities.axe.doublestrike",
secondary: "common.abilities.axe.spin",
abilities: [
Simple(Some(Axe(UnlockLeap)), "common.abilities.axe.leap"),
],
),
Tool(Hammer): (
primary: "common.abilities.hammer.singlestrike",
secondary: "common.abilities.hammer.charged",
abilities: [
Simple(Some(Hammer(UnlockLeap)), "common.abilities.hammer.leap"),
],
),
Tool(Bow): (
primary: "common.abilities.bow.charged",
secondary: "common.abilities.bow.repeater",
abilities: [
Simple(Some(Bow(UnlockShotgun)), "common.abilities.bow.shotgun"),
],
),
Tool(Staff): (
primary: "common.abilities.staff.firebomb",
secondary: "common.abilities.staff.flamethrower",
abilities: [
Simple(Some(Staff(UnlockShockwave)), "common.abilities.staff.fireshockwave"),
],
),
Tool(Sceptre): (
primary: "common.abilities.sceptre.lifestealbeam",
secondary: "common.abilities.sceptre.healingaura",
abilities: [
Simple(Some(Sceptre(UnlockAura)), "common.abilities.sceptre.wardingaura"),
],
),
Custom("Husk"): (
primary: "common.abilities.custom.husk.singlestrike",
secondary: "common.abilities.custom.husk.triplestrike",
abilities: [],
),
Custom("Husk Brute"): (
primary: "common.abilities.custom.husk_brute.singlestrike",
secondary: "common.abilities.custom.husk_brute.chargedmelee",
abilities: [],
),
Tool(Spear): (
primary: "common.abilities.spear.doublestrike",
secondary: "common.abilities.spear.dash",
abilities: [],
),
Custom("Hammer Simple"): (
primary: "common.abilities.hammersimple.doublestrike",
secondary: "common.abilities.hammersimple.doublestrike",
abilities: [],
),
// TODO: Later investigate if we want to make this back to a simple axe when more things need a simpler axe ability set
Custom("Gnarling Axe"): (
primary: "common.abilities.gnarling.axe.chop",
secondary: "common.abilities.gnarling.axe.chop",
abilities: [],
),
Custom("Gnarling Dagger"): (
primary: "common.abilities.gnarling.dagger.stab",
secondary: "common.abilities.gnarling.dagger.stab",
abilities: [],
),
Custom("Gnarling Blowgun"): (
primary: "common.abilities.gnarling.blowgun.dart",
secondary: "common.abilities.gnarling.blowgun.dart",
abilities: [],
),
Custom("Gnarling Chieftain"): (
primary: "common.abilities.gnarling.chieftain.flamestrike",
secondary: "common.abilities.gnarling.chieftain.firebarrage",
abilities: [
Simple(None, "common.abilities.gnarling.chieftain.fireshockwave"),
Simple(None, "common.abilities.gnarling.chieftain.redtotem"),
Simple(None, "common.abilities.gnarling.chieftain.greentotem"),
Simple(None, "common.abilities.gnarling.chieftain.whitetotem"),
],
),
Custom("Gnarling Totem Red"): (
primary: "common.abilities.gnarling.totem.red",
secondary: "common.abilities.gnarling.totem.red",
abilities: [],
),
Custom("Gnarling Totem Green"): (
primary: "common.abilities.gnarling.totem.green",
secondary: "common.abilities.gnarling.totem.green",
abilities: [],
),
Custom("Gnarling Totem White"): (
primary: "common.abilities.gnarling.totem.white",
secondary: "common.abilities.gnarling.totem.white",
abilities: [],
),
Custom("Deadwood"): (
primary: "common.abilities.custom.deadwood.lifestealbeam",
secondary: "common.abilities.custom.deadwood.dash",
abilities: [],
),
Custom("Mandragora"): (
primary: "common.abilities.custom.mandragora.basic",
secondary: "common.abilities.custom.mandragora.scream",
abilities: [],
),
Custom("Wood Golem"): (
primary: "common.abilities.custom.woodgolem.strike",
secondary: "common.abilities.custom.woodgolem.spin",
abilities: [
Simple(None, "common.abilities.custom.woodgolem.shockwave")
],
),
Custom("Simple Flying Melee"): (
primary: "common.abilities.custom.simpleflyingmelee.singlestrike",
secondary: "common.abilities.custom.simpleflyingmelee.singlestrike",
abilities: [],
),
Custom("Sword Simple"): (
primary: "common.abilities.swordsimple.doublestrike",
secondary: "common.abilities.swordsimple.dash",
abilities: [],
),
Custom("Staff Simple"): (
primary: "common.abilities.staffsimple.firebomb",
secondary: "common.abilities.staffsimple.flamethrower",
abilities: [],
),
Custom("Bow Simple"): (
primary: "common.abilities.bowsimple.basic",
secondary: "common.abilities.bowsimple.basic",
abilities: [],
),
Custom("Axe Simple"): (
primary: "common.abilities.axesimple.doublestrike",
secondary: "common.abilities.axesimple.doublestrike",
abilities: [],
),
Custom("Dagger Simple"): (
primary: "common.abilities.daggersimple.singlestrike",
secondary: "common.abilities.daggersimple.singlestrike",
abilities: [],
),
Tool(Dagger): (
primary: "common.abilities.dagger.tempbasic",
secondary: "common.abilities.dagger.tempbasic",
abilities: [],
),
Tool(Shield): (
primary: "common.abilities.shield.tempbasic",
secondary: "common.abilities.shield.block",
abilities: [],
),
Custom("Stone Golem"): (
primary: "common.abilities.custom.stonegolemfist.singlestrike",
secondary: "common.abilities.custom.stonegolemfist.shockwave",
abilities: [
Simple(None, "common.abilities.custom.stonegolemfist.spin"),
],
),
Custom("Beast Claws"): (
primary: "common.abilities.custom.beastclaws.basic",
secondary: "common.abilities.custom.beastclaws.basic",
abilities: [],
),
Custom("Wendigo Magic"): (
primary: "common.abilities.custom.wendigomagic.frostbomb",
secondary: "common.abilities.custom.wendigomagic.singlestrike",
abilities: [],
),
Custom("Tidal Warrior"): (
primary: "common.abilities.custom.tidalwarrior.pincer",
secondary: "common.abilities.custom.tidalwarrior.scuttle",
abilities: [
Simple(None, "common.abilities.custom.tidalwarrior.bubbles"),
Simple(None, "common.abilities.custom.tidalwarrior.totem"),
],
),
Custom("Tidal Totem"): (
primary: "common.abilities.custom.tidalwarrior.totem_wave",
secondary: "common.abilities.custom.tidalwarrior.totem_wave",
abilities: [],
),
// Note: Consider making a ranking system once we get more entities
// TODO: Make all purple item droppers have purple CR and a unique skillset
Custom("Quad Med Quick"): (
primary: "common.abilities.custom.quadmedquick.triplestrike",
secondary: "common.abilities.custom.quadmedquick.dash",
abilities: [],
),
Custom("Quad Med Jump"): (
primary: "common.abilities.custom.quadmedjump.leap",
secondary: "common.abilities.custom.quadmedjump.doublestrike",
abilities: [
Simple(None, "common.abilities.custom.quadmedjump.quickleap"),
],
),
Custom("Quad Med Charge"): (
primary: "common.abilities.custom.quadmedcharge.doublestrike",
secondary: "common.abilities.custom.quadmedcharge.dash",
abilities: [],
),
Custom("Quad Med Hoof"): (
primary: "common.abilities.custom.quadmedhoof.basic",
secondary: "common.abilities.custom.quadmedhoof.basic",
abilities: [],
),
Custom("Quad Med Basic"): (
primary: "common.abilities.custom.quadmedbasic.singlestrike",
secondary: "common.abilities.custom.quadmedbasic.triplestrike",
abilities: [],
),
Custom("Basilisk"): (
primary: "common.abilities.custom.basilisk.petrify",
secondary: "common.abilities.custom.basilisk.triplestrike",
abilities: [
Simple(None, "common.abilities.custom.basilisk.dash"),
],
),
Custom("Asp"): (
primary: "common.abilities.custom.asp.singlestrike",
secondary: "common.abilities.custom.asp.firebomb",
abilities: [],
),
Custom("Maneater"): (
primary: "common.abilities.custom.maneater.singlestrike",
secondary: "common.abilities.custom.maneater.poisonball",
abilities: [],
),
Custom("Quad Low Breathe"): (
primary: "common.abilities.custom.quadlowbreathe.flamethrower",
secondary: "common.abilities.custom.quadlowbreathe.triplestrike",
abilities: [
Simple(None, "common.abilities.custom.quadlowbreathe.dash"),
],
),
Custom("Quad Low Tail"): (
primary: "common.abilities.custom.quadlowtail.charged",
secondary: "common.abilities.custom.quadlowtail.triplestrike",
abilities: [],
),
Custom("Quad Low Quick"): (
primary: "common.abilities.custom.quadlowquick.dash",
secondary: "common.abilities.custom.quadlowquick.quadstrike",
abilities: [],
),
Custom("Quad Low Basic"): (
primary: "common.abilities.custom.quadlowbasic.triplestrike",
secondary: "common.abilities.custom.quadlowbasic.singlestrike",
abilities: [],
),
Custom("Quad Low Beam"): (
primary: "common.abilities.custom.quadlowbeam.lifestealbeam",
secondary: "common.abilities.custom.quadlowbreathe.triplestrike",
abilities: [
Simple(None, "common.abilities.custom.quadlowbreathe.dash"),
],
),
Custom("Quad Small Basic"): (
primary: "common.abilities.custom.quadsmallbasic.singlestrike",
secondary: "common.abilities.custom.quadsmallbasic.singlestrike",
abilities: [],
),
Custom("Theropod Basic"): (
primary: "common.abilities.custom.theropodbasic.triplestrike",
secondary: "common.abilities.custom.theropodbasic.triplestrike",
abilities: [],
),
Custom("Theropod Small"): (
primary: "common.abilities.custom.theropodsmall.triplestrike",
secondary: "common.abilities.custom.theropodsmall.triplestrike",
abilities: [],
),
Custom("Theropod Bird"): (
primary: "common.abilities.custom.theropodbird.triplestrike",
secondary: "common.abilities.custom.theropodbird.triplestrike",
abilities: [],
),
Custom("Theropod Charge"): (
primary: "common.abilities.custom.theropodbasic.triplestrike",
secondary: "common.abilities.custom.theropodbasic.dash",
abilities: [],
),
// Arthropods
Custom("Antlion"): (
primary: "common.abilities.custom.arthropods.antlion.singlestrike",
secondary: "common.abilities.custom.arthropods.antlion.charge",
abilities: [],
),
Custom("Black Widow"): (
primary: "common.abilities.custom.arthropods.blackwidow.singlestrike",
secondary: "common.abilities.custom.arthropods.blackwidow.ensnaringwebs",
abilities: [
Simple(None, "common.abilities.custom.arthropods.blackwidow.poisonball"),
],
),
Custom("Horn Beetle"): (
primary: "common.abilities.custom.arthropods.hornbeetle.singlestrike",
secondary: "common.abilities.custom.arthropods.hornbeetle.harden",
abilities: [
Simple(None, "common.abilities.custom.arthropods.hornbeetle.leap"),
],
),
Custom("Tarantula"): (
primary: "common.abilities.custom.arthropods.tarantula.singlestrike",
secondary: "common.abilities.custom.arthropods.tarantula.ensnaringwebs",
abilities: [
Simple(None, "common.abilities.custom.arthropods.tarantula.leap"),
],
),
Custom("Weevil"): (
primary: "common.abilities.custom.arthropods.weevil.singlestrike",
secondary: "common.abilities.custom.arthropods.weevil.harden",
abilities: [
Simple(None, "common.abilities.custom.arthropods.weevil.threadshot"),
],
),
/// TODO: Organize the rest into further catagories and give purple tier droppers+ custom skillsets
Custom("Turret"): (
primary: "common.abilities.custom.turret.arrows",
secondary: "common.abilities.custom.turret.arrows",
abilities: [],
),
Custom("Organ"): (
primary: "common.abilities.custom.organ.organaura",
secondary: "common.abilities.custom.organ.organaura",
abilities: [],
),
Custom("Haniwa Sentry"): (
primary: "common.abilities.custom.turret.flamethrower",
secondary: "common.abilities.custom.turret.flamethrower",
abilities: [],
),
Custom("Mindflayer"): (
primary: "common.abilities.custom.mindflayer.cursedflames",
secondary: "common.abilities.custom.mindflayer.necroticvortex",
abilities: [
Simple(None, "common.abilities.custom.mindflayer.dimensionaldoor"),
Simple(None, "common.abilities.custom.mindflayer.necroticsphere"),
Simple(None, "common.abilities.custom.mindflayer.summonminions"),
],
),
Custom("Minotaur"): (
primary: "common.abilities.custom.minotaur.cleave",
secondary: "common.abilities.custom.minotaur.cripplingstrike",
abilities: [
Simple(None, "common.abilities.custom.minotaur.charge"),
Simple(None, "common.abilities.custom.minotaur.frenzy"),
],
),
Custom("Clay Golem"): (
primary: "common.abilities.custom.claygolem.strike",
secondary: "common.abilities.custom.claygolem.laser",
abilities: [
Simple(None, "common.abilities.custom.claygolem.shockwave"),
Simple(None, "common.abilities.custom.claygolem.rocket"),
],
),
Custom("Yeti"): (
primary: "common.abilities.custom.yeti.strike",
secondary: "common.abilities.custom.yeti.icespikes",
abilities: [
Simple(None, "common.abilities.custom.yeti.frostbreath"),
Simple(None, "common.abilities.custom.yeti.snowball"),
],
),
Custom("Harvester"): (
primary: "common.abilities.custom.harvester.scythe",
secondary: "common.abilities.custom.harvester.firebreath",
abilities: [
Simple(None, "common.abilities.custom.harvester.ensnaringvines"),
Simple(None, "common.abilities.custom.harvester.explodingpumpkin"),
],
),
// TODO: Allow ability sets to expand other ability sets
Custom("Dagon"): (
primary: "common.abilities.custom.dagon.dagonbombs",
secondary: "common.abilities.custom.dagon.seaurchins",
abilities: [
Simple(None, "common.abilities.custom.dagon.steamwave"),
Simple(None, "common.abilities.custom.cardinal.steambeam"),
Simple(None, "common.abilities.custom.dagon.steamheal"),
],
),
Custom("Cardinal"): (
primary: "common.abilities.sceptre.lifestealbeam",
secondary: "common.abilities.sceptre.healingaura",
abilities: [
Simple(None, "common.abilities.custom.cardinal.steambeam"),
Simple(None, "common.abilities.custom.cardinal.summonseacrocs"),
],
),
Custom("Oni"): (
primary: "common.abilities.custom.oni.dash",
secondary: "common.abilities.custom.oni.doublestrike",
abilities: [],
),
Custom("Bird Large Breathe"): (
primary: "common.abilities.custom.birdlargebreathe.firebomb",
secondary: "common.abilities.custom.birdlargebreathe.triplestrike",
abilities: [
Simple(None, "common.abilities.custom.birdlargebreathe.flamethrower"),
],
),
Custom("Bird Large Fire"): (
primary: "common.abilities.custom.birdlargefire.firebomb",
secondary: "common.abilities.custom.birdlargefire.triplestrike",
abilities: [
Simple(None, "common.abilities.custom.birdlargefire.fireshockwave"),
],
),
Custom("Bird Large Basic"): (
primary: "common.abilities.custom.birdlargebasic.triplestrike",
secondary: "common.abilities.custom.birdlargebasic.summontornadoes",
abilities: [
Simple(None, "common.abilities.custom.birdlargebasic.dash"),
],
),
Custom("Tornado"): (
primary: "common.abilities.custom.tornado.spin",
secondary: "common.abilities.empty.basic",
abilities: [],
),
Custom("Golf Club"): (
primary: "common.abilities.hammer.singlestrike",
secondary: "common.abilities.tool.golf_club.charged",
abilities: [],
),
Custom("Bass"): (
primary: "common.abilities.music.bass",
secondary: "common.abilities.music.bass",
abilities: [],
),
Custom("Flute"): (
primary: "common.abilities.music.flute",
secondary: "common.abilities.music.flute",
abilities: [],
),
Custom("Harp"): (
primary: "common.abilities.music.harp",
secondary: "common.abilities.music.harp",
abilities: [],
),
Custom("Perc"): (
primary: "common.abilities.music.perc",
secondary: "common.abilities.music.perc",
abilities: [],
),
Custom("Kalimba"): (
primary: "common.abilities.music.kalimba",
secondary: "common.abilities.music.kalimba",
abilities: [],
),
Custom("Melodica"): (
primary: "common.abilities.music.melodica",
secondary: "common.abilities.music.melodica",
abilities: [],
),
Custom("Lute"): (
primary: "common.abilities.music.lute",
secondary: "common.abilities.music.lute",
abilities: [],
),
Custom("Guitar"): (
primary: "common.abilities.music.guitar",
secondary: "common.abilities.music.guitar",
abilities: [],
),
Custom("Sitar"): (
primary: "common.abilities.music.sitar",
secondary: "common.abilities.music.sitar",
abilities: [],
),
Tool(Debug): (
primary: "common.abilities.debug.forwardboost",
secondary: "common.abilities.debug.upboost",
abilities: [
Simple(None, "common.abilities.debug.possess"),
],
),
Tool(Farming): (
primary: "common.abilities.farming.basic",
secondary: "common.abilities.farming.basic",
abilities: [],
),
Tool(Pick): (
primary: "common.abilities.pick.swing",
secondary: "common.abilities.pick.swing",
abilities: [],
),
Tool(Empty): (
primary: "common.abilities.empty.basic",
secondary: "common.abilities.empty.basic",
abilities: [],
),
})