Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Animal behavior tokens  (Read 348 times)

Urist Mchateselves

  • Bay Watcher
    • View Profile
Animal behavior tokens
« on: August 08, 2024, 12:08:10 pm »

I have a few suggestions to improve the behavior of wild animals if Toady ever gets around to improving them. Obviously I don't know about the intricacies of the game's engine, and I don't what is and isn't possible, I just wanted to throw some ideas out there.
[BEHAVIOR_(size):(behavior type] token:
Two of these tokens would be specified, [BEHAVIOR_LARGER:(parameter)] and [BEHAVIOR_SMALLER:parameter].  The former would determine the behavior the animal exhibits towards creatures larger than it, while the latter would determine the behavior of said animal towards those who's size are equal to or smaller than it.
The available parameters would look something like this: BENIGN (runs away in fear and only fights back if enraged), NEUTRALRUN (will not engage in any sort of combat and ignore other creatures unless provoked. If attacked however, it will behave like BENIGN), NEUTRALFIGHT (like NEUTRALRUN, but fights back instead), DEFENSIVE (initially BENIGN towards creatures it sees, but will attack anything that gets too close. It won't give chase however, and will become BENIGN again once its provocator backs off, that is unless the provocator specifically attacked first) and finally HOSTILE (will attack creatures it sees). Essentially, a creature with [BEHAVIOR_LARGER:BENIGN] and [BEHAVIOR_SMALLER:NEUTRALFIGHT] would run away from those larger than it and ignore those which are smaller or of equal size. A creature with [BEHAVIOR_LARGER:BENIGN] and [BEHAVIOR_SMALLER:HOSTILE] would act like a typical [LARGE_PREDATOR]. One could make an animal defensive towards larger creatures and hostile towards smaller creatures to mimic the behavior of certain venomous snakes. Interesting results could also be obtained by reversing the parameter order, making a creature hostile to larger ones and afraid of smaller ones. It would really help flesh out the behaviors of wild animals in a simple, yet effective way.

The tokens that are currently used to specify said behaviors could be shortcuts for [BEHAVIOR] token combinations
[BENIGN] would be token for creatures whom are BENIGN to all, [LARGE_PREDATOR] would be hostile to smaller and afraid of larger creatures, etc. Alternatively, [LARGE_PREDATOR] could be simply used to determine the amount of creatures present on the map, like it does now.

Should a creature with these tokens be part of a civilization, the game will interpret them differently. HOSTILE, DEFENSIVE and NEUTRALFIGHT will be immediately hostile towards appropriately sized enemies of their civilization. Likewise, BENIGN and NEUTRALRUN will immediately run away from appropriately sized opponents.

War trained animals will ALWAYS attack enemies of their civilization, regardless of these tokens and their parameters. I'd like to add more suggestions but I'm currently out of time. Will add to this later.
« Last Edit: August 09, 2024, 07:33:42 am by Urist Mchateselves »
Logged
If you're so sure that you're gonna end up killing all of dwarven civilization, why not make a statue depicting 2147483647 dead dwarves, all of which are burning? Name it something good, like Deaddead the Dead Dead Dead-Dead of Dying. Just put it in the main hall or something, as a grim reminder that they're all gonna die.

Urist Mchateselves

  • Bay Watcher
    • View Profile
Re: Animal behavior tokens
« Reply #1 on: August 09, 2024, 08:21:49 am »

Now that I have a base to work with, I'd like to introduce some modifiers to these behaviors:

[SIZE_MODIFIER:(number)] would make the creature think that its size is the specified number. This could be used, for example, by a large predator that's smaller than Dwarves, but will still attack them, because the SIZE_MODIFIER tricks it into thinking that it is larger than a Dwarf. Conversely, you could have a creature larger than dwarf sized creature that's NEUTRALFIGHT towards those smaller than it and BENIGN to those whom are bigger than it, but will still run away from dwarves because [SIZE_MODIFIER:55000] makes it think that dwarves are larger than it. I think it could be a nice way to further adjust a creature's behavior without having to change its actual size.

[CIV_SIZE_MODIFIER:(number)] would function much like the previously described token, but would only used for when an animal compares itself to a creature in a civilization. For example, a larger than dwarf animal that attacks smaller creatures,  runs from larger ones and possesses [CIV_SIZE_MODIFIER:55000] would still run away from dwarves because they are part of a civilization, and when the animal compares itself to a civilization member, it thinks its own size is 55000 and runs away from dwarves instead of attacking them as a result. This would take priority over the regular [SIZE_MODIFIER], and only used when a creature compares itself to a civ member, as previously mentioned. I think this would accurately emulate the fear of humans that many real world animals possess. Alternatively, you could make that same animal think that it is larger than it actually is when encountering civ members, to make it more aggressive towards them. Another idea would be to make it so that the [CIV_SIZE_MODIFIER] of an animal will be ignored if the aforementioned token's value is lesser than the creature's actual size and said creature is located in a [SAVAGE] region, to make savage areas more inhospitable and wild. Note that this tokens will be ignored if the animal which possesses it is in a civ itself.

[SAVAGE_SIZE_MODIFIER:(number)] would be like the previously described tokens, but would only apply to creature's in savage areas. This one is self-explanatory. Would take priority over the previously mentioned tokens, and like [CIV_SIZE_MODIFIER], would not apply to animals whom are members of a civ.

[CREATURE_CLASS_SIZE_MODIFIER:(creature class:number)] would be like (and be prioritized over) the other tokens, but towards creatures of the specified class.

[CREATURE_SIZE_MODIFIER:(creature id:number)] would be like (and be prioritized over) the other tokens, but towards a single type of creature. The possibilities are endless!

That's all for now, will come back later with more ideas.
Logged
If you're so sure that you're gonna end up killing all of dwarven civilization, why not make a statue depicting 2147483647 dead dwarves, all of which are burning? Name it something good, like Deaddead the Dead Dead Dead-Dead of Dying. Just put it in the main hall or something, as a grim reminder that they're all gonna die.

Urist Mchateselves

  • Bay Watcher
    • View Profile
Re: Animal behavior tokens
« Reply #2 on: August 27, 2024, 01:06:36 pm »

My last suggestion would be a tag that makes animals more bolder if they’re in a group (or if their victim isn’t in one). That means that a single lion might avoid you, but a pride of them would surely attack. Conversely, those same lions might also avoid a large group of dwarves, but opportunistically attack a lone one.
Logged
If you're so sure that you're gonna end up killing all of dwarven civilization, why not make a statue depicting 2147483647 dead dwarves, all of which are burning? Name it something good, like Deaddead the Dead Dead Dead-Dead of Dying. Just put it in the main hall or something, as a grim reminder that they're all gonna die.