Axe skill tree

This commit is contained in:
Sam 2023-05-29 21:16:58 -04:00
parent 93ddb36c0a
commit 68181e9b5b
4 changed files with 166 additions and 22 deletions
assets/voxygen
element/ui/diary
i18n/en/hud
voxygen/src/hud

BIN
assets/voxygen/element/ui/diary/axe_bg.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -287,12 +287,16 @@ common-abilities-axe-savage_sense = Savage Sense
common-abilities-axe-adrenaline_rush = Adrenaline Rush common-abilities-axe-adrenaline_rush = Adrenaline Rush
.desc = .desc =
Consume all your combo to replenish your stamina Consume all your combo to replenish your stamina
Scales with combo on activation, consumes all combo
common-abilities-axe-execute = Execute common-abilities-axe-execute = Execute
.desc = .desc =
A devastating strike often known to be fatal A devastating strike often known to be fatal
Requires 30 combo to use
Automatically upgrades to maelstrom at 50 combo if unlocked
common-abilities-axe-maelstrom = Maelstrom common-abilities-axe-maelstrom = Maelstrom
.desc = .desc =
Strike everything in your vicinity with a devastating, spinning strike Strike everything in your vicinity with a devastating, spinning strike
Automatically upgrades from execute at 50 combo
common-abilities-axe-rake = Rake common-abilities-axe-rake = Rake
.desc = .desc =
Drag your axe across your foe, inducing bleeding Drag your axe across your foe, inducing bleeding
@ -311,12 +315,16 @@ common-abilities-axe-furor = Furor
common-abilities-axe-fracture = Fracture common-abilities-axe-fracture = Fracture
.desc = .desc =
A crippling blow that hampers your foe's movement A crippling blow that hampers your foe's movement
Scales with combo on activation, consumes half of combo
common-abilities-axe-lacerate = Lacerate common-abilities-axe-lacerate = Lacerate
.desc = .desc =
Flay your target, causing their lifeblood to flow out Flay your target, causing their lifeblood to flow out
Requires 30 combo to use
Automatically upgrades to riptide at 50 combo if unlocked
common-abilities-axe-riptide = Riptide common-abilities-axe-riptide = Riptide
.desc = .desc =
Flay everything nearby, parting them from their blood Flay everything nearby, parting them from their blood
Automatically upgrades from lacerate at 50 combo
common-abilities-axe-skull_bash = Skullbash common-abilities-axe-skull_bash = Skullbash
.desc = .desc =
A strike with the flat of your axe that can stagger A strike with the flat of your axe that can stagger
@ -332,9 +340,13 @@ common-abilities-axe-defiance = Defiance
common-abilities-axe-keelhaul = Keelhaul common-abilities-axe-keelhaul = Keelhaul
.desc = .desc =
Hook your opponent to pull them closer towards you Hook your opponent to pull them closer towards you
Scales with combo on activation, consumes half of combo
common-abilities-axe-bulkhead = Bulkhead common-abilities-axe-bulkhead = Bulkhead
.desc = .desc =
A heavy swing that some say can even stagger titans A heavy swing that some say can even stagger titans
Requires 30 combo to use
Automatically upgrades to capsize at 50 combo if unlocked
common-abilities-axe-capsize = Capsize common-abilities-axe-capsize = Capsize
.desc = .desc =
Stagger everything nearby with a heavy spinning strike Stagger everything nearby with a heavy spinning strike
Automatically upgrades from bulkhead at 50 combo

View File

