atomising item use: hunger effect

This commit is contained in:
Llywelwyn 2023-08-17 01:16:35 +01:00
parent 18eae23a4c
commit 931f600625
13 changed files with 455 additions and 360 deletions

View file

@ -1,5 +1,5 @@
use super::{Entity, Targets, World};
use crate::{gamelog, Consumable};
use super::{add_effect, EffectType, Entity, Targets, World};
use crate::{gamelog, gui::item_colour_ecs, gui::obfuscate_name, Consumable, ProvidesNutrition};
use specs::prelude::*;
pub fn item_trigger(source: Option<Entity>, item: Entity, target: &Targets, ecs: &mut World) {
@ -12,5 +12,15 @@ pub fn item_trigger(source: Option<Entity>, item: Entity, target: &Targets, ecs:
}
fn event_trigger(source: Option<Entity>, entity: Entity, target: &Targets, ecs: &mut World) {
let logger = gamelog::Logger::new();
let mut logger = gamelog::Logger::new();
// Providing nutrition
if ecs.read_storage::<ProvidesNutrition>().get(entity).is_some() {
add_effect(source, EffectType::RestoreNutrition, target.clone());
logger = logger
.append("You eat the")
.append_n(obfuscate_name(ecs, entity).0)
.colour(item_colour_ecs(ecs, entity))
.period();
}
logger.log();
}