attribute component - functionality NYI
This commit is contained in:
parent
c39f2cb013
commit
e2afd47830
4 changed files with 33 additions and 4 deletions
|
|
@ -88,6 +88,23 @@ pub struct CombatStats {
|
||||||
pub power: i32,
|
pub power: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize, Clone)]
|
||||||
|
pub struct Attribute {
|
||||||
|
pub base: i32,
|
||||||
|
pub modifiers: i32,
|
||||||
|
pub bonus: i32,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Component, Debug, Serialize, Deserialize, Clone)]
|
||||||
|
pub struct Attributes {
|
||||||
|
pub strength: Attribute,
|
||||||
|
pub dexterity: Attribute,
|
||||||
|
pub constitution: Attribute,
|
||||||
|
pub intelligence: Attribute,
|
||||||
|
pub wisdom: Attribute,
|
||||||
|
pub charisma: Attribute,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Component, Debug, ConvertSaveload, Clone)]
|
#[derive(Component, Debug, ConvertSaveload, Clone)]
|
||||||
pub struct WantsToMelee {
|
pub struct WantsToMelee {
|
||||||
pub target: Entity,
|
pub target: Entity,
|
||||||
|
|
|
||||||
|
|
@ -513,6 +513,7 @@ fn main() -> rltk::BError {
|
||||||
gs.ecs.register::<Name>();
|
gs.ecs.register::<Name>();
|
||||||
gs.ecs.register::<BlocksTile>();
|
gs.ecs.register::<BlocksTile>();
|
||||||
gs.ecs.register::<CombatStats>();
|
gs.ecs.register::<CombatStats>();
|
||||||
|
gs.ecs.register::<Attributes>();
|
||||||
gs.ecs.register::<HungerClock>();
|
gs.ecs.register::<HungerClock>();
|
||||||
gs.ecs.register::<WantsToMelee>();
|
gs.ecs.register::<WantsToMelee>();
|
||||||
gs.ecs.register::<SufferDamage>();
|
gs.ecs.register::<SufferDamage>();
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ pub fn save_game(ecs: &mut World) {
|
||||||
serializer,
|
serializer,
|
||||||
data,
|
data,
|
||||||
AOE,
|
AOE,
|
||||||
|
Attributes,
|
||||||
BlocksTile,
|
BlocksTile,
|
||||||
CombatStats,
|
CombatStats,
|
||||||
Confusion,
|
Confusion,
|
||||||
|
|
@ -140,6 +141,7 @@ pub fn load_game(ecs: &mut World) {
|
||||||
de,
|
de,
|
||||||
d,
|
d,
|
||||||
AOE,
|
AOE,
|
||||||
|
Attributes,
|
||||||
BlocksTile,
|
BlocksTile,
|
||||||
CombatStats,
|
CombatStats,
|
||||||
Confusion,
|
Confusion,
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
use super::{
|
use super::{
|
||||||
random_table::RandomTable, BlocksTile, CombatStats, Confusion, Consumable, Cursed, DefenceBonus, Destructible,
|
random_table::RandomTable, Attribute, Attributes, BlocksTile, CombatStats, Confusion, Consumable, Cursed,
|
||||||
EntryTrigger, EquipmentSlot, Equippable, Hidden, HungerClock, HungerState, InflictsDamage, Item, MagicMapper, Map,
|
DefenceBonus, Destructible, EntryTrigger, EquipmentSlot, Equippable, Hidden, HungerClock, HungerState,
|
||||||
MeleePowerBonus, Mind, Monster, Name, Player, Position, ProvidesHealing, ProvidesNutrition, Ranged, Rect,
|
InflictsDamage, Item, MagicMapper, Map, MeleePowerBonus, Mind, Monster, Name, Player, Position, ProvidesHealing,
|
||||||
Renderable, SerializeMe, SingleActivation, TileType, Viewshed, Wand, AOE, MAPWIDTH,
|
ProvidesNutrition, Ranged, Rect, Renderable, SerializeMe, SingleActivation, TileType, Viewshed, Wand, AOE,
|
||||||
|
MAPWIDTH,
|
||||||
};
|
};
|
||||||
use rltk::{console, RandomNumberGenerator, RGB};
|
use rltk::{console, RandomNumberGenerator, RGB};
|
||||||
use specs::prelude::*;
|
use specs::prelude::*;
|
||||||
|
|
@ -25,6 +26,14 @@ pub fn player(ecs: &mut World, player_x: i32, player_y: i32) -> Entity {
|
||||||
.with(Name { name: "wanderer".to_string() })
|
.with(Name { name: "wanderer".to_string() })
|
||||||
.with(CombatStats { max_hp: 8, hp: 8, defence: 0, power: 4 })
|
.with(CombatStats { max_hp: 8, hp: 8, defence: 0, power: 4 })
|
||||||
.with(HungerClock { state: HungerState::Satiated, duration: 50 })
|
.with(HungerClock { state: HungerState::Satiated, duration: 50 })
|
||||||
|
.with(Attributes {
|
||||||
|
strength: Attribute { base: 10, modifiers: 0, bonus: 0 },
|
||||||
|
dexterity: Attribute { base: 10, modifiers: 0, bonus: 0 },
|
||||||
|
constitution: Attribute { base: 10, modifiers: 0, bonus: 0 },
|
||||||
|
intelligence: Attribute { base: 10, modifiers: 0, bonus: 0 },
|
||||||
|
wisdom: Attribute { base: 10, modifiers: 0, bonus: 0 },
|
||||||
|
charisma: Attribute { base: 10, modifiers: 0, bonus: 0 },
|
||||||
|
})
|
||||||
.marked::<SimpleMarker<SerializeMe>>()
|
.marked::<SimpleMarker<SerializeMe>>()
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue