Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Syndrome questions  (Read 1704 times)

IndigoSnake

  • Bay Watcher
    • View Profile
Syndrome questions
« on: June 18, 2019, 09:15:02 pm »

Question 1:
I'm messing with CE_FLASH_TILE syndrome affect and I can get the infected creature to flash between the desired tile. I can make it so the default tile is displayed for 2000 ticks and display the syndrome for 500 ticks, or display both for 2000 ticks, but I cannot display the syndrome tile for a longer period of time than the default tile. Is that just the limitation of it or is there a way of doing what I want?
Spoiler (click to show/hide)

Question 2:
I'm using a tile-set (Phoebus), how would I go about finding the tile-id for, say, the tile used by cows? The raws for cow say 'C', but using that in CE_FLASH_TILE gives me the letter, not the cow sprite.
« Last Edit: June 22, 2019, 08:07:55 pm by IndigoSnake »
Logged

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: Syndrome tile-change questions
« Reply #1 on: June 19, 2019, 01:58:59 am »

I can't say about the flash tile timing (I think it should be able to display longer than the original tile), but I can answer your cow question:

The tile for the cow is "c", while it's Sprite is in raw/graphics. The flash tile can not use creature sprites, only tiles from the tileset in data/art. There are 256 to pick from and that's it.
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 :::

IndigoSnake

  • Bay Watcher
    • View Profile
Re: Syndrome questions
« Reply #2 on: June 22, 2019, 08:07:36 pm »

Cheers Meph.
Judging by the lack of the replies, I assume this is just the way it is right now, regarding the first question, which is unfortunate, but good to know.
Just another syndrome question if anyone who happens to know reads this.

What's the best way of ensuring ALL instances of a creature are infected with a specific syndrome, so that as soon as it spawns in/is born it is infected?
Logged

brolol.404

  • Bay Watcher
    • View Profile
Re: Syndrome questions
« Reply #3 on: June 22, 2019, 08:36:51 pm »

What's the best way of ensuring ALL instances of a creature are infected with a specific syndrome, so that as soon as it spawns in/is born it is infected?

What do you want the syndrome to do?

IndigoSnake

  • Bay Watcher
    • View Profile
Re: Syndrome questions
« Reply #4 on: June 22, 2019, 11:47:04 pm »

Short answer: Permanently remove the "CAN_LEARN" creature token from the affected creature
Long answer:
Spoiler (click to show/hide)
« Last Edit: June 22, 2019, 11:57:44 pm by IndigoSnake »
Logged

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Syndrome questions
« Reply #5 on: June 23, 2019, 12:03:13 am »

Uninformed idea, Regarding your cow: Have you tried using it's tile number that you can see with dfhack with gui/gm-editor df.global.world.texture.page? - that page lists all graphics tilesheets, and I've gotten lua viewscreens to display graphics by using numbers from it (for me, they were in the thousands).
« Last Edit: June 23, 2019, 12:04:53 am by Fleeting Frames »
Logged

IndigoSnake

  • Bay Watcher
    • View Profile
Re: Syndrome questions
« Reply #6 on: June 23, 2019, 12:10:45 am »

Uninformed idea, Regarding your cow: Have you tried using it's tile number that you can see with dfhack with gui/gm-editor df.global.world.texture.page? - that page lists all graphics tilesheets, and I've gotten lua viewscreens to display graphics by using numbers from it (for me, they were in the thousands).
I have not, but I am sure as hell trying to figure out how to do it now that you mentioned it!

EDIT: I typed gui/gm-editor df.global.texture.page into dfhack and was able to find the phoebus animals tilesheet. I tried a hundred or so of the numbers there. No luck sadly.

EDIT-2:
Well this is sad. I used the SECRETION creature token with the CONTINUOUS argument to infect dogs using their own sweat, solving my own question from earlier. Unfortunately, what I was trying to do appears to be impossible after experimenting for a bit.

Syndromes can:
take away a creature's ability to speak

Syndromes cannot:
grant a creature the ability to speak
take away a creature's ability to learn skills
grant a creature the ability to learn skills
« Last Edit: June 23, 2019, 03:22:06 am by IndigoSnake »
Logged

Atkana

  • Bay Watcher
  • [CURIOUSBEAST]
    • View Profile
Re: Syndrome questions
« Reply #7 on: June 27, 2019, 07:57:19 am »

