actor Venus : VCBaseClass
{
Player.ScoreIcon "VENUMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Venus"
player.soundclass "Venusc"
player.startitem "BubbleBombBoss"
player.startitem "UltimateAttackItem2"
player.startitem "UltSoundWatcherSpawn2"
player.startitem "Base28Ammo", 28
player.startitem "IsFromGB5"
Player.ViewHeight 49
player.forwardmove 0.75,0.75
player.sidemove 0.73,0.73
player.jumpz 14
States
{
Spawn:
VENS B 0 
VENS B 1 A_JumpIf(z-floorz>0, "Jumping")
VENS A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2
See:
VENS BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1
Jumping:
VENS K 1 A_JumpIf(z-floorz<=0, "Spawn")
wait
Animation2:
Missile:
VENS FFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Missile2:
VENS GGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2
JumpingMissile:
VENS LLLLL 1 A_JumpIf(z-floorz<=0, "Missile")
JumpingMissile2:
VENS MMMM 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping
Animation1:
WaterCrashPose:
VENS FFGGIIJJIIGGFF 1 A_JumpIf(z-floorz>0, "JumpingWaterCrashPose")
Goto Spawn+1
JumpingWaterCrashPose:
VENS LLMMNNOONNMMLL 1 A_JumpIf(z-floorz<=0, "WaterCrashPose")
Goto Jumping
ClassPain:
VENS HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
VENS H 20 ACS_ExecuteAlways(999,0,0)
VENS H 0 A_PlayerScream
VENS H 0 A_SpawnItemEx("FakeDeathFXMMV", 0, 0, 32, 0, 0, 0, 0, 1)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("BubbleBombWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("BubbleBombWepM")
Goto ClassDeath
}
}

Actor BubbleBombBoss : VCBaseWeapon
{
weapon.ammotype "Base28Ammo"
Obituary "$OB_VENUS1"
States
{
Ready:
TNT1 A 0
VENB A 0 A_JumpIfInventory("Base28Ammo",28,"Ready.TF")
VENB A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) VENB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
VENB A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) VENB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
VENB A 0 A_GiveInventory("Base28Ammo",1) 
loop
Ready.TF:
VENB A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) TIMH H 0 A_JumpIf(CallACS("VC_CheckBtn",3)==3,"User1") VENB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") 
VENB A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) TIMH H 0 A_JumpIf(CallACS("VC_CheckBtn",3)==3,"User1") VENB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") 
VENB A 0 A_GiveInventory("Base28Ammo",1)
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
VENB A 1 A_Lower
Loop
Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,5962)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
VENB A 1 A_Raise
Loop
Fire:
VENB B 0 A_PlaySoundEx("weapon/bubblebomb","Weapon")
VENB B 0 A_FireCustomMissile("BubbleBombSD",0,0,8,8)
VENB B 0 A_TakeInventory("Base28Ammo",4)
VENB B 2
Hold:
VENB B 1
VENB B 0 A_Refire
VENB B 0 A_GiveInventory("DrillFlag")
VENB B 0 A_JumpIfHealthLower(20,"CoolDown1")
VENB B 0 A_JumpIfHealthLower(40,"CoolDown2")
VENB B 0 A_JumpIfHealthLower(60,"CoolDown3")
VENB B 0 A_JumpIfHealthLower(80,"CoolDown4")
CoolDown5: VENB C 2
CoolDown4: VENB C 3
CoolDown3: VENB C 4
CoolDown2: VENB C 5
CoolDown1: VENB C 6
VENB B 3 A_TakeInventory("DrillFlag")
VENB A 0 A_ClearRefire
Goto Ready
Altfire:
VENB B 0 A_JumpIfInventory("NoAltfire",1,"Ready")
VENB B 0 A_JumpIfInventory("BubbleMineTally",4,"Altfire.ChargeStall")
Altfire.Charge:
VENB B 0 A_JumpIfInventory("BubbleMineTally",1,"Altfire.Charge2")
VENB B 0 A_GiveInventory("ToadChargeDamageGive")
VENB B 0 A_TakeInventory("LeftClickFlag")
VENB B 1 A_GiveInventory("VenusCharge",1)
VENB B 0 A_Refire("Altfire.ChargeB")
Goto Altfire.Release
Altfire.ChargeB:
VENB B 0 A_JumpIfInventory("BubbleMineTally",1,"Altfire.Charge2B")
VENB B 0 A_GiveInventory("ToadChargeDamageGive")
VENB B 0 A_TakeInventory("LeftClickFlag")
VENB B 1 A_GiveInventory("VenusCharge",2)
VENB B 0 A_Refire("Altfire.Charge")
Goto Altfire.Release
Altfire.Charge2:
VENB B 0 A_JumpIfInventory("BubbleMineTally",1,1)
Goto Altfire.Charge
VENB B 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"BubbleDetonate")
VENB B 0 A_GiveInventory("ToadChargeDamageGive")
VENB B 0 A_GiveInventory("LeftClickFlag")
VENB B 1 A_GiveInventory("VenusCharge",1)
VENB B 0 A_Refire("Altfire.Charge2B")
Goto Altfire.Release
Altfire.Charge2B:
VENB B 0 A_JumpIfInventory("BubbleMineTally",1,1)
Goto Altfire.ChargeB
VENB B 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"BubbleDetonate")
VENB B 0 A_GiveInventory("ToadChargeDamageGive")
VENB B 0 A_GiveInventory("LeftClickFlag")
VENB B 1 A_GiveInventory("VenusCharge",2)
VENB B 0 A_Refire("Altfire.Charge2")
Goto Altfire.Release
Altfire.ChargeStall:
VENB B 0 A_JumpIfInventory("BubbleMineTally",4,1)
Goto Altfire.Charge2
VENB B 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"BubbleDetonate")
VENB B 1 A_GiveInventory("LeftClickFlag")
VENB B 0 A_Refire("Altfire.ChargeStallB")
VENB B 0 A_TakeInventory("LeftClickFlag")
Goto Ready
Altfire.ChargeStallB:
VENB B 0 A_JumpIfInventory("BubbleMineTally",4,1)
Goto Altfire.Charge2B
VENB B 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"BubbleDetonate")
VENB B 1 A_GiveInventory("LeftClickFlag")
VENB B 0 A_Refire("Altfire.ChargeStall")
VENB B 0 A_TakeInventory("LeftClickFlag")
Goto Ready
Altfire.Release:
VENB B 0 A_GiveInventory("VenusAltPickUp",1)
VENB B 0 A_TakeInventory("LeftClickFlag")
VENB CCCCB 3 A_ClearRefire
Goto Ready
BubbleDetonate:
VENB C 0 A_PlaySoundEx("weapon/hshbreath","Weapon")
VENB C 0 ACS_NamedExecute("VC_SetState",0,1)
VENB C 0 A_TakeInventory("BubbleMineTally")
VENB C 0 A_TakeInventory("LeftClickFlag")
VENB C 0 A_TakeInventory("VenusCharge")
VENB C 0 A_GiveInventory("VCOnce")
VENB C 1 Offset(3,32)
VENB C 1 Offset(-3,32)
VENB C 1 Offset(3,32)
VENB C 1 Offset(-3,32)
VENB C 1 Offset(3,32)
VENB C 1 Offset(-3,32)
VENB C 1 Offset(2,32)
VENB C 1 Offset(-2,32)
VENB C 1 Offset(2,32)
VENB C 1 Offset(-2,32)
VENB C 1 Offset(2,32)
VENB C 1 Offset(-2,32)
VENB C 1 Offset(1,32)
VENB C 1 Offset(-1,32)
VENB C 1 Offset(1,32)
VENB C 1 Offset(-1,32)
VENB C 1 Offset(1,32)
VENB C 1 Offset(-1,32)
VENB CB 3 A_ClearRefire
VENB B 0 A_TakeInventory("VCOnce")
Goto Ready
User1:
VENB A 0 A_GiveInventory("VenusTFHandler",1)
VENB BCCCCCCCCCCCCBA 1
goto Ready
UltimateAttack:
VENB B 0 ACS_NamedExecuteAlways("VC_UltimateText",0,126) VENB B 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
VENB B 0 A_GiveInventory("PowerUltBuildCooldown",1) VENB B 0 A_TakeInventory("UltAttackFlag",1) TNT1 A 0 A_GunFlash
UltLoop:
TNT1 A 0 A_JumpIfInventory("MediumShortUltimateAmmo",1,1)
goto UltFire
TNT1 A 0 A_JumpIf(CallACS("VC_CheckBtn",4)==3,"UltFire")
TNT1 A 0 A_GiveInventory("WindUltCooldown")
VENB A 1 A_FireCustomMissile("VenusUltPreview",0,0,0,8)
loop
UltFire:
TNT1 A 0 A_TakeInventory("MediumShortUltimateAmmo",67)
VENB B 0 A_PlaySoundEx("weapon/WaterShieldForm","Weapon") VENB B 0 ACS_NamedExecute("VC_SetState",0,1)
VENB B 0 A_FireCustomMissile("WaterCrashSDStart",0,0,0,8)
VENB BCCBAA 4
TNT1 A 0 A_JumpIfInventory("MediumShortUltimateAmmo",1,"UltLoop")
goto Ready
Flash:
TNT1 A 4 A_TakeInventory("MediumShortUltimateAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 0 A_JumpIfInventory("MediumShortUltimateAmmo",1,"Flash")
EndFlash:
TNT1 A 0
stop
}
}

