ACTOR GeneralRoasterock 32445
{
  Health 3000
  radius 20
  height 56
  Mass 400
  Speed 9
  PainChance 2
  Monster
  MinMissileChance 90
  Scale 1.25
  DamageFactor "PlayerFireSword", 0.8
  DamageFactor "BeheComet", 0.3
  DamageFactor "Ice", 0.0
  DamageFactor "FreezerBurn", 0.0
  DamageFactor "SoapOpera", 0.0 
  DamageFactor "ZombieDev", 0.0
  DamageFactor "RST", 0.0
  DamageFactor 0.65
  DamageFactor "BFGSplash", 0.15
  DamageFactor "BFGSpray", 0.15
  DamageFactor "Explosion", 0.60
  DamageFactor "PlayerPyro", 0.0
  DamageFactor "PDTPuff", 0.0
  DamageFactor "Bullet", 0.70
  DamageFactor "ZombieDemonTech", 0.0
  DamageFactor "ZombieRocket", 0.0
  DamageFactor "Railg", 0.5
  DamageFactor "GeneralTracer", 0.0
  DamageFactor "BFG10K", 0.40
  DamageFactor "PDTBFG", 0.20
  DamageFactor "PDTBFGTracer", 0.20
  DamageFactor "PlayerDevBall", 0.12
  DamageFactor "PlayerDevBall2", 0.12
  DamageFactor "PlayerDTBFGRailgunSlug", 0.12
  DamageFactor "PlayerDevTracer", 0.12
  DamageFactor "Legendary", 0.0
  DamageFactor "LegendaryPlayer", 0.3
  DamageFactor "LegendaryGuru", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.3
  DamageFactor "LACGrenade", 0.0
  DamageFactor "LegendaryZombie", 0.0
  DamageFactor "GeneralTracer", 0.0
  DamageFactor "DBFG10K2", 0.65
  DamageFactor "PlayerDBFG10K2", 0.65
  DamageFactor "DBFG2", 0.65
  DamageFactor "PlayerDBFG2", 0.65
  //if infight
  DamageFactor "Cyber10K", 0.0
  DamageFactor "CerChainguns", 0.0	
  DamageFactor "CerEnergyBall", 0.0
  DamageFactor "DemolisherEx", 0.0
  DamageFactor "DarkDemoEx", 0.0
  DamageFactor "Legendary1", 0.0 // Leg Imp
  DamageFactor "VileFires", 0.0
  DamageFactor "NobleComet", 0.0
  DamageFactor "BeheComet", 0.0
  +BOSS
  +MISSILEMORE
  +MISSILEEVENMORE
  +LOOKALLAROUND
  +DONTRIP
  +NOTELEFRAG
  +NOTIMEFREEZE
  +NOTARGET
  +CANTSEEK
  +FLOORCLIP
  +AVOIDMELEE
  +QUICKTORETALIATE
  +NORADIUSDMG
  +DONTMORPH
  +BOSSDEATH
  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
	RSTI A 10 A_look
	Loop
  See:
	ROST A 0 A_Jump(30,"Sprint")
	TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
	ROST AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("RoasterStep",0,0,0,0)
	ROST CCDD 3 A_Chase
	Loop
  Idle:
	BSZM A 0 A_LookEx(0,0,2048,2048,100)
	TNT1 A 0 A_SpawnItem("RoasterStepQuiet",0,0,0,0)
	ROST AAAABBBB 2 A_Wander
	BSZM A 0 A_LookEx(0,0,2048,2048,100)
	TNT1 A 0 A_SpawnItem("RoasterStepQuiet",0,0,0,0)
	ROST CCCCDDDD 2 A_Wander
	Loop
	Strafing:
	ROST A 0 A_SpawnItem("RoasterStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	ROST AABB 3 A_GiveInventory("CommandoStrafing",1)
	ROST C 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_PlaySoundEx("roaster/stop","SoundSlot6")
	ROST G 10
	Goto See
  Missile:
    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(500,"CloseAttacks")
	TNT1 A 0 A_JumpIfCloser(300,"Blast")
    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")
	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_StopSoundEx("Weapon")
	TNT1 A 0 A_Jump(10,"Pause")
    Goto AutoShotgun+1
	Cannon:
	ROST E 10 A_FaceTarget
	ROST E 5 A_FaceTarget
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4, -4))
	ROST E 5 A_FaceTarget
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4, -4))
	ROST E 5 A_FaceTarget
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4, -4))
	ROST E 5 A_FaceTarget
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST F 4 Bright A_CustomMissile("RSTRocket",28,10,Random(4, -4))
	ROST E 5 A_FaceTarget
	ROST E 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)
	NULL A 1 ThrustThingZ(0,70,0,1)
	ROST F 0 Bright A_PlaySound ("Cardinal/9k")
	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:
    ROST F 0 Bright A_PlaySound ("Cardinal/9k")
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST E 2 Bright A_FaceTarget
	ROST E 2 Bright A_FaceTarget
	ROST E 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
	ROST E 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 0 A_GiveInventory("CommandoStrafing",1)
	ROST E 2 Bright A_FaceTarget
	ROST F 2 Bright A_FaceTarget
	ROST F 2 Bright A_FaceTarget
	ROST E 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
	ROST E 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:
    ROST E 0 Bright A_FaceTarget
    ROST E 0 Bright A_PlaySound ("devastator/charge")
	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
    ROST F 0 A_PlaySound ("devastator/fire")
    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)
	ZCGN E 0 A_PlaySoundEx("roaster/start","SoundSlot6")
	ROST GGGGGGGGGG 3 A_FaceTarget
	ZCGN E 0 A_PlaySoundEx("roaster/loop","SoundSlot6",true)
	Goto ChainLoop
  ChainLoop:
    ROST G 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), 128)
	ROST H 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_StopSoundEx("Roaster")
    ROST G 0 A_MonsterRefire(10, "ChainEnd")
    Loop
  ChainEnd:
    TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	ZCGN E 0 A_PlaySoundEx("roaster/stop","SoundSlot6")
	ROST G 0 A_TakeInventory("RoasterChainTimer",40)
	ROST G 10
	Goto See
  LegMissile:
	ZCGN E 0 A_PlaySoundEx("roaster/prep","SoundSlot6")
	ROST IIIIIIIIII 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/leg", CHAN_WEAPON)
    ROST J 2 bright A_CustomMissile("RoasterLegMissile",12,-10)
	ROST I 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/leg", CHAN_WEAPON)
    ROST J 2 bright A_CustomMissile("RoasterLegMissile",12,-10)
	ROST I 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/leg", CHAN_WEAPON)
    ROST J 2 bright A_CustomMissile("RoasterLegMissile",12,-10)
	ROST I 14
    Goto See
  ShoulderMissile:
	ZCGN E 0 A_PlaySoundEx("roaster/prep","SoundSlot6")
	ROST IIIIIIIIII 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/shoulder", CHAN_WEAPON)
    ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
	ROST I 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/shoulder", CHAN_WEAPON)
    ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
	ROST I 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/shoulder", CHAN_WEAPON)
    ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
	ROST I 3 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/shoulder", CHAN_WEAPON)
    ROST K 2 bright A_CustomMissile("RoasterShoulderMissile",62,20)
	ROST I 14
    Goto See
  MegaAttack:
	ROST L 0 A_PlaySound("roaster/pain")
	ROST LLLLLL 4 A_FaceTarget
	ROST J 0 A_PlaySound("roaster/javelin", CHAN_WEAPON)
	ROST J 0 A_PlaySoundEx("roaster/leg", "SoundSlot6")
	ROST J 0 A_PlaySoundEx("roaster/shoulder", "SoundSlot5")
	ROST L 0 A_CustomMissile("RoasterShoulderMissile",62,20)
	ROST L 0 A_CustomMissile("RoasterLegMissile",12,-10)
	ROST L 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
	ROST E 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
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
	ROST E 5 A_FaceTarget
	ROST E 0 A_GiveInventory("CommandoStrafing",1)
	ROST F 4 Bright A_CustomMissile("RSTFireBall",28,10,Random(4, -4))
	ROST E 5 A_FaceTarget
	ROST E 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
	ROST E 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")
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
    ROST F 4 Bright A_CustomMissile("RSTPyroShot",28,10, 0)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam")
	ROST EEE 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",28,10,0)
    Goto See
  Dodge:
	ROST A 1 A_FaceTarget
	ROST E 0 ThrustThingZ(0, 20, 0, 0)
	ROST A 0 A_Jump(256, "DodgeRight", "DodgeLeft")
  DodgeLeft:
	ROST E 0 ThrustThing(angle*256/360+192, 15, 0, 0)
	Goto Sprint
  DodgeRight:
	ROST E 0 ThrustThing(angle*256/360+64, 15, 0, 0)
	Goto Sprint
  Pain:
    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 A_Jump(256,"Dodge")
	Goto See
  Pain.DBFG10K2:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Pain.DBFG:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Pain.PlayerDBFG:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Pain.DBFG2:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Pain.PlayerDBFG210K:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Pain.DBFG210K:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Pain.DBFG2Splash:
    TNT1 A 0 A_Jump(256,"Dodge")
	Goto See
  Death:
    TNT1 A 0 A_Jump(35,"GoodDeath")
	TNT1 A 0 A_SpawnItem("Demon Tech Devastator",0,12)
	ROST A 0 A_NoBlocking
    ROST A 0 A_Scream
	ROST OPQRSTU 6 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	ZCGN E 0 A_PlaySoundEx("roaster/stop","SoundSlot6")
	TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
	ROST U -1
    Stop
  GoodDeath:
    TNT1 A 0 A_SpawnItem("PyroCannon",0,12)
	TNT1 A 0 A_SpawnItem("Demon Tech Devastator",0,12)
	ROST A 0 A_NoBlocking
    ROST A 0 A_Scream
	ROST OPQRSTU 6 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	ZCGN E 0 A_PlaySoundEx("roaster/stop","SoundSlot6")
	TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
	ROST U -1
    Stop
  }
}

