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
 
 | 
Warning: 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
  }
}