Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

final incidents, except for action card related incidents #179

Merged
merged 1 commit into from
Mar 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions client/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions client/src/action_buttons.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ use crate::payment_ui::Payment;
use crate::render_context::RenderContext;
use server::action::Action;
use server::city::City;
use server::content::advances_culture::{sports_options, theaters_options};
use server::content::advances_economy::tax_options;
use server::content::advances::culture::{sports_options, theaters_options};
use server::content::advances::economy::tax_options;
use server::content::custom_actions::{CustomAction, CustomActionType};
use server::game::GameState;
use server::playing_actions::{PlayingAction, PlayingActionType};
Expand Down
2 changes: 1 addition & 1 deletion client/src/city_ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ fn structure_selected(
draw_circle_lines(center.x, center.y, size, 3., h.highlight_type.color());
if is_mouse_button_pressed(MouseButton::Left) && is_in_circle(rc.mouse_pos(), center, size) {
let ActiveDialog::StructuresRequest(r) = &rc.state.active_dialog else {
panic!("invalid state");
panic!("Expected StructuresRequest");
};
Some(StateUpdate::OpenDialog(ActiveDialog::StructuresRequest(
r.clone().toggle((position, h.structure.clone())),
Expand Down
2 changes: 1 addition & 1 deletion client/src/client_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ impl State {
rotation: r.block.position.rotation,
})
} else {
panic!("invalid state");
panic!("ExploreResolution expected");
}
}
};
Expand Down
2 changes: 1 addition & 1 deletion client/src/payment_ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ impl Payment {

#[must_use]
pub fn new_gain(options: &PaymentOptions, name: &str) -> Payment {
let a = options.default.resource_amount();
let a = options.default.amount();
let mut available = ResourcePile::empty();
for r in options.possible_resource_types() {
available += ResourcePile::of(r, a);
Expand Down
18 changes: 9 additions & 9 deletions server/src/ability_initializer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return;
}
}
panic!("Invalid state");
panic!("Expected payment response");
},
)
}
Expand Down Expand Up @@ -393,7 +393,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return;
}
}
panic!("Invalid state");
panic!("Expected resource reward response");
},
)
}
Expand Down Expand Up @@ -424,7 +424,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return;
}
}
panic!("Invalid state");
panic!("Boolean request expected");
},
)
}
Expand All @@ -450,7 +450,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return (request.choices.clone(), reward);
}
}
panic!("Invalid state");
panic!("Advance request expected");
},
request,
gain_reward,
Expand Down Expand Up @@ -478,7 +478,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return (request.choices.clone(), reward, request.needed.clone());
}
}
panic!("Invalid state");
panic!("Position request expected");
},
request,
gain_reward,
Expand Down Expand Up @@ -506,7 +506,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return (request.choices.clone(), reward);
}
}
panic!("Invalid state");
panic!("Player request expected");
},
request,
gain_reward,
Expand Down Expand Up @@ -534,7 +534,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return (request.choices.clone(), reward);
}
}
panic!("Invalid state");
panic!("Unit type request expected");
},
request,
gain_reward,
Expand Down Expand Up @@ -566,7 +566,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
);
}
}
panic!("Invalid state");
panic!("Units request expected");
},
request,
move |game, c| {
Expand Down Expand Up @@ -598,7 +598,7 @@ pub(crate) trait AbilityInitializerSetup: Sized {
return (request.choices.clone(), choices, request.needed.clone());
}
}
panic!("Invalid state");
panic!("Structures request expected");
},
request,
structures_selected,
Expand Down
20 changes: 0 additions & 20 deletions server/src/content.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,7 @@
pub mod advances;
mod advances_agriculture;
mod advances_autocracy;
mod advances_construction;
pub mod advances_culture;
mod advances_democracy;
pub mod advances_economy;
mod advances_education;
mod advances_science;
mod advances_seafearing;
mod advances_spirituality;
mod advances_theocracy;
mod advances_warfare;
pub mod builtin;
pub mod civilizations;
pub mod custom_actions;
pub mod custom_phase_actions;
mod incidects_civil_war;
pub mod incidents;
mod incidents_5;
mod incidents_earthquake;
mod incidents_famine;
mod incidents_good_year;
mod incidents_trade;
mod incidents_trojan;
pub mod trade_routes;
pub mod wonders;
38 changes: 26 additions & 12 deletions server/src/content/advances.rs
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
mod agriculture;
mod autocracy;
mod construction;
pub mod culture;
mod democracy;
pub mod economy;
mod education;
mod science;
mod seafearing;
mod spirituality;
mod theocracy;
pub mod trade_routes;
mod warfare;

use crate::advance::Advance;
use crate::advance::AdvanceBuilder;
use crate::content::advances_agriculture::agriculture;
use crate::content::advances_autocracy::autocracy;
use crate::content::advances_construction::construction;
use crate::content::advances_culture::culture;
use crate::content::advances_democracy::democracy;
use crate::content::advances_economy::economy;
use crate::content::advances_education::education;
use crate::content::advances_science::science;
use crate::content::advances_seafearing::seafaring;
use crate::content::advances_spirituality::spirituality;
use crate::content::advances_theocracy::theocracy;
use crate::content::advances_warfare::warfare;
use crate::content::advances::agriculture::agriculture;
use crate::content::advances::autocracy::autocracy;
use crate::content::advances::construction::construction;
use crate::content::advances::culture::culture;
use crate::content::advances::democracy::democracy;
use crate::content::advances::economy::economy;
use crate::content::advances::education::education;
use crate::content::advances::science::science;
use crate::content::advances::seafearing::seafaring;
use crate::content::advances::spirituality::spirituality;
use crate::content::advances::theocracy::theocracy;
use crate::content::advances::warfare::warfare;
use std::vec;

