[CF-Devel] healing potions
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Fri Oct 15 01:41:57 CDT 2004
Todd Mitchell wrote:
>
Better than a new field would be to standardize around a single method
>
for adding inventory.
Arguably, the treasure list syntax already supports that.
>
What would be fantastic would be to be able to
>
add treasure list notation in the arch file directly *and/or* use a
>
list(s) from a .trs file or the treasures file - the same sort of thing
>
you can do with animation - use anim/mina in the arch file or call
>
animation from a .face file. Since the .trs files are collected and
>
collection is not done during game time I don't see a big problem with
>
having it parse treasures from .arc files as well as .trs files (?).
It could be done, but a little more complicated than the animation stuff.
The animation stuff is easy - the collection code basically says 'one I find a
anim, just collect all the data until I get a mina. This works fine because
mina is not used anyplace for the archs.
The treasurelists use an 'end' to denote the end of the list, which also
happens to match the tag for ending an object. Fortunately, the treasurelist
doesn't nest those, so the collect could basically do something like 'once I
see a treasure line, collect all until I see an end line'.
>
This would let you grandfather out the randomitems field so that
>
inventory is done a single way and get rid of the limitation where you
>
can only have one entry in the randomitems. It would be great to be
>
able to spice up a chest or a mob by adding an additional treasure list
>
or two or even a single item (or chance for an item) without having to
>
make treasurelists for every permutation.
Well, you're asking for something completely different now.
You can't, for example, add animations in the archs on maps - the collect
script does the work of sorting out the fields at collection time and putting
them in the right place. And doing something like that for treasurelists
wouldn't be hard.
But you are describing the ability to have treasurelists embedded in objects
in maps - this is doable, but would require a bit more work. The code would
probably have to do something like generate the name of the treasurelist at load
time to make sure it is unique (could just keep a global counter, and do
something like dynamiclist_1, dynamiclist_2, etc). When the object is then
swapped out, the treasurelist could be freed.
However, it would still be a requirement that only 1 treasurelist is allowed
per object, and you can't reference other objects treasurelists. Eg, you
couldn't do something like:
object orc
...
treasure blah
...
end
treasure blah2
list blah
..
end
end
OR something like:
object orc
treasure blah
..
end
object orc
randomitems blah
..
end
>
I know you can do this in
>
maps with the editor by adding inventory manually but this leaves you
>
out in the cold for arches that are spawned or created and you can't put
>
in a possibility for an item this way.
Spawned objects don't necessarily get fixed by the above - in many cases, such
automatically created objects are created just by an 'other_arch' field. Unless
those are all changed, you don't gain anything, because the other_arch can only
point at a generic arch.
And note that treasurelists can also only point at the same generic arch's -
you can not for example have that treasurelist contain a customized object,
unless that object is an official arch.
It is certainly a good idea to have the treasurelists be customizable within
objects - I think that has been on the TODO list for a long time, but it really
doesn't have anything to do with having healing potions work - that is 100% of
having the appropriate functions (command_create, move_creator) do the right
thing - no matter whatever archetype/treasurelist/etc changes are made, unless
the code in the functions is also changed, things still won't work.
_______________________________________________
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