Actor IsUnderwater : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 300
}

Actor BurnSound : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 90
}
Actor Swimming : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
}

Actor PoisonIntensity : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 400
}

Actor StrongPoison : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

Actor ArmorPicker : PuzzleItem
{	Inventory.MaxAmount 2 -INVBAR }

ACTOR PowerNumbness : PowerSpeed
{  	Speed 0.5	}

ACTOR CurseNumbness : PowerupGiver
{
  Powerup.Type Numbness
  Powerup.Duration -1
  Powerup.Color "00 00 22",.2
 //inventory.pickupmessage "$CurseNumbness1"
 inventory.maxamount 0
 +AUTOACTIVATE
 +INVENTORY.QUIET
 +INVENTORY.ADDITIVETIME
}

actor PowerFragility : PowerProtection
{	damagefactor "normal", 2	}

actor CurseFragility : PowerupGiver
{
 //inventory.pickupmessage "$CurseFragility1"
 powerup.color "22 00 00" 0.2
 inventory.maxamount 0
 powerup.type Fragility
 powerup.duration -1
 +AUTOACTIVATE
 +INVENTORY.QUIET
 +INVENTORY.ADDITIVETIME
}

actor Caleb : DoomPlayer
{
	Player.forwardMove 0.75 0.70
	player.displayname "Caleb"
	player.startitem "Revolver" 0
	player.startitem "Clip", 0
	player.startitem "NoWeapon" 1
	player.startitem "Pitchfork" 1
	player.startitem "Backpack" 1
	Player.StartItem "Shell" 6
	player.soundclass "Caleb"
    Player.CrouchSprite "CALC"
	DamageFactor "CALINOimmune",0
	Player.WeaponSlot 1, "PitchFork"
	Player.WeaponSlot 2, "Flaregun"
	Player.WeaponSlot 3, "Sawedoff"
	Player.WeaponSlot 4, "TommyGun"
	Player.WeaponSlot 5, "NapalmLauncher"
	Player.WeaponSlot 6, "ProximityDynamite","RemoteDynamite","Dynamite" //, Proximity, Remote
	Player.WeaponSlot 7, "SprayCan"
	Player.WeaponSlot 8, "TeslaRifle"
	Player.WeaponSlot 9, "LifeLeech"
	Player.WeaponSlot 0, "VoodooDoll"
	DamageFactor "Blast", 0.544
	DamageFactor "Flare", 3
	DamageFactor "Shock", 0.75
	DamageFactor "Napalm", 1.22
	player.jumpz 10//jumping distance increased
	DamageFactor "StunningHead", 0.1
	PainChance "KickableHead",0
//	Player.DamageScreenColor "dd 11 00", .8
//	Player.DamageScreenColor "ff 88 11", .8, "Fire"	
//	Player.DamageScreenColor "22 88 22", 1, "Disintegrate"
	
	XScale 0.6
	YScale 0.52
	+ThruSpecies
	Species "PlayerThrough"
	Mass 500
    states

    {
    Spawn:
	    TNT1 A 0 A_JumpIf(health < 1, "Death")
		TNT1 A 0
		CALB I -1 A_GiveInventory("PlayerController",1)
		Loop
	See:
	    TNT1 A 0 A_JumpIf(health < 1, "Death")
		CALB AAAABBBBCCCCDDDDEEEEFFFF 1 A_GiveInventory("PlayerController",1)
		CALB F 1 A_JumpIf(waterlevel>1,"SwimThaw")
		Loop
	Missile:
		CALB IIII 1
		CALB I 1 A_JumpIf(waterlevel>1,"SwimThaw")
		Goto Spawn
	Melee:
		TNT1 A 0 A_JumpIfInventory("UsingPitchfork", 1, "Missile")
		CALB GGGGGG 1 BRIGHT A_GiveInventory("PlayerController",1)
		Goto Missile
		Pain.GOUPBOY:
		CALB H 0 ThrustThingZ(0,60,0,1)
	Pain:
	CALB H 0 A_JumpIfInventory("BurnTics",1,"Pain.Fire")
		CALB HHHH 1 A_GiveInventory("PlayerController",1)
		TNT1 A 0 A_Pain
		CALB HHHH 1 A_GiveInventory("PlayerController",1)
		Goto Spawn
		Pain.SpecialFire:
		CALB G 0 ACS_ExecuteAlways(618,0,24,1)
		Goto Pain.Fire+1
	Pain.Burn:
	Pain.Lava:
	Pain.Fire:
	CALB G 0 A_GiveInventory("BurnSound",1)
				CALE G 0 A_TakeInventory("ArmorPicker",411)	//reset token to zero
		CALE G 0 A_GiveInventory("ArmorPicker",1)	//ACS token that says "just damaged by fire"
	
	CALB G 0 A_JumpIf(waterlevel>1,"SwimThaw")
	CALB G 0 A_JumpIfInventory("BurnSound",9,"Pain.SoundBack")
	CALB G 0 A_JumpIfInventory("BurnSound",2,"Pain.OnFire")
		CALB G 1 A_PlaySound("Caleb/Burns",CHAN_VOICE)
//	CALB G 0 A_Print("Burn!")

	Goto See
	Pain.OnFire:
	CALB G 1 A_SetBlend("Red",0.1,30)
	Goto See
	Pain.SoundBack:
//	CALB G 0 A_Print("Sound Back")
	CALB G 0 A_TakeInventory("BurnSound",90)
	Goto Pain.Fire
	Pain.Blast:
	Pain.Dynamite:
	Pain.Napalm:
	CALB G 0 A_TakeInventory("ChokeMe",1)
	Pain.CultistTNT:
//		CALE G 0 A_SpawnItemEx("BadBurningInit")
		CALE G 0 A_TakeInventory("ArmorPicker",411)	//reset token to zero
		CALE G 0 A_GiveInventory("ArmorPicker",1)	//ACS token that says "just damaged by fire"
		Goto See
	SwimThaw:
	    TNT1 A 0 A_JumpIf(health < 1, "Death")
		CALE A 4 A_GiveInventory("Swimming",1)
		CALE B 0 A_TakeInventory("BurnSound",90)
		CALE BCD 4
		CALE A 0 A_JumpIf(Waterlevel<1,"StopSwim")
		Loop
	StopSwim:
		CALE A 4 A_TakeInventory("Swimming",99)
		Goto See
		/*
	Pain.BlinderX:
		CALE G 0 A_GiveInventory("BlinderCache",80)
	Pain.Blinder:
		CALE G 0 A_GiveInventory("BlinderCache",random(2,3))
		CALE G 0 A_Pain
		Goto See
	Pain.TurnerX:
		CALE G 0 A_GiveInventory("TurnerCache",80)
	Pain.Turner:
		CALE G 0 A_GiveInventory("TurnerCache",random(3,5))
		CALE G 0 A_Pain
		Goto See
		*/
	Dill:
	CALE G 0 A_SetBlend("Orange",0.15,100)
	Goto See
	Pain.BlindingPoison :
	CALE G 0 A_SetBlend("Black",0.85,190)
	CALE G 0 ACS_ExecuteAlways(620,0)
	Goto Pain
	Pain.TripWire:
	Pain.NumbnessX:
		CALE G 0 A_GiveInventory("CurseNumbness",35)
		CALE G 0 A_SetBlend("Black",0.6,80)
		Goto See
	Pain.Numbness:
		CALE G 0 A_GiveInventory("CurseNumbness",random(4,9))
		CALE G 0 A_Pain
		Goto See
	Pain.FragilityX:
		CALE G 0 A_GiveInventory("CurseFragility",29)
	Pain.Fragility:
		CALE G 0 A_GiveInventory("CurseFragility",random(1,2))
		CALE G 0 A_Pain
		Goto See		
	Pain.Disintegrate:
	Pain.InsaneBleed: //A scare factor to the phantasm heh
		TNT1 A 0 A_Pain
		//CALB HHHH 1
		CALB HH 0 ACS_ExecuteAlways(616,0,90)
	//	CALB HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 4 A_CustomMissile("Blood_",Random(-10,10),Random(27,31),Random(-90,90))
	Pain.Spiritual:
		CALE G 0 A_TakeInventory("ArmorPicker",411)	//reset token to zero
		CALE G 0 A_GiveInventory("ArmorPicker",2)	//ACS token that says "just damaged by magic"
		Goto See	
		Pain.Silently:
		TNT1 G 0 A_PlaySound("Null")
		Goto See
		Pain.Turner:
		CALE G 0 ACS_ExecuteAlways(611)
		Goto Pain
		Pain.Stun: // Gargoyles

		Goto Pain
		Pain.Axe:
				CALB H 0 ACS_ExecuteAlways(616,0,21)
		Goto Pain
	Death:
	//CALB A 0 ACS_ExecuteAlways(621,0)
	CALB A 0 A_JumpifInventory("Chokeme",1,"Death.StupidHand")
		TNT1 A 0 A_NoBlocking
		CALB JJJJJJJJJJ 1 A_GiveInventory("PlayerController",1)
		TNT1 A 0 A_Playsound("Caleb/Death")
		CALB KKKKKKKKKK 1

		CALB LLLLLLLLLL 1
		CALB MMMMMMMMMMNNNNNNNNNN 1
		CALB O -1
		Stop
		Death.StupidHand:
		CALB A 0 A_TakeInventory("Chokeme",1)
		CALB A 0 A_SpawnItem("ChokingHand")
		Goto Death+1 //Appearantly trying to loop this crashes the caleb who died.. Losing a few hands better than losing a player :V
	Death.Cultist:
		TNT1 A 0 A_SpawnItem("CultistSounder")
		Goto Death
	Death.CultistTNT:
		TNT1 A 0 A_SpawnItem("CultistSounder")
		Goto XDeath
	Death.GOUPBOY:
	XDeath:		
	CALX A 0 A_NoBlocking
		CALX A 7 A_TakeInventory("Chokeme",100)
		CALX B 8 A_Playsound("Caleb/Death")
		CALX C 8 
		CALX DEFGHIJK 8
		CALX L -1
		Stop
	Pain.LifeLeech:
	TNT1 A 0 A_GiveToTarget("LifeLeechHealth", random(40,50))
	Goto Pain
		Death.LifeLeech:
		TNT1 A 0 A_GiveToTarget("LifeLeechHealth", 100)
		Death.SpecialFire:
		Death.Flare:
	    Burn:
		APBX A 1 A_Playsound("BurnDeath")
    	BZOM I 0 A_Fall
    	BZOM I 0 A_SpawnItem("BurnDeath1",1)
    	APBX A -1
		Stop

		Pain.ChokeEM:
		//CALE G 0 A_Print("GOTCHA")
	//	CALE G 0 A_JumpIfInventory("ChokeMe",2,"Pain")
				CALE G 1 A_GiveInventory("ChokeMe",1)
		CALE G 1 ACS_ExecuteAlways(610,0,0)//Execute always mean getting 80 damage in one tic!

		Goto See
    }
}

