1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct MeleeWeapon {
16 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
17 pub name: Option<String>,
18 #[serde(rename = "uniqueName", skip_serializing_if = "Option::is_none")]
19 pub unique_name: Option<String>,
20 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
21 pub description: Option<String>,
22 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
23 pub r#type: Option<String>,
24 #[serde(rename = "tradable", skip_serializing_if = "Option::is_none")]
25 pub tradable: Option<bool>,
26 #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
27 pub category: Option<String>,
28 #[serde(rename = "productCategory", skip_serializing_if = "Option::is_none")]
29 pub product_category: Option<String>,
30 #[serde(rename = "patchlogs", skip_serializing_if = "Option::is_none")]
31 pub patchlogs: Option<Vec<models::Patchlog>>,
32 #[serde(rename = "components", skip_serializing_if = "Option::is_none")]
33 pub components: Option<Vec<models::ShallowItem>>,
34 #[serde(rename = "introduced", skip_serializing_if = "Option::is_none")]
35 pub introduced: Option<Box<models::Introduced>>,
36 #[serde(rename = "estimatedVaultDate", skip_serializing_if = "Option::is_none")]
37 pub estimated_vault_date: Option<String>,
38 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
39 pub url: Option<String>,
40 #[serde(rename = "mr", skip_serializing_if = "Option::is_none")]
41 pub mr: Option<f64>,
42 #[serde(rename = "riven_disposition", skip_serializing_if = "Option::is_none")]
43 pub riven_disposition: Option<f64>,
44 #[serde(rename = "polarities", skip_serializing_if = "Option::is_none")]
45 pub polarities: Option<Vec<models::Polarity>>,
46 #[serde(rename = "thumbnail", skip_serializing_if = "Option::is_none")]
47 pub thumbnail: Option<String>,
48 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
49 pub tags: Option<Vec<String>>,
50 #[serde(rename = "vaulted", skip_serializing_if = "Option::is_none")]
51 pub vaulted: Option<bool>,
52 #[serde(rename = "marketCost", skip_serializing_if = "Option::is_none")]
53 pub market_cost: Option<String>,
54 #[serde(rename = "bpCost", skip_serializing_if = "Option::is_none")]
55 pub bp_cost: Option<String>,
56 #[serde(rename = "attacks", skip_serializing_if = "Option::is_none")]
57 pub attacks: Option<Vec<models::Attack>>,
58 #[serde(rename = "masteryReq", skip_serializing_if = "Option::is_none")]
59 pub mastery_req: Option<i32>,
60 #[serde(rename = "buildPrice", skip_serializing_if = "Option::is_none")]
61 pub build_price: Option<i32>,
62 #[serde(rename = "buildTime", skip_serializing_if = "Option::is_none")]
63 pub build_time: Option<i32>,
64 #[serde(rename = "skipBuildTimePrice", skip_serializing_if = "Option::is_none")]
65 pub skip_build_time_price: Option<i32>,
66 #[serde(rename = "buildQuantity", skip_serializing_if = "Option::is_none")]
67 pub build_quantity: Option<i32>,
68 #[serde(rename = "consumeOnBuild", skip_serializing_if = "Option::is_none")]
69 pub consume_on_build: Option<bool>,
70 #[serde(rename = "wikiaThumbnail", skip_serializing_if = "Option::is_none")]
71 pub wikia_thumbnail: Option<String>,
72 #[serde(rename = "wikiaUrl", skip_serializing_if = "Option::is_none")]
73 pub wikia_url: Option<String>,
74 #[serde(rename = "criticalChance", skip_serializing_if = "Option::is_none")]
75 pub critical_chance: Option<f32>,
76 #[serde(rename = "criticalMultiplier", skip_serializing_if = "Option::is_none")]
77 pub critical_multiplier: Option<f32>,
78 #[serde(rename = "disposition", skip_serializing_if = "Option::is_none")]
79 pub disposition: Option<i32>,
80 #[serde(rename = "fireRate", skip_serializing_if = "Option::is_none")]
81 pub fire_rate: Option<f32>,
82 #[serde(rename = "omegaAttenuation", skip_serializing_if = "Option::is_none")]
83 pub omega_attenuation: Option<f32>,
84 #[serde(rename = "procChance", skip_serializing_if = "Option::is_none")]
85 pub proc_chance: Option<f32>,
86 #[serde(rename = "releaseDate", skip_serializing_if = "Option::is_none")]
87 pub release_date: Option<f32>,
88 #[serde(rename = "slot", skip_serializing_if = "Option::is_none")]
90 pub slot: Option<i32>,
91 #[serde(rename = "totalDamage", skip_serializing_if = "Option::is_none")]
92 pub total_damage: Option<i32>,
93 #[serde(rename = "vaultDate", skip_serializing_if = "Option::is_none")]
94 pub vault_date: Option<String>,
95 #[serde(rename = "blockingAngle", skip_serializing_if = "Option::is_none")]
96 pub blocking_angle: Option<i32>,
97 #[serde(rename = "comboDuration", skip_serializing_if = "Option::is_none")]
98 pub combo_duration: Option<i32>,
99 #[serde(rename = "damagePerShot", skip_serializing_if = "Option::is_none")]
100 pub damage_per_shot: Option<Vec<f32>>,
101 #[serde(rename = "followThrough", skip_serializing_if = "Option::is_none")]
102 pub follow_through: Option<f32>,
103 #[serde(rename = "heavyAttackDamage", skip_serializing_if = "Option::is_none")]
104 pub heavy_attack_damage: Option<i32>,
105 #[serde(rename = "heavySlamAttack", skip_serializing_if = "Option::is_none")]
106 pub heavy_slam_attack: Option<i32>,
107 #[serde(rename = "heavySlamRadialDamage", skip_serializing_if = "Option::is_none")]
108 pub heavy_slam_radial_damage: Option<i32>,
109 #[serde(rename = "heavySlamRadius", skip_serializing_if = "Option::is_none")]
110 pub heavy_slam_radius: Option<i32>,
111 #[serde(rename = "range", skip_serializing_if = "Option::is_none")]
112 pub range: Option<f32>,
113 #[serde(rename = "slamAttack", skip_serializing_if = "Option::is_none")]
114 pub slam_attack: Option<i32>,
115 #[serde(rename = "slamRadialDamage", skip_serializing_if = "Option::is_none")]
116 pub slam_radial_damage: Option<i32>,
117 #[serde(rename = "slamRadius", skip_serializing_if = "Option::is_none")]
118 pub slam_radius: Option<i32>,
119 #[serde(rename = "slideAttack", skip_serializing_if = "Option::is_none")]
120 pub slide_attack: Option<i32>,
121 #[serde(rename = "stancePolarity", skip_serializing_if = "Option::is_none")]
122 pub stance_polarity: Option<models::Polarity>,
123 #[serde(rename = "windUp", skip_serializing_if = "Option::is_none")]
124 pub wind_up: Option<f32>,
125}
126
127impl MeleeWeapon {
128 pub fn new() -> MeleeWeapon {
129 MeleeWeapon {
130 name: None,
131 unique_name: None,
132 description: None,
133 r#type: None,
134 tradable: None,
135 category: None,
136 product_category: None,
137 patchlogs: None,
138 components: None,
139 introduced: None,
140 estimated_vault_date: None,
141 url: None,
142 mr: None,
143 riven_disposition: None,
144 polarities: None,
145 thumbnail: None,
146 tags: None,
147 vaulted: None,
148 market_cost: None,
149 bp_cost: None,
150 attacks: None,
151 mastery_req: None,
152 build_price: None,
153 build_time: None,
154 skip_build_time_price: None,
155 build_quantity: None,
156 consume_on_build: None,
157 wikia_thumbnail: None,
158 wikia_url: None,
159 critical_chance: None,
160 critical_multiplier: None,
161 disposition: None,
162 fire_rate: None,
163 omega_attenuation: None,
164 proc_chance: None,
165 release_date: None,
166 slot: None,
167 total_damage: None,
168 vault_date: None,
169 blocking_angle: None,
170 combo_duration: None,
171 damage_per_shot: None,
172 follow_through: None,
173 heavy_attack_damage: None,
174 heavy_slam_attack: None,
175 heavy_slam_radial_damage: None,
176 heavy_slam_radius: None,
177 range: None,
178 slam_attack: None,
179 slam_radial_damage: None,
180 slam_radius: None,
181 slide_attack: None,
182 stance_polarity: None,
183 wind_up: None,
184 }
185 }
186}
187