tukkek / javelin

Party-based roguelike (open-source strategy-RPG game).
https://javelinrl.wordpress.com/
66 stars 7 forks source link

Unit personality #24

Open tukkek opened 7 years ago

tukkek commented 7 years ago
tukkek commented 7 years ago

This ties in with #23.

tukkek commented 7 years ago

What I am thinking right now (and that is just a very early idea) is that it would be possible to pick some flaws/traits/quirks and try to imagine how they would relate to each other. For example: an Aggressive character could try to pick a fight with a Vulnerable one. Or having a Honest and a Dishonest characters in the same party would also lead to trouble.

I think this would be more interesting than just having the characters have traits that don't affect the game, except for giving a bonus here and there. To make this work though it would be better to select only a few traits and try to imagine how they would affect each other and try to think of cool things that could happen in game when these personalities "clash" :D

https://www.reddit.com/r/javelinrl/comments/5h8ezd/personalities_please/dazot8q/

This could be used together with, diplomacy versus will-saves take-10 as Dc to produce some interesting results, maybe even present "dialog tree"-like choices that the player has to work around. For example:

Your kobold wants to go back home. Will you:

  1. Try to convince him to stay (requires a +x diplomacy roll against a DC of y)
  2. Pay him a bonus to stay ($z)
  3. Spend one day resting so he can calm down (kobold will roll another will saving throw)
  4. Let him go.

The same if two characters are fighting. The player could try to break it off (diplomacy roll, showing a %), let the strongest creature kill the other or send one of them away.

tukkek commented 7 years ago

The highest chance of personalities clashing should be during Camping actions or when in towns but they should also be able to occur whenever a Hazard would (maybe add only one Scenario to the hazard list, while in Towns all should be added). This would help minimize a huge inconvenience in a critical moment - or at least that happening too often.

Would have to come up with dungeon Hazards to make this system work inside dungeons #25

If a scenario has a 95% chance of resolving automatically via a Diplomacy check (any roll but a 1). it should be selected but resolved immediately instead of shown to the player (otherwise it's just an obvious choice of what to do). This shouldn't happen very often though.

Remember to take morale bonus and penalties into consideration, preferably in an automated way. (For example a Scenario already having precalculated fields "diplomacy dc", "bribe", etc that subclasses can use).

tukkek commented 7 years ago

Selection of traits

Would be nice to try to identify opposites (like Impulsive versus Coward or Vain versus Deformed) and try to imagine what would happen when these would clash.

Abilities

Saving throws

Skills

Combat

Age

Misc

tukkek commented 7 years ago

Each unit should have two traits or flaws (List<Trait> Monster#traits). Each one should probably have a validate(Monster) so as to avoid Cowards with high Will saves, or Frails with high Constitution.

The best way to handle this is probably, when joining the party, to force the player to select 2 out of 5 random valid choices (or less if there are not 5 valid options). For mercenaries these are picked randomly. Autopick if there are 2 valid options or less. Of course traits are singleton - cloning a master list, picking the first 5 valid options and cloning and applying the Trait instances should be simple enough.

tukkek commented 7 years ago

Trait#personality=false #only applicable to rational creatures (Int -1 or higher?)

Trait#crmodifier=0 #-.2 for traits

Trait#validate(Monster) #doesn't make sense to have high dexterity units be Loud for example, or high constitution ones be Sickly

tukkek commented 7 years ago

This could also be an opportunity to represent mini-scenarios, both roleplaying oriented or otherwise. For example: in the mountains or forest a hard-to-reach cliff could present a wider view of the surrounding area. The game asks if the unit with best climbing skills wants to to reach it: a good roll produces some reward while a bad roll results in damage from falling (retries allowed).

This would have to be tied to party level, unit alignment (especially for roleplaying Scenarios) and location but could be tied to the Hazard system.

Inspiration

tukkek commented 7 years ago

Things like Reckless/Fiery could make negotiation and hiding (avoiding fights) impossible or harder (-5 on checks per unit with those traits). Petty could do the same towards bribing. Obnoxious could give a -1 modifier to party morale. These things are not as interesting as full-blown Scenarios but I guess as long as there's 1 side effect for each Trait then it's already interesting and could help add all the traits quickly.

Something like int Squad#hastrait(Class<Trait>) could help a lot use this in several parts of the code without adding much noise (returns total of occurrences).

tukkek commented 7 years ago

Ideas ffrom ribblle https://www.reddit.com/r/javelinrl/comments/5h8ezd/personalities_please/db36nfp/?context=3

tukkek commented 7 years ago

a and b are clashing - do you want to take a side and make sure one of them stays in your party? bribe the offender to stop and lose money, if you have it? or try to make a diplomacy roll but have a random one leave your party in case of failure