Skip to content

Commit 145f075

Browse files
authored
final incidents, except for action card related incidents (#179)
1 parent aa072ba commit 145f075

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+6728
-919
lines changed

client/Cargo.lock

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/src/action_buttons.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ use crate::payment_ui::Payment;
1111
use crate::render_context::RenderContext;
1212
use server::action::Action;
1313
use server::city::City;
14-
use server::content::advances_culture::{sports_options, theaters_options};
15-
use server::content::advances_economy::tax_options;
14+
use server::content::advances::culture::{sports_options, theaters_options};
15+
use server::content::advances::economy::tax_options;
1616
use server::content::custom_actions::{CustomAction, CustomActionType};
1717
use server::game::GameState;
1818
use server::playing_actions::{PlayingAction, PlayingActionType};

client/src/city_ui.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ fn structure_selected(
255255
draw_circle_lines(center.x, center.y, size, 3., h.highlight_type.color());
256256
if is_mouse_button_pressed(MouseButton::Left) && is_in_circle(rc.mouse_pos(), center, size) {
257257
let ActiveDialog::StructuresRequest(r) = &rc.state.active_dialog else {
258-
panic!("invalid state");
258+
panic!("Expected StructuresRequest");
259259
};
260260
Some(StateUpdate::OpenDialog(ActiveDialog::StructuresRequest(
261261
r.clone().toggle((position, h.structure.clone())),

client/src/client_state.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ impl State {
547547
rotation: r.block.position.rotation,
548548
})
549549
} else {
550-
panic!("invalid state");
550+
panic!("ExploreResolution expected");
551551
}
552552
}
553553
};

client/src/payment_ui.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ impl Payment {
6060

6161
#[must_use]
6262
pub fn new_gain(options: &PaymentOptions, name: &str) -> Payment {
63-
let a = options.default.resource_amount();
63+
let a = options.default.amount();
6464
let mut available = ResourcePile::empty();
6565
for r in options.possible_resource_types() {
6666
available += ResourcePile::of(r, a);

server/src/ability_initializer.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
328328
return;
329329
}
330330
}
331-
panic!("Invalid state");
331+
panic!("Expected payment response");
332332
},
333333
)
334334
}
@@ -393,7 +393,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
393393
return;
394394
}
395395
}
396-
panic!("Invalid state");
396+
panic!("Expected resource reward response");
397397
},
398398
)
399399
}
@@ -424,7 +424,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
424424
return;
425425
}
426426
}
427-
panic!("Invalid state");
427+
panic!("Boolean request expected");
428428
},
429429
)
430430
}
@@ -450,7 +450,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
450450
return (request.choices.clone(), reward);
451451
}
452452
}
453-
panic!("Invalid state");
453+
panic!("Advance request expected");
454454
},
455455
request,
456456
gain_reward,
@@ -478,7 +478,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
478478
return (request.choices.clone(), reward, request.needed.clone());
479479
}
480480
}
481-
panic!("Invalid state");
481+
panic!("Position request expected");
482482
},
483483
request,
484484
gain_reward,
@@ -506,7 +506,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
506506
return (request.choices.clone(), reward);
507507
}
508508
}
509-
panic!("Invalid state");
509+
panic!("Player request expected");
510510
},
511511
request,
512512
gain_reward,
@@ -534,7 +534,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
534534
return (request.choices.clone(), reward);
535535
}
536536
}
537-
panic!("Invalid state");
537+
panic!("Unit type request expected");
538538
},
539539
request,
540540
gain_reward,
@@ -566,7 +566,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
566566
);
567567
}
568568
}
569-
panic!("Invalid state");
569+
panic!("Units request expected");
570570
},
571571
request,
572572
move |game, c| {
@@ -598,7 +598,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
598598
return (request.choices.clone(), choices, request.needed.clone());
599599
}
600600
}
601-
panic!("Invalid state");
601+
panic!("Structures request expected");
602602
},
603603
request,
604604
structures_selected,

server/src/content.rs

