log colour tweaks
This commit is contained in:
parent
911873127d
commit
dd4e0aaee4
2 changed files with 27 additions and 6 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
use super::{add_effect, EffectType, Entity, Targets, World};
|
use super::{add_effect, spatial, EffectType, Entity, Targets, World};
|
||||||
use crate::{
|
use crate::{
|
||||||
gamelog, gui::item_colour_ecs, gui::obfuscate_name_ecs, Consumable, Cursed, InflictsDamage, MagicMapper,
|
gamelog, gui::item_colour_ecs, gui::obfuscate_name_ecs, Consumable, Cursed, InflictsDamage, MagicMapper, Prop,
|
||||||
ProvidesHealing, ProvidesNutrition, RandomNumberGenerator, RunState,
|
ProvidesHealing, ProvidesNutrition, RandomNumberGenerator, Renderable, RunState,
|
||||||
};
|
};
|
||||||
use rltk::prelude::*;
|
use rltk::prelude::*;
|
||||||
use specs::prelude::*;
|
use specs::prelude::*;
|
||||||
|
|
@ -95,10 +95,19 @@ fn handle_damage(ecs: &mut World, event: &mut EventInfo, mut logger: gamelog::Lo
|
||||||
let roll = rng.roll_dice(damage_item.n_dice, damage_item.sides) + damage_item.modifier;
|
let roll = rng.roll_dice(damage_item.n_dice, damage_item.sides) + damage_item.modifier;
|
||||||
add_effect(event.source, EffectType::Damage { amount: roll }, event.target.clone());
|
add_effect(event.source, EffectType::Damage { amount: roll }, event.target.clone());
|
||||||
for target in get_entity_targets(&event.target) {
|
for target in get_entity_targets(&event.target) {
|
||||||
|
if ecs.read_storage::<Prop>().get(target).is_some() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let fg = if let Some(renderable) = ecs.read_storage::<Renderable>().get(target) {
|
||||||
|
((renderable.fg.r * 255.0) as u8, (renderable.fg.g * 255.0) as u8, (renderable.fg.b * 255.0) as u8)
|
||||||
|
} else {
|
||||||
|
WHITE
|
||||||
|
};
|
||||||
logger = logger
|
logger = logger
|
||||||
.append("The")
|
.append("The")
|
||||||
.colour(item_colour_ecs(ecs, target))
|
.colour(fg)
|
||||||
.append(obfuscate_name_ecs(ecs, target).0)
|
.append(obfuscate_name_ecs(ecs, target).0)
|
||||||
|
.colour(WHITE)
|
||||||
.append("is hit!");
|
.append("is hit!");
|
||||||
event.log = true;
|
event.log = true;
|
||||||
}
|
}
|
||||||
|
|
@ -107,11 +116,23 @@ fn handle_damage(ecs: &mut World, event: &mut EventInfo, mut logger: gamelog::Lo
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_entity_targets(target: &Targets) -> Vec<Entity> {
|
fn get_entity_targets(target: &Targets) -> Vec<Entity> {
|
||||||
|
rltk::console::log("ayo");
|
||||||
let mut entities: Vec<Entity> = Vec::new();
|
let mut entities: Vec<Entity> = Vec::new();
|
||||||
match target {
|
match target {
|
||||||
Targets::Entity { target } => entities.push(*target),
|
Targets::Entity { target } => entities.push(*target),
|
||||||
Targets::EntityList { targets } => targets.iter().for_each(|target| entities.push(*target)),
|
Targets::EntityList { targets } => targets.iter().for_each(|target| entities.push(*target)),
|
||||||
_ => {}
|
Targets::Tile { target } => {
|
||||||
|
spatial::for_each_tile_content(*target, |entity| {
|
||||||
|
entities.push(entity);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Targets::TileList { targets } => {
|
||||||
|
targets.iter().for_each(|target| {
|
||||||
|
spatial::for_each_tile_content(*target, |entity| {
|
||||||
|
entities.push(entity);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return entities;
|
return entities;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ pub fn player(ecs: &mut World, player_x: i32, player_y: i32) -> Entity {
|
||||||
raws::spawn_named_entity(
|
raws::spawn_named_entity(
|
||||||
&raws::RAWS.lock().unwrap(),
|
&raws::RAWS.lock().unwrap(),
|
||||||
ecs,
|
ecs,
|
||||||
"scroll_confusion",
|
"scroll_fireball",
|
||||||
raws::SpawnType::Carried { by: player },
|
raws::SpawnType::Carried { by: player },
|
||||||
0,
|
0,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue