wowlab_parsers/parsers/dbc/rows/
creature.rs1use serde::Deserialize;
4use wowlab_engine_macros::{HasFk, HasId};
5
6#[derive(Clone, Debug, Deserialize, HasId)]
8#[allow(
9 non_snake_case,
10 reason = "fields mirror upstream DBC CSV headers exactly"
11)]
12pub struct CreatureRow {
13 pub ID: i32,
14 pub Name_lang: Option<String>,
15 pub Classification: i32,
16 pub CreatureType: i32,
17 pub CreatureFamily: i32,
18}
19
20#[derive(Clone, Debug, Deserialize, HasFk)]
22#[allow(
23 non_snake_case,
24 reason = "fields mirror upstream DBC CSV headers exactly"
25)]
26#[fk_field = "CreatureID"]
27pub struct CreatureDifficultyRow {
28 pub ID: i32,
29 pub Field_9_0_1_35522_003Min: i32,
30 pub Field_9_0_1_35522_003Max: i32,
31 pub FactionTemplateID: i32,
32 pub ContentTuningID: i32,
33 pub Flags_0: i32,
34 pub Flags_1: i32,
35 pub Flags_2: i32,
36 pub Flags_3: i32,
37 pub Flags_4: i32,
38 pub Flags_5: i32,
39 pub Flags_6: i32,
40 pub Flags_7: i32,
41 pub Flags_8: i32,
42 pub CreatureID: i32,
43}
44
45#[derive(Clone, Debug, Deserialize, HasId)]
47#[allow(
48 non_snake_case,
49 reason = "fields mirror upstream DBC CSV headers exactly"
50)]
51pub struct ContentTuningRow {
52 pub ID: i32,
53 pub Flags: i32,
54 pub ExpansionID: i32,
55 pub HPScalingCurveID: i32,
56 pub DMGScalingCurveID: i32,
57 pub HPPrimaryStatScalingCurveID: i32,
58 pub DMGPrimaryStatScalingCurveID: i32,
59 pub PrimaryStatScalingModPlayerDataElementCharacterID: i32,
60 pub PrimaryStatScalingModPlayerDataElementCharacterMultiplier: f32,
61 pub MinLevelSquish: i32,
62 pub MaxLevelSquish: i32,
63 pub MinLevelScalingOffset: i32,
64 pub MaxLevelScalingOffset: i32,
65 pub AllowedMinOffset: i32,
66 pub AllowedMaxOffset: i32,
67 pub LfgMinLevel: i32,
68 pub LfgMaxLevel: i32,
69 pub ILevel: i32,
70 pub XpMultQuest: f32,
71}
72
73#[derive(Clone, Debug, Deserialize, HasFk)]
75#[allow(
76 non_snake_case,
77 reason = "fields mirror upstream DBC CSV headers exactly"
78)]
79#[fk_field = "ContentTuningID"]
80pub struct ContentTuningXDifficultyRow {
81 pub ID: i32,
82 pub DifficultyID: i32,
83 pub ContentTuningID: i32,
84}
85
86#[derive(Clone, Debug, Deserialize, HasFk)]
88#[allow(
89 non_snake_case,
90 reason = "fields mirror upstream DBC CSV headers exactly"
91)]
92#[fk_field = "ContentTuningID"]
93pub struct ContentTuningXExpectedRow {
94 pub ID: i32,
95 pub ExpectedStatModID: i32,
96 pub MinMythicPlusSeasonID: i32,
97 pub MaxMythicPlusSeasonID: i32,
98 pub ContentTuningID: i32,
99}