ACTOR GeneralRoasterock 32445
{
Monster
Health 3000
Height 60
Radius 20
Mass 400
Speed 9
Scale 1.25
PainChance 2
MinMissileChance 90
+BOSS
+BOSSDEATH
+MISSILEMORE
+MISSILEEVENMORE
+LOOKALLAROUND
+DONTRIP
+NOTELEFRAG
+NOTARGET
+CANTSEEK
+FLOORCLIP
+AVOIDMELEE
+QUICKTORETALIATE
+NORADIUSDMG
+DONTMORPH
DamageFactor "BeheComet", 0.3
DamageFactor "Ice", 0.001
DamageFactor "FreezerBurn", 0.001
DamageFactor "BFGSplash", 0.15
DamageFactor "BFGSpray", 0.15
DamageFactor "Explosion", 0.6
DamageFactor "PDTPuff", 0.0
DamageFactor "Bullet", 0.7
DamageFactor "PlayerRailGun", 0.5
DamageFactor "BFG10K", 0.4
DamageFactor "PDTBFGTracer", 0.2
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "PyroShot", 0.005
DamageFactor "PlayerPyro", 0.005
DamageFactor "PDTBFG", 0.2
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDBFG2", 0.65
DamageFactor "PlayerDevBall", 0.12
DamageFactor "PlayerDevBall2", 0.12
DamageFactor "PlayerDevTracer", 0.12
DamageFactor "PlayerDTBFGRailgunSlug", 0.12
DamageFactor "Legendary", 0.05
DamageFactor "SuperWeapon", 0.05
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor 0.65
//No Infighting
DamageFactor "RST", 0.0
DamageFactor "ZombieDemonTech", 0.0
DamageFactor "ZombieRocket", 0.0
DamageFactor "LACGrenade", 0.0
DamageFactor "LegendaryZombie", 0.0
DamageFactor "GeneralTracer", 0.0
DamageFactor "SoapOpera", 0.0 
DamageFactor "ZombieDev", 0.0
DamageFactor "Cyber10K", 0.0
DamageFactor "CerChainguns", 0.0	
DamageFactor "CerEnergyBall", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "VileFires", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "BeheComet", 0.0
DropItem "Demon Tech Devastator", 96, 1
DropItem "Demon Tech BFG10K", 96, 1
DropItem "PyroCannon", 96, 1
DropItem "SuperChaingun", 120, 1
DropItem "ArmorCharge", 150, 2
DropItem "Armorplate", 186, 2
DropItem "Portablemedkit", 159, 2
DropItem "Backpack", 190, 1
SeeSound "roaster/sight"
PainSound "roaster/pain"
DeathSound "roaster/death"
ActiveSound "roaster/idle"
AttackSound "roaster/fire"
Tag "General Roasterock"
Obituary "%o let \cIGeneral Roasterock \c-get %h."
States
	{
	Spawn:
		ROST A 10 A_look
		Loop
	See:
		TNT1 A 0 A_Jump(30,"Sprint")
		ROST AABB 3 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCDD 3 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		Loop
	Idle:
		TNT1 A 0 A_LookEx(0,0,2048,2048,100,"See")
		TNT1 A 0 A_SpawnItem("RoasterStepQuiet",0,0,0,0)
		ROST AAAABBBB 2 A_Wander
		TNT1 A 0 A_LookEx(0,0,2048,2048,100,"See")
		TNT1 A 0 A_SpawnItem("RoasterStepQuiet",0,0,0,0)
		ROST CCCCDDDD 2 A_Wander
		Loop
	Strafing:
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		ROST AABB 3 A_GiveInventory("CommandoStrafing",1)
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
		ROST CCDD 3 A_GiveInventory("CommandoStrafing",1)
		Goto See	
	Sprint:
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCCCDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCCCDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCCCDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCCCDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCCCDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST AAAABBBB 1 A_Chase
		TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
		ROST CCCCDDDD 1 A_Chase
		Goto See
	Pause:
		TNT1 A 0 A_PlaySound("roaster/stop",6)
		ROST G 10
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_Jump(10,"MegaAttack")
		TNT1 A 0 A_Jump(10,"PyroCannon")
		TNT1 A 0 A_Jump(150,"Cannon","Chaingun","LegMissile","ShoulderMissile","DTBFG10K","Devastator","FireBalls","MLGRocket")
		TNT1 A 0 A_JumpIfCloser(300,"Blast")
		TNT1 A 0 A_JumpIfCloser(500,"CloseAttacks")
		Goto See
	CloseAttacks:
		TNT1 A 0 A_Jump(256,"AutoShotgun","Grenades")
		Goto Missile
	AutoShotgun:
		ROST G 3 Bright A_GiveInventory("CommandoStrafing",1)
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST G 2 Bright A_FaceTarget
		TNT1 A 0 A_PlaySound("weapons/12gaugefire",CHAN_WEAPON)
		TNT1 A 0 A_SpawnItemEx("ShellCasing",-8,7,30,4,0,(0.1)*Random(30,40),Random(-80,-90),128)
		TNT1 AAAA 0 Bright A_CustomMissile("MonsterTracer",Random(28,34),0,Random(6,-6),0)
		ROST H 2 Bright A_CustomBulletAttack(22.5,18.3,4,Random(5,10)*6,"RSTBulletPuff2")
		ROST G 2 Bright A_FaceTarget
		TNT1 A 0 Bright A_CPosRefire
		TNT1 A 0 A_Jump(10,"Pause")
		Goto AutoShotgun+1
	Cannon:
		ROST E 10 A_FaceTarget
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4,-4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4,-4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4,-4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4,-4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4,-4))
		Goto See
	Grenades:
		ROST G 10 A_FaceTarget
		ROST G 5 A_FaceTarget
		TNT1 A 0 A_PlaySound("Weapons/GrenadeFire")
		ROST H 4 Bright A_CustomMissile("RSTGrenade",28,-10,Random(4,-4))
		ROST G 5 A_FaceTarget
		TNT1 A 0 A_PlaySound("Weapons/GrenadeFire")
		ROST H 4 Bright A_CustomMissile("RSTGrenade",28,-10,Random(4,-4))
		ROST G 5 A_FaceTarget
		TNT1 A 0 A_PlaySound("Weapons/GrenadeFire")
		ROST H 4 Bright A_CustomMissile("RSTGrenade",28,-10,Random(4,-4))
		ROST G 5 A_FaceTarget
		TNT1 A 0 A_PlaySound("Weapons/GrenadeFire")
		ROST H 4 Bright A_CustomMissile("RSTGrenade",28,-10,Random(4,-4))
		ROST G 5 A_FaceTarget
		TNT1 A 0 A_PlaySound("Weapons/GrenadeFire")
		ROST H 4 Bright A_CustomMissile("RSTGrenade",28,-10,Random(4,-4))
		Goto See
	Blast:
		ROST E 10 A_FaceTarget
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_Blast(0,20,480,20)
		ROST FFF 4 Bright A_CustomMissile("SmokeFX",28,10,random(3,-3))
		Goto See
	MLGRocket:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		ROST E 10 A_FaceTarget
		ROST E 5 A_FaceTarget
		ROST F 4 Bright A_CustomMissile("RSTRocketJump",-10,10,0)
		ROST F 1 Bright ThrustThingZ(0,70,0,1)
		TNT1 A 0 Bright A_PlaySound("Cardinal/9k",CHAN_WEAPON)
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		ROST F 2 Bright A_CustomMissile("ZombieDTBFG10KBall")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		Goto See
	DTBFG10K:
		TNT1 A 0 Bright A_PlaySound("Cardinal/9k",CHAN_WEAPON)
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST E 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		ROST F 2 Bright A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 2 Bright A_CustomMissile("ZombieDTBFG10KBall")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		ROST E 35
		Goto See
	Devastator:
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("devastator/charge",CHAN_WEAPON)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST E 2 Bright A_FaceTarget
		ROST F 2 Bright
		ROST F 2 Bright
		TNT1 A 0 A_PlaySound("devastator/fire",CHAN_WEAPON)
		ROST F 10 Bright A_CustomMissile("ZombieDevastatorBall")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		ROST E 35
		Goto See
	Chaingun:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_PlaySound("roaster/start",CHAN_WEAPON)
		ROST GGGGGGGGGG 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/loop",CHAN_WEAPON,1.0,1)
		Goto ChainLoop
	ChainLoop:
		TNT1 A 0 A_JumpIfInventory("RoasterChainTimer",40,"ChainEnd")
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(30,34),-10,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,36,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE,0)
		TNT1 A 0 A_CustomBulletAttack(5.5,5.5,1,random(4,8)*3,"RSTBulletPuff",0,CBAF_NORANDOM)
		ROST H 1 Bright
		ROST G 1 A_GiveInventory("RoasterChainTimer",1)
		TNT1 A 0 A_MonsterRefire(10,"ChainEnd")
		Loop
	ChainEnd:
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_PlaySound("roaster/stop",CHAN_WEAPON)
		TNT1 A 0 A_TakeInventory("RoasterChainTimer",40)
		ROST G 10
		Goto See
	LegMissile:
		TNT1 A 0 A_PlaySound("roaster/prep",6)
		ROST IIIIIIIIII 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/leg")
		ROST J 2 bright A_CustomMissile("RoasterLegMissile",12,-10)
		ROST I 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/leg")
		ROST J 2 bright A_CustomMissile("RoasterLegMissile",12,-10)
		ROST I 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/leg")
		ROST J 2 bright A_CustomMissile("RoasterLegMissile",12,-10)
		ROST I 14
		Goto See
	ShoulderMissile:
		TNT1 A 0 A_PlaySound("roaster/prep",6)
		ROST IIIIIIIIII 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/shoulder")
		ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
		ROST I 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/shoulder")
		ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
		ROST I 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/shoulder")
		ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
		ROST I 3 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/shoulder")
		ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
		ROST I 14
		Goto See
	MegaAttack:
		TNT1 A 0 A_PlaySound("roaster/pain",CHAN_VOICE)
		ROST LLLLLL 4 A_FaceTarget
		TNT1 A 0 A_PlaySound("roaster/javelin",CHAN_WEAPON)
		TNT1 A 0 A_PlaySound("roaster/leg",6)
		TNT1 A 0 A_PlaySound("roaster/shoulder",5)
		TNT1 A 0 A_CustomMissile("RoasterShoulderMissile",62,20)
		TNT1 A 0 A_CustomMissile("RoasterLegMissile",12,-10)
		TNT1 A 0 A_CustomMissile("RSTPyroShot",28,10)
		ROST M 2 bright
		ROST L 14
		Goto See
	FireBalls:
		ROST E 20 A_FaceTarget
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		ROST E 5 A_FaceTarget
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		ROST E 5 A_FaceTarget
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		ROST E 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("CommandoStrafing",1)
		ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
		Goto See
	PyroCannon:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		ROST E 4 A_FaceTarget
		ROST E 4 A_FaceTarget
		ROST E 4 A_FaceTarget
		ROST E 4 A_FaceTarget
		ROST E 4 A_FaceTarget
		ROST E 4 A_FaceTarget
		ROST E 4 A_FaceTarget
		ROST F 4 A_FaceTarget  
		TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		ROST F 4 Bright A_CustomMissile("RSTPyroShot",28,10,0)
		TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",6)
		ROST EEE 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",28,10,0)
		Goto See
	Dodge:
		TNT1 AAA 0 A_StopSound(CHAN_WEAPON)
		ROST A 1 A_FaceTarget
		TNT1 A 0 ThrustThingZ(0,20,0,0)
		TNT1 A 0 A_Jump(256,"DodgeRight","DodgeLeft")
	DodgeLeft:
		TNT1 A 0 ThrustThing(angle*256/360+192,15,0,0)
		Goto Sprint
	DodgeRight:
		TNT1 A 0 ThrustThing(angle*256/360+64,15,0,0)
		Goto Sprint
	Pain:
		TNT1 AAA 0 A_StopSound(CHAN_WEAPON)
		TNT1 A 0 A_Jump(100,"PainMissile")
		ROST N 5 A_Pain
		Goto See
	PainMissile:
		ROST N 5 A_Pain
		Goto Missile
	Pain.PlayerDBFG10K2:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Pain.DBFG10K2:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Pain.DBFG:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Pain.PlayerDBFG:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Pain.DBFG2:
		TNT1 A 0 A_Jump(256,"Dodge")
		Goto See
	Pain.PlayerDBFG210K:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Pain.DBFG210K:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Pain.DBFG2Splash:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Dodge")
		TNT1 A 0
		Goto See
	Death:
		TNT1 A 0
		TNT1 AAA 0 A_StopSound
		TNT1 A 0 A_ScreamAndUnblock
		ROST OPQRSTU 6 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		ROST U 63000 CanRaise
		Stop
	}
}

