[crossfire] exploding MOBs

Mark Wedel mwedel at sonic.net
Sat Jan 22 02:40:25 CST 2005


Todd Mitchell wrote:
>
     
      What I should have said is "you can put arches into inventory now, BUT
     
     >
     
      WHAT I was thinking of IS adding will_explode and explode_attacktype 
     
     >
     
      flags...
     
     
  Not sure what you mean by exploed_attacktype flag.

  You could certainly have an EXPLODE attacktype, but that doesn't seem quite 
right - it isn't really an attacktype, but rather an action of something that 
happens after death (there are some attacktypes currently that are more effects 
than real attacktypes, and I personally don't really like those, but they are 
left over for historical reasons - I'm mostly thinking about ghosthit, which 
says the monster disappears after hitting something, and chaos, which isn't an 
attacktype, but causes the attacktypes it has to get shuffled)

  If you mean some way to store the attacktype of the explosion, that gets more 
difficult - flags are just binary values (1/0), so are unable to hold the entire 
attacktype.

>
     
     
     >
     
      I was just going to add two new flags and change the death realted code
     
     >
     
      to pop up a explosion graphic and deal up some damage when the creature
     
     >
     
      dies.  Nothing too fancy involving arches or scripts.  I just thought 
     
     >
     
      that exploding beasties would be quite useful and would encourage more 
     
     >
     
      ranged combat and more novel combat strategies (You encounter a pack of 
     
     >
     
      terrible Ogger Kobolds. They  try to swarm you - you don't want to fight 
     
     >
     
      back or they might go off in a chain reaction.. you try to use your 
     
     >
     
      windstorm spell to push them away... oh no! your party mate fires an 
     
     >
     
      arrow into the pack and it's all over - boom!)
     
     
  The real problem is there are a fair amount of limitation with the above method:

How much damage does the explosion of the creature do (by default, it would 
either have to be hardcode, or derived by how much the creature does by itself) 
- that is to say, difficult to customize.

  What attacktype does the explosion do - once again, easy to make a default, 
but one could see different things (think of old gas spore monster for AD&D, 
which should really be poison, but one could certain envision other creatuers 
having fire or cold or whatever attacktypes.

  How big is the explosion?  If only 1 space, not all that meaningful, so a 3x3 
is probably mininum.  But do you want to allow larger explosions, etc.

  I certainly don't mean to say that your method won't work.  I'm just trying to 
envision the longer term of what people may want from the feature, and whether 
the proposed implementation will match that.  It may not make a lot of sense to 
write code that basically gets thrown out a little while later because it 
doesn't meet possible needs.

  However, perhaps I'm just being overly sensitive, because at one point there 
was an item on the TODO list to have an item turn into something else when 
destroyed, so have a more abstract way of doing that would be nice.

  Real examples I could think where that would be 'cute' is something like 
chickens getting hit by fire turning into roast birds for exmaple.  I'm sure 
there are other examples of things like this happening.

  My other point, which went way beyond the start of the discussion, is it would 
be nice to have some ability to include more arbitrary but not often used 
values.  Right now, the object structure has a field for every value that may 
ever be set - the problem this leads to is that if you want to add a new 
variable, you need to add a new field, update the loader/saver, possibly merge 
logic and other things.  And increase the object structure by some number of 
bytes for something that may not be frequently used.

  That is sort of where the idea of 'builtin' plugins comes from - the built in 
plugin can basically take a list of string options for additional information, 
which then makes it much easier to customize values.  But that is really a 
different discussion.


    
    


More information about the crossfire mailing list