1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct RangedWeapon {
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 = "accuracy", skip_serializing_if = "Option::is_none")]
96 pub accuracy: Option<f64>,
97 #[serde(rename = "ammo", skip_serializing_if = "Option::is_none")]
98 pub ammo: Option<f64>,
99 #[serde(rename = "magazineSize", skip_serializing_if = "Option::is_none")]
100 pub magazine_size: Option<i32>,
101 #[serde(rename = "multishot", skip_serializing_if = "Option::is_none")]
102 pub multishot: Option<f32>,
103 #[serde(rename = "noise", skip_serializing_if = "Option::is_none")]
104 pub noise: Option<String>,
105 #[serde(rename = "trigger", skip_serializing_if = "Option::is_none")]
106 pub trigger: Option<String>,
107}
108
109impl RangedWeapon {
110 pub fn new() -> RangedWeapon {
111 RangedWeapon {
112 name: None,
113 unique_name: None,
114 description: None,
115 r#type: None,
116 tradable: None,
117 category: None,
118 product_category: None,
119 patchlogs: None,
120 components: None,
121 introduced: None,
122 estimated_vault_date: None,
123 url: None,
124 mr: None,
125 riven_disposition: None,
126 polarities: None,
127 thumbnail: None,
128 tags: None,
129 vaulted: None,
130 market_cost: None,
131 bp_cost: None,
132 attacks: None,
133 mastery_req: None,
134 build_price: None,
135 build_time: None,
136 skip_build_time_price: None,
137 build_quantity: None,
138 consume_on_build: None,
139 wikia_thumbnail: None,
140 wikia_url: None,
141 critical_chance: None,
142 critical_multiplier: None,
143 disposition: None,
144 fire_rate: None,
145 omega_attenuation: None,
146 proc_chance: None,
147 release_date: None,
148 slot: None,
149 total_damage: None,
150 vault_date: None,
151 accuracy: None,
152 ammo: None,
153 magazine_size: None,
154 multishot: None,
155 noise: None,
156 trigger: None,
157 }
158 }
159}
160