ACTOR RoasterStepQuiet
{
 radius 1
 height 1
 +NOCLIP
 +CLIENTSIDEONLY
 States
 {
 Spawn:
  TNT1 A 0
  TNT1 A 1 A_PlaySoundEx("roaster/stepquiet","Weapon")
  stop
 }
}

ACTOR RoasterStep
{
 radius 1
 height 1
 +NOCLIP
 +CLIENTSIDEONLY
 States
 {
 Spawn:
  TNT1 A 0
  TNT1 A 1 A_PlaySoundEx("roaster/step","Weapon")
  stop
 }
}

ACTOR RoasterLegMissile
{
  Radius 6
  Height 8
  Speed 45
  Damagetype "RST"
  Damage 20
  Projectile
  +RANDOMIZE
  +DEHEXPLOSION
  +ROCKETTRAIL
  DeathSound "weapons/rocklx"
  Obituary "%o was fucked by a Roasterock leg missile." // "%o rode %k's rocket."
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(80,"TurnIntoSeeker")
    RMIS A 1 Bright
    Goto Spawn+1
  TurnIntoSeeker:
	TNT1 A 0
	TNT1 A 0 A_ChangeFlag("SEEKERMISSILE",1)
	Goto SpawnSeeker
  SpawnSeeker:
	RMIS A 1 bright A_SeekerMissile(40, 15)
	Loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 Radius_Quake(2,12,0,8,0)
    TNT1 AA 0 A_Explode(40,170)
    TNT1 AA 0 A_Explode(25,300)
	TNT1 A 0 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
    stop
  }
}


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

