
//Bomb
ACTOR StupidRatBombWeapon : Weapon
{
	Inventory.RestrictedTo "StupidRatClass"
	Weapon.SelectionOrder 3700
	Obituary "%k got bombed"
	Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"
	+WEAPON.AMMO_OPTIONAL
	Tag "Bomb"
	+weapon.noalert
	DamageType "RatGainAmmo"
	States
	{
	Reload:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatDanceState")
		TNT1 A 0 A_GiveInventory("StupidRatDancing")
		TNT1 A 0 SetPlayerProperty(0,1,PROP_FROZEN)
		TNT1 A 0 A_PlaySound("characters/stupidrat/music",7,1,1,5)
		TNT1 A 0 ACS_NamedExecuteWithResult("SetRatChasecam2",40)
		TNT1 A 0 ACS_NamedExecuteWithResult("SpookyDoiseTime")
	Dance:
		TNT1 A 0 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		SRWB D 10 bright 
		TNT1 A 0 A_jumpifinventory("reloadholding",1,"Dance")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
		TNT1 A 0 A_takeinventory("StupidRatDancing")
		TNT1 A 0 A_StopSound(7)
		TNT1 A 0 ACS_NamedExecuteWithResult("SetRatChasecam2",0)
		TNT1 A 0 ACS_NamedExecuteWithResult("SpookyDoiseTimeStop")
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatCheeseState")
		SRWB DEFG 4 bright
		Goto Ready
	Ready: 
		TNT1 A 0 A_GiveInventory("StupidRatHoldingBomb")
		SRWB DEFG 4 bright A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD)
		Loop
	Deselect:
		TNT1 A 0 ACS_NamedExecuteWithResult("SetRatChasecam2",0)
		TNT1 A 0 A_StopSound(7)
	DeselectLoop:
		TNT1 A 0 A_TakeInventory("StupidRatHoldingBomb")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
		TNT1 A 0 A_Changeflag("NOPAIN",0)
		TNT1 A 0 A_ChangeFlag("NODAMAGE", 0)
		TNT1 A 0 A_StopSound(6)
		SRWL A 0 A_Lower
		Loop
	Select:
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatBombState")
		SelectLoop:
		SRWL A 0 A_Raise
		Loop
	//Firing
	Fire:
		SRWB c 4 bright A_JumpIfHealthLower(21,"cantcontinue")
		TNT1 A 0 a_alertmonsters
		TNT1 A 0 SetPlayerProperty(0,1,PROP_FROZEN)
		TNT1 a 0 A_scalevelocity(0.0)
		TNT1 A 0 A_PlaySound("characters/stupidrat/jump", 1)
		SRWB i 2 bright A_ChangeVelocity(velx, vely, 20, CVF_REPLACE) //jump!
		TNT1 A 0 A_ChangeFlag("NODAMAGE", 1)
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatBombAttack1State")
	WaitFall:
		SRWB h 2 bright A_JumpIf(velz <= 0,"WaitLand")
		Loop
	WaitLand:
		TNT1 A 0 A_PlaySound("characters/stupidrat/bombfall", 0)
		SRWB j 2 bright A_ChangeVelocity(velx, vely, -20, CVF_REPLACE)
		TNT1 A 0 bright ACS_NamedExecuteAlways("RatBombAttack2State")
	WaitLand2:
		SRWB k 2 bright A_quake(2,2,0,32,"NOSOUND")
		TNT1 A 0 A_PlaySound("characters/stupidrat/bombquake", 0)
		SRWB I 0 bright A_JumpIf(velz == 0,"CrashLanding")
		SRWB I 0 bright A_CheckFloor("CrashLanding")
		Loop
	CrashLanding:
		TNT1 A 0 A_Quake(15,15,0,400,"NOSOUND")
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",0,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",10,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",20,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",30,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",40,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",50,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",60,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",70,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",80,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",90,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",100,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",110,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",120,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",130,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",140,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",150,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",160,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",170,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",180,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",190,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",200,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",210,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",220,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",230,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",240,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",250,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",260,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",270,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",280,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",290,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",300,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",310,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",320,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",330,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",340,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",350,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",360,0,0,-16)
		TNT1 A 0 A_Changeflag("NOPAIN",1)
		TNT1 A 0 A_ChangeFlag("NODAMAGE", 0)
		TNT1 A 1 A_JumpifHealthlower(21,"SetHealthTo1")
// 		TNT1 A 0 DamageThing(75)
		TNT1 A 0 A_FireCustomMissile("StupidRatSelfHarm")
	ContinueCrash:
		SRWB L 4 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,29)
		SRWB M 4 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,26)
		TNT1 A 0 A_Quake(15,15,0,400,"NOSOUND")
		TNT1 A 0 A_fireCustommissile("StupidRatBombBlast",0,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",0,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",10,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",20,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",30,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",40,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",50,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",60,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",70,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",80,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",90,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",100,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",110,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",120,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",130,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",140,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",150,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",160,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",170,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",180,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",190,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",200,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",210,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",220,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",230,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",240,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",250,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",260,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",270,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",280,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",290,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",300,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",310,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",320,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",330,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",340,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",350,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",360,0,0,-16)
		SRWB L 4 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,26)
		SRWB M 4 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,26)
		TNT1 A 0 A_Quake(15,45,0,400,"NOSOUND")
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",0,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",10,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",20,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",30,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",40,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",50,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",60,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",70,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",80,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",90,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",100,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",110,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",120,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",130,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",140,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",150,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",160,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",170,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",180,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",190,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",200,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",210,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",220,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",230,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",240,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",250,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",260,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",270,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",280,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",290,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",300,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",310,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",320,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",330,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",340,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",350,0,0,-16)
		TNT1 A 0 A_FireCustomMissile("StupidRatBombSmoke",360,0,0,-16)
		SRWB G 20 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,26)
		TNT1 A 0 A_Changeflag("NOPAIN",0)
		SRWB G 2 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,29)
		SRWB g 2 bright ACS_NamedExecuteAlways("StupidRatViewHeight",0,35)
		SRWB g 10 bright ACS_NamedExecuteAlways("StupidRatViewHeightReset")
		TNT1 A 0 SetPlayerProperty(0,0,PROP_FROZEN)
		SRWB DEFG 4 bright A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
		Goto Ready
	SetHealthTo1:
		TNT1 A 0 DamageThing((health-15)*2)
		Goto ContinueCrash
	cantcontinue:
		SRWB C 1 bright A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
		tnt1 a 0 A_print("You need 20 health to use the bomb!",1)
		Goto Ready
	}
}