mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Axe skill tree
This commit is contained in:
parent
93ddb36c0a
commit
68181e9b5b
BIN
assets/voxygen/element/ui/diary/axe_bg.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/ui/diary/axe_bg.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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",
|
||||||
|
Loading…
Reference in New Issue
Block a user