ACTOR RoasterStepQuiet
{
Height 1
Radius 1
+NOCLIP
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_PlaySound("roaster/stepquiet",CHAN_BODY)
		Stop
 }
}

ACTOR RoasterStep
{
height 1
radius 1
+NOCLIP
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_PlaySound("roaster/step",CHAN_BODY)
		Stop
	}
}

ACTOR RoasterLegMissile
{
Projectile
Radius 6
Height 8
Speed 45
Damage 20
+RANDOMIZE
+DEHEXPLOSION
+ROCKETTRAIL
Damagetype "RST"
DeathSound "weapons/rocklx"
Obituary "%o was fucked by a Roasterock leg missile." // "%o rode %k's rocket."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(80,"TurnIntoSeeker")
		RMIS A 1 Bright
		Goto Spawn+1
	TurnIntoSeeker:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_ChangeFlag(SEEKERMISSILE,1)
		Goto SpawnSeeker
	SpawnSeeker:
		RMIS A 1 Bright A_SeekerMissile(40,15)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright Radius_Quake(2,12,0,8,0)
		TNT1 AA 0 Bright A_Explode(40,170,0)
		TNT1 AA 0 Bright A_Explode(25,300,0)
		TNT1 A 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,128)
		TNT1 AAA 0 A_CustomMissile("Kaboom3",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
		TNT1 A 20 Bright
		Stop
	}
}

