underworld_core 0.6.3

Small library to either play a game or assist in generating rooms
Documentation
use crate::{
    actions::SellPlayerItem,
    components::PlayerCharacter,
    errors::Error,
    events::{Event, PlayerItemRemoved},
    utils::ids::parse_id,
};

pub fn handle(
    sell_player_item: &SellPlayerItem,
    player: &PlayerCharacter,
) -> Result<Vec<Event>, Error> {
    let item_id = parse_id(&sell_player_item.item_id)?;
    let _ = match player.character.find_item(&item_id) {
        Some(it) => it,
        None => return Err(Error::ItemNotFoundError(item_id.to_string())),
    };

    Ok(vec![
        Event::PlayerItemRemoved(PlayerItemRemoved { item_id }),
        Event::PlayerGainedGold(1),
    ])
}