actor BubbleBombSD
{
PROJECTILE
-EXTREMEDEATH
+SEEKERMISSILE
+SCREENSEEKER
damagetype "Venus"
Obituary "$OB_VENUS1"
Damage (10)
radius 16
height 16
Speed 20
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
VENB DDDDEEEE 1 A_JumpIfInTargetInventory("DrillFlag",1,"Tracking")
loop
Tracking:
VENB DDEEDDEEDDEEDDEEDDEEDDEEDDEE 1 A_SeekerMissile(2,20,SMF_LOOK|SMF_PRECISE,256,10)
Death:
TNT1 A 0 A_PlaySoundEx("weapon/VenusBubbleExplode1","Weapon")
X_VC QRSP 2 A_Stop
stop
}
}

actor VenusAltPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/bubblebombold","Weapon")
TNT1 A 0 A_JumpIfInventory("VenusCharge",100,"PickUp3")
TNT1 A 0 A_JumpIfInventory("VenusCharge",50,"PickUp2")
TNT1 A 0 A_FireCustomMissile("BubbleMineSD",0,0,8,8)
Goto End
PickUp2:
TNT1 A 0 A_FireCustomMissile("BubbleMine2SD",0,0,8,8)
Goto End
PickUp3:
TNT1 A 0 A_FireCustomMissile("BubbleMine3SD",0,0,8,8)
End:
TNT1 A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_GiveInventory("BubbleMineTally",1)
TNT1 A 0 A_TakeInventory("Base28Ammo",7)
TNT1 A 0 A_TakeInventory("VenusCharge")
stop
}
}

