Classes:LoreShot
Jump to navigation
Jump to search
Note: Wait! Stop! You do not need to copy this actor's code into your project! Here's why:
|
Loremaster grappling hook | |||
---|---|---|---|
Actor type | Explosive | Game | ![]() |
DoomEd Number | None | Class Name | LoreShot |
Conversation ID | 97 | Puzzle Item ID | N/A |
Classes: LoreShot
This is the projectile fired by the Loremaster. It pulls the actor that is hit toward the actor that fired it. It also calls A_LoremasterChain to spawns several LoreShot2 actors to create a "chain".
Note, in ZScript it's no longer necessary to create a projectile based on this class just to implement its dragging functionality. Instead, you can just copy the contents of its DoSpecialDamage override (and modify them, if necessary).
ZScript definition
Note: The ZScript definition below is for reference and may be different in the current version of GZDoom.The most up-to-date version of this code can be found on GZDoom GitHub. |
class LoreShot : Actor
{
Default
{
Speed 20;
Height 14;
Radius 10;
Projectile;
+STRIFEDAMAGE
Damage 2;
MaxStepHeight 4;
SeeSound "loremaster/chain";
ActiveSound "loremaster/swish";
}
States
{
Spawn:
OCLW A 2 A_LoremasterChain;
Loop;
Death:
OCLW A 6;
Stop;
}
override int DoSpecialDamage (Actor victim, int damage, Name damagetype)
{
if (victim != NULL && target != NULL && !victim.bDontThrust)
{
Vector3 thrust = victim.Vec3To(target);
victim.Vel += thrust.Unit() * (255. * 50 / max(victim.Mass, 1));
}
return damage;
}
void A_LoremasterChain ()
{
A_StartSound ("loremaster/active", CHAN_BODY);
Spawn("LoreShot2", Pos, ALLOW_REPLACE);
Spawn("LoreShot2", Vec3Offset(-Vel.x/2., -Vel.y/2., -Vel.z/2.), ALLOW_REPLACE);
Spawn("LoreShot2", Vec3Offset(-Vel.x, -Vel.y, -Vel.z), ALLOW_REPLACE);
}
}
DECORATE definition
Note: This is legacy code, kept for archival purposes only. DECORATE is deprecated in GZDoom and is completely superseded by ZScript. GZDoom internally uses the ZScript definition above. |
ACTOR LoreShot native { Speed 20 Height 14 Radius 10 Projectile +STRIFEDAMAGE Damage 2 MaxStepHeight 4 SeeSound "loremaster/chain" ActiveSound "loremaster/swish" action native A_LoremasterChain(); States { Spawn: OCLW A 2 A_LoremasterChain Loop Death: OCLW A 6 Stop } }