@ -33,8 +33,8 @@ use common::{
slot::EquipSlot, slot::EquipSlot,
}, },
skills::{ skills::{
self, BowSkill, ClimbSkill, GeneralSkill, HammerSkill, MiningSkill, RollSkill, self, AxeSkill, BowSkill, ClimbSkill, GeneralSkill, HammerSkill, MiningSkill,
SceptreSkill, Skill, StaffSkill, SwimSkill, SwordSkill, SKILL_MODIFIERS, RollSkill, SceptreSkill, Skill, StaffSkill, SwimSkill, SwordSkill, SKILL_MODIFIERS,
}, },
skillset::{SkillGroupKind, SkillSet}, skillset::{SkillGroupKind, SkillSet},
Body, Energy, Health, Inventory, Poise, Body, Energy, Health, Inventory, Poise,
@ -86,7 +86,7 @@ widget_ids! {
skills[], skills[],
skill_lock_imgs[], skill_lock_imgs[],
sword_bg, sword_bg,
axe_render, axe_bg,
hammer_render, hammer_render,
skill_hammer_combo_0, skill_hammer_combo_0,
skill_hammer_combo_1, skill_hammer_combo_1,
@ -544,11 +544,11 @@ impl<'a> Widget for Diary<'a> {
let img = match skilltree_name { let img = match skilltree_name {
"General Combat" => self.imgs.swords_crossed, "General Combat" => self.imgs.swords_crossed,
"Sword" => self.imgs.sword, "Sword" => self.imgs.sword,
"Hammer" => self.imgs.hammer,
"Axe" => self.imgs.axe, "Axe" => self.imgs.axe,
"Sceptre" => self.imgs.sceptre, "Hammer" => self.imgs.hammer,
"Bow" => self.imgs.bow, "Bow" => self.imgs.bow,
"Fire Staff" => self.imgs.staff, "Fire Staff" => self.imgs.staff,
"Sceptre" => self.imgs.sceptre,
"Mining" => self.imgs.mining, "Mining" => self.imgs.mining,
_ => self.imgs.nothing, _ => self.imgs.nothing,
}; };
@ -765,14 +765,11 @@ impl<'a> Widget for Diary<'a> {
SelectedSkillTree::Weapon(ToolKind::Sword) => { SelectedSkillTree::Weapon(ToolKind::Sword) => {
self.handle_sword_skills_window(&diary_tooltip, state, ui, events) self.handle_sword_skills_window(&diary_tooltip, state, ui, events)
}, },
SelectedSkillTree::Weapon(ToolKind::Hammer) => {
self.handle_hammer_skills_window(&diary_tooltip, state, ui, events)
},
SelectedSkillTree::Weapon(ToolKind::Axe) => { SelectedSkillTree::Weapon(ToolKind::Axe) => {
self.handle_axe_skills_window(&diary_tooltip, state, ui, events) self.handle_axe_skills_window(&diary_tooltip, state, ui, events)
}, },
SelectedSkillTree::Weapon(ToolKind::Sceptre) => { SelectedSkillTree::Weapon(ToolKind::Hammer) => {
self.handle_sceptre_skills_window(&diary_tooltip, state, ui, events) self.handle_hammer_skills_window(&diary_tooltip, state, ui, events)
}, },
SelectedSkillTree::Weapon(ToolKind::Bow) => { SelectedSkillTree::Weapon(ToolKind::Bow) => {
self.handle_bow_skills_window(&diary_tooltip, state, ui, events) self.handle_bow_skills_window(&diary_tooltip, state, ui, events)
@ -780,6 +777,9 @@ impl<'a> Widget for Diary<'a> {
SelectedSkillTree::Weapon(ToolKind::Staff) => { SelectedSkillTree::Weapon(ToolKind::Staff) => {
self.handle_staff_skills_window(&diary_tooltip, state, ui, events) self.handle_staff_skills_window(&diary_tooltip, state, ui, events)
}, },
SelectedSkillTree::Weapon(ToolKind::Sceptre) => {
self.handle_sceptre_skills_window(&diary_tooltip, state, ui, events)
},
SelectedSkillTree::Weapon(ToolKind::Pick) => { SelectedSkillTree::Weapon(ToolKind::Pick) => {
self.handle_mining_skills_window(&diary_tooltip, state, ui, events) self.handle_mining_skills_window(&diary_tooltip, state, ui, events)
}, },
@ -1342,11 +1342,11 @@ fn skill_tree_from_str(string: &str) -> Option<SelectedSkillTree> {
match string { match string {
"General Combat" => Some(SelectedSkillTree::General), "General Combat" => Some(SelectedSkillTree::General),
"Sword" => Some(SelectedSkillTree::Weapon(ToolKind::Sword)), "Sword" => Some(SelectedSkillTree::Weapon(ToolKind::Sword)),
"Hammer" => Some(SelectedSkillTree::Weapon(ToolKind::Hammer)),
"Axe" => Some(SelectedSkillTree::Weapon(ToolKind::Axe)), "Axe" => Some(SelectedSkillTree::Weapon(ToolKind::Axe)),
"Sceptre" => Some(SelectedSkillTree::Weapon(ToolKind::Sceptre)), "Hammer" => Some(SelectedSkillTree::Weapon(ToolKind::Hammer)),
"Bow" => Some(SelectedSkillTree::Weapon(ToolKind::Bow)), "Bow" => Some(SelectedSkillTree::Weapon(ToolKind::Bow)),
"Fire Staff" => Some(SelectedSkillTree::Weapon(ToolKind::Staff)), "Fire Staff" => Some(SelectedSkillTree::Weapon(ToolKind::Staff)),
"Sceptre" => Some(SelectedSkillTree::Weapon(ToolKind::Sceptre)),
"Mining" => Some(SelectedSkillTree::Weapon(ToolKind::Pick)), "Mining" => Some(SelectedSkillTree::Weapon(ToolKind::Pick)),
_ => None, _ => None,
} }
@ -1729,6 +1729,144 @@ impl<'a> Diary<'a> {
events events
} }
fn handle_axe_skills_window(
&mut self,
diary_tooltip: &Tooltip,
state: &mut State<DiaryState>,
ui: &mut UiCell,
mut events: Vec<Event>,
) -> Vec<Event> {
// Axe
Image::new(self.imgs.axe_bg)
.wh([925.0, 619.0])
.mid_top_with_margin_on(state.ids.content_align, 65.0)
.color(Some(Color::Rgba(1.0, 1.0, 1.0, 1.0)))
.set(state.ids.axe_bg, ui);
use PositionSpecifier::TopLeftWithMarginsOn;
let skill_buttons = &[
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::BrutalSwing),
ability_id: "common.abilities.axe.brutal_swing",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 401.0, 415.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Berserk),
ability_id: "common.abilities.axe.berserk",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 297.0, 347.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::RisingTide),
ability_id: "common.abilities.axe.rising_tide",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 298.0, 480.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::SavageSense),
ability_id: "common.abilities.axe.savage_sense",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 191.0, 310.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::AdrenalineRush),
ability_id: "common.abilities.axe.adrenaline_rush",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 192.0, 520.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Execute),
ability_id: "common.abilities.axe.execute",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 190.0, 410.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Maelstrom),
ability_id: "common.abilities.axe.maelstrom",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 10.0, 415.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Rake),
ability_id: "common.abilities.axe.rake",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 538.0, 298.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Bloodfeast),
ability_id: "common.abilities.axe.bloodfeast",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 404.0, 47.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::FierceRaze),
ability_id: "common.abilities.axe.fierce_raze",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 405.0, 179.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Furor),
ability_id: "common.abilities.axe.furor",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 299.0, 9.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Fracture),
ability_id: "common.abilities.axe.fracture",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 299.0, 221.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Lacerate),
ability_id: "common.abilities.axe.lacerate",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 296.0, 109.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Riptide),
ability_id: "common.abilities.axe.riptide",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 115.0, 115.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::SkullBash),
ability_id: "common.abilities.axe.skull_bash",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 534.0, 561.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Sunder),
ability_id: "common.abilities.axe.sunder",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 405.0, 660.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Plunder),
ability_id: "common.abilities.axe.plunder",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 406.0, 793.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Defiance),
ability_id: "common.abilities.axe.defiance",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 301.0, 624.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Keelhaul),
ability_id: "common.abilities.axe.keelhaul",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 299.0, 834.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Bulkhead),
ability_id: "common.abilities.axe.bulkhead",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 298.0, 721.0),
},
SkillIcon::Ability {
skill: Skill::Axe(AxeSkill::Capsize),
ability_id: "common.abilities.axe.capsize",
position: TopLeftWithMarginsOn(state.ids.axe_bg, 117.0, 728.0),
},
];
state.update(|s| {
s.ids
.skills
.resize(skill_buttons.len(), &mut ui.widget_id_generator())
});
state.update(|s| {
s.ids
.skill_lock_imgs
.resize(skill_buttons.len(), &mut ui.widget_id_generator())
});
self.handle_skill_buttons(skill_buttons, ui, &mut events, diary_tooltip, state);
events
}
fn handle_hammer_skills_window( fn handle_hammer_skills_window(
&mut self, &mut self,
diary_tooltip: &Tooltip, diary_tooltip: &Tooltip,
@ -1887,16 +2025,6 @@ impl<'a> Diary<'a> {
events events
} }
fn handle_axe_skills_window(
&mut self,
_diary_tooltip: &Tooltip,
_state: &mut State<DiaryState>,
_ui: &mut UiCell,
/* mut */ events: Vec<Event>,
) -> Vec<Event> {
events
}
fn handle_sceptre_skills_window( fn handle_sceptre_skills_window(
&mut self, &mut self,
diary_tooltip: &Tooltip, diary_tooltip: &Tooltip,

View File

@ -83,6 +83,7 @@ image_ids! {
skills_bg: "voxygen.element.ui.diary.diary_skills_bg", skills_bg: "voxygen.element.ui.diary.diary_skills_bg",
slot_skills: "voxygen.element.ui.diary.buttons.slot_skilltree", slot_skills: "voxygen.element.ui.diary.buttons.slot_skilltree",
sword_bg: "voxygen.element.ui.diary.sword_bg", sword_bg: "voxygen.element.ui.diary.sword_bg",
axe_bg: "voxygen.element.ui.diary.axe_bg",
swords_crossed: "voxygen.element.weapons.swords_crossed", swords_crossed: "voxygen.element.weapons.swords_crossed",
sceptre: "voxygen.element.weapons.sceptre", sceptre: "voxygen.element.weapons.sceptre",
sword: "voxygen.element.weapons.sword", sword: "voxygen.element.weapons.sword",