etayn

old gzdoom project
git clone git://moonbender.net/etayn
Log | Files | Refs | README

slot6-passe.zsc (1473B)


      1 class Passe : DevilbunnyWeapon
      2 {
      3 	Actor teleBeam;
      4 	Actor teleTarget;
      5 	
      6 	Default
      7 	{
      8 		Weapon.SlotNumber 6;
      9 		DevilbunnyWeapon.CanParry FALSE;
     10 	}
     11 	
     12 	States
     13 	{
     14 		Ready:
     15 			PASS A 1 A_WeaponReady;
     16 			loop;
     17 		Fire:
     18 			PASS B 7;
     19 			PASS C 8
     20 			{
     21 				A_StartSound("passecharge");
     22 				Actor zuh;
     23 				[zuh, invoker.teleBeam] = SpawnPlayerMissile("TeleportBeam");
     24 			}
     25 			PASS C 1 A_Refire;
     26 			Goto Tele;
     27 		Hold:
     28 			PASS C 5;
     29 			TNT1 A 0 A_Refire;
     30 		Tele:
     31 			PASS D 35
     32 			{
     33 				if (invoker.teleBeam)
     34 				{
     35 					invoker.teleTarget = Spawn("PasseSpot", invoker.teleBeam.pos);
     36 					invoker.teleBeam.SetState(invoker.teleBeam.ResolveState("XDeath"));
     37 				}
     38 			}
     39 			PASS A 1
     40 			{
     41 				if (invoker.teleTarget)
     42 				{
     43 					A_StartSound("passego");
     44 					SetOrigin(invoker.teleTarget.pos, false);
     45 				}
     46 			}
     47 			Goto Ready;
     48 		Select:
     49 			PASS A 1 A_Raise(500);
     50 			Loop;
     51 		Deselect:
     52 			PASS A 1 A_Lower(500);
     53 			Loop;
     54 		}
     55 }
     56 
     57 class TeleportBeam : Actor
     58 {
     59 	Default
     60 	{
     61 		Radius 2;
     62 		Height 2;
     63 		Speed 20;
     64 		Species "Player";
     65 		Projectile;
     66 		+THRUSPECIES
     67 		+THRUACTORS
     68 	}
     69 	
     70 	States
     71 	{
     72 		Spawn:
     73 			BON2 B 1;
     74 			Loop;
     75 		Death:
     76 		XDeath:
     77 		Crash:
     78 			TNT1 A 1
     79 			{
     80 //				SpawnPlayerMissile("PasseSpot");
     81 			}
     82 //			BFE1 ABCDEF 1;
     83 			Stop;
     84 	}
     85 }
     86 
     87 class PasseSpot : Actor
     88 {
     89 	Default
     90 	{
     91 		Radius 20;
     92 		Height 64;
     93 //		ReactionTime 60;
     94 		+SOLID
     95 		+NOGRAVITY
     96 	}
     97 	States
     98 	{
     99 		Spawn:
    100 			BFE1 B 60;
    101 			Stop;
    102 	}
    103 }