overlord_event_system/logic/
ratings.rs

1use crate::{event::OverlordEvent, logic::handler::OverlordLogic, state::OverlordState};
2use essences::ratings::RatingRewardAvailability;
3use event_system::system::EventHandleResult;
4
5impl OverlordLogic {
6    pub fn handle_set_rating_reward_availability(
7        &self,
8        availability: RatingRewardAvailability,
9        mut state: OverlordState,
10    ) -> EventHandleResult<OverlordEvent, OverlordState> {
11        if let Some(existing) = state
12            .rating_reward_availability
13            .iter_mut()
14            .find(|existing| existing.rating_type == availability.rating_type)
15        {
16            *existing = availability;
17        } else {
18            state.rating_reward_availability.push(availability);
19        }
20        EventHandleResult::ok(state)
21    }
22}