Bay 12 Games Forum

Dwarf Fortress => DF Modding => Topic started by: fomori on April 26, 2014, 02:40:20 pm

Title: Basic Interaction Mod Questions
Post by: fomori on April 26, 2014, 02:40:20 pm
Hi,

I'm attempting to mod in new secrets, to create a more varied magic system in my game. Thing is, I don't have much experience playing with the RAWs beyond very basic stuff...so it isn't quite working properly.

I've started off with a very simple secret, so that I can sort out the basic principle before moving on to fancier things. The objective is to make a secret which lets you throw fireballs, whilst being fire-immune to avoid performing !!Fun!! on yourself. I started trying to get it as a curse like a vampire, but the mages wouldn't pass it down. Now I'm using necromancers as a base, and locking them out of necromancy so they don't instantly multiclass (which they will otherwise do, damn munchkins).

However, last I checked the actual powers weren't working, so I'm pretty sure I'm messing up somewhere.

Here's the text I'm using (its based off the example interactions. Descriptions etc are placeholders I can fiddle with once the basic mechanics are working):

[INTERACTION:FLAME_MAGIC]
[I_SOURCE:SECRET]
[IS_NAME:the secrets of power over fire]
[IS_SECRET_GOAL:IMMORTALITY]
   [IS_SECRET:SUPERNATURAL_LEARNING_POSSIBLE]
      [IS_SECRET:MUNDANE_RESEARCH_POSSIBLE]
      [IS_SECRET:MUNDANE_TEACHING_POSSIBLE]
      [IS_SECRET:MUNDANE_RECORDING_POSSIBLE:objects/text/book_instruction.txt:objects/text/secret_fire.txt]
[I_TARGET:A:CREATURE]
      [IT_LOCATION:CONTEXT_CREATURE]
      [IT_REQUIRES:CAN_LEARN]
      [IT_REQUIRES:CAN_SPEAK]
      [IT_CANNOT_HAVE_SYNDROME_CLASS:SECRET]
[I_EFFECT:ADD_SYNDROME]
      [IE_TARGET:A]
      [IE_IMMEDIATE]
      [IE_ARENA_NAME:flame mage]
      [SYNDROME]
      [CE_DISPLAY_TILE:TILE:165:5:0:1:START:0]
      [CE_DISPLAY_NAME:NAME:flame mage:flame mage:flame wielder's:START:0]
      [CE_ADD_TAG:FIREIMMUNE:START:0]
      [CE_CAN_DO_INTERACTION:START:0]
      [CDI:ADV_NAME:Hurl fireball]
      [CDI:INTERACTION:HURL_FIREBALL]
      [CDI:TARGET:A:LINE_OF_SIGHT]
      [CDI:TARGET_RANGE:C:15]
      [CDI:VERB:point:points:NA]
      [CDI:WAIT_PERIOD:10]

[INTERACTION:HURL_FIREBALL]
      [CDI:ADV_NAME:Hurl fireball]
      [I_TARGET:A:CREATURE]
      IT_LOCATION:CONTEXT_CREATURE]
      [CDI:USAGE_HINT:ATTACK]
      [CDI:BP_REQUIRED:BY_CATEGORY:HAND]
      [I_EFFECT:MATERIAL_EMISSION]
      [CDI:TARGET:C:LINE_OF_SIGHT]
      [CDI:TARGET_RANGE:C:15]
      [CDI:MAX_TARGET_NUMBER:C:1]
      [CDI:WAIT_PERIOD:30]
      [CDI:FLOW:FIREBALL]

 
Does anyone know precisely which rookie error I'm making here? :/
Title: Re: Basic Interaction Mod Questions
Post by: Demonic Gophers on April 27, 2014, 01:40:11 am
You might try adding [IS_SPHERE:FIRE] between the NAME and GOAL tags.  Take out the ADD_TAG:FIREIMMUNE.  Unfortunately, we can't currently add that one.  If you want to make your flame mages fireproof, the only way to do it right now is with a transformation, which gets a bit more complicated.  You don't need a separate interaction for the fireball.  Get rid of the second interaction and replace the part of your secret that's supposed to add the fireball with something like this:
Spoiler (click to show/hide)
I think this will get you as close as possible to the secret you want, unless you'd rather go ahead and transform the flame mage into something fireproof.  Fireballs shouldn't ignite them very often unless they set the entire landscape on fire and walk into the flames, I believe.
Title: Re: Basic Interaction Mod Questions
Post by: fomori on April 27, 2014, 10:07:02 am
You might try adding [IS_SPHERE:FIRE] between the NAME and GOAL tags.  Take out the ADD_TAG:FIREIMMUNE.  Unfortunately, we can't currently add that one.  If you want to make your flame mages fireproof, the only way to do it right now is with a transformation, which gets a bit more complicated.  You don't need a separate interaction for the fireball.  Get rid of the second interaction and replace the part of your secret that's supposed to add the fireball with something like this:
Spoiler (click to show/hide)
I think this will get you as close as possible to the secret you want, unless you'd rather go ahead and transform the flame mage into something fireproof.  Fireballs shouldn't ignite them very often unless they set the entire landscape on fire and walk into the flames, I believe.

First off, thanks for the reply! Its really helped thing along, I changed the interaction text and put the sphere in so now fire deities give out the secret, which is good. As do dragons, funnily enough. They have fire spheres. Didn't think of that, but its pretty cool.

The fireball throwing works-adventurers can learn it, and NPC Flame Mages will roast attackers.

Turns out now though that they aren't passing the secret down. When they seemed to be doing so earlier, I think it was the necromancer connection.* Seems like there's no books or apprentices like there are for life-and-death secrets; is that normal? Does it require another tag to make them do that or something?

*EDIT: It is. My attempt to stop Necromancers and Flame Mages from overlapping didn't work. For some reason, the hybrid mages teach both secrets to their apprentices and write them both down, but pure Flame Mages do neither. Still, its a start.

EDIT2: Fixed both of those issues/worked out that they weren't issues at all. It all seems to be working nicely now, as far as I can tell. Time to see what else I can play with. Thanks for the help-I'll charbroil a monster in your honour :3
Title: Re: Basic Interaction Mod Questions
Post by: TheDorf on May 05, 2014, 01:57:02 pm
...

EDIT2: Fixed both of those issues/worked out that they weren't issues at all. It all seems to be working nicely now, as far as I can tell. Time to see what else I can play with. Thanks for the help-I'll charbroil a monster in your honour :3

I'm having problems getting my secrets into the world. How did you fix this?

Edit: Never mind, it seems to work now. All I did was change the name of the secret to SECRET_ARCANE