//names of advances that need special handling
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ use crate::ability_initializer::AbilityInitializerSetup;
use crate::advance::Bonus::{CultureToken, MoodToken};
use crate::advance::{Advance, AdvanceBuilder};
use crate::city_pieces::Building::Market;
use crate::content::advances::trade_routes::{trade_route_log, trade_route_reward, TradeRoute};
use crate::content::advances::{advance_group_builder, AdvanceGroup, CURRENCY};
use crate::content::custom_actions::CustomActionType::Taxes;
use crate::content::custom_phase_actions::ResourceRewardRequest;
use crate::content::trade_routes::{trade_route_log, trade_route_reward, TradeRoute};
use crate::game::Game;
use crate::payment::PaymentOptions;
use crate::player::Player;
Expand Down
4 changes: 2 additions & 2 deletions server/src/content/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ use crate::barbarians::barbarians_bonus;
use crate::combat_listeners::{
choose_carried_units_casualties, choose_fighter_casualties, offer_retreat, place_settler,
};
use crate::content::incidents_famine::pestilence_permanent_effect;
use crate::content::incidents_trojan::{
use crate::content::incidents::famine::pestilence_permanent_effect;
use crate::content::incidents::trojan::{
activate_trojan_horse, anarchy_advance, decide_trojan_horse, solar_eclipse_end_combat,
};
use crate::cultural_influence::cultural_influence_resolution;
Expand Down
6 changes: 3 additions & 3 deletions server/src/content/custom_actions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ use serde::{Deserialize, Serialize};

use crate::action::Action;
use crate::collect::collect;
use crate::content::advances_culture::{execute_sports, execute_theaters};
use crate::content::advances_economy::collect_taxes;
use crate::content::advances::culture::{execute_sports, execute_theaters};
use crate::content::advances::economy::collect_taxes;
use crate::content::wonders::construct_wonder;
use crate::cultural_influence::influence_culture_attempt;
use crate::log::{
Expand Down Expand Up @@ -128,7 +128,7 @@ impl CustomAction {
format!("{} using Free Economy", format_collect_log_item(player, player_name, c)),
CustomAction::Sports { city_position, payment } =>
format!("{player_name} paid {payment} to increase the happiness in {} using Sports",
format_city_happiness_increase(player, *city_position, payment.resource_amount())),
format_city_happiness_increase(player, *city_position, payment.amount())),
CustomAction::Taxes(r) =>
format!("{player_name} paid 1 mood token to collect {r} using Taxes"),
CustomAction::Theaters(r) =>
Expand Down
10 changes: 9 additions & 1 deletion server/src/content/custom_phase_actions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,9 @@ pub struct CurrentEventPlayer {
#[serde(default)]
#[serde(skip_serializing_if = "u8::is_zero")]
pub sacrifice: u8,
#[serde(default)]
#[serde(skip_serializing_if = "u8::is_zero")]
pub myths_payment: u8,
}

impl CurrentEventPlayer {
Expand All @@ -153,6 +156,7 @@ impl CurrentEventPlayer {
payment: ResourcePile::empty(),
must_reduce_mood: vec![],
sacrifice: 0,
myths_payment: 0,
}
}
}
Expand Down Expand Up @@ -190,17 +194,21 @@ pub struct CurrentEventState {
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub selected_player: Option<usize>,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub selected_position: Option<Position>,
}

impl CurrentEventState {
#[must_use]
pub fn new(current_player: usize, event_type: CurrentEventType) -> Self {
Self {
event_type,
players_used: vec![],
player: CurrentEventPlayer::new(current_player),
barbarians: None,
selected_player: None,
event_type,
selected_position: None,
}
}
}
Expand Down
44 changes: 22 additions & 22 deletions server/src/content/incidents.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
use crate::content::incidects_civil_war::civil_wars;
use crate::content::incidents_5::successful_year;
use crate::content::incidents_earthquake::earthquakes;
use crate::content::incidents_famine::{epidemics, famines, pestilence};
use crate::content::incidents_good_year::{
awesome_years, fantastic_years, good_years, population_booms,
};
use crate::content::incidents_trade::trades;
use crate::content::incidents_trojan::trojan_incidents;
mod civil_war;
mod earthquake;
pub(crate) mod famine;
mod good_year;
mod pandemics;
mod trade;
pub(crate) mod trojan;

use crate::content::incidents::civil_war::civil_war_incidents;
use crate::content::incidents::earthquake::earthquake_incidents;
use crate::content::incidents::famine::pestilence_incidents;
use crate::content::incidents::good_year::good_years_incidents;
use crate::content::incidents::pandemics::pandemics_incidents;
use crate::content::incidents::trade::trade_incidents;
use crate::content::incidents::trojan::trojan_incidents;
use crate::incident::Incident;
use itertools::Itertools;
use std::vec;
Expand All @@ -15,25 +21,19 @@ use std::vec;
pub(crate) fn get_all() -> Vec<Incident> {
let all = vec![
// 1+
pestilence(),
epidemics(),
famines(),
pestilence_incidents(),
// 9+
good_years(),
awesome_years(),
fantastic_years(),
// 27+
population_booms(),
good_years_incidents(),
// 29+
earthquakes(),
earthquake_incidents(),
// 34+
civil_wars(),
civil_war_incidents(),
// 41+
trojan_incidents(),
// 45+
trades(),
// 51+
successful_year(),
trade_incidents(),
// 49+
pandemics_incidents(),
// 18+
// great persons
]
Expand Down
Loading