diff --git a/common/src/structs/battle.rs b/common/src/structs/battle.rs index 0748cb0..8c02220 100644 --- a/common/src/structs/battle.rs +++ b/common/src/structs/battle.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use std::collections::{BTreeMap, HashMap}; use serde::{Deserialize, Serialize}; @@ -16,6 +16,8 @@ pub struct BattleConfig { pub custom_stats: Vec, #[serde(default)] pub scepters: Vec, + #[serde(default)] + pub custom_battle_lineup: Option>, } impl Default for BattleConfig { @@ -33,6 +35,7 @@ impl Default for BattleConfig { path_resonance_id: Default::default(), custom_stats: Default::default(), scepters: Default::default(), + custom_battle_lineup: Default::default(), } } } diff --git a/freesr-data.json b/freesr-data.json index e9e520e..8b03983 100644 --- a/freesr-data.json +++ b/freesr-data.json @@ -22180,6 +22180,7 @@ } }, "battle_config": { + "custom_battle_lineup": null, "battle_type": "Default", "monsters": [ [ @@ -22204,4 +22205,4 @@ "custom_stats": [], "scepters": [] } -} \ No newline at end of file +} diff --git a/gameserver/src/net/handlers/battle.rs b/gameserver/src/net/handlers/battle.rs index 9983c56..a16ac86 100644 --- a/gameserver/src/net/handlers/battle.rs +++ b/gameserver/src/net/handlers/battle.rs @@ -100,8 +100,14 @@ async fn create_battle_info( let mut first_avatar_id = 0; + let lineup_uwu = if let Some(custom) = &player.battle_config.custom_battle_lineup { + custom.iter() + } else { + player.lineups.iter() + }; + // avatars - for (avatar_index, avatar_id) in player.lineups.iter() { + for (avatar_index, avatar_id) in lineup_uwu { if first_avatar_id == 0 { first_avatar_id = *avatar_id; }