Actor RSTBulletPuff : ModdedBulletPuff
{
+PierceArmor
Damagetype "RST"
}

Actor RSTBulletPuff2 : RSTBulletPuff
{
-PierceArmor
}

Actor RSTRocket : CardinalRocket {DamageType "RST"}
Actor RSTGrenade : CydestroyerGrenade {DamageType "RST"}
Actor RoasterShoulderMissile : CardinalHomingRocket {DamageType "RST"}

Actor RSTRocketJump : CardinalRocket
{
Damage 500
+FORCERADIUSDMG
DamageType "RST"
}

ACTOR RSTFireball
{
Projectile
Game Doom
Radius 6
Height 8
Speed 50
FastSpeed 60
RenderStyle Translucent
Alpha 1
Scale 1.0
Damage 45
+RANDOMIZE
+DONTREFLECT
+SeekerMissile
+ExtremeDeath
Damagetype "RST"
SeeSound "imp/attack"
DeathSound "comet/explosion"
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_PlaySound("HFCyb/rocket",CHAN_WEAPON)
		Goto Fly
	Fly:
		FRTB AB 1 Bright A_SpawnItemEx("HFCybFireballTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(0,2)
		TNT1 A 0 Bright A_CustomMissile ("SuperMeteor_m_TrailFX_Smoke",0,0,random(0,360),CMF_AIMDIRECTION,random(10,40))
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(160,192,0)
		TNT1 A 0 Bright A_SpawnItemEx("LCABaseScorch",0,0,0,0,0,0,Random(0,359),SXF_CLIENTSIDE,0)
		TNT1 AAAAAA 0 Bright A_CustomMissile ("OrangeParticleSpawner",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		EXPL A 0 Radius_Quake(15,20,0,20,0)
		BEXP B 0 Bright A_Scream
		TNT1 A 0 Bright A_ALertMonsters
		Goto EndAnimation
	EndAnimation:
		TNT1 A 0 Bright A_SpawnItemEx("RSTSuperMeteor_m_Explosion",0,0,0,0,0,0,-1,SXF_SETMASTER,0)
		TNT1 AAAAAAAAAAAA 0 Bright A_SpawnItemEx("SuperMeteor_m_FX_Smoke",0,0,0,0.01 * Random(-125,125),0.01 * Random(-125,125),0.01 * Random(25,245),0,SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR RSTPyroShot
{
PROJECTILE
Height 6
Radius 11
Speed 45
FastSpeed 50
Scale 1.4
RenderStyle Add
Alpha 1.0
Damage 300
+SeekerMissile
+FORCERADIUSDMG
+MTHRUSPECIES
+DONTREFLECT
+Friendly
+DontHurtSpecies
+DontHarmSpecies
DamageType "RST"
SeeSound "weapons/firbfi"
DeathSound "weapons/hellex"
Obituary "%o was incinerated by a pyro cannon."
States
	{
	Spawn:
		TNT1 A 0 Bright A_Explode(600,64,0,1)
		HFBA ABC 1 Bright A_SpawnItemEx("PHFExTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,135,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,270,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("RSTFuelExplosion01",0,0,315,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_Mushroom("RSTMushroomFireballs",8,MSF_Standard|MSF_DontHurt)
		TNT1 A 0 Bright A_Explode(1500,486,0,1)
		HFBA DEFGHIJKLMN 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx("PyroShotEx",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Stop
	}
}

ACTOR RSTFuelExplosion01
{
PROJECTILE
Height 8
Radius 8
Speed 6
RENDERSTYLE ADD
ALPHA 0.80
Damage 10
DamageType "RST"
+RIPPER
+BLOODLESSIMPACT
+DontHurtSpecies
+SPECTRAL
+Friendly
+DontHarmSpecies
SeeSound "weapons/firex3"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 4 A_SpawnItemEx("RSTFuelExplosion02",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Stop
   }
}

ACTOR RSTFuelExplosion02
{   
PROJECTILE
Height 5
Radius 5
Speed 0
RENDERSTYLE ADD
ALPHA 0.80
Damage 10
+SPECTRAL
+Friendly
+DontHurtSpecies
+DontHarmSpecies
DamageType "RST"
SeeSound "weapons/firex3"
States
	{
	Spawn:
		TNT1 A 0 Bright
		RPEX A 2 Bright
		RPEX B 2 Bright A_Explode(10,96,0)
		RPEX CDEFGHIJKLMNOPQRSTU 2 Bright
		Stop
	}
}

ACTOR RSTMushroomFireballs
{
PROJECTILE  
Height 8
Radius 10
Speed 35
Scale 1.0
RENDERSTYLE Translucent 
Alpha 1
BounceCount 3
Damage 30
DamageType "RST"
-NoGravity
+DoomBounce
+SKYEXPLODE
+DontHurtSpecies
+SPECTRAL
+Friendly
+DontHarmSpecies
SeeSound "imp/attack"
DeathSound "comet/explosion"
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_PlaySound("HFCyb/rocket",CHAN_WEAPON)
		Goto Fly
	Fly:
		FRTB AB 1 Bright A_SpawnItemEx("HFCybFireballTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(160,192,0)
		TNT1 A 0 Bright A_SpawnItemEx("LCABaseScorch",0,0,0,0,0,0,Random(0,359),SXF_CLIENTSIDE,0)
        TNT1 AAAAAA 0 Bright A_CustomMissile ("OrangeParticleSpawner",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_SpawnItemEx("RSTSuperMeteor_m_Explosion",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	    EXPL A 0 Bright Radius_Quake(15,20,0,20,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("SuperMeteor_m_FX_Smoke",0,0,0,0.01 * Random(-125,125),0.01 * Random(-125,125),0.01 * Random(25,245),0,SXF_CLIENTSIDE,0)
		BOOM ABCDEFGHIJKLMNOP 2 Bright
		Stop
   }
}

Actor RSTSuperMeteor_m_Explosion : SuperMeteor_m_Explosion { DamageType "RST" }
ACTOR RoasterChainTimer : Inventory { Inventory.MaxAmount 40 }