Actor CultistSounder
{
	Height 1
	Radius 1
	-TELESTOMP
	+NOGRAVITY
	States
	{
		Spawn:
			TNT1 A 15 
			TNT1 A 0 A_PlaysoundEx("CultistGotYou", 1)
		Stop
	}
}

Actor LaughDelay : PowerDamage // Given when Caleb does maniacal laugh for gibbing
{
	powerup.duration -3
	damagefactor "nothing", 1.0
}

actor StompingDamager
{
	+DONTSPLASH
	+PAINLESS
	+NOTIMEFREEZE
	+BLOODLESSIMPACT
	+NODAMAGETHRUST
	Renderstyle None
	Damagetype "Stomping"
	states
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momz>0, 2)
			TNT1 A 0 A_Explode(random(1,-momz)+4,24,0)
			TNT1 A 0
			Stop
			
	}
}

actor PlayerController : CustomInventory
{
	inventory.maxamount 1
	+INVENTORY.AUTOACTIVATE
	+NOTIMEFREEZE
	States
	{
		Pickup:
		Stomp:
			TNT1 A 1 A_SpawnItemEx("StompingDamager",0,0,-1,0,0,momz/4,0,SXF_NOCHECKPOSITION /* as it is intended to be INSIDE monster */)
        Goto Stomp
	}
}