Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: How to control war/hostility between entities?  (Read 4481 times)

smakemupagus

  • Bay Watcher
  • [CANOPENDOORS]
    • View Profile
How to control war/hostility between entities?
« on: July 15, 2012, 02:32:44 pm »

What tools are there to control hostility between entities?

I am trying to make it so that in the same world you can choose to play as either a Dwarven or Orcish entity, and I'd like to have maybe 3 types of civs:

A. trade with dwarves, hostile to orcs
B. trade with orcs, hostile to dwarves
C. hostile to both; or unpredictable and often hostile

The "babysnatcher" tag more or less works for creating groups A and B
Spoiler (click to show/hide)
Is there any way to do "C"?

edit:  Oh, here's a more interesting continent.
Spoiler (click to show/hide)
it seems like the Masterwork and Fortress defense enemies already act the way i'm looking for, although I'm not sure I understand why, so maybe i can reverse engineer it from there :)
« Last Edit: July 15, 2012, 03:15:19 pm by smakemupagus »
Logged

NecroRebel

  • Bay Watcher
    • View Profile
Re: How to control war/hostility between entities?
« Reply #1 on: July 15, 2012, 02:56:02 pm »

Entities with BABYSNATCHER are automatically hostile to entities without BABYSNATCHER. They also send snatchers and ambushes.

Entities with ITEM_THIEF are automatically hostile to entities without ITEM_THIEF. They also send item thieves.

Creatures that cannot speak (by lacking the CAN_SPEAK and/or INTELLIGENT token, or by having the UTTERANCES token) form entities that are automatically hostile to all other entities.

Entity ethics affect how often civilizations declare war on each other. That is, if two entities have radically-divergent ethics, they'll be prone to going to war. For example, vanilla dwarves find eating sapient creatures unthinkably immoral, while elves don't really care, and this makes dwarves and elves prone to going to war.



Giving a playable entity ITEM_THIEF is a bad idea, as it causes all items that leave a fort with the caravans to be considered stolen, so an entity with ITEM_THIEF cannot increase their exported wealth. You should thus have the 3 groups be defined by A) not fitting any of the above parameters, B) having BABYSNATCHER and none of the other above parameters, and C) being incapable of speech or having lax moral standards.
Logged
A Better Magma Pump Stack: For all your high-FPS surface-level magma installation needs!

Hugo_The_Dwarf

  • Bay Watcher
  • Modding Mentor
    • View Profile
    • Regeneration: Forced Evolution
Re: How to control war/hostility between entities?
« Reply #2 on: July 15, 2012, 02:58:32 pm »

Entities with BABYSNATCHER are automatically hostile to entities without BABYSNATCHER. They also send snatchers and ambushes.

Entities with ITEM_THIEF are automatically hostile to entities without ITEM_THIEF. They also send item thieves.

Creatures that cannot speak (by lacking the CAN_SPEAK and/or INTELLIGENT token, or by having the UTTERANCES token) form entities that are automatically hostile to all other entities.

Entity ethics affect how often civilizations declare war on each other. That is, if two entities have radically-divergent ethics, they'll be prone to going to war. For example, vanilla dwarves find eating sapient creatures unthinkably immoral, while elves don't really care, and this makes dwarves and elves prone to going to war.



Giving a playable entity ITEM_THIEF is a bad idea, as it causes all items that leave a fort with the caravans to be considered stolen, so an entity with ITEM_THIEF cannot increase their exported wealth. You should thus have the 3 groups be defined by A) not fitting any of the above parameters, B) having BABYSNATCHER and none of the other above parameters, and C) being incapable of speech or having lax moral standards.
BABYSNATCHER does not control ambushes, AMBUSHER does.
Logged

NecroRebel

  • Bay Watcher
    • View Profile
Re: How to control war/hostility between entities?
« Reply #3 on: July 15, 2012, 03:04:35 pm »

BABYSNATCHER does not control ambushes, AMBUSHER does.
Look at the vanilla goblin entity. They have BABYSNATCHER. They do not have AMBUSHER. Goblins send ambushes. This is because BABYSNATCHER implies AMBUSHER. You cannot have a BABYSNATCHER entity that does not send ambushes, because the BABYSNATCHER token makes the entity send ambushes.

