underworld_core/handlers/
sell_player_item.rs1use crate::{
2 actions::SellPlayerItem,
3 components::PlayerCharacter,
4 errors::Error,
5 events::{Event, PlayerItemRemoved},
6 utils::ids::parse_id,
7};
8
9pub fn handle(
10 sell_player_item: &SellPlayerItem,
11 player: &PlayerCharacter,
12) -> Result<Vec<Event>, Error> {
13 let item_id = parse_id(&sell_player_item.item_id)?;
14 let _ = match player.character.find_item(&item_id) {
15 Some(it) => it,
16 None => return Err(Error::ItemNotFoundError(item_id.to_string())),
17 };
18
19 Ok(vec![
20 Event::PlayerItemRemoved(PlayerItemRemoved { item_id }),
21 Event::PlayerGainedGold(1),
22 ])
23}