Weeping Angels

Archive of the old editing forum
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
User avatar
UltimateLorenzo
Posts: 80
Joined: Fri Dec 12, 2008 11:53 am

Weeping Angels

Post by UltimateLorenzo »

I have this idea, which I think could be a nice idea for a doom monster. Unluckly, I don't have enough knwoledge of decorate to realise it.

The idea is to create a monster like the weeping angels, the enemies in Dr Who who can move only if you don't watch them.

I don't know if this is realizable in zdoom. I suppose there is a function that verify what the player is watching in every moment, as in the automap you only have the areas you actually watched.

Is there a way to pass this information (area watched) to a decorate script so that an enemy becomes frozen?

Lorenzo
User avatar
Jimmy
 
 
Posts: 4726
Joined: Mon Apr 10, 2006 1:49 pm
Preferred Pronouns: He/Him
Contact:

Re: Weeping Angels

Post by Jimmy »

This could be of use to someone willing to implement that.

http://zdoom.org/wiki/A_JumpIfInTargetLOS
User avatar
UltimateLorenzo
Posts: 80
Joined: Fri Dec 12, 2008 11:53 am

Re: Weeping Angels

Post by UltimateLorenzo »

Jimmy wrote:This could be of use to someone willing to implement that.

http://zdoom.org/wiki/A_JumpIfInTargetLOS
I'm not so sure: this can help in determining if the monster is watching you or not. It is not the same thing as if you are watching the monster.

For example, if you have a monster behind you, he can see and attach you, but if you turn toward him, he should stop.

Lorenzo
User avatar
Jimmy
 
 
Posts: 4726
Joined: Mon Apr 10, 2006 1:49 pm
Preferred Pronouns: He/Him
Contact:

Re: Weeping Angels

Post by Jimmy »

That's... pretty much what that function can be used for. Make sure you don't confuse it with [wiki]A_JumpIfTargetInLOS[/wiki].
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: Weeping Angels

Post by Xaser »

If someone makes blink.wad, they'll be my hero forever.
User avatar
Xim
Posts: 2094
Joined: Fri Feb 20, 2009 2:46 pm
Location: somewhere with trees

Re: Weeping Angels

Post by Xim »

I'd love to see the Weeping Angels. The A_JumpIfInTargetLOS is actually exactly what you'd need for it.
User avatar
UltimateLorenzo
Posts: 80
Joined: Fri Dec 12, 2008 11:53 am

Re: Weeping Angels

Post by UltimateLorenzo »

I hope you can give me some help as I don't know very well decorate...

So:

A_JumpIfInTargetLOS (str "state"[, float fov[, int flags[, float dist_max[, float dist_close]]]])

"state" is referred to a "state" of the monster, that is I should refer to the lines in the decorate that say "frozen" ???

fov, field of view, should be ... well if 0 is all around, I should put 0, right??? But overall, my fov or the monster fov?

flags: I have no idea how to use it...

dist_max and dist_close should be 0, right???

How can I be sure that it will freeze only when in my line of sight, and not in the LOS of some other enemy?

The original weeping angels can freeze each other, but i don't want this to happen to my monsters...

Lorenzo
User avatar
Nash
 
 
Posts: 17499
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Weeping Angels

Post by Nash »

I wonder, if the monster is BEHIND you but you can actually see it from a mirror linedef in front of you... would it still move? :O

(That would be downright creepy XD)
User avatar
Enjay
 
 
Posts: 27069
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: Weeping Angels

Post by Enjay »

Hmmm... would they be invulnerable when stationary (that seems appropriate when compared to the original story)? If so you'd have to find ways of killing them when you couldn't see them (I'm guessing splash damage round a corner would work) or simply run away (or keep looking at them).
User avatar
Nash
 
 
Posts: 17499
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Weeping Angels

Post by Nash »

Also don't forget that if they gaze into each other, they turn into stone forever. ;)
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: Weeping Angels

Post by Xaser »

Nash wrote:I wonder, if the monster is BEHIND you but you can actually see it from a mirror linedef in front of you... would it still move? :O
The Angel in the mirror wouldn't move, but the one behind you would. Anything which holds the image of an Angel is, itself, an Angel.

Would it be possible to replicate in Doom, though? That's the question. :P
User avatar
Enjay
 
 
Posts: 27069
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: Weeping Angels

Post by Enjay »

I suspect that the required AI simply isn't there to make a fully accurate weeping angel. However, something with a suitable feel might be possible.
User avatar
FDARI
Posts: 1097
Joined: Tue Nov 03, 2009 9:19 am

Re: Weeping Angels

Post by FDARI »

For A_JumpIfInTargetLOS to work properly, the creature must have a target, and that target will be the only creature that can prevent the Weeping Angel from moving (by looking at it). When the weeping angel is friendly, or engaged in infighting, its behaviour might not have the right feel at all, but used in the right places it could still work well.

About A_JumpIfInTargetLOS, I have encountered a few oddities when working with the source code. It does not appear to be a reliable "inverse" of A_JumpIfTargetInLOS:

First, not so relevant to the suggested use:
1. It will not get a player's target (whatever the player is looking at) when called from a player. (A_JumpIfTargetInLOS does this.)
1b. It will get anything stored in a player's pointers (mostly null) instead, just like it does for monsters.

(A_JumpIfTargetInLOS has special handling for players, using the aimed target instead of any other actor).

Second, quite relevant:
2. Both my attempts to use A_JumpIfInTargetLOS and my examination of the source code has led me to believe that it tests line-of-sight from target to caller, but still tests the caller's fov instead of the target's fov. Since a line (of sight) moves in both directions, this means that A_JumpIfInTargetLOS hardly adds functionality at all.

(I have submitted code that extends A_JumpIfInTargetLOS to cover both functions with the use of additional flags, which would lead to A_JumpIfInTargetLOS being deprecated.)
User avatar
UltimateLorenzo
Posts: 80
Joined: Fri Dec 12, 2008 11:53 am

Re: Weeping Angels

Post by UltimateLorenzo »

Well, I thank you all for your feedback, but in truth I don't have understand yet how to implement the A_JumpIfInTargetLOS function (or whatever it is) in an decorate code

:cry:

However I still hope to realize such a creature.
My idea was that they have only melee attack, and they can run very very fast.
When they become statues they are immortal, and when you don't see them, they return to hunt you.
They should not block each other...

Lorenzo
User avatar
FDARI
Posts: 1097
Joined: Tue Nov 03, 2009 9:19 am

Re: Weeping Angels

Post by FDARI »

I have an idea how code could flow to make this. I could also write sample code, if you want that kind of assistance.
Spoiler: My notion
They can have the ability to pass through eachother from the flag "THRUSPECIES". Check out the [wiki]Species[/wiki]-page for details on determining what creatures are the same species. (All actors of the same class are naturally the same species.)
Locked

Return to “Editing (Archive)”