1use serde::{Deserialize, Serialize};
2use wowlab_engine_macros::CopyInsert;
3
4#[derive(Clone, CopyInsert, Debug, Default, Deserialize, Serialize)]
5#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6#[cfg_attr(feature = "wasm", derive(tsify::Tsify))]
7#[cfg_attr(feature = "wasm", tsify(into_wasm_abi, from_wasm_abi))]
8pub struct HpPerStaFlat {
9 pub level: i32,
10 pub health: f64,
11}
12
13#[derive(Clone, CopyInsert, Debug, Default, Deserialize, Serialize)]
14#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15#[cfg_attr(feature = "wasm", derive(tsify::Tsify))]
16#[cfg_attr(feature = "wasm", tsify(into_wasm_abi, from_wasm_abi))]
17pub struct CombatRatingsFlat {
18 pub level: i32,
19 pub unused_0: f64,
20 pub defense_skill: f64,
21 pub dodge: f64,
22 pub parry: f64,
23 pub block: f64,
24 pub hit_melee: f64,
25 pub hit_ranged: f64,
26 pub hit_spell: f64,
27 pub crit_melee: f64,
28 pub crit_ranged: f64,
29 pub crit_spell: f64,
30 pub corruption: f64,
31 pub corruption_resistance: f64,
32 pub speed: f64,
33 pub resilience_crit_taken: f64,
34 pub resilience_player_damage: f64,
35 pub lifesteal: f64,
36 pub haste_melee: f64,
37 pub haste_ranged: f64,
38 pub haste_spell: f64,
39 pub avoidance: f64,
40 pub sturdiness: f64,
41 pub unused_7: f64,
42 pub expertise: f64,
43 pub armor_penetration: f64,
44 pub mastery: f64,
45 pub pvp_power: f64,
46 pub unused_27: f64,
47 pub versatility_damage_done: f64,
48 pub versatility_healing_done: f64,
49 pub versatility_damage_taken: f64,
50 pub unused_12: f64,
51}
52
53#[derive(Clone, CopyInsert, Debug, Default, Deserialize, Serialize)]
54#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
55#[cfg_attr(feature = "wasm", derive(tsify::Tsify))]
56#[cfg_attr(feature = "wasm", tsify(into_wasm_abi, from_wasm_abi))]
57pub struct CombatRatingsMultByIlvlFlat {
58 pub item_level: i32,
59 pub armor_multiplier: f64,
60 pub weapon_multiplier: f64,
61 pub trinket_multiplier: f64,
62 pub jewelry_multiplier: f64,
63}
64
65#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
66pub struct StaminaMultByIlvlFlat {
68 pub item_level: i32,
69 pub armor_multiplier: f64,
70 pub weapon_multiplier: f64,
71 pub trinket_multiplier: f64,
72 pub jewelry_multiplier: f64,
73}
74
75#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
76pub struct BaseMpFlat {
77 pub level: i32,
78 pub rogue: f64,
79 pub druid: f64,
80 pub hunter: f64,
81 pub mage: f64,
82 pub paladin: f64,
83 pub priest: f64,
84 pub shaman: f64,
85 pub warlock: f64,
86 pub warrior: f64,
87 pub death_knight: f64,
88 pub monk: f64,
89 pub demon_hunter: f64,
90 pub evoker: f64,
91 pub adventurer: f64,
92 pub traveler: f64,
93}
94
95#[derive(Clone, CopyInsert, Debug, Default, Deserialize, Serialize)]
96#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
97#[cfg_attr(feature = "wasm", derive(tsify::Tsify))]
98#[cfg_attr(feature = "wasm", tsify(into_wasm_abi, from_wasm_abi))]
99pub struct SpellScalingFlat {
100 pub level: i32,
101 pub rogue: f64,
102 pub druid: f64,
103 pub hunter: f64,
104 pub mage: f64,
105 pub paladin: f64,
106 pub priest: f64,
107 pub shaman: f64,
108 pub warlock: f64,
109 pub warrior: f64,
110 pub death_knight: f64,
111 pub monk: f64,
112 pub demon_hunter: f64,
113 pub evoker: f64,
114 pub adventurer: f64,
115 pub traveler: f64,
116 pub item: f64,
117 pub consumable: f64,
118 pub gem1: f64,
119 pub gem2: f64,
120 pub gem3: f64,
121 pub health: f64,
122 pub damage_replace_stat: f64,
123 pub damage_secondary: f64,
124 pub mana_consumable: f64,
125}
126
127#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
128pub struct ArmorMitigationByLvlFlat {
129 pub level: i32,
130 pub constant: f64,
131}
132
133#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
134pub struct NpcTotalHpFlat {
136 pub level: i32,
137 pub rogue: f64,
138 pub druid: f64,
139 pub hunter: f64,
140 pub mage: f64,
141 pub paladin: f64,
142 pub priest: f64,
143 pub shaman: f64,
144 pub warlock: f64,
145 pub warrior: f64,
146 pub death_knight: f64,
147 pub monk: f64,
148 pub demon_hunter: f64,
149}
150
151#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
152pub struct NpcDamageByClassFlat {
154 pub level: i32,
155 pub rogue: f64,
156 pub druid: f64,
157 pub hunter: f64,
158 pub mage: f64,
159 pub paladin: f64,
160 pub priest: f64,
161 pub shaman: f64,
162 pub warlock: f64,
163 pub warrior: f64,
164 pub death_knight: f64,
165 pub monk: f64,
166 pub demon_hunter: f64,
167}
168
169#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
170pub struct ChallengeModeHealthFlat {
171 pub challenge_level: i32,
172 pub scalar: f64,
173}
174
175#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
176pub struct ChallengeModeDamageFlat {
178 pub challenge_level: i32,
179 pub scalar: f64,
180}
181
182#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
183pub struct ItemSocketCostPerLevelFlat {
184 pub item_level: i32,
185 pub socket_cost: f64,
186}
187
188#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
189pub struct ProfessionRatingsFlat {
190 pub expansion: String,
191 pub inspiration_craft_crit: f64,
192 pub resourcefulness_reagent_reduction: f64,
193 pub finesse_gather_extra: f64,
194 pub deftness_gather_time_decrease: f64,
195 pub perception_gather_discover: f64,
196 pub craft_speed_time_decrease: f64,
197 pub multicraft_craft_extra: f64,
198 pub ingenuity_concentration_refund_chance: f64,
199 pub unused_was_perception_gather_range: f64,
200}
201
202#[derive(Clone, CopyInsert, Debug, Deserialize, Serialize)]
203pub struct BaseProfessionRatingsFlat {
204 pub profession: String,
205 pub inspiration_craft_crit: f64,
206 pub resourcefulness_reagent_reduction: f64,
207 pub finesse_gather_extra: f64,
208 pub deftness_gather_time_decrease: f64,
209 pub perception_gather_discover: f64,
210 pub craft_speed_time_decrease: f64,
211 pub multicraft_craft_extra: f64,
212 pub unused_was_finesse_gather_time_increase: f64,
213 pub unused_was_perception_gather_range: f64,
214}