generated from GarandPLG/rust-flake-template
0577697059
Removed the settings UI and its keybinding logic, added a skirmish view and corresponding keybindings, simplified the SettingsState to hold skirmish configuration, updated module exports, and changed the CLI default map height from 25 to 21. Also fixed the main menu selection limit.
105 lines
2.1 KiB
Rust
105 lines
2.1 KiB
Rust
use crate::app::{
|
|
states::{GameMode, PerkDecks},
|
|
view::View,
|
|
};
|
|
use clap::Parser;
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[command(version, about = "War in Tunnels", long_about = "War in Tunnels")]
|
|
pub struct Cli {
|
|
#[arg(
|
|
long,
|
|
help = "Default window",
|
|
value_name = "...",
|
|
default_value_t = View::MainMenu,
|
|
value_enum
|
|
)]
|
|
pub view: View,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Username",
|
|
value_name = "String",
|
|
default_value = "Player"
|
|
)]
|
|
pub username: String,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Game mode",
|
|
value_name = "...",
|
|
default_value_t = GameMode::LastManStanding,
|
|
value_enum
|
|
)]
|
|
pub game_mode: GameMode,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Map width",
|
|
value_name = "Positive integer [20; 100]",
|
|
default_value = "50"
|
|
)]
|
|
pub map_width: u8,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Map height",
|
|
value_name = "Positive integer [11; 50]",
|
|
default_value = "21"
|
|
)]
|
|
pub map_height: u8,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Perk Deck",
|
|
value_name = "...",
|
|
default_value_t = PerkDecks::Silesian,
|
|
value_enum
|
|
)]
|
|
pub perk_deck: PerkDecks,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Starting wood",
|
|
value_name = "Positive integer",
|
|
default_value = "50"
|
|
)]
|
|
pub starting_wood: u16,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Starting iron",
|
|
value_name = "Positive integer",
|
|
default_value = "25"
|
|
)]
|
|
pub starting_iron: u16,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Supply limit",
|
|
value_name = "Positive integer",
|
|
default_value = "99"
|
|
)]
|
|
pub supply_limit: u8,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "XP modifier",
|
|
value_name = "Float [0.5; 2.0]",
|
|
default_value = "1.0"
|
|
)]
|
|
pub xp_modifier: f32,
|
|
|
|
#[arg(
|
|
long,
|
|
help = "Skill points limit",
|
|
value_name = "Positive integer [120; 690]",
|
|
default_value = "120"
|
|
)]
|
|
pub skill_points_limit: u16,
|
|
}
|
|
|
|
pub fn get_args() -> Cli {
|
|
Cli::parse()
|
|
}
|