add toggle for global buffs in persistent
This commit is contained in:
@@ -31,6 +31,10 @@ pub struct FreesrData {
|
|||||||
pub main_character: MultiPathAvatar,
|
pub main_character: MultiPathAvatar,
|
||||||
#[serde(skip_serializing, skip_deserializing)]
|
#[serde(skip_serializing, skip_deserializing)]
|
||||||
pub march_type: MultiPathAvatar,
|
pub march_type: MultiPathAvatar,
|
||||||
|
#[serde(skip_serializing, skip_deserializing)]
|
||||||
|
pub enable_sw_global: Option<bool>,
|
||||||
|
#[serde(skip_serializing, skip_deserializing)]
|
||||||
|
pub enable_castorice_global: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FreesrData {
|
impl FreesrData {
|
||||||
@@ -77,6 +81,8 @@ impl FreesrData {
|
|||||||
freesr_data.scene = persistent.scene;
|
freesr_data.scene = persistent.scene;
|
||||||
freesr_data.main_character = persistent.main_character;
|
freesr_data.main_character = persistent.main_character;
|
||||||
freesr_data.march_type = persistent.march_type;
|
freesr_data.march_type = persistent.march_type;
|
||||||
|
freesr_data.enable_sw_global = persistent.enable_sw_global;
|
||||||
|
freesr_data.enable_castorice_global = persistent.enable_castorice_global;
|
||||||
// freesr_data.game_language = persistent.game_language;
|
// freesr_data.game_language = persistent.game_language;
|
||||||
// freesr_data.voice_langauge = persistent.voice_language;
|
// freesr_data.voice_langauge = persistent.voice_language;
|
||||||
|
|
||||||
@@ -104,6 +110,25 @@ impl FreesrData {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn refresh_persistent(&mut self) -> anyhow::Result<()> {
|
||||||
|
let persistent: Persistent = serde_json::from_str(
|
||||||
|
&tokio::fs::read_to_string("persistent")
|
||||||
|
.await
|
||||||
|
.unwrap_or_default(),
|
||||||
|
)
|
||||||
|
.unwrap_or_default();
|
||||||
|
|
||||||
|
self.lineups = persistent.lineups;
|
||||||
|
self.position = persistent.position;
|
||||||
|
self.scene = persistent.scene;
|
||||||
|
self.main_character = persistent.main_character;
|
||||||
|
self.march_type = persistent.march_type;
|
||||||
|
self.enable_sw_global = persistent.enable_sw_global;
|
||||||
|
self.enable_castorice_global = persistent.enable_castorice_global;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
async fn verify_lineup(&mut self) {
|
async fn verify_lineup(&mut self) {
|
||||||
if self.lineups.is_empty() {
|
if self.lineups.is_empty() {
|
||||||
self.lineups = BTreeMap::<u32, u32>::from([(0, 8001), (1, 0), (2, 0), (3, 0)])
|
self.lineups = BTreeMap::<u32, u32>::from([(0, 8001), (1, 0), (2, 0), (3, 0)])
|
||||||
@@ -122,6 +147,8 @@ impl FreesrData {
|
|||||||
position: self.position.clone(),
|
position: self.position.clone(),
|
||||||
scene: self.scene.clone(),
|
scene: self.scene.clone(),
|
||||||
march_type: self.march_type,
|
march_type: self.march_type,
|
||||||
|
enable_sw_global: self.enable_sw_global,
|
||||||
|
enable_castorice_global: self.enable_castorice_global,
|
||||||
// game_language: self.game_language,
|
// game_language: self.game_language,
|
||||||
// voice_language: self.voice_langauge,
|
// voice_language: self.voice_langauge,
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
@@ -43,6 +43,14 @@ pub struct Persistent {
|
|||||||
pub march_type: MultiPathAvatar,
|
pub march_type: MultiPathAvatar,
|
||||||
// pub game_language: AllowedLanguages,
|
// pub game_language: AllowedLanguages,
|
||||||
// pub voice_language: AllowedLanguages,
|
// pub voice_language: AllowedLanguages,
|
||||||
|
#[serde(default = "default_true")]
|
||||||
|
pub enable_sw_global: Option<bool>,
|
||||||
|
#[serde(default = "default_true")]
|
||||||
|
pub enable_castorice_global: Option<bool>,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn default_true() -> Option<bool> {
|
||||||
|
Some(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Persistent {
|
impl Default for Persistent {
|
||||||
@@ -55,6 +63,8 @@ impl Default for Persistent {
|
|||||||
march_type: MultiPathAvatar::MarchHunt,
|
march_type: MultiPathAvatar::MarchHunt,
|
||||||
// game_language: AllowedLanguages::En,
|
// game_language: AllowedLanguages::En,
|
||||||
// voice_language: AllowedLanguages::Jp,
|
// voice_language: AllowedLanguages::Jp,
|
||||||
|
enable_sw_global: Some(true),
|
||||||
|
enable_castorice_global: Some(true),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,10 @@ async fn create_battle_info(
|
|||||||
caster_id: u32,
|
caster_id: u32,
|
||||||
skill_index: u32,
|
skill_index: u32,
|
||||||
) -> SceneBattleInfo {
|
) -> SceneBattleInfo {
|
||||||
|
if let Some(player) = session.json_data.get_mut() {
|
||||||
|
let _ = player.refresh_persistent().await;
|
||||||
|
}
|
||||||
|
|
||||||
let Some(player) = session.json_data.get() else {
|
let Some(player) = session.json_data.get() else {
|
||||||
tracing::error!("data is not set!");
|
tracing::error!("data is not set!");
|
||||||
return SceneBattleInfo::default();
|
return SceneBattleInfo::default();
|
||||||
@@ -444,7 +448,7 @@ async fn create_battle_info(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !has_castorice_global_buff {
|
if !has_castorice_global_buff && player.enable_castorice_global.unwrap_or(true) {
|
||||||
battle_info.buff_list.push(BattleBuff {
|
battle_info.buff_list.push(BattleBuff {
|
||||||
id: 140703,
|
id: 140703,
|
||||||
level: 1,
|
level: 1,
|
||||||
@@ -455,7 +459,7 @@ async fn create_battle_info(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if !has_silver_wolf_global_buff {
|
if !has_silver_wolf_global_buff && player.enable_sw_global.unwrap_or(true) {
|
||||||
battle_info.buff_list.push(BattleBuff {
|
battle_info.buff_list.push(BattleBuff {
|
||||||
id: 150602,
|
id: 150602,
|
||||||
level: 1,
|
level: 1,
|
||||||
|
|||||||
+4
-2
@@ -3,7 +3,7 @@
|
|||||||
"0": 1003,
|
"0": 1003,
|
||||||
"1": 1310,
|
"1": 1310,
|
||||||
"2": 1321,
|
"2": 1321,
|
||||||
"3": 1414
|
"3": 1401
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 422379,
|
"x": 422379,
|
||||||
@@ -17,5 +17,7 @@
|
|||||||
"entry_id": 2051101
|
"entry_id": 2051101
|
||||||
},
|
},
|
||||||
"main_character": "FemaleElation",
|
"main_character": "FemaleElation",
|
||||||
"march_type": "MarchHunt"
|
"march_type": "MarchHunt",
|
||||||
|
"enable_sw_global": true,
|
||||||
|
"enable_castorice_global": true
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user