Page 1 of 1
[Fixed for V0.42] Dragon spit in SS
Posted: Sun Aug 06, 2006 11:30 pm
by Gambit37
Also, I found a dragon spit with a 'consume' attack -- when I use it, I receive 6 wizard levels! Is this supposed to happen, seems rather generous!?
I thought it should allow me to capture fire balls and spit them back. I suspect 0.42 has messed up here too?
Think I'd better play this in 0.37 as intended. I'm so lost, I need to map anyway...
Posted: Mon Aug 07, 2006 6:14 am
by Sophia
Gambit37 wrote:Also, I found a dragon spit with a 'consume' attack -- when I use it, I receive 6 wizard levels! Is this supposed to happen, seems rather generous!?
This is a bug in RTC, too.

Posted: Mon Aug 07, 2006 8:03 am
by beowuuf
:(
Posted: Mon Aug 07, 2006 11:32 am
by George Gilbert
Hmmm - it's not entirely obvious that it is a bug actually.
Looking at the SStrike.RTC file, the object WAND_DRAGON_MOD_X actually has the string "ATTACK_METHOD_CONSUME" in it for the second attack method (specifically, it's not a problem with converting ID numbers etc between versions). So the problem isn't with the loading of the file - if there is one, then it's either with the V0.37 compiler that originally created it or with the txt file it was created from.
Sophia - can you explicitly check that your txt file doesn't have the consume method for this object!
Gambit - given that the object has a consume method, then gaining several wizard levels when you consume it is actually exactly the right behaviour (obviously though, I'm sure it wasn't Sophias intention that it should be consumable!).
Posted: Mon Aug 07, 2006 5:47 pm
by Sophia
Er, I think something was unclear here. The object is not "consumable," that is, you can't eat it. It has an attack method called "CONSUME" that sucks in fireballs, much like the original DM Dragon Spit was supposed to (at least according to the hint book)
ADD WAND_DRAGON_MOD_X CLONES=(WAND_DRAGON_X) METHODS=(ATTACK_METHOD_SWING,ATTACK_METHOD_CONSUME,NULL)
ADD ATTACK_METHOD_CONSUME NAME=(CONSUME) TYPE=(WIZARD) ACTION=(ACTION_SWAP_LOCAL,DUNGEON_SPELL_FIREBALL,DUNGEON_SPELL_FIREBALL_ABSORBED) STRENGTH=(50) LEVEL=(4) ENERGY=(2) TIME=(50) CHARGES_USED=(0) MANA_USED=(1) SOUND=(NULL)
I don't see anything in there that would make it give 6 wizard levels, so if the problem is with me, I'm a bit clueless!
Posted: Mon Aug 07, 2006 6:09 pm
by George Gilbert
Ahhhhhh - that now makes sense.
There is now a default attack method of ATTACK_METHOD_CONSUME (which eats things) that's used by the DM-II food items. That's clashing with *your* ATTACK_METHOD_CONSUME.
The engine can't tell the difference between the two and has obviously plumped for the eating one!
The key point here is that you have created a perfectly valid new attack method in V0.37 - in a future version (V0.39?) I then, without knowing that you were already using that text string, created a different one with the same string.
It's not obvious how to avoid this other than when dungeon designers create new things, they give them UniqueIDs that I could not possibly ever decide to use (e.g. embed your name in it, say ATTACK_METHOD_SOPHIAS_CONSUME, or something similar).
What do you think?
Posted: Mon Aug 07, 2006 6:12 pm
by George Gilbert
BTW - the wizard level thing occurs because the character has actually eaten the dragon spit from which your object was cloned and so, like the BOOST_BY_OBJECT action, has gained some of the properties of the object.
Posted: Mon Aug 07, 2006 6:21 pm
by Sophia
George Gilbert wrote:The engine can't tell the difference between the two and has obviously plumped for the eating one!
...
It's not obvious how to avoid this
I am not sure how the attack methods are represented in the binary .RTC files, but it seems to me that there is no real need to tell the difference past the loading phase. Simply to give the attack methods found in the dungeon file precedence, trash the internal one, and be done with it.
The method found in the dungeon is obviously the one the designer intended, regardless of what may have happened to the engine in the meantime.
Objects that use the internal attack method obviously didn't exist at the time of the dungeon's creation so the fact that their definitions are now all screwed up will not affect anything, as they are certainly nowhere to be found in that dungeon.
Posted: Mon Aug 07, 2006 6:34 pm
by George Gilbert
Actually - forget all of the above, there isn't a default attack method of consume, it's ATTACK_METHOD_EAT / ATTACK_METHOD_DRINK.
I've no idea what's going on here again

Posted: Mon Aug 07, 2006 6:34 pm
by Gambit37
Whatever.... I like this bug! Leave it alone!
I like consuming thin air to receive massive amounts of experience.
It's cool.
Don't touch it.
Ever.

Posted: Mon Aug 07, 2006 7:24 pm
by beowuuf
It's a 'feature'
Posted: Mon Aug 07, 2006 7:45 pm
by George Gilbert
Sadly, this is now fixed.
FYI - the problem was with the ACTION_SWAP_LOCAL; I'd messed up the backwards compatibility for this now retired action.