AMBUSHER also makes the entity send ambushes, but it isn't the only thing that does.
Logged
A Better Magma Pump Stack: For all your high-FPS surface-level magma installation needs!

smakemupagus

  • Bay Watcher
  • [CANOPENDOORS]
    • View Profile
Re: How to control war/hostility between entities?
« Reply #4 on: July 15, 2012, 03:19:29 pm »

Cool thanks very much for quick answers.

Hugo_The_Dwarf

  • Bay Watcher
  • Modding Mentor
    • View Profile
    • Regeneration: Forced Evolution
Re: How to control war/hostility between entities?
« Reply #5 on: July 15, 2012, 03:22:27 pm »

BABYSNATCHER does not control ambushes, AMBUSHER does.
Look at the vanilla goblin entity. They have BABYSNATCHER. They do not have AMBUSHER. Goblins send ambushes. This is because BABYSNATCHER implies AMBUSHER. You cannot have a BABYSNATCHER entity that does not send ambushes, because the BABYSNATCHER token makes the entity send ambushes.

AMBUSHER also makes the entity send ambushes, but it isn't the only thing that does.
Looked at the wiki
Quote from: the Wiki
BABYSNATCHER   Sends thieves to steal babies. Also sends ambush parties to harass your civilization. Without this tag, enemy civs will only siege, and will siege as early as they would otherwise babysnatch. This can happen as early as the first year of the fort! In addition, babysnatcher civs will snatch children during worldgen, allowing them to become part of the civ if they do not escape.
Note: If the playable civ in Fortress Mode has this tag (ie. you add BABYSNATCHER to the Dwarf entity) then the roles will be reversed and elves and humans will siege and ambush and goblins will trade with you.
 
You are correct, serves me right for going by memory.
Logged

Toxicshadow

  • Bay Watcher
    • View Profile
    • github
Re: How to control war/hostility between entities?
« Reply #6 on: July 15, 2012, 04:52:01 pm »

BABYSNATCHER does not control ambushes, AMBUSHER does.
Look at the vanilla goblin entity. They have BABYSNATCHER. They do not have AMBUSHER. Goblins send ambushes. This is because BABYSNATCHER implies AMBUSHER. You cannot have a BABYSNATCHER entity that does not send ambushes, because the BABYSNATCHER token makes the entity send ambushes.

AMBUSHER also makes the entity send ambushes, but it isn't the only thing that does.
Looked at the wiki
Quote from: the Wiki
BABYSNATCHER   Sends thieves to steal babies. Also sends ambush parties to harass your civilization. Without this tag, enemy civs will only siege, and will siege as early as they would otherwise babysnatch. This can happen as early as the first year of the fort! In addition, babysnatcher civs will snatch children during worldgen, allowing them to become part of the civ if they do not escape.
Note: If the playable civ in Fortress Mode has this tag (ie. you add BABYSNATCHER to the Dwarf entity) then the roles will be reversed and elves and humans will siege and ambush and goblins will trade with you.
 
You are correct, serves me right for going by memory.
Don't forget to add this to the modding resource's FAQ lol
Logged
Quote
'ere the Chias get hungry...

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: How to control war/hostility between entities?
« Reply #7 on: July 15, 2012, 11:07:59 pm »

You are all wrong :P

Smake, what you are looking for are the ethics. If one has acceptable, the other unthinkable, it is possible that the entities wage war against each other. So if you have 5 invaders, and all 5 have different ethics they "might" start wars, both in worldgen and on the battlefield in fortress mode. That is the reason for the infighting of my invaders, has nothing to do with babysnatchers or thieves...

You can also try some tricks with crazed and opposed to life.
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Replica

  • Bay Watcher
  • Temp. leave of absence
    • View Profile
Re: How to control war/hostility between entities?
« Reply #8 on: July 15, 2012, 11:32:54 pm »

Generally the more extreme the ethic values are the more likely civs with opposites will wage war.

