[CF-Devel] Spell directory layout.

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Mon Jun 9 01:52:09 CDT 2003


I'm working on the 'spell object' idea now.  I've more or less finished up the 
skill stuff, but didn't want to have to update a bunch of the old spell code to 
use it, so decided to just tackle the spell object idea so that I only have to 
write that code once.

  I decided to sketch out a layout for the arch directory for all this spell 
stuff - all the arch's are going to need to get updated anyways, so might as 
well update the layout of the directories to make finding things easier.

This is excerpted from the spells doc I'm updating as I work on this.



6. Arch Directory Layout

This section describes the basic layout of the archetypes in the arch
directory.  This explanation is here to try and prevent confusion (where
should this arch go), where would I find an arch, etc.

I thought about this a bit - would it be better to organize spells by
attacktype (eg, all fire spells together, all cold spells, etc), or by type of
spell (bolt spells, bullet spells, cone spells, etc).

I think both methods have valid reasons for and against them.  I decided to do
it by spell type because I think it will make it easier to compare spells.

For example, if one bolt spell does 20 damage, and another does 30 damage,
even if by another attacktype, pretty easy to see that the later is more
potent.

This also organizes the spells more by their subtype, which is the more
standard way the arch's have been done in the past.  It makes for designing
new spells much easier (you'd just copy a starter arch from the same
directory, and not need to hunt for another one - imagine something like
acid bolt).

That said, the organization (all relative to the arch top level directory)

magic:  This directory goes away.  There are many things that are magical
    that are not spells, so having a directory named magic is IMO not the
    best of name:

spell: top level directory.  This directory is for the spell archetypes,
   and is not meant to contain non related spell code.  thus, the
   pentagram (actually a teleporter), and the weapon improver scrolls
   (not really in any way related to spells) would get relocated.

     Bolt: Contains the bolt spells
     Bullet: Bullet spells.
     Common: Contains objects that are related to spells in many areas,
         eg, the burnout is used by many types of spells, and things like
         a flaming square or icy square are used for cone, bolt, and
         exploding ball spells - those would be located here.
     Cone: Contains cone spells
     Healing: healing spells
     Potions: Contain the various potions.
     SeekingBall: spells like ball lightning
     Spellbook: spellbook/prayerbook objects.
     Wand: Contain the wand, staff, rod archetypes.

There are almost certainly sub types I'm missing that I'll have to fill in.
The idea here is to try to sketch something out that gives me a working
layout to fill things in.

Within each of the spell subtype directories, the entries for the spell
information would be needed.  And example below:

spell_lightning_bolt.arc: This is the spell object that goes in the player/
    monster inventory that says they know the lightning bolt spell.  As
    per other documentation, this also contains things like the skill needed
    to use this spell, spell point cost, level cost, etc.

lightning_bolt.arc: this is the other_arch of the spell_lightning_bolt.arc.
    Few values in this are actually used - most of the values come from
    the parent arc.  However, this (lightning_bolt.arc) contains the
    information like what the animation for the spell look like.

lightning_bolt.base.111.png (and so on) are the images used by the
     lightning_bolt.arc arch.

In the case of subtype directories with lots of entries, it is likely that the
directories may then get broken up by things like attacktype of the spells.



_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list