actor paviseguard : actor replaces fatso
{
	monster
	Radius 20
	Height 63
	mass 3000
	speed 10
	+floorclip
	+BOSSDEATH
	Health 600
	PainChance 80
  	Painchance "BarrelGrab", 0
    bloodtype newbloodsplatter
	SeeSound "Fatguard/sight"
	PainSound "Fatguard/pain"
	DeathSound "Fatguard/death"
	Obituary "%o was blasted by a Pavise Guard."
	dropitem "lilchest" 18

	var int user_GMOTAPaviseTimer;
	states
	{
	spawn:
		TNT1 A 0
		PVGD AB 15 A_Look
		loop
	see:
		PVGD AAAA 3 A_Chase
		TNT1 A 0 A_PlaySound ("fatguard/step1", 7, 0.80, 0, 1.2)
		TNT1 A 0 Radius_Quake (1,3,0,5,0)
		PVGD BBBB 3 A_Chase ("melee","missile",CHF_DONTMOVE)
		PVGD CCCC 3 A_Chase
		TNT1 A 0 A_PlaySound ("fatguard/step2", 7, 0.80, 0, 1.2)
		TNT1 A 0 Radius_Quake (1,3,0,5,0)
		PVGD DDDD 3 A_Chase ("melee","missile",CHF_DONTMOVE)
		loop
	melee:
	missile:
		TNT1 A 0
		TNT1 A 0 a_jumpifcloser (250, "scattershot")
		PVGD E 1 A_PlaySound ("fatguard/gunraise",CHAN_BODY)
		PVGD E 18 a_facetarget
		TNT1 A 0 a_custommissile ("guardball",32,0,-10)
		TNT1 A 0 A_PlaySound ("fatguard/shot",CHAN_BODY,1,0,0.6)
		PVGD F 11 a_custommissile ("guardball",32,0,10)
		PVGD E 10 a_facetarget
		TNT1 A 0 A_PlaySound ("fatguard/shot",CHAN_BODY,1,0,0.6)
		PVGD F 11 a_custommissile ("guardball")
		PVGD E 15 a_facetarget
		TNT1 A 0 a_custommissile ("guardball",32,0,-30)
		TNT1 A 0 a_custommissile ("guardball",32,0,30)
		TNT1 A 0 A_PlaySound ("fatguard/shot",CHAN_BODY,1,0,0.6)
		PVGD F 7 a_custommissile ("guardball")
		PVGD E 9
		goto see
	scattershot:
		PVGD E 1 A_PlaySound ("fatguard/roar",CHAN_BODY)
		PVGD E 25 a_facetarget
		TNT1 A 0 A_PlaySound ("Fatguard/MachineGun",1)
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		TNT1 A 0 A_PlaySound ("Fatguard/MachineGun",1)
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		TNT1 A 0 A_PlaySound ("Fatguard/MachineGun",1)
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		TNT1 A 0 A_PlaySound ("Fatguard/MachineGun",1)
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		TNT1 A 0 A_PlaySound ("Fatguard/MachineGun",1)
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 2 a_facetarget
		PVGD F 1 a_custommissile ("scatterball",36, 12,random(-6,11),CMF_OFFSETPITCH,random(-2,4))
		PVGD E 6 a_facetarget
		goto see
	pain:
		PVGD L 3
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
		TNT1 A 0 a_takeinventory ("PowerKickedStatus",999)
		PVGD L 3 a_pain
		goto see
	Pain.Dazer:
    Pain.Superkick:
		PVGD L 3
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		PVGD L 3 a_pain
		goto Dazed
    Dazed:
		PVGD L 2
		PVGD L 1 A_SetAngle (angle+15)
		PVGD L 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	death:
		PVGD M 1 A_SpawnItemEx("GuardShield", 0, 0, 25, 6, 0, 0, 60, 128)
		PVGD M 7
		PVGD N 9 a_scream 
		PVGD N 1 A_noblocking
		Goto FinishDeath
		
	FinishDeath:
		TNT1 A 0 A_PlaySound ("treeboom",5)
		TNT1 A 0 Radius_Quake (3,20,0,32,0)
		PVGD OPQ 3 Bright
		TNT1 A 0 A_SpawnItemEx("GuardArm", 0, 0, 0, frandom(5,9), frandom (4,8), frandom(8,12), -90, 128)
		PVGD R 3 Bright
		TNT1 A 0 a_spawnitemex ("bigbloodsplatter",0,0,32)
		TNT1 AAAAAAAA 0 a_spawnitemex ("newbloodsplatter",0,0,32)       
		PVGD STUVWX 5
		PVGD Y 8
		TNT1 A 0  A_PlaySound ("fatguard/fall",6)
		TNT1 A 0 Radius_Quake (3,20,0,32,0)
		PVGD Z 6 
		PVG1 A -1 a_bossdeath
		stop
		
	Xdeath:
		PVGD L 3
		PVGD L 1 a_scream
		TNT1 A 0 A_noblocking
		PVGD M 1 A_SpawnItemEx("GuardShield", 0, 0, 25, 6, 0, 0, 60, 128)
		TNT1 A 0 A_PlaySound ("fatguard/scream",6)
		TNT1 A 0 Radius_Quake (2,15,0,32,0)
	Smoking:
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-15,15),frandom(-15,15),frandom(32,40),0,0,1)
		TNT1 A 0 a_jumpif (user_GMOTAPaviseTimer >= 46, "NOWAY")
		TNT1 A 0 a_setuservar("user_GMOTAPaviseTimer", user_GMOTAPaviseTimer+1)
		PVGD M 2
		loop
	NOWAY:
		TNT1 A 0 A_PlaySound ("fatguard/noway",6)
		TNT1 A 0
	WaitingToBlowUp:
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-15,15),frandom(-15,15),frandom(32,40),0,0,1)
		TNT1 A 0 a_jumpif (user_GMOTAPaviseTimer >= 79, "BigBoomStart")
		TNT1 A 0 a_setuservar("user_GMOTAPaviseTimer", user_GMOTAPaviseTimer+1)
		PVG1 C 2
		loop
	BigBoomStart:
		TNT1 A 0
		PVGD O 1 bright
		goto BigBoom
	BigBoom:
		TNT1 A 0 A_PlaySound ("treeboom",5)
		TNT1 A 0 Radius_Quake (3,20,0,32,0)
		TNT1 A 0 a_bossdeath
		PVGD OPQ 3 bright
		TNT1 A 0 A_SpawnItemEx("GuardArm", 0, 0, 0, frandom(5,9), frandom (4,8), frandom(8,12), -90, 128)
		PVGD R 3 bright
		TNT1 A 0 a_spawnitemex ("bigbloodsplatter",0,0,32)
		TNT1 AAAAAAAA 0 a_spawnitemex ("newbloodsplatter",0,0,32)       
		TNT1 AAAAAA 0 a_spawnitemex("bonegib",0,0,32,random(-10,10),random(-10,10),random(5,10))
		TNT1 AAA 0 a_spawnitemex("bonegib",0,0,32,random(-10,10),random(-10,10),random(5,10))
		ISKL AAAA 0 a_spawnitemex("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL A 0 a_spawnitemex("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		PVGD STUVWX 5
		goto legloop
	legloop:
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		PVG1 B 1 a_spawnitemex ("newbloodsplatter",0,0,32)
		TNT1 A 0 a_jump (15,"ded")
		loop
	ded:
		PVGD Y 8
		TNT1 A 0  A_PlaySound ("fatguard/fall",6)
		TNT1 A 0 Radius_Quake (3,20,0,32,0)
		PVGD Z 6 
		PVG1 A -1 
		stop
		
		
	death.superkick:
		PVGD M 1 A_Scream 
		PVGD M 1 a_scalevelocity (0.1)
 		PVGD M 1 a_stop
		PVGD M 1 A_NoBlocking
		TNT1 A 0 a_bossdeath
		TNT1 A 0 a_changeflag ("NOCLIP",1)
		TNT1 A 0 a_changeflag ("NOGRAVITY",1)
		TNT1 A 0 A_SpawnItemEx("GuardShield", 0, 20, 25, 0, 0, 9, 0, 128)
		PVGD M 1 a_facetarget
		TNT1 A 0 thrustthingz (0,80,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 110, 1, 0)
		TNT1 A 0 a_spawnitemex ("bosskickdeathsound")
		PVGD M 1
		PVG1 C 2		
	kickfly:
		PVG1 C 1 a_spawnitemex ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		PVG1 C 1 a_spawnitemex ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		TNT1 A 0 A_PlaySound ("treeboom",5,1,0,0.2)
		TNT1 A 0 Radius_Quake (3,20,0,32,0)
		PVGD OPQ 1 Bright
		TNT1 A 0 A_SpawnItemEx("GuardArm", 0, 0, 0, frandom(5,9), frandom (4,8), frandom(8,12), -90, 128)
		PVGD R 1 Bright
		TNT1 A 0 a_spawnitemex ("bigbloodsplatter",0,0,32)
		TNT1 AAAAAAAA 0 a_spawnitemex ("newbloodsplatter",0,0,32)       
		PVGD STUVWX 2
		PVGD Y 4
		TNT1 A 2
		TNT1 A 0 a_stopsound (5)
		PVGD Y 4
		TNT1 A 2
		stop
	death.blazice:
		PVGD L 2 a_scream
		TNT1 A 0 a_bossdeath
		PVIC A 2 A_noblocking
		TNT1 A 0 A_PlaySound ("swordtech/freezedeath",6)
		TNT1 A 0 a_fadeout (0.20)
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("iceparticle",random(-8,8),random(-8,8),32,random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/20.0,0,160)
		PVIC B 90 bright
		PVIC C 2 bright
		TNT1 A 0 A_PlaySound ("swordtech/iceshatter",6)
		TNT1 AAAAAA 0 a_spawnitemex ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAAAAAAAA 0 a_spawnitemex ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		stop
	death.sentinelarm:
		PVGD M 1 A_SpawnItemEx("GuardShield", 0, 0, 25, 6, 0, 0, 60, 128)
		PVGD M 7
		TNT1 A 0 thrustthingz (0,50,0,1)
		PVGD N 10 a_scream 
		TNT1 A 0 A_noblocking
		PVGD OP 3 Bright
		TNT1 A 0 a_bossdeath
		TNT1 A 0 a_nogravity
		TNT1 A 0 a_stop
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",CHAN_VOICE,1,0,0.4)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",5,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",6,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",7,1,0,0.6)
		OCKL ABCDEF 2 bright
		stop


	death.fatalslash:
		PVGD L 2 a_scream
		PVIC A 4 a_noblocking
		TNT1 A 0 a_bossdeath
		PVGD L 15
	randomwait:
		FDPG A 1 a_jump (20,"split")
		loop
	split:
		FDPG AABBCC 5
		FDPG DE 2
		FDPG FGHIJ 3 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDPG J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDPG J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDPG J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDPG J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDPG J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDPG J 1
		TNT1 A 1 A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDPG J 1
		TNT1 A 1 A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDPG J 1
		TNT1 A 1 A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDPG J 1 a_jump (100,"reallydie")
		TNT1 A 1 A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		loop
	reallydie:
		TNT1 A 0 
		TNT1 A 1 a_spawnitemex ("fataldrawdeath",0,0,30)
		stop
	raise:
		PVG1 A 3
		TNT1 A 0 A_SetUserVar("user_GMOTAPaviseTimer", 0)
		PVGD ZYXVUTSRQPONM 4
		TNT1 A 0 a_jump (30,"chaosexplode")
		goto see
	chaosexplode:
 		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    	PVGD A 8
        PVGD L 6 A_Pain
    	PVGD A 8
        PVGD L 6 A_Pain
    	PVGD A 8
        PVGD L 6 A_Pain
        TNT1 A 0 a_scream
 		TNT1 A 0 a_bossdeath
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 a_radiusgive ("chaoslaugh",650,RGF_MONSTERS)
		TNT1 A 0 A_PlaySound ("treeboom",5)
		TNT1 A 0 A_SpawnItemEx("GuardShield", 0, 0, 0, frandom(5,9), frandom (4,8), frandom(8,12), -90, 128)
		TNT1 A 0 A_SpawnItemEx("GuardArm", 0, 0, 0, frandom(5,9), frandom (4,8), frandom(8,12), -90, 128)
		TNT1 A 0 a_spawnitemex("skellytun",0,0,12,random(-6,6),random(-8,8),random(6,10),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_PlaySound ("bonelord/explode",6,1,0,0.6)
		TNT1 A 0 Radius_Quake (4,20,0,32,0)
		TNT1 A 0 a_spawnitem ("bigbloodsplatter")
		TNT1 AAAAAAAAAAAA 0 a_spawnitem ("newbloodsplatter") 
		TNT1 AAAAAAAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		ISKL AAAAAAAAAAAA 0 a_spawnitemex("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL AAAAAAAAA 0 a_spawnitemex("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		TNT1 AAAAAAAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		TNT1 A 20
		stop
	}
}

