Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Can the castes of a creature be made to have different ethics, values and etc ?  (Read 644 times)

happy face

  • Escaped Lunatic
    • View Profile

Well, I like to make a creature that is like that, and try it but I do not know how to do it
« Last Edit: September 11, 2018, 01:43:39 pm by happy face »
Logged

WillowLuman

  • Bay Watcher
  • They/Them Life is weird
    • View Profile

Unfortunately, I believe those are described on the entity level, not the creature level.
Logged
Dwarf Souls: Prepare to Mine
Keep Me Safe - A Girl and Her Computer (Illustrated Game)
Darkest Garden - Illustrated game. - What mysteries lie in the abandoned dark?

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile

You can modify their personalities easily enough - beyond the examples in goblin raws, you can also do it via a one-off permanent syndrome applied when they get on the map, borrowing from alcohol.

Different values, now...Possible, but requires dfhack; have to edit the unit.status.current_soul.personality.values.

Different ethics....Even more difficult; as ethics are civ-level you'd have to spin the castes off into their own civ (with dfhack) for everything to work properly. I don't believe civs are fully understood, so this might be difficult.
You can simulate some things though i.e. only having one species or caste butcher sentients with dfhack, but it's bit complicated. Doing it this way certainly prevents caste war, though.
« Last Edit: September 11, 2018, 02:40:31 pm by Fleeting Frames »
Logged

happy face

  • Escaped Lunatic
    • View Profile

You can modify their personalities easily enough - beyond the examples in goblin raws, you can also do it via a one-off permanent syndrome applied when they get on the map, borrowing from alcohol.

Different values, now...Possible, but requires dfhack; have to edit the unit.status.current_soul.personality.values.

Different ethics....Even more difficult; as ethics are civ-level you'd have to spin the castes off into their own civ (with dfhack) for everything to work properly. I don't believe civs are fully understood, so this might be difficult.
You can simulate some things though i.e. only having one species or caste butcher sentients with dfhack, but it's bit complicated. Doing it this way certainly prevents caste war, though.

Can you explain to me better than I have to do to make that happen?
UPDATE: I already understood sorry for my ignorance

and I can also do with and  banditry?
« Last Edit: September 11, 2018, 05:10:03 pm by happy face »
Logged

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile

Personality tags in raws - see Creature token#personality.
Ex [PERSONALITY:ANGER_PROPENSITY:25:75:100].

Inebiration - see material_template_default.txt. In particular, the tag [CE_CHANGE_PERSONALITY:FACET:BASHFUL:-50:FACET:PRIVACY:-50:FACET:BRAVERY:25:FACET:CONFIDENCE:25:FACET:POLITENESS:-25:FACET:THOUGHTLESSNESS:25:PROB:100:SIZE_DILUTES:START:10:PEAK:120:END:480:DWF_STRETCH:4]. Werebeast/vampire syndrome provides example to make it only occur once.

Modifying unit values - first you have to get the unit, i.e. iterate over df.global.world.units.active and check if unit race and caste match what you want.
Then you have to either modify/remove the preexising values or add new ones with unit.status.current_soul.personality.values:insert('#',newvalue), where newvalue = df.unit_personality.T_values:new() with type and strength set to what you want (valid values are between 50 and -50, in game text noted in Personality trait wiki page).
You can get quick list of value types and names with :lua @df.value_type.

You can find various governing things (civilizations, site governments, performance troupes, etc.) in df.global.world.entities. I'm not sure which type is bandit one, though, and I don't know anyone who could tell you how to handle site creation and movement properly (bandits build camps, so...)

Simulating ethics... It's a PITA, but for, say, the goblin buthering example you can create new jobs (gui/gm-editor dfhack.gui.getSelectedJob() will give you an example what a job looks like internally) and link them to job list, remove dead_dwarf flag from the corpse and assign the goblin to the job. (If you just set the dead_dwarf on corpse to false, then anyone will pick up task to butcher it (as shown in this script).