warframe_client/models/
mission.rs

1/*
2 * WarframeStat.us API
3 *
4 * Simple API for data from the game Warframe. [Parser Docs](https://wfcd.github.io/warframe-worldstate-parser/) [Items Types](https://github.com/WFCD/warframe-items/blob/master/index.d.ts) 
5 *
6 * The version of the OpenAPI document: 2.0.8
7 * Contact: tobiah@protonmail.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Mission {
16    #[serde(rename = "reward")]
17    pub reward: Box<models::Reward>,
18    #[serde(rename = "node")]
19    pub node: String,
20    /// Unlocalized node
21    #[serde(rename = "nodeKey", skip_serializing_if = "Option::is_none")]
22    pub node_key: Option<String>,
23    /// Mission opponent (localized)
24    #[serde(rename = "faction")]
25    pub faction: models::Faction,
26    /// Mission opponent (unlocalized)
27    #[serde(rename = "factionKey", skip_serializing_if = "Option::is_none")]
28    pub faction_key: Option<models::Faction>,
29    #[serde(rename = "maxEnemyLevel")]
30    pub max_enemy_level: f64,
31    #[serde(rename = "minEnemyLevel")]
32    pub min_enemy_level: f64,
33    #[serde(rename = "maxWaveNum")]
34    pub max_wave_num: f64,
35    /// Mission objective type (localized)
36    #[serde(rename = "type")]
37    pub r#type: models::MissionType,
38    /// Mission objective type (unlocalized)
39    #[serde(rename = "typeKey", skip_serializing_if = "Option::is_none")]
40    pub type_key: Option<models::MissionType>,
41    #[serde(rename = "nightmare")]
42    pub nightmare: bool,
43    /// Whether an Archwing is required for participating in the mision.
44    #[serde(rename = "archwingRequired")]
45    pub archwing_required: bool,
46    /// Whether the mission takes place in a submerssible mission.
47    #[serde(rename = "isSharkwing", skip_serializing_if = "Option::is_none")]
48    pub is_sharkwing: Option<bool>,
49    /// Enemy specification for the mission
50    #[serde(rename = "enemySpec", skip_serializing_if = "Option::is_none")]
51    pub enemy_spec: Option<String>,
52    /// Override for the map on this mission
53    #[serde(rename = "levelOverride", skip_serializing_if = "Option::is_none")]
54    pub level_override: Option<String>,
55    /// Array of strings denoting extra spawners for a mission
56    #[serde(rename = "advancedSpawners", skip_serializing_if = "Option::is_none")]
57    pub advanced_spawners: Option<Vec<String>>,
58    /// Items required to enter the mission
59    #[serde(rename = "requiredItems", skip_serializing_if = "Option::is_none")]
60    pub required_items: Option<Vec<String>>,
61    /// Whether the required items are consumed
62    #[serde(rename = "consumeRequiredItems", skip_serializing_if = "Option::is_none")]
63    pub consume_required_items: Option<bool>,
64    /// Whether leaders are always allowed
65    #[serde(rename = "leadersAlwaysAllowed", skip_serializing_if = "Option::is_none")]
66    pub leaders_always_allowed: Option<bool>,
67    /// Affectors for this mission
68    #[serde(rename = "levelAuras", skip_serializing_if = "Option::is_none")]
69    pub level_auras: Option<Vec<String>>,
70    /// Description of the mission
71    #[serde(rename = "description")]
72    pub description: String,
73}
74
75impl Mission {
76    pub fn new(reward: models::Reward, node: String, faction: models::Faction, max_enemy_level: f64, min_enemy_level: f64, max_wave_num: f64, r#type: models::MissionType, nightmare: bool, archwing_required: bool, description: String) -> Mission {
77        Mission {
78            reward: Box::new(reward),
79            node,
80            node_key: None,
81            faction,
82            faction_key: None,
83            max_enemy_level,
84            min_enemy_level,
85            max_wave_num,
86            r#type,
87            type_key: None,
88            nightmare,
89            archwing_required,
90            is_sharkwing: None,
91            enemy_spec: None,
92            level_override: None,
93            advanced_spawners: None,
94            required_items: None,
95            consume_required_items: None,
96            leaders_always_allowed: None,
97            level_auras: None,
98            description,
99        }
100    }
101}
102