wicked-waifus-rs/wicked-waifus-data/src/buff.rs
2025-06-26 06:28:24 +00:00

109 lines
No EOL
4.4 KiB
Rust

use serde::Deserialize;
#[derive(Deserialize)]
#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))]
#[serde(rename_all = "PascalCase")]
pub struct BuffData {
pub id: i64,
pub ge_desc: String,
pub duration_policy: i32, // TODO: Enum ??
#[cfg(feature = "strict_json_fields")]
pub duration_calculation_policy: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub duration_magnitude: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub duration_magnitude2: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub b_duration_affected_by_bullet_time: bool,
#[cfg(feature = "strict_json_fields")]
pub formation_policy: i32, // TODO: Enum ??
#[cfg(feature = "strict_json_fields")]
pub probability: i32,
#[cfg(feature = "strict_json_fields")]
pub period: i32,
#[cfg(feature = "strict_json_fields")]
pub b_execute_periodic_effect_on_application: bool,
#[cfg(feature = "strict_json_fields")]
pub periodic_inhibition_policy: i32, // TODO: Enum ??
#[serde(rename = "GameAttributeID")]
pub game_attribute_id: i32,
#[cfg(feature = "strict_json_fields")]
pub calculation_policy: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub modifier_magnitude: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub modifier_magnitude2: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub stacking_type: i32, // TODO: Enum??
#[cfg(feature = "strict_json_fields")]
pub default_stack_count: i32,
#[cfg(feature = "strict_json_fields")]
pub stack_append_count: i32,
#[cfg(feature = "strict_json_fields")]
pub stack_limit_count: i32,
#[cfg(feature = "strict_json_fields")]
pub stack_duration_refresh_policy: i32,
#[cfg(feature = "strict_json_fields")]
pub stack_period_reset_policy: i32,
#[cfg(feature = "strict_json_fields")]
pub stack_expiration_remove_number: i32,
#[cfg(feature = "strict_json_fields")]
pub b_deny_overflow_application: bool,
#[cfg(feature = "strict_json_fields")]
pub b_clear_stack_on_overflow: bool,
#[cfg(feature = "strict_json_fields")]
pub b_require_modifier_success_to_trigger_cues: bool,
#[cfg(feature = "strict_json_fields")]
pub b_suppress_stacking_cues: bool,
pub gameplay_cue_ids: Vec<i64>,
#[cfg(feature = "strict_json_fields")]
pub granted_tags: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub application_source_tag_requirements: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub application_source_tag_ignores: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub application_tag_requirements: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub application_tag_ignores: Vec<String>,
pub ongoing_tag_requirements: Vec<String>,
pub ongoing_tag_ignores: Vec<String>,
pub removal_tag_requirements: Vec<String>,
pub removal_tag_ignores: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub remove_buff_with_tags: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub granted_application_immunity_tags: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub granted_application_immunity_tag_ignores: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub premature_expiration_effects: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub routine_expiration_effects: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub overflow_effects: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub related_extra_effect_buff_id: Vec<String>,
#[serde(rename = "ExtraEffectID")]
pub extra_effect_id: i32,
pub extra_effect_parameters: Vec<String>,
pub extra_effect_parameters_grow1: Vec<i32>,
pub extra_effect_parameters_grow2: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub extra_effect_requirements: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub extra_effect_req_para: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub extra_effect_req_setting: i32, // TODO: Enum??
#[cfg(feature = "strict_json_fields")]
pub extra_effect_cd: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub extra_effect_remove_stack_num: i32,
#[cfg(feature = "strict_json_fields")]
pub extra_effect_probability: Vec<i32>,
#[cfg(feature = "strict_json_fields")]
pub buff_action: Vec<String>,
#[cfg(feature = "strict_json_fields")]
pub tag_logic: Vec<String>,
pub dead_remove: bool,
}