Add pit win conditions #34

This commit is contained in:
NG (Graham) committed 2025-09-10 19:40:51 -04:00
1 parent f2de67b338
commit 82cc2dcf1b
11 files changed
+219 -12

No files matched your search

+4
View File
@@ -462,4 +462,8 @@ impl <C: Clone + Send> super::ConfigProvider<C> for CubeConfig {
data: self.battle.multiplayer.battle_arena.clone(),
}
}
fn pit_settings(&self) -> super::PitSettings {
self.battle.multiplayer.pit_config.clone().into()
}
}
+1 -1
View File
@@ -2,7 +2,7 @@ mod cubes_json;
pub use cubes_json::CubeConfig;
mod traits;
pub use traits::{ConfigProvider, CompleteCampaignProvider, DevMessageProvider, ServerConfig, GarageUpgrades, GarageUpgradeIncrement, ChatSystemConfig, GameEventSequence, GameEvents, GameRotationStrategy, GameEvent, GameMap, GameVisibility, GameType, SingleplayerConfig, VehicleInfo, VehicleDescriptor, QueueChangeMode, Point, Sphere, MapConfig, LinksConfig, FakePlayer, ClientEmulator, EnergyConfig, BattleArenaResolver};
pub use traits::{ConfigProvider, CompleteCampaignProvider, 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};
pub type ConfigImpl = CubeConfig;
+16
View File
@@ -36,6 +36,7 @@ pub trait ConfigProvider<C: Clone> {
fn fake_players(&self) -> Vec<FakePlayer>;
fn energy(&self) -> EnergyConfig;
fn ba_settings(&self) -> BattleArenaResolver;
fn pit_settings(&self) -> PitSettings;
}
pub struct CompleteCampaignProvider {
@@ -428,3 +429,18 @@ impl BattleArenaResolver {
}))
}
}
#[derive(Debug)]
pub struct PitSettings {
pub wins: Vec<PitWinCondition>,
pub respawn_time_seconds: u64,
}
#[derive(Debug)]
pub enum PitWinCondition {
StreakKills(u32),
TotalKills(u32),
Score(u32),
Damage(u32),
Time,
}