Bay 12 Games Forum

Dwarf Fortress => DF Suggestions => Topic started by: Teldin on August 28, 2014, 08:15:26 am

Title: Entity tokens to force war/friendly - civ groups
Post by: Teldin on August 28, 2014, 08:15:26 am
Normally, the entity tokens [BABYSNATCHER] and [ITEM_THIEF] work as crude methods of making civs start default at permanent war or friendlies to allow trading -- by default they are all friendly, ie. humans elves and dwarves lack these tokens. If you copied the goblin entity and renamed it, they would be friendly to each other and allow trading (if they had the progress triggers for it) with each other. [ITEM_THIEF] works the same way.

So my suggestion is to greatly amplify the control we have over civ-level behavior by adding removing the tying of babysnatcher and thief to civ friendly status and instead seperate the tokens, ie: retain a civ's babysnatcher token but allow them to trade with dwarves. It could still cause tension in world sim but they by default wouldn't be always enemies.

You could add several tokens to this for varying degrees of control. Let's call it [CIV_GROUP].

By default (no civ-group token), it would cause them to be totally independent, equivalent of [CIV_GROUP:0]. They do not trade, cannot make alliances and are always at war with everyone. This would be on animal peoples.

Dwarves, elves, and humans would default to [CIV_GROUP:1]. They are by default friendly and allow trading, etc. This is normal, current behavior.

Goblins and kobolds would be [CIV_GROUP:2] and 3. They are not friendly to anyone and only trade with themselves, but they are not true independent civs.

The generic animal-civ group would be [CIV_GROUP:0]. They cannot trade, never make treaties or alliances, and don't even show up in the civs screen. Kobolds could also be here instead of a separate group.

Now you can add tokens to force certain entity behaviors:

[ALWAYS_WAR_WITH_GROUP:1] would be on goblins. They can never make peace with anyone in group 1.

[KIDNAP_FROM_GROUP:1] would also be on goblins - they can babysnatch from humans, elves, or dwarves. To allow them to snatch kobolds you would add [KIDNAP_FROM_GROUP:3] and from animal peoples or all independents, [KIDNAP_FROM_GROUP:0]. To allow kidnapping from other goblin civs - [KIDNAP_FROM_GROUP:2]. Easy!


There's an endless variety of tokens that could be added to modify entity behavior, but I think this civ group method is the easiest baseline to start with.
Title: Re: Entity tokens to force war/friendly - civ groups
Post by: 612DwarfAvenue on August 28, 2014, 09:44:25 am
Do want.
Title: Re: Entity tokens to force war/friendly - civ groups
Post by: Dirst on August 28, 2014, 09:54:24 am
I like this idea, but there's no real reason to limit it to numbers.  SYN_CLASSES are nearly arbitrary text, so just have [CIV_CLASS:STANDARD] on Dwarves, Elves and Humans.  An ENTITY can have several CIV_CLASSes if desired.  The lack of tags makes an ENTITY independent.

Wars will still be based on ETHICS differences (especially important when ETHICs get randomized a bit on a civ-by-civ basis and same-ENTITY wars become a thing), but some sort of bias can be introduced with tags like [CIV_RELATIONS:STANDARD:5] and [CIV_RELATIONS:UNDERGROUND:-3].  Big enough numbers can ensure constant peace or constant war.

To take this a step further, it could even be folded into the progress triggers to make civs more likely to trade with (or invade) specific CIV_CLASSes.