-20
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,7 @@
11
pub mod advances;
2-
mod advances_agriculture;
3-
mod advances_autocracy;
4-
mod advances_construction;
5-
pub mod advances_culture;
6-
mod advances_democracy;
7-
pub mod advances_economy;
8-
mod advances_education;
9-
mod advances_science;
10-
mod advances_seafearing;
11-
mod advances_spirituality;
12-
mod advances_theocracy;
13-
mod advances_warfare;
142
pub mod builtin;
153
pub mod civilizations;
164
pub mod custom_actions;
175
pub mod custom_phase_actions;
18-
mod incidects_civil_war;
196
pub mod incidents;
20-
mod incidents_5;
21-
mod incidents_earthquake;
22-
mod incidents_famine;
23-
mod incidents_good_year;
24-
mod incidents_trade;
25-
mod incidents_trojan;
26-
pub mod trade_routes;
277
pub mod wonders;

server/src/content/advances.rs

+26-12
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,31 @@
1+
mod agriculture;
2+
mod autocracy;
3+
mod construction;
4+
pub mod culture;
5+
mod democracy;
6+
pub mod economy;
7+
mod education;
8+
mod science;
9+
mod seafearing;
10+
mod spirituality;
11+
mod theocracy;
12+
pub mod trade_routes;
13+
mod warfare;
14+
115
use crate::advance::Advance;
216
use crate::advance::AdvanceBuilder;
3-
use crate::content::advances_agriculture::agriculture;
4-
use crate::content::advances_autocracy::autocracy;
5-
use crate::content::advances_construction::construction;
6-
use crate::content::advances_culture::culture;
7-
use crate::content::advances_democracy::democracy;
8-
use crate::content::advances_economy::economy;
9-
use crate::content::advances_education::education;
10-
use crate::content::advances_science::science;
11-
use crate::content::advances_seafearing::seafaring;
12-
use crate::content::advances_spirituality::spirituality;
13-
use crate::content::advances_theocracy::theocracy;
14-
use crate::content::advances_warfare::warfare;
17+
use crate::content::advances::agriculture::agriculture;
18+
use crate::content::advances::autocracy::autocracy;
19+
use crate::content::advances::construction::construction;
20+
use crate::content::advances::culture::culture;
21+
use crate::content::advances::democracy::democracy;
22+
use crate::content::advances::economy::economy;
23+
use crate::content::advances::education::education;
24+
use crate::content::advances::science::science;
25+
use crate::content::advances::seafearing::seafaring;
26+
use crate::content::advances::spirituality::spirituality;
27+
use crate::content::advances::theocracy::theocracy;
28+
use crate::content::advances::warfare::warfare;
1529
use std::vec;
1630

1731
//names of advances that need special handling
File renamed without changes.

server/src/content/advances_economy.rs server/src/content/advances/economy.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ use crate::ability_initializer::AbilityInitializerSetup;
22
use crate::advance::Bonus::{CultureToken, MoodToken};
33
use crate::advance::{Advance, AdvanceBuilder};
44
use crate::city_pieces::Building::Market;
5+
use crate::content::advances::trade_routes::{trade_route_log, trade_route_reward, TradeRoute};
56
use crate::content::advances::{advance_group_builder, AdvanceGroup, CURRENCY};
67
use crate::content::custom_actions::CustomActionType::Taxes;
78
use crate::content::custom_phase_actions::ResourceRewardRequest;
8-
use crate::content::trade_routes::{trade_route_log, trade_route_reward, TradeRoute};
99
use crate::game::Game;
1010
use crate::payment::PaymentOptions;
1111
use crate::player::Player;
File renamed without changes.
File renamed without changes.
File renamed without changes.

server/src/content/builtin.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use crate::barbarians::barbarians_bonus;
44
use crate::combat_listeners::{
55
choose_carried_units_casualties, choose_fighter_casualties, offer_retreat, place_settler,
66
};
7-
use crate::content::incidents_famine::pestilence_permanent_effect;
8-
use crate::content::incidents_trojan::{
7+
use crate::content::incidents::famine::pestilence_permanent_effect;
8+
use crate::content::incidents::trojan::{
99
activate_trojan_horse, anarchy_advance, decide_trojan_horse, solar_eclipse_end_combat,
1010
};
1111
use crate::cultural_influence::cultural_influence_resolution;

server/src/content/custom_actions.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use serde::{Deserialize, Serialize};
22

33
use crate::action::Action;
44
use crate::collect::collect;
5-
use crate::content::advances_culture::{execute_sports, execute_theaters};
6-
use crate::content::advances_economy::collect_taxes;
5+
use crate::content::advances::culture::{execute_sports, execute_theaters};
6+
use crate::content::advances::economy::collect_taxes;
77
use crate::content::wonders::construct_wonder;
88
use crate::cultural_influence::influence_culture_attempt;
99
use crate::log::{
@@ -128,7 +128,7 @@ impl CustomAction {
128128
format!("{} using Free Economy", format_collect_log_item(player, player_name, c)),
129129
CustomAction::Sports { city_position, payment } =>
130130
format!("{player_name} paid {payment} to increase the happiness in {} using Sports",
131-
format_city_happiness_increase(player, *city_position, payment.resource_amount())),
131+
format_city_happiness_increase(player, *city_position, payment.amount())),
132132
CustomAction::Taxes(r) =>
133133
format!("{player_name} paid 1 mood token to collect {r} using Taxes"),
134134
CustomAction::Theaters(r) =>

server/src/content/custom_phase_actions.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ pub struct CurrentEventPlayer {
141141
#[serde(default)]
142142
#[serde(skip_serializing_if = "u8::is_zero")]
143143
pub sacrifice: u8,
144+
#[serde(default)]
145+
#[serde(skip_serializing_if = "u8::is_zero")]
146+
pub myths_payment: u8,
144147
}
145148

146149
impl CurrentEventPlayer {
@@ -153,6 +156,7 @@ impl CurrentEventPlayer {
153156
payment: ResourcePile::empty(),
154157
must_reduce_mood: vec![],
155158
sacrifice: 0,
159+
myths_payment: 0,
156160
}
157161
}
158162
}
@@ -190,17 +194,21 @@ pub struct CurrentEventState {
190194
#[serde(default)]
191195
#[serde(skip_serializing_if = "Option::is_none")]
192196
pub selected_player: Option<usize>,
197+
#[serde(default)]
198+
#[serde(skip_serializing_if = "Option::is_none")]
199+
pub selected_position: Option<Position>,
193200
}
194201

195202
impl CurrentEventState {
196203
#[must_use]
197204
pub fn new(current_player: usize, event_type: CurrentEventType) -> Self {
198205
Self {
206+
event_type,
199207
players_used: vec![],
200208
player: CurrentEventPlayer::new(current_player),
201209
barbarians: None,
202210
selected_player: None,
203-
event_type,
211+
selected_position: None,
204212
}
205213
}
206214
}

server/src/content/incidents.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
1-
use crate::content::incidects_civil_war::civil_wars;
2-
use crate::content::incidents_5::successful_year;
3-
use crate::content::incidents_earthquake::earthquakes;
4-
use crate::content::incidents_famine::{epidemics, famines, pestilence};
5-
use crate::content::incidents_good_year::{
6-
awesome_years, fantastic_years, good_years, population_booms,
7-
};
8-
use crate::content::incidents_trade::trades;
9-
use crate::content::incidents_trojan::trojan_incidents;
1+
mod civil_war;
2+
mod earthquake;
3+
pub(crate) mod famine;
4+
mod good_year;
5+
mod pandemics;
6+
mod trade;
7+
pub(crate) mod trojan;
8+
9+
use crate::content::incidents::civil_war::civil_war_incidents;
10+
use crate::content::incidents::earthquake::earthquake_incidents;
11+
use crate::content::incidents::famine::pestilence_incidents;
12+
use crate::content::incidents::good_year::good_years_incidents;
13+
use crate::content::incidents::pandemics::pandemics_incidents;
14+
use crate::content::incidents::trade::trade_incidents;
15+
use crate::content::incidents::trojan::trojan_incidents;
1016
use crate::incident::Incident;
1117
use itertools::Itertools;
1218
use std::vec;
@@ -15,25 +21,19 @@ use std::vec;
1521
pub(crate) fn get_all() -> Vec<Incident> {
1622
let all = vec![
1723
// 1+
18-
pestilence(),
19-
epidemics(),
20-
famines(),
24+
pestilence_incidents(),
2125
// 9+
22-
good_years(),
23-
awesome_years(),
24-
fantastic_years(),
25-
// 27+
26-
population_booms(),
26+
good_years_incidents(),
2727
// 29+
28-
earthquakes(),
28+
earthquake_incidents(),
2929
// 34+
30-
civil_wars(),
30+
civil_war_incidents(),
3131
// 41+
3232
trojan_incidents(),
3333
// 45+
34-
trades(),
35-
// 51+
36-
successful_year(),
34+
trade_incidents(),
35+
// 49+
36+
pandemics_incidents(),
3737
// 18+
3838
// great persons
3939
]

0 commit comments

Comments
 (0)