better attributes
This commit is contained in:
parent
1e5f565824
commit
4d614daad5
12 changed files with 95 additions and 137 deletions
|
|
@ -352,39 +352,7 @@ pub fn setup_player_class(ecs: &mut World, class: Class, ancestry: Ancestry) {
|
|||
let mut attributes = ecs.write_storage::<Attributes>();
|
||||
let (str, dex, con, int, wis, cha) = get_attribute_rolls(&mut rng, class, ancestry);
|
||||
attributes
|
||||
.insert(player, Attributes {
|
||||
strength: Attribute {
|
||||
base: str,
|
||||
modifiers: 0,
|
||||
bonus: attr_bonus(str),
|
||||
exercise: 0,
|
||||
},
|
||||
dexterity: Attribute {
|
||||
base: dex,
|
||||
modifiers: 0,
|
||||
bonus: attr_bonus(dex),
|
||||
exercise: 0,
|
||||
},
|
||||
constitution: Attribute {
|
||||
base: con,
|
||||
modifiers: 0,
|
||||
bonus: attr_bonus(con),
|
||||
exercise: 0,
|
||||
},
|
||||
intelligence: Attribute {
|
||||
base: int,
|
||||
modifiers: 0,
|
||||
bonus: attr_bonus(int),
|
||||
exercise: 0,
|
||||
},
|
||||
wisdom: Attribute { base: wis, modifiers: 0, bonus: attr_bonus(wis), exercise: 0 },
|
||||
charisma: Attribute {
|
||||
base: cha,
|
||||
modifiers: 0,
|
||||
bonus: attr_bonus(cha),
|
||||
exercise: 0,
|
||||
},
|
||||
})
|
||||
.insert(player, Attributes::with_stats(str, dex, con, int, wis, cha))
|
||||
.expect("Unable to insert attributes component");
|
||||
|
||||
let mut pools = ecs.write_storage::<Pools>();
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ pub fn draw_ui2(
|
|||
}
|
||||
}
|
||||
let armour_class =
|
||||
stats.bac - attributes.dexterity.bonus / 2 - skill_ac_bonus - armour_ac_bonus;
|
||||
stats.bac - attributes.dexterity.modifier() / 2 - skill_ac_bonus - armour_ac_bonus;
|
||||
draw.text(&font, "AC").position(x, row1).color(Color::PINK).size(FONTSIZE);
|
||||
x = draw.last_text_bounds().max_x();
|
||||
draw.text(&font, &format!("{}", armour_class)).position(x, row1).size(FONTSIZE);
|
||||
|
|
@ -340,7 +340,7 @@ pub fn draw_ui2(
|
|||
&format!(
|
||||
"[{:.1}/{} lbs]",
|
||||
stats.weight,
|
||||
(attributes.strength.base + attributes.strength.modifiers) *
|
||||
(attributes.strength.base + attributes.strength.bonuses) *
|
||||
CARRY_CAPACITY_PER_STRENGTH
|
||||
)
|
||||
)
|
||||
|
|
@ -405,7 +405,7 @@ pub fn draw_ui(ecs: &World, ctx: &mut BTerm) {
|
|||
}
|
||||
}
|
||||
let armour_class =
|
||||
stats.bac - attributes.dexterity.bonus / 2 - skill_ac_bonus - armour_ac_bonus;
|
||||
stats.bac - attributes.dexterity.modifier() / 2 - skill_ac_bonus - armour_ac_bonus;
|
||||
ctx.print_color(26 * TEXT_FONT_MOD, 53, RGB::named(PINK), RGB::named(BLACK), "AC");
|
||||
ctx.print_color(28 * TEXT_FONT_MOD, 53, RGB::named(WHITE), RGB::named(BLACK), armour_class);
|
||||
// Draw level
|
||||
|
|
@ -607,7 +607,7 @@ pub fn draw_ui(ecs: &World, ctx: &mut BTerm) {
|
|||
&format!(
|
||||
"[{:.1}/{} lbs]",
|
||||
stats.weight,
|
||||
(attributes.strength.base + attributes.strength.modifiers) *
|
||||
(attributes.strength.base + attributes.strength.bonuses) *
|
||||
CARRY_CAPACITY_PER_STRENGTH
|
||||
)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -118,18 +118,18 @@ pub fn draw_tooltips(ecs: &World, ctx: &mut BTerm, xy: Option<(i32, i32)>) {
|
|||
let attr = attributes.get(entity);
|
||||
if let Some(a) = attr {
|
||||
let mut s = "".to_string();
|
||||
if a.strength.bonus < -2 { s += "weak "};
|
||||
if a.strength.bonus > 2 { s += "strong "};
|
||||
if a.dexterity.bonus < -2 { s += "clumsy "};
|
||||
if a.dexterity.bonus > 2 { s += "agile "};
|
||||
if a.constitution.bonus < -2 { s += "frail "};
|
||||
if a.constitution.bonus > 2 { s += "hardy "};
|
||||
if a.intelligence.bonus < -2 { s += "dim "};
|
||||
if a.intelligence.bonus > 2 { s += "smart "};
|
||||
if a.wisdom.bonus < -2 { s += "unwise "};
|
||||
if a.wisdom.bonus > 2 { s += "wisened "};
|
||||
if a.charisma.bonus < -2 { s += "ugly"};
|
||||
if a.charisma.bonus > 2 { s += "attractive"};
|
||||
if a.strength.modifier() < -2 { s += "weak "};
|
||||
if a.strength.modifier() > 2 { s += "strong "};
|
||||
if a.dexterity.modifier() < -2 { s += "clumsy "};
|
||||
if a.dexterity.modifier() > 2 { s += "agile "};
|
||||
if a.constitution.modifier() < -2 { s += "frail "};
|
||||
if a.constitution.modifier() > 2 { s += "hardy "};
|
||||
if a.intelligence.modifier() < -2 { s += "dim "};
|
||||
if a.intelligence.modifier() > 2 { s += "smart "};
|
||||
if a.wisdom.modifier() < -2 { s += "unwise "};
|
||||
if a.wisdom.modifier() > 2 { s += "wisened "};
|
||||
if a.charisma.modifier() < -2 { s += "ugly"};
|
||||
if a.charisma.modifier() > 2 { s += "attractive"};
|
||||
if !s.is_empty() {
|
||||
if s.ends_with(" ") {
|
||||
s.pop();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue