Adjust mining xp numbers and add SkillGroupKind information to Outcome::ExpChange.

This commit is contained in:
Avi Weinstock 2021-06-09 16:03:25 -04:00
parent 01a04a80fa
commit 9d4a65e8ac
5 changed files with 31 additions and 23 deletions

View File

@ -1,19 +1,19 @@
ResourceExperienceManifest({ ResourceExperienceManifest({
"common.items.mineral.gem.amethyst": 20, "common.items.mineral.gem.amethyst": 4,
"common.items.mineral.gem.sapphire": 50, "common.items.mineral.gem.sapphire": 8,
"common.items.mineral.gem.topaz": 20, "common.items.mineral.gem.topaz": 4,
"common.items.mineral.gem.diamond": 100, "common.items.mineral.gem.diamond": 25,
"common.items.mineral.gem.emerald": 50, "common.items.mineral.gem.emerald": 10,
"common.items.mineral.gem.ruby": 75, "common.items.mineral.gem.ruby": 12,
"common.items.mineral.ore.coal": 25, "common.items.mineral.ore.coal": 6,
"common.items.mineral.ore.gold": 100, "common.items.mineral.ore.gold": 25,
"common.items.mineral.ore.iron": 20, "common.items.mineral.ore.iron": 4,
"common.items.mineral.ore.silver": 90, "common.items.mineral.ore.silver": 22,
"common.items.mineral.ore.velorite": 30, "common.items.mineral.ore.velorite": 8,
"common.items.mineral.ore.veloritefrag": 20, "common.items.mineral.ore.veloritefrag": 4,
"common.items.mineral.ore.bloodstone": 80, "common.items.mineral.ore.bloodstone": 20,
"common.items.mineral.ore.cobalt": 60, "common.items.mineral.ore.cobalt": 15,
"common.items.mineral.ore.copper": 10, "common.items.mineral.ore.copper": 3,
"common.items.mineral.ore.tin": 10, "common.items.mineral.ore.tin": 3,
}) })

View File

@ -1,5 +1,6 @@
use crate::{comp, uid::Uid}; use crate::{comp, uid::Uid};
use comp::{beam, item::Reagent, poise::PoiseState}; use comp::{beam, item::Reagent, poise::PoiseState, skills::SkillGroupKind};
use hashbrown::HashSet;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use vek::*; use vek::*;
@ -36,6 +37,7 @@ pub enum Outcome {
ExpChange { ExpChange {
uid: Uid, uid: Uid,
exp: i32, exp: i32,
xp_pools: HashSet<SkillGroupKind>,
}, },
SkillPointGain { SkillPointGain {
uid: Uid, uid: Uid,

View File

@ -1011,12 +1011,13 @@ fn handle_exp_gain(
add_tool_from_slot(EquipSlot::InactiveMainhand); add_tool_from_slot(EquipSlot::InactiveMainhand);
add_tool_from_slot(EquipSlot::InactiveOffhand); add_tool_from_slot(EquipSlot::InactiveOffhand);
let num_pools = xp_pools.len() as f32; let num_pools = xp_pools.len() as f32;
for pool in xp_pools { for pool in xp_pools.iter() {
skill_set.change_experience(pool, (exp_reward / num_pools).ceil() as i32); skill_set.change_experience(*pool, (exp_reward / num_pools).ceil() as i32);
} }
outcomes.push(Outcome::ExpChange { outcomes.push(Outcome::ExpChange {
uid: *uid, uid: *uid,
exp: exp_reward as i32, exp: exp_reward as i32,
xp_pools,
}); });
} }

View File

@ -28,9 +28,10 @@ use crate::{
Server, Server,
}; };
use hashbrown::HashMap; use hashbrown::{HashMap, HashSet};
use lazy_static::lazy_static; use lazy_static::lazy_static;
use serde::Deserialize; use serde::Deserialize;
use std::iter::FromIterator;
pub fn handle_lantern(server: &mut Server, entity: EcsEntity, enable: bool) { pub fn handle_lantern(server: &mut Server, entity: EcsEntity, enable: bool) {
let ecs = server.state_mut().ecs(); let ecs = server.state_mut().ecs();
@ -332,6 +333,7 @@ pub fn handle_mine_block(
.push(Outcome::ExpChange { .push(Outcome::ExpChange {
uid, uid,
exp: *exp_reward, exp: *exp_reward,
xp_pools: HashSet::from_iter(vec![SkillGroupKind::Weapon(tool)]),
}); });
} }
use common::comp::skills::{MiningSkill, Skill}; use common::comp::skills::{MiningSkill, Skill};

View File

@ -1353,7 +1353,7 @@ impl Hud {
Weapon(ToolKind::Sceptre) => &i18n.get("common.weapons.sceptre"), Weapon(ToolKind::Sceptre) => &i18n.get("common.weapons.sceptre"),
Weapon(ToolKind::Bow) => &i18n.get("common.weapons.bow"), Weapon(ToolKind::Bow) => &i18n.get("common.weapons.bow"),
Weapon(ToolKind::Staff) => &i18n.get("common.weapons.staff"), Weapon(ToolKind::Staff) => &i18n.get("common.weapons.staff"),
Weapon(ToolKind::Pick) => &i18n.get("common.tool.mining"), Weapon(ToolKind::Pick) => &i18n.get("common.tool.pick"),
_ => "Unknown", _ => "Unknown",
}; };
Text::new(skill) Text::new(skill)
@ -1378,7 +1378,6 @@ impl Hud {
Weapon(ToolKind::Sceptre) => self.imgs.sceptre, Weapon(ToolKind::Sceptre) => self.imgs.sceptre,
Weapon(ToolKind::Bow) => self.imgs.bow, Weapon(ToolKind::Bow) => self.imgs.bow,
Weapon(ToolKind::Staff) => self.imgs.staff, Weapon(ToolKind::Staff) => self.imgs.staff,
Weapon(ToolKind::Pick) => self.imgs.mining,
_ => self.imgs.swords_crossed, _ => self.imgs.swords_crossed,
}) })
.w_h(20.0, 20.0) .w_h(20.0, 20.0)
@ -3659,7 +3658,11 @@ impl Hud {
pub fn handle_outcome(&mut self, outcome: &Outcome) { pub fn handle_outcome(&mut self, outcome: &Outcome) {
match outcome { match outcome {
Outcome::ExpChange { uid, exp } => self.floaters.exp_floaters.push(ExpFloater { Outcome::ExpChange {
uid,
exp,
xp_pools: _,
} => self.floaters.exp_floaters.push(ExpFloater {
owner: *uid, owner: *uid,
exp_change: *exp, exp_change: *exp,
timer: 4.0, timer: 4.0,