Documenting 03
- added docs for all things - added methods for accessing entity stats - refactored some names
This commit is contained in:
@@ -5,11 +5,10 @@ use super::{
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::ops::Range;
|
||||
|
||||
/**
|
||||
* Struttura Config usata per definire il gioco, ha alcune cose utili
|
||||
* TODO sarebbe bello poterle prendere da file.
|
||||
*/
|
||||
|
||||
/// Struttura di configurazione per la creazione di un dungeon.\
|
||||
/// Ogni elemento indica un parametro per la generazione di un piano o di una entitità.\
|
||||
/// Esiste una implementazione di default di questa struttura che genera un dungeon
|
||||
/// molto semplice e standard.
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
pub struct Config {
|
||||
pub game_seed: u64,
|
||||
@@ -19,8 +18,15 @@ pub struct Config {
|
||||
pub effects: Vec<ConfigEffect>,
|
||||
pub entities_total: usize,
|
||||
pub entities: Vec<ConfigEntity>,
|
||||
pub player_stats: ConfigPlayer,
|
||||
}
|
||||
|
||||
/// Un effetto che si può trovare per terra nel dungeon.\
|
||||
/// La priorità indica quanto verrà spawnato l'effetto in media.\
|
||||
/// \
|
||||
/// Es. effetto A priorità 1 ed effetto B con priorità 2\
|
||||
/// Se in Config mettiamo 15 effetti per piano, allora avremo
|
||||
/// in media 10 A e 5 B per ogni piano.
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
pub struct ConfigEffect {
|
||||
pub floors: Range<usize>,
|
||||
@@ -28,6 +34,20 @@ pub struct ConfigEffect {
|
||||
pub priority: usize,
|
||||
}
|
||||
|
||||
/// Valori di base per le statistiche di un giocatore.\
|
||||
/// Esse verranno utilizzate quando un giocatore verrà creato.
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
pub struct ConfigPlayer {
|
||||
pub health: i32,
|
||||
pub attack: i32,
|
||||
}
|
||||
|
||||
/// Una entità che si può trovare in un piano nel dungeon.\
|
||||
/// La priorità indica quanto verrà spawnata l'entità in media.\
|
||||
/// \
|
||||
/// Es. entità A priorità 1 ed entità B con priorità 2\
|
||||
/// Se in Config mettiamo 15 entità per piano, allora avremo
|
||||
/// in media 10 A e 5 B per ogni piano.
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
pub struct ConfigEntity {
|
||||
pub floors: Range<usize>,
|
||||
@@ -35,6 +55,7 @@ pub struct ConfigEntity {
|
||||
pub decider: Box<dyn Decider>,
|
||||
pub health: i32,
|
||||
pub attack: i32,
|
||||
pub priority: usize,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
@@ -63,6 +84,10 @@ impl Default for Config {
|
||||
effects_total: 45,
|
||||
entities: vec![],
|
||||
entities_total: 0,
|
||||
player_stats: ConfigPlayer {
|
||||
health: 1000,
|
||||
attack: 100,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user