actor BubbleMineSD
{
PROJECTILE
-NOINTERACTION
+SKYEXPLODE
+DONTREFLECT
+SEEKERMISSILE
+LOOKALLAROUND
+BOUNCEONWALLS
WallBounceFactor 0.20
damagetype "VenusMine1"
Obituary "$OB_VENUS2"
Damage (0)
radius 32
height 32
Speed 30
scale 2.5
ReactionTime 350
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
VENB FFFGGGHHHIIIFFFGGGHHHIIIF 1 A_JumpIfInTargetInventory("VCOnce",1,"Death")
TNT1 A 0 A_Stop
Spawn2:
VENB F 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB F 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB G 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB G 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB G 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB H 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB H 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB H 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB I 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB I 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB I 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB F 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1
TNT1 A 0 A_PlaySoundEx("weapon/VenusBubbleExplode2","Weapon")
TNT1 A 0 A_Explode(20,80,0,0,80)
TNT1 A 0 A_TakeFromTarget("BubbleMineTally",1)
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
X_VC FGHIJKLMNO 2 A_Stop
stop
}
}

actor BubbleMine2SD : BubbleMineSD
{
WallBounceFactor 1.0
damagetype "VenusMine2"
Speed 20
radius 40
height 40
//scale 4.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
VENB UUUUUVVVVVWWWWWXXXXXUUUUU 1 A_JumpIfInTargetInventory("VCOnce",1,"Death")
TNT1 A 0 A_Stop
Spawn2:
VENB V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
VENB U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("VenusExplodeFX",random(0,160),0,random(-120,120),0,0,0,random(0,359),1)
TNT1 A 0 A_PlaySoundEx("weapon/VenusBubbleExplode3","Weapon")
TNT1 A 0 A_SetScale(5.0,5.0)
TNT1 A 0 A_Explode(30,160,0,0,80)
TNT1 A 0 A_Quake(2,15,0,150)
TNT1 A 0 A_TakeFromTarget("BubbleMineTally",1)
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
X_VC FGHIJKLMNO 3 A_Stop
stop
}
}

actor BubbleMine3SD : BubbleMineSD
{
damagetype "VenusMine3"
Speed 10
radius 48
height 48
//scale 5.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
X_VC UUUUUUUVVVVVVVWWWWWWWXXXX 1 A_JumpIfInTargetInventory("VCOnce",1,"Death")
TNT1 A 0 A_Stop
Spawn2:
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC U 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC V 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC W 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
X_VC X 1 A_JumpIfInTargetInventory("VCOnce",1,"Death") TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1
TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VenusExplodeFX",random(0,240),0,random(-200,200),0,0,0,random(0,359),1)
TNT1 A 0 A_PlaySoundEx("weapon/VenusBubbleExplode4","Weapon")
TNT1 A 0 A_SetScale(7.0,7.0)
TNT1 A 0 A_Explode(45,240,0,0,120)
TNT1 A 0 A_Quake(4,25,0,300)
TNT1 A 0 A_TakeFromTarget("BubbleMineTally",1)
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
X_VC FGHIJKLMNO 4 A_Stop
stop
}
}

actor VenusExplodeFX : BasicClientSide
{
+NOCLIP
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
X_VC FGHIJKLMNO 2
stop
}
}

actor WaterCrashSDStart : FastProjectile
{
PROJECTILE
-DONTBLAST
+RIPPER
+SPECTRAL
+SKYEXPLODE
Damage (0)
speed 150
Radius 8
Height 8
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 AAA 1
TNT1 A 0 A_Stop
Goto Death

Death:
TNT1 A 0 A_CheckFloor("Death.Floor")
TNT1 A 0 A_CheckCeiling("Death.Ceiling")
TNT1 A 0 A_SpawnItemEx("WaterCrashSDRepositioner",-16,0,0,0,0,-400)
stop

Death.Floor:
TNT1 A 0 A_SpawnItemEx("WaterCrashSDRepositioner2",16,0,0,0,0,200)
stop

Death.Ceiling:
TNT1 A 0 A_PlaySoundEx("misc/venusfall","Auto")
TNT1 A 0 A_SpawnItemEx("WaterCrashSD",0,0,-8)
stop
}
}

actor WaterCrashSDRepositioner : WaterCrashSDStart
{
States
{
Spawn:
TNT1 A 0
TNT1 AA 1
TNT1 A 0 A_Stop
Goto Death

Death:
TNT1 A 0 A_SpawnItemEx("WaterCrashSDRepositioner2",0,0,16,0,0,200)
stop
}
}

actor WaterCrashSDRepositioner2 : WaterCrashSDStart
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1
Death:
TNT1 A 0 A_PlaySoundEx("misc/venusfall","Auto")
TNT1 A 0 A_SpawnItemEx("WaterCrashSD",0,0,-16)
stop
}
}

actor WaterCrashSD
{
PROJECTILE
-FLOORHUGGER
-NOINTERACTION
+SKYEXPLODE
+THRUACTORS
+FORCEXYBILLBOARD 
Damage(0)
Radius 8
height 8
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
VENB J 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_SpawnItemEx("WaterCrashSD",0,0,-32)
Goto Spawn2

Spawn2:
VENB K 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Finish")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"End")
VENB L 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Finish")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"End")
VENB M 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Finish")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"End")
loop

End:
VENB N 1 A_SpawnItemEx("WaterCrashDamager")
stop

Death:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
Death2:
TNT1 A 0 A_PlaySound("weapon/venusult","Body")
TNT1 A 0 A_Quake(2,5,0,300)
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WaterCrashLandFX",random(0,48),0,0,0,0,0,random(0,359),1)
TNT1 AAAA 0 A_SpawnItemEx("WaterCrashSplash",32,0,16,Random(7,14),0,Random(7,14),Random(0,359))
TNT1 A 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death3")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"Death3")
TNT1 A 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death3")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"Death3")
TNT1 A 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death3")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"Death3")
TNT1 A 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death3")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"Death3")
TNT1 A 1 A_SpawnItemEx("WaterCrashDamager") TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death3")
TNT1 A 0 A_GiveInventory("CutterFlag",1) TNT1 A 0 A_JumpIfInventory("CutterFlag",105,"Death3")
loop

Death3:
TNT1 A 0
stop

Finish:
TNT1 AAA 0 A_SpawnItemEx("WaterCrashSplash",32,0,0,Random(7,14),0,Random(7,14),Random(0,359))
TNT1 A 2 A_PlaySound("weapon/venusult","Body")
stop
}
}

actor WaterCrashDamager
{
PROJECTILE
+RIPPER
+DONTBLAST
+THRUSPECIES
+NOINTERACTION
species "DustManType"
Obituary "$OB_VENUS3"
DamageType "VenusWaterCrash"
damage(0)
radius 8
height 8
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("WindUltCooldown")
TNT1 A 1 A_Explode(2,64,0,0,64)
stop
}
}

Actor WaterCrashProtect : PowerProtection
{
Powerup.Duration 1
DamageFactor "VenusWaterCrash", 0.0
}

actor WaterCrashSplash
{
PROJECTILE
-NOGRAVITY
renderstyle add
Radius 4
Height 8
speed 4
scale 1.5
gravity 1.8
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SW4T F 1
wait
Death:
SW4T G 0 A_PlaySound("misc/venusdrip","Body",0.2)
SW4T GHI 3
Stop
}
}

actor BubbleMineTally : Inventory
{
inventory.amount 1
inventory.maxamount 4
}

actor VenusCharge : Inventory
{
inventory.amount 1
inventory.maxamount 100
}

actor WaterCrashLandFX : BasicClientSide
{
+FLOORHUGGER
renderstyle add
States
{
Spawn:
TNT1 A 0
TNT1 A 1
SW4T GHI 2
Stop
}
}

actor VenusUltPreview : FastProjectile
{
	PROJECTILE
	+SKYEXPLODE
	+NOEXPLODEFLOOR
	+THRUACTORS
	+DONTBLAST
	+DONTSPLASH
	damage (0)
	speed 300
	radius 16
	height 16
	states
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 1
		Death:
		TNT1 A 0 A_SpawnItemEx("VenusUltFXHelper",0,0,0,0,0,0)
		TNT1 A 1
		stop
	}
}

actor VenusUltFXHelper : BasicHelper
{
+CLIENTSIDEONLY
States
{
Spawn:
TNT1 A 0
TNT1 A 5 A_JumpIf(CallACS("GVH_IsTargetClient")==1,"Spawn2")
goto Death
Spawn2:
TNT1 A 0 A_SpawnItemEx("VenusUltFX",0,0,0,0,0,-1000)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
stop
Death:
TNT1 A 0
stop
}
}

actor VenusUltFX
{
	+SKYEXPLODE
	+NOEXPLODEFLOOR
	+NOTARGETSWITCH
	+DONTBLAST
	PROJECTILE
	scale 2.5
	radius 5
	height 5
	Renderstyle Translucent
	Alpha 0.6
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
		VNDR A 2
		stop
	}
}

Actor VenusGroundCrawler : BasicProjectile
{
Obituary "$OB_VENUS1"
Radius 16
Height 16
Damage (0)
Stamina 5
Scale 2.5
Speed 10
meleerange 16
DamageType "VenusGroundCrawler"
Translation "229:229=195:195", "215:215=197:197"
var int user_weaveDist;
var int user_theAngle;
+RIPPER
+FLOORHUGGER
+THRUGHOST
//+SLIDESONWALLS
+BOUNCEONWALLS
states {
spawn:
TNT1 A 0
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SetUserVar("user_weaveDist",1)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble",0,10)
TNT1 A 0 A_SetUserVar("user_theAngle",angle)

VENB D 1 A_Weave(2,0,user_weaveDist,0)
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble",0,10)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble2",0,-10)

VENB E 1 A_Weave(2,0,user_weaveDist,0)
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble",0,10)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble2",0,-10)
VENB I 0 A_SetUserVar("user_weaveDist",user_weaveDist + 2)

loopit:
VENB F 1 A_Weave(2,0,user_weaveDist,0)
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble",0,10)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble2",0,-10)
VENB A 0 A_SetUserVar("user_weaveDist",user_weaveDist + 2)
VENB A 0 A_SetAngle(user_theAngle)
VENB A 0 A_ChangeVelocity(10,0,0,CVF_RELATIVE|CVF_REPLACE)

VENB G 1 A_Weave(2,0,user_weaveDist,0)
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble2",0,-10)
VENB A 0 A_SetAngle(user_theAngle)
VENB A 0 A_ChangeVelocity(10,0,0,CVF_RELATIVE|CVF_REPLACE)
//VENB I 0 A_SetUserVar("user_weaveDist",user_weaveDist + 4)

VENB H 1 A_Weave(2,0,user_weaveDist,0)
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble",0,10)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble2",0,-10)
VENB I 0 A_SetUserVar("user_weaveDist",user_weaveDist + 2)
VENB A 0 A_SetAngle(user_theAngle)
VENB A 0 A_ChangeVelocity(10,0,0,CVF_RELATIVE|CVF_REPLACE)

VENB I 1 A_Weave(2,0,user_weaveDist,0)
TNT1 A 0 A_Explode(6,meleerange,0,0,meleerange)
TNT1 A 0 A_SpawnItemEx("VenusGroundBubble2",0,-10)
VENB A 0 A_SetAngle(user_theAngle)
VENB A 0 A_ChangeVelocity(10,0,0,CVF_RELATIVE|CVF_REPLACE)

//VENB I 0 A_SetUserVar("user_weaveDist",user_weaveDist + 4)//A_SetUserVar("user_weaveDist",user_weaveDist + 6)
TNT1 A 0 A_JumpIf(user_weaveDist > 50,"Death")
//TNT1 A 0 A_JumpIf(user_weaveDist > 30,"NoSlide")
loop
Death:
TNT1 A 0
stop
}
}

actor VenusGroundBubble : BasicProjectile
{
	-DONTBLAST
	+RIPPER
	+FLOORHUGGER
	+THRUGHOST
	Obituary "$OB_VENUS4"
	Scale 2.5
	Height 10
	Speed 0
	Radius 10
	Damagetype "VenusGroundCrawler"
	damage(0)
	meleerange 20
	ReactionTime 15
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 AAA 0 A_SpawnItemEx("VenusGroundBubbleSpawnFX",random(0,48),0,random(0,8),0,0,random(0,20),0,1)//A_SpawnItemEx("WaterCrashLandFX",random(0,48),0,random(0,8),0,0,random(0,20),0,1)
		TNT1 A 0 A_PlaySound("misc/venusdrip","Body")
		TNT1 A 1 A_Jump(256,"Loopit")
		wait
		
		Loopit:
		VENB O 3 A_Explode(6,meleerange,0,0,meleerange)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		
		VENB P 3 A_Explode(6,meleerange,0,0,meleerange)//A_SpawnItemEx("OilPitIgnite",0,0,8)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		
		VENB Q 3 A_Explode(6,meleerange,0,0,meleerange)//A_SpawnItemEx("OilPitIgnite",0,0,8)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		
		VENB P 3 A_Explode(6,meleerange,0,0,meleerange)//A_SpawnItemEx("OilPitIgnite",0,0,8)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		TNT1 A 0 A_CountDown
		loop
		
		Death:
		TNT1 A 1
		stop
	}
}

Actor VenusGroundBubble2 : VenusGroundBubble
{
States
	{
		//Spawn:
		//VENB AA 0 A_GiveInventory("ProjectileCode",1)
		Loopit:
		VENB R 3 A_Explode(6,meleerange,0,0,meleerange)//A_SpawnItemEx("OilPitIgnite",0,0,8)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		VENB S 3 A_Explode(6,meleerange,0,0,meleerange)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		VENB T 3 A_Explode(6,meleerange,0,0,meleerange)
		VENB O 0 A_GiveInventory("VenusBubbleCheck_CI",1)
		VENB S 3 A_Explode(6,meleerange,0,0,meleerange)
		
		TNT1 A 0 A_CountDown
		loop
		
		Death:
		TNT1 A 1 A_STOP
		stop
	}
}

actor VenusGroundProtect : PowerProtection
{
	powerup.duration 50
	DamageFactor "VenusGroundCrawler", 0.0
}


actor VenusDebuffWatcher : ToadDebuffWatcher
{
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
	TNT1 A 0 A_GiveToTarget("ToadGravity")
	TNT1 A 0 A_JumpIfInTargetInventory("VenusDebuffTimer",1,"Spawn")
	TNT1 A 1
	Death:
	TNT1 A 0 A_TakeFromTarget("ToadMovement",999)
	TNT1 A 0 A_TakeFromTarget("VenusDebuffTimer",999)
	stop
	}
}

actor VenusDebuffTimer : Powerup
{
Powerup.Duration 100//50
}


actor VenusGroundBubbleSpawnFX : BasicClientSide
{
renderstyle add
States
{
Spawn:
TNT1 A 0
X_VC P 3
Stop
}
}

actor VenusBubbleCheck_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInTargetInventory("LightTeamFlag",1,"L")
TNT1 A 0 A_JumpIfInTargetInventory("WilyTeamFlag",1,"W")
TNT1 A 0 A_JumpIfInTargetInventory("CossackTeamFlag",1,"C")
TNT1 A 0 A_JumpIfInTargetInventory("KingTeamFlag",1,"K")
TNT1 A 0 A_JumpIfCloser(50,"Owner")
stop

L:
TNT1 A 0 A_RadiusGive("VenusBubbleJumperL",50,RGF_PLAYERS,1)
stop

W:
TNT1 A 0 A_RadiusGive("VenusBubbleJumperW",50,RGF_PLAYERS,1)
stop

C:
TNT1 A 0 A_RadiusGive("VenusBubbleJumperC",50,RGF_PLAYERS,1)
stop

K:
TNT1 A 0 A_RadiusGive("VenusBubbleJumperK",50,RGF_PLAYERS,1)
stop

Owner:
TNT1 A 0 A_GiveToTarget("VenusBubbleJumperGeneric")
stop
}
}

actor VenusBubbleJumperL : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Next")
stop

Next:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"Pickup2")
TNT1 A 0// A_GiveInventory("ReleasedJump",1)
stop

Pickup2:
TNT1 A 0 A_PlaySound("classes/burstpoof")
TNT1 A 0 ThrustThingZ(0,70,0,0)
stop
}
}

actor VenusBubbleJumperGeneric : VenusBubbleJumperL
{
States
{
Pickup:
TNT1 A 0 A_Jump(256,"Next")
stop
}
}

actor VenusBubbleJumperW : VenusBubbleJumperL
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Next")
stop
}
}

actor VenusBubbleJumperC : VenusBubbleJumperL
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Next")
stop
}
}

actor VenusBubbleJumperK : VenusBubbleJumperL
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Next")
stop
}
}

actor VenusTFHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecute("VC_SetState",0,1)
TNT1 A 0 A_FireCustomMissile("VenusGroundCrawler",0,0,0,1)
TNT1 A 0 A_TakeInventory("Base28Ammo",28)
stop
}
}
