overlord_event_system/logic/
ratings.rs1use 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}