Syndromes can grant a creature the ability to speak, it's just that the code that determines if a player can open the talk menu doesn't account for it - you'll notice AI creatures affected by the syndrome can talk just fine :(. As for dogs that can learn combat skills, you could always try giving them [CAN_LEARN] or [SLOW_LEARNER] in their creature raws (I believe the game checks their caste to see if the can learn skills, rather than accounting for syndromes?), and then setting the SKILL_LEARN_RATES for non-combat skills to 0. You'd gain the additional problems that intelligence grants (like needing to eat, sleep, have personalities(?), not be butcherable), and it'd be up to the game whether it actually respects those rates when generating those creatures.

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Syndrome questions
« Reply #8 on: June 27, 2019, 12:41:54 pm »

Well, it is a shame that idea didn't work, IndigoSnake. Got to say, this idea is relevant to my interests as well.

Personalities are mostly already present and moddable.

IndigoSnake

  • Bay Watcher
    • View Profile
Re: Syndrome questions
« Reply #9 on: June 27, 2019, 04:29:16 pm »

Well, it is a shame that idea didn't work, IndigoSnake. Got to say, this idea is relevant to my interests as well.

Personalities are mostly already present and moddable.
Syndromes can grant a creature the ability to speak, it's just that the code that determines if a player can open the talk menu doesn't account for it - you'll notice AI creatures affected by the syndrome can talk just fine :(. As for dogs that can learn combat skills, you could always try giving them [CAN_LEARN] or [SLOW_LEARNER] in their creature raws (I believe the game checks their caste to see if the can learn skills, rather than accounting for syndromes?), and then setting the SKILL_LEARN_RATES for non-combat skills to 0. You'd gain the additional problems that intelligence grants (like needing to eat, sleep, have personalities(?), not be butcherable), and it'd be up to the game whether it actually respects those rates when generating those creatures.

Well observed; I did my testing in arena mode and fortress mode so I managed to miss the talking thing.
Wasn't the butchering glitch fixed recently? I vaguely remember reading something about being able to butcher dwarf castes with [PET] tokens.

[NO_EAT] and [NO_SLEEP] can be added via syndromes, so I guess there is still a small hope for making this work using SKILL_LEARN_RATEs. At that point the possible obstacles would include dogs throwing tantrums from being naked for too long and possibly un-respected SKILL_LEARN_RATES during world-gen. More !SCIENCE! is needed, but there is also the possibility that removing CAN_LEARN using syndromes works as intended for everything other than skill learning, [SKILL_LEARN_RATE] might be our messiah if so. I know sentient chickens at least will use nest boxes if their sentience is removed via syndrome, something sentient creatures allegedly refuse to do. So again, there is a small hope.
Logged

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Syndrome questions
« Reply #10 on: June 28, 2019, 07:36:21 am »

Regarding talking: It certainly used to take place in fort mode (might have changed in 44.04, haven't tested after it or syndrome-modded) if you set your announcements.txt up for it.

Regarding increasing combat skills in combat: Another option might be to have a syndrome with usage hint attack that slightly boosts the stats of themselves. Harder to scale and won't respect non-hostile combat, though.

For butchering, there is also this script as workaround.
Though in that case might alternatively look into assigning individual caste flags directly.

Spitballing; one perhaps-present tactical problem for intelligent dogs: transformation will wipe out attached syndromes, and werecurse requires can_learn. OTOH, werewolf wolves.

IndigoSnake

  • Bay Watcher
    • View Profile
Re: Syndrome questions
« Reply #11 on: June 29, 2019, 01:52:00 am »

won't respect non-hostile combat
Could you elaborate on this? I know sometimes interactions won't fire in the arena, even though the AI should use them, so I figure it must be related to this.
Though in that case might alternatively look into assigning individual caste flags directly.
A dfhack script that would correctly apply [CAN_LEARN] whenever a relevant is syndrome applied would probably be my favorite dwarf fortress mod ever. Would objectively improve the game. Though, we don't necessarily know that it isn't being applied, just that the skill learning element appears to be broken; removing [CAN_LEARN] from a creature before killing and butchering it results in usable resources for bone-crafts, for example.

The transformation thing is interesting, my only concern is that the constant "Urist the dog has transformed into dog!" interrupting announcements might get annoying if you don't change announcements.txt.
Logged

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Syndrome questions
« Reply #12 on: June 29, 2019, 10:57:22 am »

I meant things like items falling on them, dodging minecarts, etc. danger roomy stuff.

If doing the effect by transformation instead of syndrome or hack, I'd want to test how it interacts with werebeast ones, again - though I suspect somebody has already documented this. If there's no stability/permanence issues, you could make the transformation last forever and be applied whenever a puppy grows into a dog.