actor guardball
{
	Radius 10
	Height 10
	Speed 20
	Damage (20)
	Projectile 
	+bright
	+THRUSPECIES
	+THRUGHOST
	species "enemyshot"
	projectilekickback 4000
	States
	{
	Spawn:
		GBAL A 1 
		Loop
	Death:
		TNT1 A 0
		TNT1 A 1 a_spawnitemex ("ballhit",0,0,0,frandom(-8,8),frandom(-8,8),frandom(5,10))
		Stop
	crash:
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("Fatguard/Hit",CHAN_BODY)
		TNT1 A 1 a_spawnitemex ("ballhit",0,0,0,frandom(-8,8),frandom(-8,8),frandom(5,10))
		Stop
	}
}

actor ballhit
{
	projectile
	+THRUACTORS
	+CLIENTSIDEONLY
	+bright
	-NOGRAVITY
	gravity 1.5
	+hexenbounce
	+NOTELEPORT
	bouncecount 3
	radius 8
	bouncefactor 0.8
	renderstyle Translucent
	Alpha 0.70
	seesound "fatguard/miss"
	states
	{
	spawn:
		GBAL A 1
		TNT1 A 1
		loop
	death:
		TNT1 A 1
		stop
	}
}

actor scatterball
{
	Radius 8
	Height 6
	Speed 20
	Damage (6)
	Projectile
	-Nogravity 
	+THRUSPECIES
	+THRUGHOST
	+bright
	species "enemyshot"
	projectilekickback 3000
	Gravity 0.5
	States
	{
	Spawn:
		GBAL B 1 
		Loop
	Death:
		TNT1 A 0
		TNT1 A 1 a_spawnitemex ("scatterballhit",0,0,0,frandom(-8,8),frandom(-8,8),frandom(5,10))
		Stop
	crash:
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("Fatguard/Hit",CHAN_BODY)
		TNT1 A 1 a_spawnitemex ("scatterballhit",0,0,0,frandom(-8,8),frandom(-8,8),frandom(5,10))
		Stop
	}
}

actor scatterballhit 
{
	projectile
	+THRUACTORS
	+CLIENTSIDEONLY
	+bright
	-NOGRAVITY
	gravity 1.5
	+hexenbounce
	+NOTELEPORT
	radius 8
	bouncecount 2
	bouncefactor 0.8
	renderstyle Translucent
	Alpha 0.70
	seesound "cannon/lilclang"
	states
	{
	spawn:
		TNT1 A 0
		GBAL B 1
		TNT1 A 1
		loop
	death:
		TNT1 A 1
		stop
	}
}


ACTOR GuardArm
{
	Radius 12
	Height 15
	Speed 3
	Mass 500
	scale 1.2
	+clientsideonly
	+DOOMBOUNCE
	+NOTELEPORT
	States
	{
	Spawn:
		GARR A 5
		GARR B 5 A_Fall 
		GARR CDE 5
		GARR F -1
		Stop
	}
}

Actor GuardShield
{
	Radius 8
	Height 8
	Speed 8
	+DoomBounce
	+clientsideonly
	+DropOff
	+Missile
	+NOTELEPORT
	States
	{
	Spawn:
		PGSH ABCDEFGH 3
		Loop
	Death:
		PGSH I -1
		Loop
	}
}