Actor RSTBulletPuff2 : RSTBulletPuff {
-PierceArmor
}

Actor RSTRocket : CardinalRocket {DamageType "RST"}

Actor RSTGrenade : CydestroyerGrenade {DamageType "RST"}

Actor RoasterShoulderMissile : CardinalHomingRocket {DamageType "RST"}

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

ACTOR RSTFireball
{
	Game Doom
	Radius 6
	Height 8
	Speed 50
	FastSpeed 60
	Damage 45
	Projectile
	+RANDOMIZE
	+DONTREFLECT
	+SeekerMissile
	+ExtremeDeath
	Damagetype "RST"
	RenderStyle Translucent
	Alpha 1
	Scale 1.0
    SeeSound "imp/attack"
    DeathSound "comet/explosion"
	States
	{
	Spawn:
	TNT1 A 1
	TNT1 A 0 A_PlaySoundEx("HFCyb/rocket", 1, 0, 2)
	Goto Fly
	Fly:
		FRTB AB 1 BRIGHT A_SpawnItem("HFCybFireballTrail")
		TNT1 A 0 A_SeekerMissile(0,2)
		TNT1 A 0 A_CustomMissile ("SuperMeteor_m_TrailFX_Smoke", 0, 0, random (0, 360), 2, random (10, 40))
		Loop
	Death:
		TNT1 A 0 A_Explode(160, 192)//Damage, Radius
		TNT1 A 0 A_SpawnItemEx("LCABaseScorch", 0, 0, 0, 0, 0, 0, Random(0,359))
        TNT1 AAAAAA 0 A_CustomMissile ("OrangeParticleSpawner", 0, 0, random (0, 360), 2, random (0, 180))
	    EXPL A 0 Radius_Quake(15,20,0,20,0)
		BEXP B 0 BRIGHT A_Scream
        TNT1 A 0 A_ALertMonsters
		Goto EndAnimation
		EndAnimation:
		TNT1 A 0 A_SpawnItemEx("RSTSuperMeteor_m_Explosion", 0, 0, 0, 0, 0, 0, -1, SXF_NOCHECKPOSITION)//A_CustomMissile("Meteor_m_Explosion",0+Random(5,80),0+Random(35,-35),0+Random(0,370))
		TNT1 AAAAAAAAAAAA 0 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, 128, 0)
		Stop
	}
}

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

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