A civ with unthinkable in eating sapients will almost always wage war on those that have acceptable.
Civs with "misguided", "appalling" and "shun" wont support an ethic, but they are less likely to declare war because of it.

Unthinkable - Extreme anti
Misguided - Neutral
Acceptable - Extreme pro

Like Meph said, the more diverse the ethics are the higher the likehood of war, this applies to petty things like lying, oath breaking and vandalism too.
Logged
Quote from: tahujdt
I don't know about unicorns, but back in .95, one of my PA soldiers was diagnosed with power armor. I drew a fairly good picture about it, but my science project (a bunny) pissed all over it.
Fallout: Equestria - Index of Stable Reports x Fallout: Equestria - Orange

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: How to control war/hostility between entities?
« Reply #9 on: July 15, 2012, 11:34:05 pm »

You are all wrong :P

Smake, what you are looking for are the ethics. If one has acceptable, the other unthinkable, it is possible that the entities wage war against each other. So if you have 5 invaders, and all 5 have different ethics they "might" start wars, both in worldgen and on the battlefield in fortress mode. That is the reason for the infighting of my invaders, has nothing to do with babysnatchers or thieves...

You can also try some tricks with crazed and opposed to life.

No, babysnatcher and thieves also all work for guaranteed hostility between races with the tag and without--ethics are simply another way.

smakemupagus

  • Bay Watcher
  • [CANOPENDOORS]
    • View Profile
Re: How to control war/hostility between entities?
« Reply #10 on: July 16, 2012, 12:55:40 am »

is it true that:
when you get the red "-----" then that is the result of permanent hostility (BABYSNATCHER, lacks CAN_SPEAK, etc.)?
and when you get the red "WAR" then that is a conflict based on conflicting ethics?

NecroRebel

  • Bay Watcher
    • View Profile
Re: How to control war/hostility between entities?
« Reply #11 on: July 16, 2012, 01:35:57 am »

More or less. There can be war between races that are automatically hostile to one another, though, as long as both can speak. If you're at war with an autohostile race, it is believed that they will send ambushes and/or sieges earlier and will scale them up in size faster.
Logged
A Better Magma Pump Stack: For all your high-FPS surface-level magma installation needs!

Replica

  • Bay Watcher
  • Temp. leave of absence
    • View Profile
Re: How to control war/hostility between entities?
« Reply #12 on: July 16, 2012, 04:01:49 am »

[PROGRESS_TRIGGER] decides when a civ sends sieges.
Logged
Quote from: tahujdt
I don't know about unicorns, but back in .95, one of my PA soldiers was diagnosed with power armor. I drew a fairly good picture about it, but my science project (a bunny) pissed all over it.
Fallout: Equestria - Index of Stable Reports x Fallout: Equestria - Orange

smakemupagus

  • Bay Watcher
  • [CANOPENDOORS]
    • View Profile
Re: How to control war/hostility between entities?
« Reply #13 on: July 16, 2012, 06:51:56 pm »

[PROGRESS_TRIGGER] decides when a civ sends sieges.

Thanks, yeah so I set up our good Urists with some Progress_triggers and hoping to see them siege my Orc fortress.  But not too soon.

Quietust

  • Bay Watcher
  • Does not suffer fools gladly
    • View Profile
    • QMT Productions
Re: How to control war/hostility between entities?
« Reply #14 on: July 16, 2012, 09:26:02 pm »

BABYSNATCHER does not control ambushes, AMBUSHER does.
Look at the vanilla goblin entity. They have BABYSNATCHER. They do not have AMBUSHER. Goblins send ambushes. This is because BABYSNATCHER implies AMBUSHER. You cannot have a BABYSNATCHER entity that does not send ambushes, because the BABYSNATCHER token makes the entity send ambushes.

AMBUSHER also makes the entity send ambushes, but it isn't the only thing that does.
AMBUSHER is a completely different behavior from BABYSNATCHER ambushes - strictly speaking, it triggers Elven-style ambushes.
Logged
P.S. If you don't get this note, let me know and I'll write you another.
It's amazing how dwarves can make a stack of bones completely waterproof and magmaproof.
It's amazing how they can make an entire floodgate out of the bones of 2 cats.