made it so undead units have a dummy 'undead' trait...
...with a description of the effects of being race undead
This commit is contained in:
parent
edaaa27a57
commit
bb9731185a
5 changed files with 27 additions and 3 deletions
|
@ -481,7 +481,9 @@
|
|||
[race]
|
||||
name=undead
|
||||
not_living=yes
|
||||
num_traits=0
|
||||
num_traits=1
|
||||
ignore_global_traits=yes
|
||||
{TRAIT_UNDEAD}
|
||||
[/race]
|
||||
[race]
|
||||
name=ogre
|
||||
|
|
|
@ -2,12 +2,21 @@
|
|||
[trait]
|
||||
id=loyal
|
||||
name= _ "loyal"
|
||||
description= _ "Zero upkeep"
|
||||
[effect]
|
||||
apply_to=loyal
|
||||
[/effect]
|
||||
[/trait]
|
||||
#enddef
|
||||
|
||||
#define TRAIT_UNDEAD
|
||||
[trait]
|
||||
id=undead
|
||||
name= _ "undead"
|
||||
description= _ "Immune to poison"
|
||||
[/trait]
|
||||
#enddef
|
||||
|
||||
#define TRAIT_STRONG
|
||||
[trait]
|
||||
id=strong
|
||||
|
|
10
src/race.cpp
10
src/race.cpp
|
@ -95,12 +95,13 @@ wide_string markov_generate_name(const markov_prefix_map& prefixes, size_t chain
|
|||
|
||||
}
|
||||
|
||||
unit_race::unit_race() : ntraits_(0), chain_size_(0), not_living_(false), traits_(&empty_traits)
|
||||
unit_race::unit_race() : ntraits_(0), chain_size_(0), not_living_(false), traits_(&empty_traits), global_traits_(true)
|
||||
{
|
||||
}
|
||||
|
||||
unit_race::unit_race(const config& cfg) : name_(cfg["name"]), ntraits_(atoi(cfg["num_traits"].c_str())),
|
||||
not_living_(cfg["not_living"] == "yes"), traits_(&cfg.get_children("trait"))
|
||||
not_living_(cfg["not_living"] == "yes"),
|
||||
traits_(&cfg.get_children("trait")), global_traits_(cfg["ignore_global_traits"] != "yes")
|
||||
{
|
||||
names_[MALE] = utils::split(cfg["male_names"]);
|
||||
names_[FEMALE] = utils::split(cfg["female_names"]);
|
||||
|
@ -120,6 +121,11 @@ std::string unit_race::generate_name(unit_race::GENDER gender) const
|
|||
return utils::wstring_to_string(markov_generate_name(next_[gender],chain_size_,12));
|
||||
}
|
||||
|
||||
bool unit_race::uses_global_traits() const
|
||||
{
|
||||
return global_traits_;
|
||||
}
|
||||
|
||||
const config::child_list& unit_race::additional_traits() const
|
||||
{
|
||||
return *traits_;
|
||||
|
|
|
@ -22,6 +22,8 @@ public:
|
|||
|
||||
std::string generate_name(GENDER gender) const;
|
||||
|
||||
bool uses_global_traits() const;
|
||||
|
||||
const config::child_list& additional_traits() const;
|
||||
int num_traits() const;
|
||||
|
||||
|
@ -37,6 +39,7 @@ private:
|
|||
bool not_living_;
|
||||
|
||||
const config::child_list* traits_;
|
||||
bool global_traits_;
|
||||
};
|
||||
|
||||
typedef std::map<std::string,unit_race> race_map;
|
||||
|
|
|
@ -581,6 +581,10 @@ unit_type::unit_type(const config& cfg, const movement_type_map& mv_types,
|
|||
if(race_it != races.end()) {
|
||||
race_ = &race_it->second;
|
||||
if(race_ != NULL) {
|
||||
if(race_->uses_global_traits() == false) {
|
||||
possibleTraits_.clear();
|
||||
}
|
||||
|
||||
const config::child_list& traits = race_->additional_traits();
|
||||
possibleTraits_.insert(possibleTraits_.end(),traits.begin(),traits.end());
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue