//	Movement recoded
actor Diveman : VCBaseClass
{
Player.ScoreIcon "DIVEMUGS"
player.startitem "BaseFlagPack", 1
player.forwardmove 0.75, 0.75
player.sidemove 0.73, 0.73
player.displayname "Diveman"
player.soundclass "divemanc"
player.viewheight 62
projectilepassheight 88
player.startitem "NormalArmor"
player.startitem "DiveMissileBoss"
player.startitem "Base28Ammo",28
player.startitem "BaseAltfireAmmo",112
player.startitem "UltimateAttackItem4"
player.startitem "UltSoundWatcherSpawn4"
player.startitem "IsFromMM4"
States
{
Animation2:
Spawn:
DIVM A 0
DIVM B 1 A_JumpIf(z-floorz>0, "Jumping")
DIVM A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
DIVM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
DIVM I 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

Missile:
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
DIVM F 0 A_JumpIfInventory("DiveShootAnim",1,"Missile2")
DIVM F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
goto Spawn+1

Missile2:
DIVM GGGGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+1

JumpingMissile:
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
DIVM Q 0 A_JumpIfInventory("DiveShootAnim",1,"JumpingMissile2")
DIVM Q 1 A_JumpIf(z-floorz<=0, "Missile")
goto Jumping

JumpingMissile2:
DIVM JJJJJJJ 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Spawn+1

Animation1:
DIVM K 6
DIVM L 3

A1Loop:
DIVM MNOP 2
loop

Animation3:
DIVM RSTU 1
loop

ClassPain:
DIVM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
DIVM H 20 ACS_ExecuteAlways(999,0,0)
DIVM H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFX", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("DiveMissileWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("DiveMissileWepM")
goto ClassDeath
}
}

actor DiveWatcherHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("DiveAmmoWatcher")
stop
}
}

actor DiveMissileBoss : VCBaseWeapon
{
	Weapon.AmmoType "Base28Ammo"
	Weapon.AmmoType2 "BaseAltfireAmmo"
	Weapon.ammouse 4
	Obituary "$OB_DIVEMAN1"
	States
	{
		Ready:
		TNT1 A 0
		DIVA A 0 A_JumpIfInventory("BaseAltfireAmmo",112,"Ready.CanThird")
		DIVA A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,9)) DIVA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		DIVA A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,9)) DIVA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		DIVA A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,9)) DIVA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		DIVA A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready
		
		Ready.CanThird:
		DIVA A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,9)) DIVA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") DIVA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		DIVA A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,9)) DIVA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") DIVA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		DIVA A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,9)) DIVA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") DIVA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		DIVA A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		DIVA A 1 A_Lower
		Loop
		
		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,786)
		TNT1 A 0 A_GiveInventory("DiveWatcherHandler")
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		DIVA A 1 A_Raise
		Loop
		
		Fire:
		DIVA B 0 A_JumpIfInventory("BaseCustomFlag1",1,"UltEmerge1")
		
		Hold:
		DIVA B 1 A_GiveInventory("DiveManCharge",1)
		TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
		DIVA A 0 A_JumpIfInventory("DiveManCharge",55,"Hold2")
		DIVA A 0 A_Refire
		
		Fire1:
		DIVA A 0 A_GunFlash
		DIVA C 2 A_GiveInventory("DiveShootAnim")
		DIVA A 0 A_GiveInventory("DiveM1Handler")
		TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
		DIVA D 2
		DIVA C 2
		DIVA A 4
		DIVA A 0 A_JumpIfNoAmmo("Ready")
		DIVA A 0 A_Refire("Fire1")
		DIVA A 0 A_GunFlash("NoFlash")
		DIVA A 0 A_ClearRefire
		goto Ready
		
		Hold2:
		DIVA B 1 Offset(-1,0)
		DIVA B 1 Offset(1,0)
		DIVA B 0 A_Refire("Hold2")
		goto Fire2
		
		Fire2:
		DIVA C 0 A_PlaySoundEx("misc/door","Body")
		DIVA C 0 A_GiveInventory("DiveShootAnim")
		TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
		TOAD C 0 A_GunFlash
		DIVA CDD 1 
		DIVA A 0 A_GiveInventory("DiveM1Handler")
		DIVA D 1 Offset(-4,0)
		DIVA D 1 Offset(4,0)
		DIVA D 1 Offset(-3,0)
		DIVA D 1 Offset(3,0)
		DIVA D 1 Offset(-2,0)
		DIVA D 1 Offset(2,0)
		DIVA D 1 Offset(-1,0)
		DIVA D 1 Offset(1,0)
		DIVA D 5 A_WeaponReady(WRF_NOFIRE)
		DIVA CA 2 A_ClearRefire
		DIVA A 0 A_GunFlash("NoFlash")
		goto Ready
		
		Altfire:
		RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
		DIVA B 0 A_JumpIfInventory("BaseCustomFlag1",1,"UltEmerge1")
		DIVA E 0 A_GiveInventory("DiveShootAnim")
		DIVA C 2 A_GunFlash
		DIVA E 0 A_PlaySoundEx("weapon/divemine","Weapon")
		DIVA E 0 A_FireCustomMissile("DiveManMine",-20,0,0,0)
		DIVA E 0 A_FireCustomMissile("DiveManMine",20,0,0,0)
		DIVA E 0 A_FireCustomMissile("DiveManMine",0,0,0,0)
		DIVA E 0 A_TakeInventory("Base28Ammo",9)
		DIVA DDCB 2
		DIVA A 10
		DIVA A 0 A_GunFlash("NoFlash")
		goto Ready
		
		User1:
		DIVA A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		DIVA BBCCDDDDD 1 A_Stop
		DIVA A 0 A_TakeInventory("BaseAltfireAmmo",112)
		DIVA B 0 A_GiveInventory("DiveWaterHandler")
		DIVA A 0 A_PlaySoundEx("weapon/topspin","Weapon")
		DIVA A 0 A_PlaySoundEx("weapon/diveattack","Body")
		
		U1Loop:
		DIVA A 0 SetPlayerProperty(0,1,4)
		DIVA AAAA 0 A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(12,20),random(-6,0),0,random(7,12),0,1)
		DIVA D 1 Offset(-4,0) A_SpawnItemEx("DiveChargeHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		DIVA B 0 A_GiveInventory("DiveWaterHandler")
		DIVA A 0 SetPlayerProperty(0,1,4)
		DIVA AAAA 0 A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(12,20),random(-6,0),0,random(7,12),0,1)
		DIVA D 1 Offset(4,0) A_SpawnItemEx("DiveChargeHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		DIVA B 0 A_GiveInventory("DiveWaterHandler")
		DIVA A 0 A_GiveInventory("CutterFlag",1)
		DIVA A 0 A_JumpIfInventory("CutterFlag",11,"U1End")
		loop
		
		U1End:
		DIVA A 0 SetPlayerProperty(0,0,4)
		DIVA B 0 A_Stop
		DIVA A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		DIVA CBA 2 A_WeaponReady(WRF_NOFIRE)
		DIVA C 0 A_TakeInventory("CutterFlag",99)
		goto Ready
		
		UltimateAttack:
		DIVA A 1
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,33)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		HAZH D 0 A_TakeInventory("UnSolid",1)
		HAZH D 0 A_ChangeFlag("SOLID",0)
		HAZH D 0 A_ChangeFlag("PICKUP",0)
		HAZH D 0 A_ChangeFlag("THRUACTORS",1)
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
		TNT1 A 0 A_GiveInventory("BaseCustomFlag1")
		TNT1 A 0 A_GiveInventory("InvProtection",1)
		TNT1 AAAA 0 A_SpawnItemEx("ProtoDashDust",random(0,12),0,0,random(1,3),0,random(0,2),random(0,359))
		DIVA B 1
		TNT1 AAAA 0 A_SpawnItemEx("ProtoDashDust",random(0,12),0,0,random(1,3),0,random(0,2),random(0,359))
		DIVA C 1
		TNT1 A 0 A_GiveInventory("Invisible")
		
		UltLoop:
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 1 A_CheckFloor("UltStart")
		loop
		
		UltStart:
		DIVA D 0 A_PlaySoundEx("weapon/spreaddrill3","Weapon")
		DIVA D 0 A_ChangeFlag("FLOORHUGGER",1)
		DIVA D 1 Offset(0,48) A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(-6,0),0,random(7,12),0,1)
		DIVA D 1 Offset(0,64) A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(-6,0),0,random(7,12),0,1)
		DIVA D 1 Offset(0,80) A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(-6,0),0,random(7,12),0,1)
		DIVA D 1 Offset(0,96) A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(-6,0),0,random(7,12),0,1)
		DIVA D 1 Offset(0,112) A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(-6,0),0,random(7,12),0,1)
		
		UltReady:
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",2)
		TNT1 A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"UltReady")
		goto UltEmerge1
		
		UltEmerge1:
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ProtoDashDust",random(0,12),0,0,random(2,12),0,random(1,3),random(0,359))

		
		UltEmerge:
		TNT1 A 0 A_GiveInventory("Visible")
		DIVA DDD 0 A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(10,20),0,random(3,10),0,1)
		DIVA D 0 A_TakeInventory("MediumLongUltimateAmmo",999)
		DIVA D 0 A_ChangeFlag("FLOORHUGGER",0)
		DIVA D 0 ThrustThingZ(0,100,0,0)
		DIVA D 0 A_PlaySoundEx("weapon/minchrgshot","Auto")
		DIVA DD 0 A_SpawnItemEx("DiveMobySpike",0,0,8,random(-50,50),0,random(-2,10),random(0,359))
		DIVA D 1 Offset(-3,0)
		DIVA D 1 Offset(3,0)
		DIVA D 0 A_GiveInventory("CutterFlag",1)
		DIVA D 0 A_JumpIfInventory("CutterFlag",15,"UltFinish")
		loop
		
		UltFinish:
		TNT1 A 0 A_TakeInventory("BaseCustomFlag1")
		TNT1 A 0 A_GiveInventory("Visible")
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",500)
		TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
		TNT1 A 0 A_TakeInventory("InvProtection",1)
		HAZH D 0 A_ChangeFlag("THRUACTORS",0)
		DRIA A 0 A_SpawnItemEx("ReSolidifier")
		TNT1 A 0 A_ChangeFlag("PICKUP",1)
		TNT1 A 0 A_TakeInventory("CutterFlag",999)
		DIVA A 10 A_WeaponReady(WRF_NOFIRE)
		goto Ready
		
		Flash:
		DIVA EFGGGGGGFFEE 1 A_JumpIfInventory("IsDead",1,"NoFlash")
		stop
	}
}

actor DiveManCharge : Ammo
{
	inventory.amount 1
	inventory.maxamount 55//30
	+INVENTORY.IGNORESKILL
}

actor DiveShootAnim : Powerup
{
Powerup.Duration 4
}

actor DiveManMissile : DiveMissile
{
translation "198:198=[255,56,0]:[255,56,0]"
damage (8)
Obituary "$OB_DIVEMAN1"
speed 30
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DIVE ABAB 1 A_SeekerMissile (1, 8, SMF_LOOK, 256, 10)
NoSeek:
DIVE AB 1 A_SeekerMissile (1, 8, 0, 0, 10)
DIVE A 0 A_CountDown
loop
Death:
TNT1 A 2 A_SpawnItemEx("ExplosionEffect1")
stop
}
}

actor DiveM1Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("Base28Ammo",4)
TNT1 A 0 A_JumpIfInventory("DiveManCharge",55,"Pickup2")
TNT1 A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
TNT1 A 0 A_FireCustomMissile("DiveManMissile",0,0,0,0)
TNT1 A 0 A_TakeInventory("DiveManCharge",99)
stop

Pickup2:
TNT1 A 0 A_PlaySoundEx("weapon/divetorpedo","Weapon")
TNT1 A 0 A_FireCustomMissile("DiveManTorpedo",0,0,0,0)
TNT1 A 0 A_Quake(2,6,0,64)
TNT1 A 0 A_TakeInventory("DiveManCharge",99)
stop
}
}

actor DiveManTorpedo
{
scale 2.5
PROJECTILE
speed 90
damage(12)
radius 12
height 8
Obituary "$OB_DIVEMAN2"
damagetype "DivemanTorpedo"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DIVT A 0 A_PlaySoundEx("weapon/divetorpedofly","Body",1)
DIVT AAA 0 A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),random(-6,0),0,0,0,1)
DIVT A 1 A_SpawnItemEx("DiveTorpBubble",random(0,-12),random(-6,6),random(-6,6),0,0,0,0,1)
goto Spawn+3
Death:
TNT1 A 0 A_PlaySoundEx("weapon/mm4explode", "Body")
TNT1 A 0 A_PlaySoundEx("weapon/divetorpedoboom", "Auto")
TNT1 A 0 A_Explode(16, 128, 0, 0, 32)//(25, 128, 0, 0, 32)
TNT1 A 0 A_Quake(2,12,0,128)
TNT1 A 12 A_SpawnItemEx("ExplosionEffect3")
stop
}
}

actor DiveTorpBubble : BasicClientSide
{
+FLOATBOB
States
{
Spawn:
TNT1 A 1
DIVT B 18
DIVT C 2
stop
}
}

actor DiveManMine
{
+NOEXPLODEFLOOR
scale 2.5
PROJECTILE
speed 25
damage(8)
radius 16
height 16
//+THRUACTORS
damagetype "DivemanMine"
Obituary "$OB_DIVEMAN4"
FloatBobPhase 0
wallbouncefactor 1.0
bouncefactor 1.0
+HEXENBOUNCE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
D4MI A 10
D4MI A 0 A_Stop
D4MI A 0 A_ChangeFlag("HEXENBOUNCE",0)
D4MI A 70 //A_ChangeFlag("THRUACTORS",0)
D4MI A 0 A_Recoil(-7)
D4MI A 210 A_ChangeFlag("FLOATBOB",1)
D4MI B 0 A_ChangeFlag("FLOATBOB",0)
D4MI BABABABABABA 4 A_Stop
goto Death
Death:
TNT1 A 0 A_SpawnItemEx("DiveMineExplodeFX",0,0,16)
TNT1 A 0 A_Explode(14,128,0,0,32)
TNT1 A 2 A_PlaySoundEx("weapon/mm4explode","Body")
stop
}
}

actor DivemanMineProtect : PowerProtection
{
Powerup.Duration 3
DamageFactor "DivemanMine", 0.50
}

actor DiveMineExplodeFX : NapalmExplodeFX2
{
Translation "207:227=[0,136,136]:[0,136,136]"
}

actor DiveChargeHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_DIVEMAN3"
PROJECTILE
+NOEXPLODEFLOOR
Radius 32
Height 32
scale 2.5
speed 0
damage (35)
Damagetype "DivemanAttack"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor DivemanAttackProtect : PowerProtection
{
Powerup.Duration 24
DamageFactor "DivemanAttack", 0.0
}

actor DiveMobySpike
{
gravity 1.3
Obituary "$OB_DIVEMAN5"
PROJECTILE
-NOGRAVITY
Radius 16
Height 16
scale 2.5
speed 0
damage (7)
Damagetype "DivemanMoby"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
D4MO A 1 A_GiveToTarget("WindUltCooldown",1)
goto Spawn+2
Death:
TNT1 A 0 A_PlaySoundEx("weapon/minchrgshot","Body")
TNT1 A 0 A_SpawnItemEx("DiveMobySpike2",8,0,0,20,0,4,1*90,1)
TNT1 A 0 A_SpawnItemEx("DiveMobySpike2",8,0,0,20,0,4,2*90,1)
TNT1 A 0 A_SpawnItemEx("DiveMobySpike2",8,0,0,20,0,4,3*90,1)
TNT1 A 0 A_SpawnItemEx("DiveMobySpike2",8,0,0,20,0,4,4*90,1)
TNT1 A 2 A_SpawnItemEx("ExplosionEffect1")
stop
}
}

actor DiveMobySpike2 : DiveMobySpike
{
gravity 0.3
radius 8
height 8
damage(3)
States
{
Spawn:
TNT1 A 0
D4MO BC 3 A_GiveToTarget("WindUltCooldown",1)
loop
Death:
TNT1 A 0 A_SpawnItemEx("DiveMobySpike3",0,0,0,0,0,0,0,1)
stop
XDeath:
TNT1 A 0
stop
}
}

actor DiveMobySpike3 : DiveMobySpike2
{
reactiontime 300
+NOGRAVITY
States
{
Spawn:
TNT1 A 0
D4MO B 1 A_GiveToTarget("WindUltCooldown",1)
D4MO B 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor DiveManPoison : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.colormap 0.643, 0.058, 0.525
powerup.duration 0x7fffffff
Speed 0.10
}

actor DivePoisonWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
reactiontime 350
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("DiveGravity")
TNT1 A 1 A_Countdown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
loop
Death:
TNT1 A 0 A_TakeFromTarget("DiveManPoison")
stop
}
}

actor DiveGravity : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz<5, "Nope")
TNT1 A 0 ThrustThingZ(0,5,1,1)
stop
Nope:
TNT1 A 0
stop
}
}

actor DiveAmmoWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
States
{
Spawn:
TNT1 A 0
TNT1 A 3
loopit:
TNT1 A 0 A_GiveToTarget("BaseAltfireAmmo",1)
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 AAA 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
loop
Death:
TNT1 A 0
stop
}
}

actor DiveWaterHandler : BaseMovement
{
States
{
itTimeGo:
TNT1 A 0 A_JumpIfInventory("IsUnderWater",1,"Pickup2")
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob", 60.0),0,0,CVF_RELATIVE|CVF_REPLACE)
stop
Pickup2:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob", cos(pitch)*60.0),0,-sin(pitch)*60,CVF_RELATIVE|CVF_REPLACE)
stop
}
}