#![enable(implicit_some)] // 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: Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.double_slash", abilities: { None: (None, "common.abilities.sword.basic_double_slash"), Stance(Sword(Heavy)): (None, "common.abilities.sword.heavy_double_slash"), Stance(Sword(Agile)): (None, "common.abilities.sword.agile_double_slash"), Stance(Sword(Defensive)): (None, "common.abilities.sword.defensive_double_slash"), Stance(Sword(Crippling)): (None, "common.abilities.sword.crippling_double_slash"), Stance(Sword(Cleaving)): (None, "common.abilities.sword.cleaving_double_slash"), }, ), secondary: Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.secondary_ability", abilities: { None: (None, "common.abilities.sword.basic_thrust"), Stance(Sword(Heavy)): (None, "common.abilities.sword.heavy_slam"), Stance(Sword(Agile)): (None, "common.abilities.sword.agile_perforate"), Stance(Sword(Defensive)): (None, "common.abilities.sword.defensive_parry"), Stance(Sword(Crippling)): (None, "common.abilities.sword.crippling_deep_rend"), Stance(Sword(Cleaving)): (None, "common.abilities.sword.cleaving_spiral_slash"), }, ), abilities: [ Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.crescent_slash", abilities: { None: (Sword(CrescentSlash), "common.abilities.sword.basic_crescent_slash"), Stance(Sword(Heavy)): (Sword(CrescentSlash), "common.abilities.sword.heavy_crescent_slash"), Stance(Sword(Agile)): (Sword(CrescentSlash), "common.abilities.sword.agile_crescent_slash"), Stance(Sword(Defensive)): (Sword(CrescentSlash), "common.abilities.sword.defensive_crescent_slash"), Stance(Sword(Crippling)): (Sword(CrescentSlash), "common.abilities.sword.crippling_crescent_slash"), Stance(Sword(Cleaving)): (Sword(CrescentSlash), "common.abilities.sword.cleaving_crescent_slash"), }, ), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.fell_strike", abilities: { None: (Sword(FellStrike), "common.abilities.sword.basic_fell_strike"), Stance(Sword(Heavy)): (Sword(FellStrike), "common.abilities.sword.heavy_fell_strike"), Stance(Sword(Agile)): (Sword(FellStrike), "common.abilities.sword.agile_fell_strike"), Stance(Sword(Defensive)): (Sword(FellStrike), "common.abilities.sword.defensive_fell_strike"), Stance(Sword(Crippling)): (Sword(FellStrike), "common.abilities.sword.crippling_fell_strike"), Stance(Sword(Cleaving)): (Sword(FellStrike), "common.abilities.sword.cleaving_fell_strike"), }, ), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.skewer", abilities: { None: (Sword(Skewer), "common.abilities.sword.basic_skewer"), Stance(Sword(Heavy)): (Sword(Skewer), "common.abilities.sword.heavy_skewer"), Stance(Sword(Agile)): (Sword(Skewer), "common.abilities.sword.agile_skewer"), Stance(Sword(Defensive)): (Sword(Skewer), "common.abilities.sword.defensive_skewer"), Stance(Sword(Crippling)): (Sword(Skewer), "common.abilities.sword.crippling_skewer"), Stance(Sword(Cleaving)): (Sword(Skewer), "common.abilities.sword.cleaving_skewer"), }, ), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.cascade", abilities: { None: (Sword(Cascade), "common.abilities.sword.basic_cascade"), Stance(Sword(Heavy)): (Sword(Cascade), "common.abilities.sword.heavy_cascade"), Stance(Sword(Agile)): (Sword(Cascade), "common.abilities.sword.agile_cascade"), Stance(Sword(Defensive)): (Sword(Cascade), "common.abilities.sword.defensive_cascade"), Stance(Sword(Crippling)): (Sword(Cascade), "common.abilities.sword.crippling_cascade"), Stance(Sword(Cleaving)): (Sword(Cascade), "common.abilities.sword.cleaving_cascade"), }, ), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.cross_cut", abilities: { None: (Sword(CrossCut), "common.abilities.sword.basic_cross_cut"), Stance(Sword(Heavy)): (Sword(CrossCut), "common.abilities.sword.heavy_cross_cut"), Stance(Sword(Agile)): (Sword(CrossCut), "common.abilities.sword.agile_cross_cut"), Stance(Sword(Defensive)): (Sword(CrossCut), "common.abilities.sword.defensive_cross_cut"), Stance(Sword(Crippling)): (Sword(CrossCut), "common.abilities.sword.crippling_cross_cut"), Stance(Sword(Cleaving)): (Sword(CrossCut), "common.abilities.sword.cleaving_cross_cut"), }, ), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.finisher", abilities: { None: (Sword(Finisher), "common.abilities.sword.basic_mighty_strike"), Stance(Sword(Heavy)): (Sword(Finisher), "common.abilities.sword.heavy_guillotine"), Stance(Sword(Agile)): (Sword(Finisher), "common.abilities.sword.agile_hundred_cuts"), Stance(Sword(Defensive)): (Sword(Finisher), "common.abilities.sword.defensive_counter"), Stance(Sword(Crippling)): (Sword(Finisher), "common.abilities.sword.crippling_mutilate"), Stance(Sword(Cleaving)): (Sword(Finisher), "common.abilities.sword.cleaving_bladestorm"), }, ), Simple(Sword(HeavyWindmillSlash), "common.abilities.sword.heavy_windmill_slash"), Simple(Sword(HeavyPommelStrike), "common.abilities.sword.heavy_pommel_strike"), Simple(Sword(AgileQuickDraw), "common.abilities.sword.agile_quick_draw"), Simple(Sword(AgileFeint), "common.abilities.sword.agile_feint"), Simple(Sword(DefensiveRiposte), "common.abilities.sword.defensive_riposte"), Simple(Sword(DefensiveDisengage), "common.abilities.sword.defensive_disengage"), Simple(Sword(CripplingGouge), "common.abilities.sword.crippling_gouge"), Simple(Sword(CripplingHamstring), "common.abilities.sword.crippling_hamstring"), Simple(Sword(CleavingWhirlwindSlice), "common.abilities.sword.cleaving_whirlwind_slice"), Simple(Sword(CleavingEarthSplitter), "common.abilities.sword.cleaving_earth_splitter"), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.stance_utility", abilities: { Stance(Sword(Heavy)): (Sword(HeavyFortitude), "common.abilities.sword.heavy_fortitude"), Stance(Sword(Agile)): (Sword(AgileDancingEdge), "common.abilities.sword.agile_dancing_edge"), Stance(Sword(Defensive)): (Sword(DefensiveStalwartSword), "common.abilities.sword.defensive_stalwart_sword"), Stance(Sword(Crippling)): (Sword(CripplingEviscerate), "common.abilities.sword.crippling_eviscerate"), Stance(Sword(Cleaving)): (Sword(CleavingBladeFever), "common.abilities.sword.cleaving_blade_fever"), }, ), Contextualized( pseudo_id: "veloren.core.pseudo_abilities.sword.stance_attack", abilities: { Stance(Sword(Heavy)): (Sword(HeavyPillarThrust), "common.abilities.sword.heavy_pillar_thrust"), Stance(Sword(Agile)): (Sword(AgileFlurry), "common.abilities.sword.agile_flurry"), Stance(Sword(Defensive)): (Sword(DefensiveDeflect), "common.abilities.sword.defensive_deflect"), Stance(Sword(Crippling)): (Sword(CripplingBloodyGash), "common.abilities.sword.crippling_bloody_gash"), Stance(Sword(Cleaving)): (Sword(CleavingSkySplitter), "common.abilities.sword.cleaving_sky_splitter"), }, ), ], ), Tool(Axe): ( primary: Simple(None, "common.abilities.axe.doublestrike"), secondary: Simple(None, "common.abilities.axe.spin"), abilities: [ Simple(Some(Axe(UnlockLeap)), "common.abilities.axe.leap"), ], ), Tool(Hammer): ( primary: Simple(None, "common.abilities.hammer.singlestrike"), secondary: Simple(None, "common.abilities.hammer.charged"), abilities: [ Simple(Some(Hammer(UnlockLeap)), "common.abilities.hammer.leap"), ], ), Tool(Bow): ( primary: Simple(None, "common.abilities.bow.charged"), secondary: Simple(None, "common.abilities.bow.repeater"), abilities: [ Simple(Some(Bow(UnlockShotgun)), "common.abilities.bow.shotgun"), ], ), Tool(Staff): ( primary: Simple(None, "common.abilities.staff.firebomb"), secondary: Simple(None, "common.abilities.staff.flamethrower"), abilities: [ Simple(Some(Staff(UnlockShockwave)), "common.abilities.staff.fireshockwave"), ], ), Tool(Sceptre): ( primary: Simple(None, "common.abilities.sceptre.lifestealbeam"), secondary: Simple(None, "common.abilities.sceptre.healingaura"), abilities: [ Simple(Some(Sceptre(UnlockAura)), "common.abilities.sceptre.wardingaura"), ], ), Custom("Husk"): ( primary: Simple(None, "common.abilities.custom.husk.singlestrike"), secondary: Simple(None, "common.abilities.custom.husk.triplestrike"), abilities: [], ), Custom("Husk Brute"): ( primary: Simple(None, "common.abilities.custom.husk_brute.singlestrike"), secondary: Simple(None, "common.abilities.custom.husk_brute.chargedmelee"), abilities: [], ), Tool(Spear): ( primary: Simple(None, "common.abilities.spear.doublestrike"), secondary: Simple(None, "common.abilities.spear.dash"), abilities: [], ), Custom("Hammer Simple"): ( primary: Simple(None, "common.abilities.hammersimple.doublestrike"), secondary: Simple(None, "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: Simple(None, "common.abilities.gnarling.axe.chop"), secondary: Simple(None, "common.abilities.gnarling.axe.chop"), abilities: [], ), Custom("Gnarling Dagger"): ( primary: Simple(None, "common.abilities.gnarling.dagger.stab"), secondary: Simple(None, "common.abilities.gnarling.dagger.stab"), abilities: [], ), Custom("Gnarling Blowgun"): ( primary: Simple(None, "common.abilities.gnarling.blowgun.dart"), secondary: Simple(None, "common.abilities.gnarling.blowgun.dart"), abilities: [], ), Custom("Gnarling Chieftain"): ( primary: Simple(None, "common.abilities.gnarling.chieftain.flamestrike"), secondary: Simple(None, "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: Simple(None, "common.abilities.gnarling.totem.red"), secondary: Simple(None, "common.abilities.gnarling.totem.red"), abilities: [], ), Custom("Gnarling Totem Green"): ( primary: Simple(None, "common.abilities.gnarling.totem.green"), secondary: Simple(None, "common.abilities.gnarling.totem.green"), abilities: [], ), Custom("Gnarling Totem White"): ( primary: Simple(None, "common.abilities.gnarling.totem.white"), secondary: Simple(None, "common.abilities.gnarling.totem.white"), abilities: [], ), Custom("Deadwood"): ( primary: Simple(None, "common.abilities.custom.deadwood.lifestealbeam"), secondary: Simple(None, "common.abilities.custom.deadwood.dash"), abilities: [], ), Custom("Mandragora"): ( primary: Simple(None, "common.abilities.custom.mandragora.basic"), secondary: Simple(None, "common.abilities.custom.mandragora.scream"), abilities: [], ), Custom("Wood Golem"): ( primary: Simple(None, "common.abilities.custom.woodgolem.strike"), secondary: Simple(None, "common.abilities.custom.woodgolem.spin"), abilities: [ Simple(None, "common.abilities.custom.woodgolem.shockwave") ], ), Custom("Simple Flying Melee"): ( primary: Simple(None, "common.abilities.custom.simpleflyingmelee.singlestrike"), secondary: Simple(None, "common.abilities.custom.simpleflyingmelee.singlestrike"), abilities: [], ), Custom("Sword Simple"): ( primary: Simple(None, "common.abilities.swordsimple.doublestrike"), secondary: Simple(None, "common.abilities.swordsimple.dash"), abilities: [], ), Custom("Staff Simple"): ( primary: Simple(None, "common.abilities.staffsimple.firebomb"), secondary: Simple(None, "common.abilities.staffsimple.flamethrower"), abilities: [], ), Custom("Bow Simple"): ( primary: Simple(None, "common.abilities.bowsimple.basic"), secondary: Simple(None, "common.abilities.bowsimple.basic"), abilities: [], ), Custom("Axe Simple"): ( primary: Simple(None, "common.abilities.axesimple.doublestrike"), secondary: Simple(None, "common.abilities.axesimple.doublestrike"), abilities: [], ), Custom("Dagger Simple"): ( primary: Simple(None, "common.abilities.daggersimple.singlestrike"), secondary: Simple(None, "common.abilities.daggersimple.singlestrike"), abilities: [], ), Tool(Dagger): ( primary: Simple(None, "common.abilities.dagger.tempbasic"), secondary: Simple(None, "common.abilities.dagger.tempbasic"), abilities: [], ), Tool(Shield): ( primary: Simple(None, "common.abilities.shield.tempbasic"), secondary: Simple(None, "common.abilities.shield.block"), abilities: [], ), Custom("Stone Golem"): ( primary: Simple(None, "common.abilities.custom.stonegolemfist.singlestrike"), secondary: Simple(None, "common.abilities.custom.stonegolemfist.shockwave"), abilities: [ Simple(None, "common.abilities.custom.stonegolemfist.spin"), ], ), Custom("Beast Claws"): ( primary: Simple(None, "common.abilities.custom.beastclaws.basic"), secondary: Simple(None, "common.abilities.custom.beastclaws.basic"), abilities: [], ), Custom("Tursus Claws"): ( primary: "common.abilities.custom.tursus_claws.basic", secondary: "common.abilities.custom.tursus_claws.basic", abilities: [], ), Custom("Wendigo Magic"): ( primary: Simple(None, "common.abilities.custom.wendigomagic.frostbomb"), secondary: Simple(None, "common.abilities.custom.wendigomagic.singlestrike"), abilities: [], ), Custom("Tidal Warrior"): ( primary: Simple(None, "common.abilities.custom.tidalwarrior.pincer"), secondary: Simple(None, "common.abilities.custom.tidalwarrior.scuttle"), abilities: [ Simple(None, "common.abilities.custom.tidalwarrior.bubbles"), Simple(None, "common.abilities.custom.tidalwarrior.totem"), ], ), Custom("Tidal Totem"): ( primary: Simple(None, "common.abilities.custom.tidalwarrior.totem_wave"), secondary: Simple(None, "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: Simple(None, "common.abilities.custom.quadmedquick.triplestrike"), secondary: Simple(None, "common.abilities.custom.quadmedquick.dash"), abilities: [], ), Custom("Quad Med Jump"): ( primary: Simple(None, "common.abilities.custom.quadmedjump.leap"), secondary: Simple(None, "common.abilities.custom.quadmedjump.doublestrike"), abilities: [ Simple(None, "common.abilities.custom.quadmedjump.quickleap"), ], ), Custom("Quad Med Charge"): ( primary: Simple(None, "common.abilities.custom.quadmedcharge.doublestrike"), secondary: Simple(None, "common.abilities.custom.quadmedcharge.dash"), abilities: [], ), Custom("Quad Med Hoof"): ( primary: Simple(None, "common.abilities.custom.quadmedhoof.basic"), secondary: Simple(None, "common.abilities.custom.quadmedhoof.basic"), abilities: [], ), Custom("Quad Med Basic"): ( primary: Simple(None, "common.abilities.custom.quadmedbasic.singlestrike"), secondary: Simple(None, "common.abilities.custom.quadmedbasic.triplestrike"), abilities: [], ), Custom("Roshwalr"): ( primary: Simple(None, "common.abilities.custom.roshwalr.doublehusk"), secondary: Simple(None, "common.abilities.custom.roshwalr.slowcharge"), abilities: [ Simple(None, "common.abilities.custom.roshwalr.freezeshockwave"), ], ), Custom("Basilisk"): ( primary: Simple(None, "common.abilities.custom.basilisk.petrify"), secondary: Simple(None, "common.abilities.custom.basilisk.triplestrike"), abilities: [ Simple(None, "common.abilities.custom.basilisk.dash"), ], ), Custom("Asp"): ( primary: Simple(None, "common.abilities.custom.asp.singlestrike"), secondary: Simple(None, "common.abilities.custom.asp.firebomb"), abilities: [], ), Custom("Maneater"): ( primary: Simple(None, "common.abilities.custom.maneater.singlestrike"), secondary: Simple(None, "common.abilities.custom.maneater.poisonball"), abilities: [], ), Custom("Quad Low Breathe"): ( primary: Simple(None, "common.abilities.custom.quadlowbreathe.flamethrower"), secondary: Simple(None, "common.abilities.custom.quadlowbreathe.triplestrike"), abilities: [ Simple(None, "common.abilities.custom.quadlowbreathe.dash"), ], ), Custom("Quad Low Tail"): ( primary: Simple(None, "common.abilities.custom.quadlowtail.charged"), secondary: Simple(None, "common.abilities.custom.quadlowtail.triplestrike"), abilities: [], ), Custom("Quad Low Quick"): ( primary: Simple(None, "common.abilities.custom.quadlowquick.dash"), secondary: Simple(None, "common.abilities.custom.quadlowquick.quadstrike"), abilities: [], ), Custom("Quad Low Basic"): ( primary: Simple(None, "common.abilities.custom.quadlowbasic.triplestrike"), secondary: Simple(None, "common.abilities.custom.quadlowbasic.singlestrike"), abilities: [], ), Custom("Quad Low Beam"): ( primary: Simple(None, "common.abilities.custom.quadlowbeam.lifestealbeam"), secondary: Simple(None, "common.abilities.custom.quadlowbreathe.triplestrike"), abilities: [ Simple(None, "common.abilities.custom.quadlowbreathe.dash"), ], ), Custom("Quad Small Basic"): ( primary: Simple(None, "common.abilities.custom.quadsmallbasic.singlestrike"), secondary: Simple(None, "common.abilities.custom.quadsmallbasic.singlestrike"), abilities: [], ), Custom("Theropod Basic"): ( primary: Simple(None, "common.abilities.custom.theropodbasic.triplestrike"), secondary: Simple(None, "common.abilities.custom.theropodbasic.triplestrike"), abilities: [], ), Custom("Theropod Small"): ( primary: Simple(None, "common.abilities.custom.theropodsmall.triplestrike"), secondary: Simple(None, "common.abilities.custom.theropodsmall.triplestrike"), abilities: [], ), Custom("Theropod Bird"): ( primary: Simple(None, "common.abilities.custom.theropodbird.triplestrike"), secondary: Simple(None, "common.abilities.custom.theropodbird.triplestrike"), abilities: [], ), Custom("Theropod Charge"): ( primary: Simple(None, "common.abilities.custom.theropodbasic.triplestrike"), secondary: Simple(None, "common.abilities.custom.theropodbasic.dash"), abilities: [], ), // Arthropods Custom("Antlion"): ( primary: Simple(None, "common.abilities.custom.arthropods.antlion.singlestrike"), secondary: Simple(None, "common.abilities.custom.arthropods.antlion.charge"), abilities: [], ), Custom("Black Widow"): ( primary: Simple(None, "common.abilities.custom.arthropods.blackwidow.singlestrike"), secondary: Simple(None, "common.abilities.custom.arthropods.blackwidow.ensnaringwebs"), abilities: [ Simple(None, "common.abilities.custom.arthropods.blackwidow.poisonball"), ], ), Custom("Horn Beetle"): ( primary: Simple(None, "common.abilities.custom.arthropods.hornbeetle.singlestrike"), secondary: Simple(None, "common.abilities.custom.arthropods.hornbeetle.harden"), abilities: [ Simple(None, "common.abilities.custom.arthropods.hornbeetle.leap"), ], ), Custom("Tarantula"): ( primary: Simple(None, "common.abilities.custom.arthropods.tarantula.singlestrike"), secondary: Simple(None, "common.abilities.custom.arthropods.tarantula.ensnaringwebs"), abilities: [ Simple(None, "common.abilities.custom.arthropods.tarantula.leap"), ], ), Custom("Weevil"): ( primary: Simple(None, "common.abilities.custom.arthropods.weevil.singlestrike"), secondary: Simple(None, "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: Simple(None, "common.abilities.custom.turret.arrows"), secondary: Simple(None, "common.abilities.custom.turret.arrows"), abilities: [], ), Custom("Organ"): ( primary: Simple(None, "common.abilities.custom.organ.organaura"), secondary: Simple(None, "common.abilities.custom.organ.organaura"), abilities: [], ), Custom("Haniwa Sentry"): ( primary: Simple(None, "common.abilities.custom.turret.flamethrower"), secondary: Simple(None, "common.abilities.custom.turret.flamethrower"), abilities: [], ), Custom("Mindflayer"): ( primary: Simple(None, "common.abilities.custom.mindflayer.cursedflames"), secondary: Simple(None, "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: Simple(None, "common.abilities.custom.minotaur.cleave"), secondary: Simple(None, "common.abilities.custom.minotaur.cripplingstrike"), abilities: [ Simple(None, "common.abilities.custom.minotaur.charge"), Simple(None, "common.abilities.custom.minotaur.frenzy"), ], ), Custom("Clay Golem"): ( primary: Simple(None, "common.abilities.custom.claygolem.strike"), secondary: Simple(None, "common.abilities.custom.claygolem.laser"), abilities: [ Simple(None, "common.abilities.custom.claygolem.shockwave"), Simple(None, "common.abilities.custom.claygolem.rocket"), ], ), Custom("Yeti"): ( primary: Simple(None, "common.abilities.custom.yeti.strike"), secondary: Simple(None, "common.abilities.custom.yeti.icespikes"), abilities: [ Simple(None, "common.abilities.custom.yeti.frostbreath"), Simple(None, "common.abilities.custom.yeti.snowball"), ], ), Custom("Harvester"): ( primary: Simple(None, "common.abilities.custom.harvester.scythe"), secondary: Simple(None, "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: Simple(None, "common.abilities.custom.dagon.dagonbombs"), secondary: Simple(None, "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: Simple(None, "common.abilities.sceptre.lifestealbeam"), secondary: Simple(None, "common.abilities.sceptre.healingaura"), abilities: [ Simple(None, "common.abilities.custom.cardinal.steambeam"), Simple(None, "common.abilities.custom.cardinal.summonseacrocs"), ], ), Custom("Oni"): ( primary: Simple(None, "common.abilities.custom.oni.dash"), secondary: Simple(None, "common.abilities.custom.oni.doublestrike"), abilities: [], ), Custom("Bird Large Breathe"): ( primary: Simple(None, "common.abilities.custom.birdlargebreathe.firebomb"), secondary: Simple(None, "common.abilities.custom.birdlargebreathe.triplestrike"), abilities: [ Simple(None, "common.abilities.custom.birdlargebreathe.flamethrower"), ], ), Custom("Bird Large Fire"): ( primary: Simple(None, "common.abilities.custom.birdlargefire.firebomb"), secondary: Simple(None, "common.abilities.custom.birdlargefire.triplestrike"), abilities: [ Simple(None, "common.abilities.custom.birdlargefire.fireshockwave"), ], ), Custom("Flame Wyvern"): ( primary: "common.abilities.custom.flamewyvern.firebomb", secondary: "common.abilities.custom.flamewyvern.fireshockwave", abilities: [ Simple(None, "common.abilities.custom.flamewyvern.triplestrike"), Simple(None, "common.abilities.custom.flamewyvern.flamethrower"), ], ), Custom("Frost Wyvern"): ( primary: "common.abilities.custom.frostwyvern.frostbomb", secondary: "common.abilities.custom.frostwyvern.iceshockwave", abilities: [ Simple(None, "common.abilities.custom.frostwyvern.triplestrike"), Simple(None, "common.abilities.custom.frostwyvern.frostthrower"), ], ), Custom("Cloud Wyvern"): ( primary: "common.abilities.custom.cloudwyvern.windbomb", secondary: "common.abilities.custom.cloudwyvern.windshockwave", abilities: [ Simple(None, "common.abilities.custom.cloudwyvern.triplestrike"), Simple(None, "common.abilities.custom.cloudwyvern.windthrower"), ], ), Custom("Sea Wyvern"): ( primary: "common.abilities.custom.seawyvern.seabomb", secondary: "common.abilities.custom.seawyvern.seashockwave", abilities: [ Simple(None, "common.abilities.custom.seawyvern.triplestrike"), Simple(None, "common.abilities.custom.seawyvern.bubblethrower"), ], ), Custom("Weald Wyvern"): ( primary: "common.abilities.custom.wealdwyvern.firebomb", secondary: "common.abilities.custom.wealdwyvern.fireshockwave", abilities: [ Simple(None, "common.abilities.custom.wealdwyvern.triplestrike"), Simple(None, "common.abilities.custom.wealdwyvern.flamethrower"), ], ), Custom("Bird Large Basic"): ( primary: Simple(None, "common.abilities.custom.birdlargebasic.triplestrike"), secondary: Simple(None, "common.abilities.custom.birdlargebasic.summontornadoes"), abilities: [ Simple(None, "common.abilities.custom.birdlargebasic.dash"), ], ), Custom("Bird Medium Basic"): ( primary: "common.abilities.custom.birdmediumbasic.singlestrike", secondary: "common.abilities.custom.birdmediumbasic.singlestrike", abilities: [], ), Custom("Frost Gigas"): ( primary: "common.abilities.custom.gigas_frost.cleave", secondary: "common.abilities.custom.gigas_frost.wide_cleave", abilities: [ Simple(None, "common.abilities.custom.gigas_frost.icespike_smash"), Simple(None, "common.abilities.custom.gigas_frost.leapshockwave"), Simple(None, "common.abilities.custom.gigas_frost.ice_volley"), Simple(None, "common.abilities.custom.gigas_frost.frost_summons"), Simple(None, "common.abilities.custom.gigas_frost.flashfreeze"), ], ), Custom("Boreal Bow"): ( primary: "common.abilities.custom.boreal_warrior.bow.charged", secondary: "common.abilities.custom.boreal_warrior.bow.repeater", abilities: [ Simple(None, "common.abilities.custom.boreal_warrior.bow.shotgun") ], ), Custom("Boreal Hammer"): ( primary: "common.abilities.custom.boreal_warrior.hammer.singlestrike", secondary: "common.abilities.custom.boreal_warrior.hammer.dash", abilities: [ Simple(None, "common.abilities.custom.boreal_warrior.hammer.leap") ], ), Custom("Tornado"): ( primary: Simple(None, "common.abilities.custom.tornado.spin"), secondary: Simple(None, "common.abilities.empty.basic"), abilities: [], ), Custom("Golf Club"): ( primary: Simple(None, "common.abilities.hammer.singlestrike"), secondary: Simple(None, "common.abilities.tool.golf_club.charged"), abilities: [], ), Custom("DoubleBass"): ( primary: Simple(None, "common.abilities.music.double_bass"), secondary: Simple(None, "common.abilities.music.double_bass"), abilities: [], ), Custom("Flute"): ( primary: Simple(None, "common.abilities.music.flute"), secondary: Simple(None, "common.abilities.music.flute"), abilities: [], ), Custom("GlassFlute"): ( primary: Simple(None, "common.abilities.music.glass_flute"), secondary: Simple(None, "common.abilities.music.glass_flute"), abilities: [], ), Custom("Lyre"): ( primary: Simple(None, "common.abilities.music.lyre"), secondary: Simple(None, "common.abilities.music.lyre"), abilities: [], ), Custom("IcyTalharpa"): ( primary: "common.abilities.music.icy_talharpa", secondary: "common.abilities.music.icy_talharpa", abilities: [], ), Custom("Washboard"): ( primary: Simple(None, "common.abilities.music.washboard"), secondary: Simple(None, "common.abilities.music.washboard"), abilities: [], ), Custom("Kalimba"): ( primary: Simple(None, "common.abilities.music.kalimba"), secondary: Simple(None, "common.abilities.music.kalimba"), abilities: [], ), Custom("Melodica"): ( primary: Simple(None, "common.abilities.music.melodica"), secondary: Simple(None, "common.abilities.music.melodica"), abilities: [], ), Custom("Lute"): ( primary: Simple(None, "common.abilities.music.lute"), secondary: Simple(None, "common.abilities.music.lute"), abilities: [], ), Custom("Guitar"): ( primary: Simple(None, "common.abilities.music.guitar"), secondary: Simple(None, "common.abilities.music.guitar"), abilities: [], ), Custom("DarkGuitar"): ( primary: "common.abilities.music.dark_guitar", secondary: "common.abilities.music.dark_guitar", abilities: [], ), Custom("Sitar"): ( primary: Simple(None, "common.abilities.music.sitar"), secondary: Simple(None, "common.abilities.music.sitar"), abilities: [], ), Tool(Debug): ( primary: Simple(None, "common.abilities.debug.forwardboost"), secondary: Simple(None, "common.abilities.debug.upboost"), abilities: [ Simple(None, "common.abilities.debug.possess"), ], ), Tool(Farming): ( primary: Simple(None, "common.abilities.farming.basic"), secondary: Simple(None, "common.abilities.farming.basic"), abilities: [], ), Tool(Pick): ( primary: Simple(None, "common.abilities.pick.swing"), secondary: Simple(None, "common.abilities.pick.swing"), abilities: [], ), Tool(Empty): ( primary: Simple(None, "common.abilities.empty.basic"), secondary: Simple(None, "common.abilities.empty.basic"), abilities: [], ), })