ACTOR RSTFuelExplosion02
{   
   Radius 5
   Height 5
   Speed 0
   Damage 10
   PROJECTILE
   RENDERSTYLE ADD
   +SPECTRAL
   +Friendly
   +DontHurtSpecies
   +DontHarmSpecies
   DamageType "RST"
   ALPHA 0.80
   SeeSound "weapons/firex3"
   States
   {
   Spawn:
      RPEX A 2 Bright
      RPEX B 2 Bright A_Explode (10,96,0)
      RPEX CDEFGHIJKLMNOPQRSTU 2 Bright
      stop
   }
}
ACTOR RSTMushroomFireballs
{
   Radius 10
   Height 8
   Damage 30
   PROJECTILE  
   RENDERSTYLE Translucent 
   Alpha 1
   Scale 1.0
   Speed 35
   SeeSound "imp/attack"
   DeathSound "comet/explosion"
   DamageType "RST"
   BounceCount 3
   -NoGravity
   +DoomBounce
   +SKYEXPLODE
   +DontHurtSpecies
   +SPECTRAL
   +Friendly
   +DontHarmSpecies
   states
   {
	Spawn:
	TNT1 A 1
	TNT1 A 0 A_PlaySoundEx("HFCyb/rocket", 1, 0, 2)
	Goto Fly
	Fly:
		FRTB AB 1 BRIGHT A_SpawnItem("HFCybFireballTrail")
		Loop
     Death:
		TNT1 A 0 A_Explode(160, 192)//Damage, Radius
		TNT1 A 0 A_SpawnItemEx("LCABaseScorch", 0, 0, 0, 0, 0, 0, Random(0,359))
        TNT1 AAAAAA 0 A_CustomMissile ("OrangeParticleSpawner", 0, 0, random (0, 360), 2, random (0, 180))
		TNT1 A 0 A_SpawnItemEx("RSTSuperMeteor_m_Explosion",0,0,0,0,0,0,0,128,0)
	    EXPL A 0 Radius_Quake(15,20,0,20,0)
		TNT1 AAAA 0 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, 128, 0)
		BOOM ABCDEFGHIJKLMNOP 2 BRIGHT
		Stop
   }
}

Actor RSTSuperMeteor_m_Explosion : SuperMeteor_m_Explosion
{
DamageType "RST"
}

ACTOR RoasterChainTimer : Inventory
{
	Inventory.MaxAmount 40
}
