mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Init BA base crystal order on startup if possible, change it occasionally
This commit is contained in:
@@ -2,7 +2,7 @@ mod cubes_json;
|
||||
pub use cubes_json::CubeConfig;
|
||||
|
||||
mod traits;
|
||||
pub use traits::{ConfigProvider, DevMessageProvider, ServerConfig, GarageUpgrades, GarageUpgradeIncrement, ChatSystemConfig, GameEventSequence, GameEvents, GameRotationStrategy, GameEvent, GameMap, GameVisibility, GameType, SingleplayerConfig, VehicleInfo, VehicleDescriptor, QueueChangeMode, Point, Sphere, MapConfig, LinksConfig, FakePlayer, ClientEmulator, EnergyConfig, BattleArenaResolver, PitSettings, PitWinCondition, TeamDeathMatchSettings, ShopEntriesResolver, ShopAction, ShopGain, PromoCode, MultiplayerSettings};
|
||||
pub use traits::{ConfigProvider, DevMessageProvider, ServerConfig, GarageUpgrades, GarageUpgradeIncrement, ChatSystemConfig, GameEventSequence, GameEvents, GameRotationStrategy, GameEvent, GameMap, GameVisibility, GameType, SingleplayerConfig, VehicleInfo, VehicleDescriptor, QueueChangeMode, Point, Sphere, MapConfig, LinksConfig, FakePlayer, ClientEmulator, EnergyConfig, BattleArenaResolver, PitSettings, PitWinCondition, TeamDeathMatchSettings, ShopEntriesResolver, ShopAction, ShopGain, PromoCode, MultiplayerSettings, BattleArenaCrystalParams};
|
||||
|
||||
mod validation;
|
||||
pub use validation::{SelfValidator, ValidationInfo, ValidationMessage};
|
||||
|
||||
@@ -412,6 +412,28 @@ impl BattleArenaResolver {
|
||||
],
|
||||
}))
|
||||
}
|
||||
|
||||
pub fn resolve_base_machine_immediate_early(&self) -> Option<Vec<u8>> {
|
||||
match &self.data.base.id {
|
||||
crate::persist::PrefabId::Raw { cube_data, .. } => {
|
||||
Some(cube_data.to_owned())
|
||||
},
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn crystal_sort_params(&self) -> BattleArenaCrystalParams {
|
||||
BattleArenaCrystalParams {
|
||||
max_iterations: self.data.max_base_iterations as usize,
|
||||
max_random_iterations: self.data.max_base_random_iterations as usize,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct BattleArenaCrystalParams {
|
||||
pub max_iterations: usize,
|
||||
pub max_random_iterations: usize,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
||||
@@ -197,8 +197,8 @@ pub(super) fn default_fake_users() -> Vec<FakePlayerConf> {
|
||||
},
|
||||
},
|
||||
implementation: ClientEmulation::ClientAI,
|
||||
},*/
|
||||
/*FakePlayerConf {
|
||||
},
|
||||
FakePlayerConf {
|
||||
team: None,
|
||||
vehicle: super::garage::PrefabVehicle {
|
||||
name: Some("fake3".to_owned()),
|
||||
@@ -221,6 +221,54 @@ pub(super) fn default_fake_users() -> Vec<FakePlayerConf> {
|
||||
},
|
||||
},
|
||||
implementation: ClientEmulation::ClientAI,
|
||||
},
|
||||
FakePlayerConf {
|
||||
team: None,
|
||||
vehicle: super::garage::PrefabVehicle {
|
||||
name: Some("fake5".to_owned()),
|
||||
username: "Server5".to_owned(),
|
||||
id: super::garage::PrefabId::Raw {
|
||||
cube_data: Vec::from(crate::persist::VALID_ROBOT),
|
||||
colour_data: Vec::from(crate::persist::VALID_COLOUR),
|
||||
},
|
||||
},
|
||||
implementation: ClientEmulation::ClientAI,
|
||||
},
|
||||
FakePlayerConf {
|
||||
team: None,
|
||||
vehicle: super::garage::PrefabVehicle {
|
||||
name: Some("fake6".to_owned()),
|
||||
username: "Server6".to_owned(),
|
||||
id: super::garage::PrefabId::Raw {
|
||||
cube_data: Vec::from(crate::persist::VALID_ROBOT),
|
||||
colour_data: Vec::from(crate::persist::VALID_COLOUR),
|
||||
},
|
||||
},
|
||||
implementation: ClientEmulation::ClientAI,
|
||||
},
|
||||
FakePlayerConf {
|
||||
team: None,
|
||||
vehicle: super::garage::PrefabVehicle {
|
||||
name: Some("fake7".to_owned()),
|
||||
username: "Server7".to_owned(),
|
||||
id: super::garage::PrefabId::Raw {
|
||||
cube_data: Vec::from(crate::persist::VALID_ROBOT),
|
||||
colour_data: Vec::from(crate::persist::VALID_COLOUR),
|
||||
},
|
||||
},
|
||||
implementation: ClientEmulation::ClientAI,
|
||||
},
|
||||
FakePlayerConf {
|
||||
team: None,
|
||||
vehicle: super::garage::PrefabVehicle {
|
||||
name: Some("fake8".to_owned()),
|
||||
username: "Server8".to_owned(),
|
||||
id: super::garage::PrefabId::Raw {
|
||||
cube_data: Vec::from(crate::persist::VALID_ROBOT),
|
||||
colour_data: Vec::from(crate::persist::VALID_COLOUR),
|
||||
},
|
||||
},
|
||||
implementation: ClientEmulation::ClientAI,
|
||||
},*/
|
||||
]
|
||||
}
|
||||
@@ -313,6 +361,10 @@ pub struct BattleArenaConfig {
|
||||
pub base: super::garage::PrefabVehicle,
|
||||
#[serde(default = "default_segments")]
|
||||
pub num_segments: u16,
|
||||
#[serde(default = "default_max_base_iterations")]
|
||||
pub max_base_iterations: u32,
|
||||
#[serde(default = "default_max_base_random_iterations")]
|
||||
pub max_base_random_iterations: u32,
|
||||
}
|
||||
|
||||
pub(super) fn default_ba_conf() -> BattleArenaConfig {
|
||||
@@ -326,6 +378,8 @@ pub(super) fn default_ba_conf() -> BattleArenaConfig {
|
||||
equalizer_duration_s: default_equalizer_duration(),
|
||||
base: default_ba_base(),
|
||||
num_segments: default_segments(),
|
||||
max_base_iterations: default_max_base_iterations(),
|
||||
max_base_random_iterations: default_max_base_random_iterations(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,6 +432,14 @@ fn default_segments() -> u16 {
|
||||
3
|
||||
}
|
||||
|
||||
fn default_max_base_iterations() -> u32 {
|
||||
64
|
||||
}
|
||||
|
||||
fn default_max_base_random_iterations() -> u32 {
|
||||
3
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Clone, Debug)]
|
||||
#[serde(untagged)]
|
||||
pub enum PitWinCondition {
|
||||
|
||||
Reference in New Issue
Block a user