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 }