summaryrefslogtreecommitdiff
path: root/src/componentwrapper.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-10-03 15:20:52 +0200
committertroido <troido@protonmail.com>2020-10-03 15:20:52 +0200
commitfa5ddaa570473ece02e0a3bfb35702211d21ce12 (patch)
tree501498c9db9d7d2c985f86272b3405c98301556f /src/componentwrapper.rs
parent5af83beb6f10023cef7eba192a0b190518fe967b (diff)
added dense grass; home is now part of monsterAI component
Diffstat (limited to 'src/componentwrapper.rs')
-rw-r--r--src/componentwrapper.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/componentwrapper.rs b/src/componentwrapper.rs
index 2f12a42..a45f3c0 100644
--- a/src/componentwrapper.rs
+++ b/src/componentwrapper.rs
@@ -15,7 +15,8 @@ use crate::{
AttackType,
Clan,
Flag,
- Trigger
+ Trigger,
+ Stat
},
parameter::{Parameter},
fromtoparameter::FromToParameter,
@@ -170,14 +171,12 @@ components!(all:
}
};
Clan (name: String);
- Home (home: Pos);
- Faction (faction: String) {Faction::from_str(faction.as_str()).ok_or(aerr!("invalid faction name"))?};
+ Faction (faction: String) {Faction::from_str(faction.as_str()).map_err(|_|aerr!("invalid faction name '{}'", faction))?};
Interactable (typ: String, arg: Parameter) {
- Interactable::parse_from_parameter(&typ, &arg).ok_or(aerr!("invalid interaction {:?} {:?}", typ, arg))?
+ Interactable::parse_from_parameter(&typ, &arg).ok_or(aerr!("invalid interaction {} {:?}", typ, arg))?
};
Loot (loot: Vec<(Template, f64)>);
Timer (trigger: Trigger, delay: i64, spread: f64, target_time: Option<Timestamp>);
- Equipment () {panic!("equipment from parameters not implemented")};
TimeOffset (dtime: i64);
Flags (flags: Vec<String>) {
Flags(
@@ -212,6 +211,8 @@ components!(all:
).collect::<std::result::Result<Vec<Trigger>, std::boxed::Box<errors::AError>>>()?
}
};
+ Stats (skills: HashMap<Stat, i64>);
+ Requirements (required_flags: HashSet<Flag>, blocking_flags: HashSet<Flag>);
);