Fixed health ui in few places and xp scaling from health.

This commit is contained in:
Sam 2021-09-14 10:55:14 -04:00
parent 338e82c36c
commit 3d31248ced
6 changed files with 9 additions and 12 deletions

View File

@ -905,13 +905,13 @@ pub fn combat_rating(
msm: &MaterialStatManifest,
) -> f32 {
const WEAPON_WEIGHT: f32 = 1.0;
const HEALTH_WEIGHT: f32 = 0.5;
const HEALTH_WEIGHT: f32 = 5.0;
const ENERGY_WEIGHT: f32 = 0.5;
const SKILLS_WEIGHT: f32 = 1.0;
const POISE_WEIGHT: f32 = 0.5;
const CRIT_WEIGHT: f32 = 0.6;
// Assumes a "standard" max health of 100
let health_rating = health.base_max() as f32
let health_rating = health.base_max()
/ 100.0
/ (1.0 - Damage::compute_damage_reduction(Some(inventory), None, None)).max(0.00001);

View File

@ -209,9 +209,7 @@ impl<'a> System<'a> for Sys {
};
let amount = match *kind {
ModifierKind::Additive => *accumulated,
ModifierKind::Fractional => {
health.maximum() as f32 * *accumulated
},
ModifierKind::Fractional => health.maximum() * *accumulated,
};
server_emitter.emit(ServerEvent::HealthChange {
entity,
@ -248,8 +246,7 @@ impl<'a> System<'a> for Sys {
// Current fraction uses information from last tick, which is
// necessary as buffs from this tick are not guaranteed to have
// finished applying
let current_fraction =
health.maximum() as f32 / health.base_max() as f32;
let current_fraction = health.maximum() / health.base_max();
// If achieved_fraction not initialized, initialize it to health
// fraction

View File

@ -896,7 +896,7 @@ impl<'a> Widget for Bag<'a> {
* Damage::compute_damage_reduction(Some(inventory), Some(self.stats), None,))
as i32
);
let health_txt = format!("{}", (self.health.maximum() as f32 / 10.0) as usize);
let health_txt = format!("{}", self.health.maximum().round() as usize);
let energy_txt = format!("{}", (self.energy.maximum() as f32 / 10.0) as usize);
let combat_rating_txt = format!("{}", (combat_rating * 10.0) as usize);
let stun_res_txt = format!(

View File

@ -415,7 +415,7 @@ impl<'a> Widget for Group<'a> {
.top_left_with_margins_on(state.ids.member_panels_bg[i], 2.0, 2.0)
.set(state.ids.member_health[i], ui);
// Health Decay
let decayed_health = 1.0 - health.maximum() as f64 / health.base_max() as f64;
let decayed_health = f64::from(1.0 - health.maximum() / health.base_max());
if decayed_health > 0.0 {
let decay_bar_len = 148.0 * decayed_health;
Image::new(self.imgs.bar_content)

View File

@ -190,7 +190,7 @@ impl<'a> Widget for Overhead<'a> {
{
// Used to set healthbar colours based on hp_percentage
let hp_percentage = health.map_or(100.0, |h| {
h.current() as f64 / h.base_max().max(h.maximum()) as f64 * 100.0
f64::from(h.current() / h.base_max().max(h.maximum()) * 100.0)
});
// Compare levels to decide if a skull is shown
let health_current = health.map_or(1.0, |h| f64::from(h.current()));
@ -318,7 +318,7 @@ impl<'a> Widget for Overhead<'a> {
// Show HP Bar
let hp_ani = (self.pulse * 4.0/* speed factor */).cos() * 0.5 + 1.0; //Animation timer
let crit_hp_color: Color = Color::Rgba(0.93, 0.59, 0.03, hp_ani);
let decayed_health = 1.0 - health.maximum() as f64 / health.base_max() as f64;
let decayed_health = f64::from(1.0 - health.maximum() / health.base_max());
// Background
Image::new(if self.in_group {self.imgs.health_bar_group_bg} else {self.imgs.enemy_health_bg})
.w_h(84.0 * BARSIZE, 10.0 * BARSIZE)

View File

@ -139,7 +139,7 @@ pub fn consumable_desc(effects: &[Effect], i18n: &Localization) -> Vec<String> {
for effect in effects {
let mut description = String::new();
if let Effect::Buff(buff) = effect {
let strength = buff.data.strength * 0.1;
let strength = buff.data.strength;
let dur_secs = buff.data.duration.map(|d| d.as_secs_f32());
let str_total = dur_secs.map_or(strength, |secs| strength * secs);