[CF-Devel] object movers
Peter Mardahl
peterm at alfven.EECS.Berkeley.EDU
Thu Mar 29 18:18:43 CST 2001
>
PeterM wrote:
>
>I think your proposed generalization makes
>
>a great deal of sense. You need one more flag:
>
>8 -- paralyze living objects so they MUST move
>
> as directed
>
>
>
>Are you going to code this?
>
>
I suppose I should try coding this. Before I start, though, we should agree
>
on the design
What you have proposed looks good to me.
My only other request is that you make editor/maps/picks/special
have some reasonable default movers in it.
PeterM
>
Currently the paralyze status is determined by attacktype and hp. It seems
>
to make sense that we should set the attacktype to paralyze for this. I
>
suppose we could allow other attacktypes to have movers that cause dammage
>
of various types (for example, a lava stream that causes fire dammage). On
>
the other hand, I don't see as that needs to be a part of the mover, so
>
unless someone sees a good reason to implement that, I'll leave it out.
>
>
So I'll create a new generic_mover object. Once people are happy with it,
>
I'll convert the player_movers over to the generic_movers.
>
>
Here's how it's slated to work right now (mostly based on the player_mover):
>
>
sp: direction in which to move (0 for random)
>
speed: how often to move
>
lifesave: disappear after hp+1 moves if set
>
hp: number of moves (plus one) before disappearing, if lifesave is se
>
t.
>
attacktype: paralyze when moving
>
maxsp: how long to paralyze (relative to victim->speed/speed) [default t
>
o 2 if zero]
>
level: bitmap to determine which objects move; add the values together
>
1 -- move monsters
>
2 -- move players
>
4 -- move non-living objects
>
8 -- move flying objects (was maxhp in player_mover)
>
16 -- don't move non-flying objects
>
slaying: only move objects that match the text string
>
maxhp: control how slaying matches are performed:
>
0 -- ignore slaying field
>
1 -- exact match
>
2 -- fuzzy match [similar to item_matched_string()]
>
>
Notes:
>
>
The only reason that level 16 is not "move non-flying objects" is because
>
it would probably always be set. This way it can be ignored most of the
>
time.
>
>
For the fuzzy slaying match, I would use item_matched_string() to do the
>
match, except that it uses pl->contr->count. I may be missing something,
>
but I think we want to ignore counts here.
>
>
--PC
>
_______________________________________________
>
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