Traits ... Strengths ... Weaknesses ... Skills ...???
frodare opened this issue ยท 6 comments
In our current direction, it is not always clear how to categorize the attributes we are assigning to nemeses. This is a proposal to improve it.
All nemesis attributes will be considered traits. TraitType
will still be an enumeration replacing the ones we currently have for the legacy traits and weaknesses. TraitType
will have a getter to return whether or not it is a positive or negative trait (strength or weakness) and the maximum level supported. Traits will be stored as instances of the Trait
class which will have TraitType type
and int level
fields. Think of the Trait
class like the ItemStack
class as it will have TraitType
like ItemStack
as item
.
Traits will cover majority of nemesis behavior, except for personality. Personality will be neither positive or negative, but more like how they act. For instance one might cause the nemesis to panic for a second after giving or taking damage, another might cause the nemesis to change attack targets after every attack.
Traits will become stronger as their level is increased, not the level of the nemesis. One example might be:
Fire:
- I - single fireball
- II - three fireballs
- III - 10 fireballs in a 120 degree spread
- IV - random patches of ground start on fire
- V - player are set on fire within a give radius
Not all traits would need to support multiple levels. Weakness could be affected by level as well.
Hand held items no longer need to be determined by primary trait.
Every time a nemesis is promoted, a routine will either upgrade one of the existing traits, or have a chance to add an additional trait. Unless all the current traits are max'ed out, in which case a new trait must be added.
Weakness will not be added until level 5, at which point the nemesis is stuck with it. We could add a game mechanic to allow player to curse nemeses with weakness, but that would be a discussion for a later date.
Traits will be saved on the Nemesis
object in two different lists, one for strengths and one for weaknesses.
Ok, so FIREBALL, HYDROPHOBIA, and FIREPROOF would all be traits, one determines his skill, one a weakness, and one a strength?
I think there should always be at least one weakness. But I'm negotiable on that.
If there's a getter that tells whether it's positive or negative, do we need two different lists?
I like the idea of a separate personality for each. Can lead to Mudrat-esque hatred if we can make them expressive enough.
Levels are a great idea, too. We'll need to do some brainstorming about how that impacts each different skill.
The weaknesses may need to go through an inverse leveling process. They start with Chicken V at level 1 and they panic around a chicken for 10 seconds. At level 3, they are Chicken IV and only panic for 8 seconds, and so on.
I don't like like the idea of inverting the weakness levels, seems like it would be confusing.
The Traits would't need to be in different lists, that would just be for convenience so the weaknesses wouldn't need to be removed when working with them.
The problem I have with given weaknesses to early, is that it limits uniqueness. That might sound counter intuitive, but if we only make 5 weaknesses it would be pretty easy to just guess one. However if we have around 100 of them and they were more obscure, I would completely agree with you.
The level doesn't have to be inverse, but the effect would be. So Level 1 weakness would be a bigger weakness than level 5. I can also see that making early nemeses too easy and late nemeses too hard. I just wouldn't want a level 10 nemesis to have a super exploitable weakness and make him too easy.
Yeah, convenience is good.
That's why a lot of the strengths are reverse of weaknesses. If you guess and throw an egg at a nemesis, he may freak out or he may become stronger and kick your ass.