Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Shamelessly ripped off from Cooke's Gluon Gun code. Thanks! :P
- ACTOR GSA_Singularity
- {
- Decal "Singularity"
- Radius 3
- Height 4
- Speed 2
- var int user_life[2];
- Damage (8+(random(1,4)*random(2,3)))
- DamageType "Disintegrate"
- Renderstyle ADD
- PROJECTILE
- +PAINLESS
- +DONTSPLASH
- +FORCERADIUSDMG
- +NODAMAGETHRUST
- States
- {
- Spawn:
- TNT1 A 0
- TNT1 A 0 A_SpawnItemEx("GSA_SpirallingSingularity",10,5,2,velx,vely,velz,0,32|SXF_ABSOLUTEMOMENTUM)
- Movement:
- LPUF A 0 A_JumpIf(user_life[0]>=25000,"Death")
- LPUF A 0 A_Warp(AAPTR_DEFAULT,velx,vely,velz,0,WARPF_ABSOLUTEOFFSET,1)
- Goto MoveOut
- LPUF A 0 A_Warp(AAPTR_DEFAULT,velx,vely,velz,0,WARPF_ABSOLUTEOFFSET,1)
- Goto MoveOut
- LPUF A 0 A_Warp(AAPTR_DEFAULT,velx,vely,velz,0,WARPF_ABSOLUTEOFFSET,1)
- Goto MoveOut
- LPUF A 0 A_Warp(AAPTR_DEFAULT,velx,vely,velz,0,WARPF_ABSOLUTEOFFSET,1)
- Goto MoveOut
- LPUF A 0 A_Warp(AAPTR_DEFAULT,velx,vely,velz,0,WARPF_ABSOLUTEOFFSET,1)
- Goto MoveOut
- LPUF A 0 A_JumpIf(user_life[0]>=4000,3)
- LPUF A 0 A_CheckSight(2)
- LPUF A 0 A_SpawnItemEx("GSA_BeamCollapse",velx+frandom(-1.0,1.0),0,velz+frandom(-1.0,1.0),0,0,0,0,32|SXF_ABSOLUTEMOMENTUM)
- LPUF A 0 A_SetUserArray("user_life",0,user_life[0]+1)
- Loop
- MoveOut:
- TNT1 AAAAA 1
- Goto Movement
- Death:
- SING B 0 A_Explode(16,64,false)
- SING B 0 A_SetScale(scalex+frandom(-2.1,0.5))
- SING BABCBCBB random(1,3) A_SpawnItemEx("GSA_CollapseFX",5+frandom[cfx](-5.0,5.0),5+frandom[cfx](-5.0,5.0),frandom[cfx](-5.0,5.0), frandom[cfx](-5.0,5.0),frandom[cfx](-5.0,5.0),frandom[cfx](-5.0,5.0))
- Stop
- }
- }
- const int whs = -1;
- const int wvs = -1;
- const int whd = 1;
- const int wvd = 1;
- ACTOR GSA_SpirallingSingularity
- {
- Decal "BulletChip"
- var int user_count;
- var int user_life;
- Radius 3
- Height 3
- Speed 5
- WeaveIndexZ 16
- Renderstyle ADD
- Scale 0.7
- DamageType "Disintegrate"
- PROJECTILE
- +BLOODLESSIMPACT
- States
- {
- Spawn:
- TNT1 A 0
- Goto Jumping
- Jumping:
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",14,"wat14",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",13,"wat13",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",12,"wat12",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",11,"wat11",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",10,"wat10",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",9,"wat9",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",8,"wat8",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",7,"wat7",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",6,"wat6",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",5,"wat5",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",4,"wat4",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",3,"wat3",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",2,"wat2",AAPTR_PLAYER1)
- TNT1 A 0 A_JumpIfInventory("GSA_SpiralToken",1,"wat1",AAPTR_PLAYER1)
- Goto Increase
- wat14:
- TNT1 A 0 A_TakeInventory("GSA_SpiralToken",999,0,AAPTR_PLAYER1)
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat13:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat12:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat11:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat10:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat9:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat8:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat7:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat6:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat5:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat4:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat3:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat2:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- wat1:
- TNT1 AAAAA 0 A_Weave(whs,wvs,whd,wvd)
- Increase:
- TNT1 A 0 A_GiveInventory("GSA_SpiralToken",1,AAPTR_PLAYER1)
- Logic:
- TNT1 A 0 A_Warp(AAPTR_DEFAULT,velx/2,vely/2,velz/2,0,WARPF_ABSOLUTEOFFSET|WARPF_INTERPOLATE,1)
- Goto Death
- TNT1 A 0 A_Weave(1,1,0.75,1)
- TNT1 A 0 A_SpawnItemEx("GSA_SpiralCollapse",0,0,0,0,0,0,0,32)
- TNT1 A 0 A_SetUserVar("user_life",user_life+1)
- TNT1 A 0 A_JumpIf(user_life>=350,"Death")
- loop
- Death:
- TNT1 A 1
- Stop
- }
- }
- actor GSA_SpiralToken : Inventory
- {
- Inventory.MaxAmount 14
- -INVBAR
- }
- ACTOR GSA_SpiralCollapse // The puff
- {
- Scale 0.05
- Renderstyle ADD
- +NOGRAVITY
- +DONTSPLASH
- +NOINTERACTION
- States
- {
- Spawn:
- TNT1 A 0
- TNT1 A 3
- SING ABCB 1
- Stop
- }
- }
- ACTOR GSA_BeamCollapse : GSA_SpiralCollapse //The projectile core
- {
- Scale 0.1
- States
- {
- Spawn:
- TNT1 A 0
- TNT1 A 3
- BAL2 ABCB random(1,3)
- Stop
- }
- }
- ACTOR GSA_CollapseFX
- {
- Renderstyle ADD
- Scale 0.3
- +DONTSPLASH
- +NOINTERACTION
- States
- {
- Spawn:
- SNPT AB 2 BRIGHT
- SNPT ABAABB 2 A_FadeOut
- Stop
- }
- }
- ACTOR GSA_EndDestabilizerEffect
- {
- Radius 1
- Height 1
- Speed 1
- Damage 1
- DamageType "Disintegrate"
- Renderstyle NONE
- PROJECTILE
- +RIPPER
- +PAINLESS
- +DONTREFLECT
- //+EXTREMEDEATH
- States
- {
- Spawn:
- TNT1 A 1
- Stop
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement