Recover real packed event descriptor semantics
This commit is contained in:
parent
f918d0c4f7
commit
eb6c4833af
9 changed files with 719 additions and 120 deletions
|
|
@ -4,8 +4,7 @@ use serde::{Deserialize, Serialize};
|
|||
|
||||
use crate::{
|
||||
RuntimeCompanyControllerKind, RuntimeCompanyTarget, RuntimeEffect, RuntimeEventRecordTemplate,
|
||||
RuntimeState, RuntimeSummary,
|
||||
calendar::BoundaryEventKind,
|
||||
RuntimeState, RuntimeSummary, calendar::BoundaryEventKind,
|
||||
};
|
||||
|
||||
const PERIODIC_TRIGGER_KIND_ORDER: [u8; 6] = [1, 0, 3, 2, 5, 4];
|
||||
|
|
@ -286,6 +285,20 @@ fn apply_runtime_effects(
|
|||
RuntimeEffect::SetWorldFlag { key, value } => {
|
||||
state.world_flags.insert(key.clone(), *value);
|
||||
}
|
||||
RuntimeEffect::SetCompanyCash { target, value } => {
|
||||
let company_ids = resolve_company_target_ids(state, target)?;
|
||||
for company_id in company_ids {
|
||||
let company = state
|
||||
.companies
|
||||
.iter_mut()
|
||||
.find(|company| company.company_id == company_id)
|
||||
.ok_or_else(|| {
|
||||
format!("missing company_id {company_id} while applying cash effect")
|
||||
})?;
|
||||
company.current_cash = *value;
|
||||
mutated_company_ids.insert(company_id);
|
||||
}
|
||||
}
|
||||
RuntimeEffect::AdjustCompanyCash { target, delta } => {
|
||||
let company_ids = resolve_company_target_ids(state, target)?;
|
||||
for company_id in company_ids {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue