actor Venus_W : BaseMM8BDMWep_CBM
{
tag "$TAGC_VC"
Dropitem "BubbleBombWep"
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Inventory.Pickupmessage "These telemarketers are going to make me miss Gino's sunscreen alarm!"
Obituary "$OB_VENUSTICKER"
weapon.ammotype "CrabbyBubbleAmmo"
weapon.ammotype2 "AwaDanceAmmo"
inventory.icon "VENUS_I1"
States
{
Spawn:
C_0V C 1
loop

Deselect:
VENB A 0
goto DeselectSwap
Select:
VENB A 0
goto SelectSwap

Ready:
VENB A 0 ACS_NamedExecuteWithResult("core_weaponcolor",DYE_VENUS)
Goto Ready1
Ready1:
VENB A 0 A_JumpIfInventory("CrabbyBubbleAmmo",2,"Ready2")
VENB A 0 A_JumpIfInventory("AwaDanceAmmo",28,"Ready3")
VENB A 2 A_WeaponReady(12)
VENB A 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB A 0 A_GiveInventory("AwaDanceAmmo",1)
loop
Ready2:
VENB A 0 A_JumpIfInventory("AwaDanceAmmo",28,"Ready4")
VENB A 2 A_WeaponReady(8)
VENB A 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB A 0 A_GiveInventory("AwaDanceAmmo",1)
loop
Ready3:
VENB A 0 A_JumpIfInventory("CrabbyBubbleAmmo",2,"Ready4")
VENB A 2 A_WeaponReady(4)
VENB A 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB A 0 A_GiveInventory("AwaDanceAmmo",1)
loop
Ready4:
VENB A 2 A_WeaponReady
VENB A 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB A 0 A_GiveInventory("AwaDanceAmmo",1)
loop

Fire:
VENB B 0 A_GiveInventory("Venus_Fire_P")
VENB B 0 A_ReFire(1)
VENB B 2
VENB C 2 A_GiveInventory("AwaDanceAmmo",1)
VENB A 0 A_GiveInventory("AwaDanceAmmo",1)
Goto Ready1

Altfire:
VENB B 0 A_GiveInventory("Venus_Alt_P")
VENB BBCCBBAAA 2
Goto Ready1
}
}

actor Venus_W2 : BaseMM8BDMWep_CBM
{
tag "$TAGC_VC2"
Dropitem "BubbleBombWep"
Weapon.AmmoUse 10
Weapon.AmmoGive 28
Inventory.Pickupmessage "Gino! You didn't tell me CrabCrab was a crab!"
Obituary "$OB_BUBBLEBOMB"
weapon.ammotype "CrabbyBubbleAmmo"
weapon.ammotype2 "AwaDanceAmmo"
inventory.icon "VENUS_I2"
States
{
Spawn:
C_0V C 1
loop

Deselect:
VENB D 0
goto DeselectSwap
Select:
VENB D 0
goto SelectSwap

Ready:
VENB D 0 ACS_NamedExecuteWithResult("core_weaponcolor",DYE_VENUS)
goto Ready1
Ready1:
VENB D 0 A_JumpIfInventory("CrabbyBubbleAmmo",10,"Ready2")
VENB D 0 A_JumpIfInventory("AwaDanceAmmo",28,"Ready3")
VENB D 2 A_WeaponReady(12)
VENB D 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB D 0 A_GiveInventory("AwaDanceAmmo",1)
loop
Ready2:
VENB D 0 A_JumpIfInventory("AwaDanceAmmo",28,"Ready4")
VENB D 2 A_WeaponReady(8)
VENB D 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB D 0 A_GiveInventory("AwaDanceAmmo",1)
loop
Ready3:
VENB D 0 A_JumpIfInventory("CrabbyBubbleAmmo",10,"Ready4")
VENB D 2 A_WeaponReady(4)
VENB D 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB D 0 A_GiveInventory("AwaDanceAmmo",1)
loop
Ready4:
VENB D 2 A_WeaponReady
VENB D 0 A_GiveInventory("CrabbyBubbleAmmo",1)
VENB D 0 A_GiveInventory("AwaDanceAmmo",1)
loop

Fire:
VENB D 0 A_PlaySound("W_Venus/BubbleBomb",1,0.825)
VENB E 2 A_FireCustomMissile("VenusBubbleBomb",0,1,-8,0)
VENB EFFEEDDDD 2 A_GiveInventory("AwaDanceAmmo",1)
VENB D 0 A_GiveInventory("AwaDanceAmmo",1)
Goto Ready1

Altfire:
VENB E 0 A_GiveInventory("Venus_Alt_P")
VENB EEFFEEDDD 2
Goto Ready1

}
}

actor CrabbyBubbleAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor AwaDanceAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor VenusBlastJumpFlag : Inventory
{
inventory.amount 1
inventory.maxamount 88
}
actor VenusBlastJumpHastenGiver : PowerApropGiver {}
actor VenusBlastJumpHasten : Powerup//PowerSpeed
{
Powerup.Duration 26
//Speed 2.0
//+POWERSPEED.NOTRAIL
}
actor VenusBlastJumpPower : Powerup
{
Powerup.Duration 20
}

actor Venus_Fire_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("W_Venus/Fire1","Weapon")
TNT1 A 0 A_FireCustomMissile("VenusBubbleTicker",frandom(-3,3),1,-8,0,0,frandom(-3,3))
TNT1 A 0 A_FireCustomMissile("VenusBubbleTicker",frandom(-3,3),0,-8,0,0,frandom(-3,3))
TNT1 A 0 A_GiveInventory("VivifyDelay5")
stop
}
}

actor Venus_Alt_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("AwaDanceAmmo",14)
TNT1 A 0 A_TakeInventory("AwaDanceAmmo",14,1)
TNT1 A 0 A_PlaySoundEx("weapon/GameBoyFire2","Weapon")
TNT1 A 0 A_FireCustomMissile("VenusAcidBubble",0,0,0,0)
stop
}
}

actor VenusBubbleTicker : ProjSpawnFuncActor
{
PROJECTILE
damagetype "Venus_Shot"
Obituary "$OB_VENUSTICKER"
+SKYEXPLODE
+EXPLODEONWATER
ReactionTime 1
damage (40)
Radius 10
Height 10
speed 24
scale 2.5
States
{
Spawn://Q_VC AB 8 >> Accurate
//Q_VC ABAB 2
//Q_VC ABABABABABAB 2 ThrustThingZ(0,2,0,1)
Q_VC AB 4
Q_VC AABBAABBAABB 2 ThrustThingZ(0,2,0,1)
Q_VC A 1 A_CountDown
wait
Crash:
XDeath:
VENB O 0 A_PlaySound("W_Venus/BubbPop",1,0.40)
VENB OPQ 1 A_Stop
stop
Death:
TNT1 A 0 A_JumpIf(z-floorz>0 || ReactionTime==0, "Crash")
TNT1 A 1 A_SpawnItemEx("VenusBubbleMine")
//Q_VC A 1 A_SpawnItemEx("VenusBubbleMine")
stop
}
}

actor VenusBubbleMine : ProjSpawnFuncActor
{
PROJECTILE
damagetype "Venus_Shot2"
Obituary "$OB_VENUSMINE"
+DONTBLAST
+DONTREFLECT
//+THRUACTORS
+FLOORHUGGER
ReactionTime 1
damage (0)
radius 10
height 10
scale 2.5
states
{
Spawn:
TNT1 A 0
//TNT1 A 1
//TNT1 A 1 A_ChangeFlag("FLOORHUGGER",1)
Q_VC A 0 //A_ChangeFlag("THRUACTORS",0)
//Q_VC ABABABABABABABABABABABABABABABABABABABABABABABABABABABAB 2
//224
Q_VC A 0 //A_PlaySound
Q_VC ABAB 8
Q_VC ABAB 7
Q_VC ABABAB 6
Q_VC ABABAB 5
Q_VC ABABABAB 4
Q_VC ABABABAB 3
Q_VC ABABABABAB 2
Q_VC ABABABABABABABABABABAB 1

Q_VC A 1 A_CountDown
wait
Death:
VENB O 0 A_PlaySound("W_Venus/BubbPop",1,0.40)
VENB OPQ 1
stop
XDeath:
Crash:
TNT1 A 0 A_PlaySound("W_Venus/BubbBoom",1,0.75)
TNT1 A 0 A_Explode(60,96,0,0,16)
//VENB LMN 1
VENB HIJK 2
stop
}
}

actor VenusBubbleBomb : ProjSpawnFuncActor
{
PROJECTILE
damagetype "Venus_Bomb"
Obituary "$OB_BUBBLEBOMB"
+SKYEXPLODE
+EXPLODEONWATER
+FORCEXYBILLBOARD
ReactionTime 5//1
damage (80)
Radius 16
Height 16
speed 40
scale 2.5
States
{
Spawn:
//Q_VC AB 10
//Q_VC D 13
//Q_VC DEDFDEDFDEDFDEDFDEDFDEDFDEDFD 4
//Accurate ^^
Q_VC ABC 2
Q_VC D 0 A_JumpIf(ReactionTime<=1,"Pop")
Q_VC DEDF 4 A_SetPitch(pitch+1)//A_SetScale(ScaleX+0.05)
Q_VC D 0 A_CountDown
goto Spawn+3
Pop:
Q_VC D 0 A_SpawnItemEx("VenusBubbleBombPop")
stop
Death:
TNT1 A 0 A_PlaySoundEx("W_Venus/GB_Boom","Weapon")
TNT1 A 0 A_Explode(70+pitch*10,96+pitch,0,0,20+pitch/2)
TNT1 A 9 A_SpawnItemEx("BasicBoom5FX_4_210",0,0,0,0,0,0,0,1)
stop
}
}

actor VenusBubbleBombPop : BasicExplosion
{
+FORCEXYBILLBOARD
States
{
Spawn:
TNT1 A 0
VENB L 0 A_PlaySound("W_Venus/BubbPop",1,1.0)
VENB LMN 2
stop
}
}

actor VenusExplosiveJump_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("VenusBlastJumpPower",1)
TNT1 A 0 A_TakeInventory("VenusBlastJumpFlag")
TNT1 A 0 A_JumpIfInventory("PlayerPropertyGrounded",1,"No")
TNT1 A 0 A_JumpIfInventory("CeilingFlag",1,"Gravityman")
TNT1 A 0 ThrustThingZ(0,80,0,0)
goto End
Gravityman:
TNT1 A 0 ThrustThingZ(0,80,1,0)
goto End
End:
TNT1 A 0 A_GiveInventory("VenusBlastJumpHastenGiver",1)
TNT1 A 0 A_GiveInventory("JumpCancler",1)
stop

No:
TNT1 A 0 ThrustThingZ(0,80,0,1)
stop
}
}

actor VenusExplosiveJump_H : BasicExplosion
{
damagetype "Venus_BoomJump"
Obituary "$OB_VENUSSHIELDJ"
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("W_Venus/BubbGet","Weapon")
TNT1 A 0 A_SetArg(4,88)//Original was 34 seconds
goto BoomWait
BoomWait:
VENB R 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",8)
VENB R 0 A_CheckFlag("DONTIDENTIFYTARGET","BoomWait_I",8)//PlayerPropertyNoIdentify
VENB R 1 A_Warp(8,0,0,0,0,24)
VENB R 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",8)
VENB R 1 A_Warp(8,0,0,0,0,24)
VENB S 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",8)
VENB S 1 A_Warp(8,0,0,0,0,24)
VENB S 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",8)
VENB S 1 A_Warp(8,0,0,0,0,24)
VENB R 0 A_JumpIf(!CallACS("cbm_PointerExists",AAPTR_TRACER),"Death")
VENB R 0 A_CountDownArg(4)
VENB R 0 A_TakeInventory("VenusBlastJumpFlag",1,0,8)
loop
//CANTSEEK
BoomWait_I:
TNT1 A 0 A_JumpIfInventory("MM8BDMPlayer",1,1,8)//Online sync
BoomWait_I2://Online sync
TNT1 AAAA 1 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",8)
TNT1 A 0 A_JumpIf(!CallACS("cbm_PointerExists",AAPTR_TRACER),"Death")
TNT1 A 0 A_CountDownArg(4)
TNT1 A 0 A_TakeInventory("VenusBlastJumpFlag",1,0,8)
TNT1 A 0 A_CheckFlag("DONTIDENTIFYTARGET","BoomWait_I2",8)//PlayerPropertyNoIdentify
TNT1 A 0 A_JumpIfInventory("MM8BDMPlayer",1,"BoomWait",8)//Online sync
goto BoomWait_I2//Online sync

BoomJump:
TNT1 A 0 A_Warp(8,0,0,16,0,24)
TNT1 A 0 A_PlaySound("W_Venus/JumpBoost",7,1.0)
TNT1 A 0 A_Explode(200+CallACS("core_checkrune",RUNE_SPREAD,2)*400,128,0,0,48)
TNT1 A 10 A_SpawnItemEx("VenusExplosiveJumpFX",0,0,12)
stop
Death:
TNT1 A 0 A_Warp(8,0,0,0,0,24)
TNT1 A 0 A_GiveInventory("VenusBlastJumpPower",1,8)
TNT1 A 0 A_TakeInventory("VenusBlastJumpFlag",0,0,8)
TNT1 A 1 A_SpawnItemEx("VenusExplosivePopFX")
stop
}
}

actor VenusExplosivePopFX : BasicExplosion
{
+FORCEXYBILLBOARD
Scale 2.5
States
{
Spawn:
TNT1 A 0
VENB X 0 A_PlaySoundEX("classes/burstpop","Weapon")
VENB X 3
stop
}
}

actor VenusExplosiveJumpFX : BasicExplosion
{
+FORCEXYBILLBOARD
+BRIGHT
Scale 3.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
Q_VC JKLMNOPQRS 1
stop
Spawn2:
Q_VC JKTUVWXYZS 1
stop
}
}

actor VenusExplosiveJumpOwn_H : BasicExplosion
{
damagetype "Venus_BoomJump"
Obituary "$OB_VENUSSHIELDJ"
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("W_Venus/BubbGet","Weapon")
TNT1 A 0 A_SetArg(4,88)
goto BoomWait
BoomWait:
VENB R 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",2)
VENB R 1 A_Warp(2,0,0,0,0,24)
VENB R 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",2)
VENB R 1 A_Warp(2,0,0,0,0,24)
VENB S 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",2)
VENB S 1 A_Warp(2,0,0,0,0,24)
VENB S 0 A_JumpIfInventory("VenusBlastJumpPower",1,"BoomJump",2)
VENB S 1 A_Warp(2,0,0,0,0,24)
VENB R 0 A_JumpIf(!CallACS("cbm_PointerExists",AAPTR_TARGET),"Death")
VENB R 0 A_CountDownArg(4)
VENB R 0 A_TakeInventory("VenusBlastJumpFlag",1,0,2)
loop
BoomJump:
TNT1 A 0 A_Warp(2,0,0,16,0,24)
TNT1 A 0 A_PlaySound("W_Venus/JumpBoost",7,1.0)
TNT1 A 0 A_Explode(180+CallACS("core_checkrune",RUNE_SPREAD,2)*360,128,0,0,48)
TNT1 A 10 A_SpawnItemEx("VenusExplosiveJumpFX",0,0,12)
stop

Death:
TNT1 A 0 A_GiveToTarget("VenusBlastJumpPower",1)
TNT1 A 0 A_TakeFromTarget("VenusBlastJumpFlag")
TNT1 A 1 A_SpawnItemEx("VenusExplosivePopFX")
stop
}
}

actor VenusAcidBubble : ProjSpawnFuncActor
{
PROJECTILE
damagetype "Venus_Acid"
Obituary "$OB_VENUSSHIELD"
+HITTRACER
+THRUGHOST
+DONTREFLECT
+FORCEALLYCOLLISION
damage (100)
Radius 20
Height 20
speed 20
scale 2.5
States
{
Spawn:
VENB T 0
VENB T 4
VENB UV 4 A_SetPitch(pitch+1)
VENB WV 3
goto Spawn+4
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerplayer")==1,"DeathAcidCheck")
goto DeathPop
DeathAcidCheck:
TNT1 A 0 A_JumpIf(CallACS("core_checkmode",1)==1,"DeathAcidCheckT")
goto DeathAcidSpawn
DeathAcidCheckT:
TNT1 A 0 A_JumpIfInventory("VenusBlastJumpFlag",1,"DeathPop",8)
TNT1 A 0 A_JumpIfInventory("VenusBlastJumpPower",1,"DeathPop",8)
TNT1 A 0 A_JumpIf(CallACS("cbm_TeamCompare",AAPTR_TARGET,AAPTR_TRACER),"TeamAcidSpawn")
goto DeathAcidSpawn
DeathAcidSpawn:
TNT1 A 0 A_GiveInventory("VenusAcidCoat_P",1,8)
goto DeathPop
TeamAcidSpawn:
TNT1 A 0 A_GiveInventory("VenusBlastJumpFlag",88,8)
TNT1 A 0 A_SpawnItemEx("VenusExplosiveJump_H",0,0,0,0,0,0,0,1+1024)
TNT1 A 1
stop
DeathPop:
TNT1 A 1 A_SpawnItemEx("VenusExplosivePopFX")
stop
Death:
TNT1 A 1 A_SpawnItemEx("VenusAcidBubble2",0,0,0,0,0,0,0,512)
stop
}
}

actor VenusAcidBubble2 : VenusAcidBubble
{
+DONTBLAST
ReactionTime 35
States
{
Spawn:
VENB T 0
VENB T 4 A_JumpIf(Pitch>1,1)
VENB U 4 A_JumpIf(Pitch>2,1)
goto SpawnL
SpawnL:
VENB VVVWWW 1 A_GiveInventory("VenusAcidBubble2_States_P")
VENB V 0 A_CountDown
loop
Death:
TNT1 A 0 A_JumpIf(Args[0]<0,1)
goto DeathPop
TNT1 A 1
stop
}
}

actor VenusAcidBubble2_States_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfCloser(40,"Check")
stop
Check:
TNT1 A 0 A_JumpIfInventory("AirFraudAchieved",20,3,2)
TNT1 A 0 A_JumpIfInventory("VenusBlastJumpFlag",1,2,2)
TNT1 A 0 A_JumpIfInventory("VenusBlastJumpPower",1,1,2)
goto GiveBubb
TNT1 A 0
stop
GiveBubb:
TNT1 A 0 A_GiveToTarget("AirFraudAchieved",1)
TNT1 A 0 A_GiveToTarget("VenusBlastJumpFlag",88)
TNT1 A 0 A_SpawnItemEx("VenusExplosiveJumpOwn_H",0,0,0,0,0,0,0,1)
TNT1 A 0 A_CountDownArg(0)
stop
}
}

actor PowerVenusAcidCoat : PowerProtection
{
DamageFactor "BubbleBomb", 1.3
DamageFactor "Venus_Shot", 1.5
DamageFactor "Venus_Shot2", 1.5
DamageFactor "Venus_Bomb", 1.3
DamageFactor "Venus_Acid", 1.3
DamageFactor "Venus_BoomJump", 1.5
Powerup.Duration 200
+INVENTORY.ALWAYSPICKUP
}

actor VenusAcidCoat_H : BasicHelper
{
States
{
Spawn:
TNT1 A 2 A_GiveToTarget("VenusAcidCoat_P1",1)
TNT1 A 1 A_JumpIfInTargetInventory("PowerVenusAcidCoat",1,1)
stop
TNT1 A 2 A_GiveToTarget("VenusAcidCoat_P1",1)
TNT1 A 1 A_JumpIfInTargetInventory("PowerVenusAcidCoat",1,1)
stop
TNT1 A 2 A_GiveToTarget("VenusAcidCoat_P1",1)
TNT1 A 1 A_JumpIfInTargetInventory("PowerVenusAcidCoat",1,1)
stop
TNT1 A 2 A_GiveToTarget("VenusAcidCoat_P2",1)
TNT1 A 1 A_JumpIfInTargetInventory("PowerVenusAcidCoat",1,"Spawn")
stop
}
}

actor VenusAcidCoat_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerVenusAcidCoat",1,2)
TNT1 A 0 A_SpawnItemEx("VenusAcidCoat_H",0,0,24,0,0,0,0,1)
TNT1 A 0 A_GiveInventory("PowerVenusAcidCoat",1)
stop
}
}

actor VenusAcidCoat_P1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEX("VenusAcidCoat_Drip",random(-24,24),random(-24,24),random(8,32))
stop
}
}

actor VenusAcidCoat_P2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEX("VenusAcidCoat_Drip2",random(-24,24),random(-24,24),random(8,32))
stop
}
}

actor VenusAcidCoat_Drip : BasicGraphicEffectM
{
Translation "192:192=105:105","198:198=112:112"
+THRUACTORS
-NOGRAVITY
ReactionTime 4
Radius 4
Height 4
Speed 10
Scale 1.0
States
{
Spawn:
ACID T 4 A_CountDown
loop
Death:
ACID UV 5
stop
}
}

actor VenusAcidCoat_Drip2 : VenusAcidCoat_Drip
{
States
{
Death:
ACID U 0 A_PlaySound("wep_L/OilShot",2,0.25)
goto Super::Death
}
}

actor Venus_W_NormalBar : NormalBar {Args 4,229}
actor Venus_W_SecondBar : SecondBar {Args 4,110}
actor Venus_W2_NormalBar : NormalBar {Args 4,229}
actor Venus_W2_SecondBar : SecondBar {Args 4,110}