//Sergeant Mark IV's vehicles.
//If you want to modify and reuse this on your wad, please ask me first.


Actor PattonBaseFrame
{
+THRUACTORS
YScale 2.2
XScale 2.2
+NOTIMEFREEZE
-FLOORCLIP
+NOGRAVITY
-FLOAT
Mass 5000
Radius 0
Height 0
Gravity 0
States
{
Spawn:
TNK1 B 0
TNK1 B 0
Goto ShowUp
ShowUp:
"----" # 0 A_SPawnItemEx("TankWeakSpotBase", -65, 0, 2)
"----" # 0 A_CustomMissile("CheckPitchCenter", -12, 0, 0, 2, 0)
"----" # 0 A_CustomMissile("CheckPitchCenter", -12, 0, 180, 2, 0)
"----" # 0 A_SPawnItemEx("CheckIfFloating", 96, 0, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckIfFloating", 96, -64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckIfFloating", 96, 4, -2, 0, 0, 0, 0)
"----" # 0 A_CustomMissile("CheckIfOn3DFloor", -64, 0, 0, 2, 0)
"----" # 0 A_CustomMissile("CheckIfOn3DFloor", -160, 0, 0, 2, 0)

"----" # 0 A_SPawnItemEx("CheckPitchFront", 76, 64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchFront", 76, -64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchFront", 76, 0, -2, 0, 0, 0, 0)

"----" # 0 A_SPawnItemEx("CheckPitchRunOver", 100, 64, 4, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchRunOver", 100, -64, 4, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchRunOver", 100, 0, 4, 0, 0, 0, 0)

"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 0, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, -64, -2, 0, 0, 0, 0)

"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 0, -10, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 64, -10, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, -64, -10, 0, 0, 0, 0)
TNT1 # 1
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("PitchBackToken", 6, "PitchFront2")
"----" # 0 A_JumpIfInventory("PitchBackToken", 3, "PitchFront")
"----" # 0 A_JumpIfInventory("PitchFrontToken", 6, "PitchBack2")
"----" # 0 A_JumpIfInventory("PitchFrontToken", 3, "PitchBack")

Normal:
"----" # 0
TNK1 # 16
Stop

PitchFront:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushWeak", 64, 0, -2, 0, 0, 0, 0)
TNK4 # 16
Stop

PitchFront2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushFront", 64, 0, -2, 0, 0, 0, 0)
TNK2 # 16
Stop

PitchBack:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
TNK5 # 16 A_SPawnItemEx("PushWeak", -16, 0, -2, 0, 0, 0, 0)
Stop

PitchBack2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_SPawnItemEx("PushFront", -64, 0, -2, 0, 0, 0, 0)
TNK3 # 16
Stop
}}




Actor PattonBaseFrame1: pattonBaseFrame
{
Radius 0
States
{
Spawn:
TNK1 B 0
TNK1 B 0
Goto ShowUp
ShowUp:
"----" # 0 A_SPawnItemEx("TankWeakSpotBase", -65, 0, 2)
"----" # 0 A_CustomMissile("CheckPitchCenter", -12, 0, 0, 2, 0)
"----" # 0 A_CustomMissile("CheckPitchCenter", -12, 0, 180, 2, 0)
"----" # 0 A_SPawnItemEx("CheckIfFloating", 96, 0, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckIfFloating", 96, -64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckIfFloating", 96, 4, -2, 0, 0, 0, 0)
"----" # 0 A_CustomMissile("CheckIfOn3DFloor", -64, 0, 0, 2, 0)
"----" # 0 A_CustomMissile("CheckIfOn3DFloor", -160, 0, 0, 2, 0)

"----" # 0 A_SPawnItemEx("CheckPitchFront", 76, 64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchFront", 76, -64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchFront", 76, 0, -2, 0, 0, 0, 0)

"----" # 0 A_SPawnItemEx("CheckPitchRunOver", 100, 64, 4, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchRunOver", 100, -64, 4, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchRunOver", 100, 0, 4, 0, 0, 0, 0)

"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 0, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 64, -2, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, -64, -2, 0, 0, 0, 0)

"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 0, -10, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, 64, -10, 0, 0, 0, 0)
"----" # 0 A_SPawnItemEx("CheckPitchBack", -70, -64, -10, 0, 0, 0, 0)
TNT1 # 1
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("PitchBackToken", 6, "PitchFront2")
"----" # 0 A_JumpIfInventory("PitchBackToken", 3, "PitchFront")
"----" # 0 A_JumpIfInventory("PitchFrontToken", 6, "PitchBack2")
"----" # 0 A_JumpIfInventory("PitchFrontToken", 3, "PitchBack")

Normal:
"----" # 0
TNK1 # 2
Stop

PitchFront:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushWeak", 64, 0, -2, 0, 0, 0, 0)
TNK4 # 2
Stop

PitchFront2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushFront", 64, 0, -2, 0, 0, 0, 0)
TNK2 # 2
Stop

PitchBack:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
TNK5 # 2 A_SPawnItemEx("PushWeak", -16, 0, -2, 0, 0, 0, 0)
Stop


PitchBack2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_SPawnItemEx("PushFront", -64, 0, -2, 0, 0, 0, 0)
TNK3 # 2
Stop
}}

Actor PattonBaseFrame2: PattonBaseFrame1
{
States
{
Spawn:
TNK1 D 0
TNK1 D 0
Goto ShowUp

Normal:
"----" # 0
TNK1 # 2
Stop

PitchFront:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushWeak", 64, 0, -2, 0, 0, 0, 0)
TNK4 # 2
Stop

PitchFront2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushFront", 64, 0, -2, 0, 0, 0, 0)
TNK2 # 2
Stop

PitchBack:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
TNK5 # 2 A_SPawnItemEx("PushWeak", -16, 0, -2, 0, 0, 0, 0)
Stop

PitchBack2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_SPawnItemEx("PushFront", -64, 0, -2, 0, 0, 0, 0)
TNK3 # 2
Stop
}}

Actor PattonBaseFrame3: PattonBaseFrame1
{
States
{
Spawn:
TNK1 E 0
TNK1 E 0
Goto ShowUp


Normal:
"----" # 0
TNK1 # 2
Stop

PitchFront:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushWeak", 64, 0, -2, 0, 0, 0, 0)
TNK4 # 2
Stop

PitchFront2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_JumpIfInventory("SlopeCheck2", 3, "PitchBack")
"----" # 0 A_SPawnItemEx("PushFront", 64, 0, -2, 0, 0, 0, 0)
TNK2 # 2
Stop

PitchBack:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
TNK5 # 2 A_SPawnItemEx("PushWeak", -16, 0, -2, 0, 0, 0, 0)
Stop

PitchBack2:
"----" # 0
"----" # 0 A_JumpIfInventory("SlopeCheck1", 1, "Normal")
"----" # 0 A_SPawnItemEx("PushFront", -64, 0, -2, 0, 0, 0, 0)
TNK3 # 2
Stop
}}


Actor PattonTurretNotReal: PattonBaseFrame
{
Scale 1.25
States
{
Spawn:
TNT1 A 0
TNK1 T 8
Stop
}}



ACTOR Patton: SwitchableDecoration 7261
{
	var int user_stationedtankbasedirection;
    Radius 64
	Height 72
	+SOLID
	+USESPECIAL
	MONSTER
	-COUNTKILL
	+SHOOTABLE
	+LOOKALLAROUND
	+THRUACTORS
	+NOINFIGHTING
	-COUNTKILL
	+NOBLOODDECALS
	+DONTRIP
	+NOTIMEFREEZE
	MaxTargetRange 120
	PainChance "Repair", 255
	BloodType "TankBlood", "TankBlood", "TankBlood"
	Activation THINGSPEC_Activate | THINGSPEC_ThingTargets | THINGSPEC_NoDeathSpecial
	Mass 5000
	Speed 0
	health 2000
	Scale 1.25
	damagefactor "Headkick", 0.0
	damagefactor "slime", 0.0	damagefactor "Repair", 1.0 damagefactor "CheckRepair", 0.0
		damagefactor "Head", 0.0	damagefactor "FriendBullet", 0.0    damagefactor "Taunt", 0.0   	 damagefactor "KillMe", 0.0 damagefactor "Structural", 0.0
	damagefactor "Shrapnel", 0.0    damagefactor "Blood", 0.0    damagefactor "BlueBlood", 0.0
	damagefactor "GreenBlood", 0.0    damagefactor "MinorHead", 0.0    damagefactor "Decaptate", 0.0	damagefactor "MonsterKnocked", 0.0
    damagefactor "CancelTeleportFog", 0.0	damagefactor "BHFTOnBarrel", 0.0	damagefactor "GibRemoving", 0.0	damagefactor "SuperPunch", 5.0
	damagefactor "HelperMarineFatallity", 0.0	damagefactor "Leg", 0.0	damagefactor "SpawnMarine", 0.0	damagefactor "TeleportRemover", 0.0
	DamageFactor "CauseObjectsToSplash", 0.0 DamageFactor "Trample", 0.0 DamageFactor "Minigun", 0.1 damageFactor "Machinegun", 0.1
	DamageFactor "TankWeakSpot", 3.0 damagefactor "Plasma", 1.3 damagefactor "Plasma2", 1.3
	damagefactor "Desintegrate", 3.0 damagefactor "Railgun", 2.0 damagefactor "Fire", 0.0
	Damagefactor "Stealth", 0.0 Damagefactor "Slide", 0.0 Damagefactor "Use", 0.0 Damagefactor "PussyGrab", 0.0
	damagefactor "stomp", 0 damagefactor "Shotgun", 0.02 damagefactor "kick", 0.0 damagefactor "extremepunches", 0.05 damagefactor "taunt", 0 damagefactor "avoid", 0
	damagefactor "melee", 0.2 damagefactor "minigun", 0.05 damagefactor "minor", 0.02 damagefactor "saw", 0.2 damagefactor "cut", 0.2
 damagefactor "bullet", 0.1 damagefactor "monsterbullet", 0.25 damagefactor "monstershotgun", 0.2 damagefactor "monsterminigun", 0.2
	damagefactor "ExplosiveImpact", 0.25
    States
    {
    Spawn:
	    TNT1 A 1
        
		TNT1 A 0 Thing_ChangeTID(0, 261)
		TNT1 A 1 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 5
		TNT1 A 0 A_SpawnItem("PattonTurretNotReal")
		TNT1 A 0 Thing_ChangeTID(0, 0)
		TNK1 C 0 A_ChangeFlag("THRUACTORS", 0)
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 1)
        TNT1 A 0 ACS_NamedExecuteAlways("BDSetNewTankDirection", 0, 0, 0, 0)//Check vehicle initial angle.
		Goto StandingHere
		
	  StandingHere:
		TNT1 A 0
		TNT1 A 0 A_SPawnItemEx("PattonBaseFrame", 0, 0, 0, 0, 0, 0, user_stationedtankbasedirection, SXF_ABSOLUTEANGLE )
		TNT1 AA 8 A_SpawnItem("PattonTurretNotReal")
		TNT1 A 0 A_SpawnItem("StationedVehicleCheckRepairs")
		Loop
		
	Active:
		TNT1 A 0 
		TNT1 A 0 A_TakeFromTarget("PowerInvulnerable", 1)
		TNT1 A 0 A_GiveToTarget("CeaseMorph", 1)
		TNK1 C 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 Thing_ChangeTID(0, 261)
		TNT1 A 0 ACS_NamedExecuteAlways("GetVehiclePreviousHealth", 0, 0, 0, 0)//Check Vehicle Health	
		TNT1 A 0 A_GiveToTarget("CheckingMorphingPlayerHealth", 1)
		TNT1 A 0 A_SpawnItem("PattonTurretNotReal")
		NULL A 3
		TNT1 A 0 A_GiveToTarget("PattonMorpher", 1)
		TNT1 A 0 A_GiveToTarget("HeavyMachinegunAmmo", 400)
		TNT1 A 0 A_GiveToTarget("TankAmmo", 40)
		TNT1 A 0 Thing_ChangeTID(0, 261)
		TNT1 A 0 A_NoBlocking
		NULL A 1
		TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		NULL A 10
		TNT1 A 0 Thing_ChangeTID(0, 0)
		TNT1 A 0 Thing_Remove(0)
		NULL A 1
		Stop
	
		
	Death:	
		TNT1 A 1
		TNT1 A 0 A_SpawnItem("BigExplosion1112")
		TNT1 A 0 A_PlaySound("weapons/explode")
		TNT1 A 0 A_PlaySound("EXPLOSIO", 3)
		TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		TNT1 A 0 A_Scream
		NULL AAAAAA 0 A_CustomMissile ("MetalShard1", 96, 0, random (0, 360), 2, random (0, 180))
		NULL AAAAAA 0 A_CustomMissile ("MetalShard2", 96, 0, random (0, 360), 2, random (0, 180))
		NULL AAAAAAAAA 0 A_CustomMissile ("GlassShard", 96, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItem("DestroyedArmouredVehicle")
		ELEC A 0 A_Explode(100, 250)
		TNT1 A 15
		TNT1 A 0
		Stop	
	
		Pain.Repair:
		 TNT1 A 0
		 TNT1 A 0 A_ChangeFLag("NOPAIN", 1)
		 TNT1 A 0 HealThing(5)
		 TNK1 T 1
		 TNT1 A 0 HealThing(5)
		 TNT1 A 0 A_ChangeFLag("NOPAIN", 0)
		 Goto StandingHere
	}
}



ACTOR PattonUsed: Patton
{
    States
    {
	Spawn:
		TNT1 A 0
	    TNT1 A 1
		TNT1 A 0 Thing_ChangeTID(0, 261)
		TNT1 A 1 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 5 
        TNT1 A 0 ACS_NamedExecuteAlways("TankSetBaseAngle", 0, 0, 0, 0)//Check vehicle initial angle.
		TNT1 A 0 Thing_ChangeTID(0, 0)
		TNK1 C 0 A_ChangeFlag("THRUACTORS", 0)
		TNT1 A 0 A_ChangeFlag("FRIENDLY", 1)
		Goto StandingHere
	
		
	
	
	Active:
		TNT1 A 0 
		//TNT1 A 0 A_JumpIfInTargetInventory("PowerInvulnerable", 1, "StandingHere")
		TNT1 A 0 A_TakeFromTarget("PowerInvulnerable", 1)
		TNT1 A 0 A_GiveToTarget("CeaseMorph", 1)
		TTR1 A 0 A_ChangeFlag("FRIENDLY", 0)
		TNT1 A 0 Thing_ChangeTID(0, 261)
		TNT1 A 0 ACS_NamedExecuteAlways("GetVehiclePreviousHealth", 0, 0, 0, 0)//Check Vehicle Health
		//TNT1 A 0 A_Chase("","",CHF_DONTMOVE )
		TNT1 A 0 A_GiveToTarget("CheckingMorphingPlayerHealth", 1)
		NULL A 3
		TNT1 A 0 A_GiveToTarget("PattonMorpher", 1)
		TNT1 A 0 Thing_ChangeTID(0, 261)
		TNT1 A 0 A_NoBlocking
		NULL A 1
		TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
		NULL A 10
		TNT1 A 0 Thing_ChangeTID(0, 0)
		Stop
	}
}



ACTOR PattonRealism: Patton
{
Health 16000
}

	


ACTOR PowerPattonSwitch : PowerMorph {PowerMorph.PlayerClass "PlayerPatton"}



ACTOR PattonMorpher : CustomInventory 
{
  States
  {
  PickUp:
  TNT1 A 1
  TNT1 A 0 ACS_NamedExecuteAlways("BDEnterTank", 0, 0, 0, 0)//Get into Tank
  TNT1 A 0 A_GiveInventory("PattonMorphActivation")
  TNT1 A 0 A_SpawnItem("CancelTeleportFog")
  TNT1 A 1
  Stop
  }
 }
 


ACTOR PattonMorphActivation : PowerupGiver
{
  Powerup.Type "PowerPattonSwitch"
  Powerup.Duration 252000
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  Inventory.MaxAmount 1
  Health 100
  GibHealth 1
  Mass 6000
  Height 72
  Radius 32
  States
  {
  Spawn:
  TNT1 A 100
  Stop
  
  PickUp:
  TNT1 A 1
  TNT1 A 1
  Stop
  }
 }
 
 


ACTOR PlayerPatton : PlayerPawn
{
var int user_tankbasedirection;
	Speed 0
	Scale 1.25
	Radius 64
	Height 72
	Mass 5000
	PainChance 0
	health 2000
	-PICKUP
	Speed 0.01
	player.viewheight	82
    player.attackzoffset 56
	MaxStepHeight 32
	Player.MorphWeapon "PattonGun"
    Player.JumpZ 0
	Species "Marines"
	+NOSKIN
	Damagefactor "Stealth", 0.0
	+FORCERADIUSDMG
	+FIXMAPTHINGPOS
	+NORADIUSDMG
	+DONTRIP
	-CANUSEWALLS
	+NOBLOODDECALS
	BloodType "TankBlood", "TankBlood", "TankBlood"
	-PICKUP
	damagefactor "slime", 0.0	damagefactor "Repair", 1.0 damagefactor "CheckRepair", 0.0
	damagefactor "Head", 0.0	damagefactor "FriendBullet", 0.0    damagefactor "Taunt", 0.0    damagefactor "KillMe", 0.0
	damagefactor "Shrapnel", 0.0    damagefactor "Blood", 0.0    damagefactor "BlueBlood", 0.0
	damagefactor "GreenBlood", 0.0    damagefactor "MinorHead", 0.0    damagefactor "Decaptate", 0.0	damagefactor "MonsterKnocked", 0.0
    damagefactor "CancelTeleportFog", 0.0	damagefactor "BHFTOnBarrel", 0.0	damagefactor "GibRemoving", 0.0	damagefactor "SuperPunch", 5.0
	damagefactor "HelperMarineFatallity", 0.0	damagefactor "Leg", 0.0	damagefactor "SpawnMarine", 0.0	damagefactor "TeleportRemover", 0.0
	DamageFactor "CauseObjectsToSplash", 0.0 DamageFactor "Trample", 0.0 DamageFactor "Minigun", 0.1 damageFactor "Machinegun", 0.1
	DamageFactor "TankWeakSpot", 3.0 damagefactor "Plasma", 1.3 damagefactor "Plasma2", 1.3
	damagefactor "Desintegrate", 3.0 damagefactor "Railgun", 2.0 damagefactor "Fire", 0.0
	Damagefactor "Stealth", 0.0 Damagefactor "Slide", 0.0 Damagefactor "Use", 0.0 Damagefactor "PussyGrab", 0.0
	damagefactor "stomp", 0 damagefactor "Shotgun", 0.02 damagefactor "kick", 0.05 damagefactor "extremepunches", 0.05 damagefactor "taunt", 0 damagefactor "avoid", 0
	damagefactor "melee", 0.2 damagefactor "minigun", 0.05 damagefactor "minor", 0.02 damagefactor "saw", 0.2 damagefactor "cut", 0.2
	 damagefactor "bullet", 0.1 damagefactor "monsterbullet", 0.25 damagefactor "monstershotgun", 0.2 damagefactor "monsterminigun", 0.2
	damagefactor "ExplosiveImpact", 0.25
	States
	{
	
	
		
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PressedUse", 1)
		TNT1 A 0 ThrustTHingZ(0, 100, -1, 1)
		
		TNK1 T 1
	Spawn2:
	    TNT1 A 0 A_GiveInventory("IsInATank", 1)
		TNT1 A 0 A_TakeInventory("PressedUse", 1)
		TNT1 A 0 A_TakeInventory("TurnRight", 1)
		TNT1 A 0 A_TakeInventory("TurnLeft", 1)
		TNT1 A 0 A_TakeInventory("Accelerate", 1)
		TNT1 A 0 A_TakeInventory("BackPedal", 1)
		
		//TNT1 A 0 SetPlayerProperty(0, 1, PROP_BUDDHA)
		TNK1 T 1
		TNK1 TTTT 1 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, -90, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNK1 TTTT 1 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, -90, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_TakeInventory("PressedUse", 1)
		TNT1 A 0 A_TakeInventory("FiredTankMainGun", 1)
		TNT1 A 0 A_Print (a, 4, "TUTO1")
	Goto Stay

		

	ExitVehicle:
	TNT1 A 1
	
	TNT1 A 0 A_TakeInventory("PressedUse", 1)
	TNT1 A 0 A_JumpIfHealthLower(2, "EmergencyExit")
	TNT1 A 0 A_SpawnItemEx ("TransferPlayerOutOfVehicle", 0, 0, 90)
	
	TNK1 T 1
	TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
	TNK1 T 1
	TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
	TNK1 T 1
	TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
	
	TNT1 A 0 A_JumpIfInventory("CanLeaveVehicle", 1, "CanExit")
	TNT1 A 0 A_Print("Can't leave from this direction", 1)
	Goto Stay
	
	CanExit:
	TNT1 A 0
	TNT1 A 2 A_TakeInventory("IsInATank", 1)
	TNT1 A 0 A_TakeInventory("PressedUse", 1)
	TNT1 A 0 A_TakeInventory("CanLeaveVehicle", 1)
	TNT1 A 0 ACS_NamedExecuteAlways("BDStopCamera", 0, 0, 0, 0)//Stop third person camera
	//TNT1 A 0 SetPlayerProperty(0, 0, PROP_BUDDHA)
	TNT1 A 0 ACS_NamedExecuteAlways("BDLeaveTank")
	TNT1 A 0 A_SpawnItemEx ("PattonUsed", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	Goto FinishExit
	
	
	EmergencyExit:
	TNT1 A 0
	
	TNT1 A 2 A_TakeInventory("IsInATank", 1)
	TNT1 A 0 A_TakeInventory("PressedUse", 1)
	TNT1 A 0 A_TakeInventory("CanLeaveVehicle", 1)

	TNT1 A 0 ThrustThingZ(0,120,0,1)
	TNT1 A 0 A_SpawnItem("TankExplode")
	PLA1 J 2
	TNT1 A 0 A_StopSound(1)
	//TNT1 A 0 SetPlayerProperty(0, 0, PROP_BUDDHA)
	TNT1 A 0 SetPlayerProperty(0, 0, PROP_FLIGHT)
	TNT1 A 0 ACS_NamedExecuteAlways("BDLeaveTank")
	PLA1 J 100
	Goto Stay

	FinishExit:
	TNT1 A 0 A_TakeInventory("PressedUse", 1)
	TNT1 AAA 10 A_TakeInventory("PressedUse", 1)
	TNT1 A 0 A_TakeInventory("PressedUse", 1)
	Goto Stay
	
		
		
	TurnLeft:
		TNT1 A 0
		TNK1 T 1 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stay")
		TNT1 A 0 A_PlaySound("TANK1", 5, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("TnkTreadsDamage" , 100, 0, 0, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE | SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("TnkStep", 0, 0, 8, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection > 359, "TurnLeft2")
		TNT1 A 0 A_SetUserVar("user_Tankbasedirection", user_tankbasedirection+2)
		TNT1 A 0 A_SetAngle(angle+2)
		
		
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection > 359, "TurnLeft2")
		TNT1 A 0 A_SetUserVar("user_Tankbasedirection", user_tankbasedirection+2)
		TNT1 A 0 A_SetAngle(angle+2)
		TNT1 A 0 A_TakeInventory("TurnRight", 1)
		TNT1 A 0 A_TakeInventory("TurnLeft", 1)
		
		
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame3" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection > 359, "TurnLeft2")
		TNT1 A 0 A_SetUserVar("user_Tankbasedirection", user_tankbasedirection+2)
		TNT1 A 0 A_SetAngle(angle+2)
		
		Goto CheckIfStillMoves
	
	TurnLeft2:
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", 0)
		TNT1 A 0 A_JumpIfInventory("Accelerate", 1, "TurnLeftAccel")
		Goto TurnLeft
		
		
	TurnLeftAccel:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TurnLeft", 1)
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection > 359, "TurnLeft2")

		TNT1 A 0 A_SetUserVar("user_tankbasedirection", user_tankbasedirection+2)
		TNT1 A 0 A_SetAngle(angle+2)
		
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame3" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		TNT1 A 0 A_PlaySound("TANK1", 5, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("TnkTreadsDamage" , 100, 0, 0, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE | SXF_ABSOLUTEVELOCITY)
		
		TNT1 A 0 A_SpawnItemEx("TnkStep", 0, 0, 8, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE)
		TNK1 T 1 
		//TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", user_tankbasedirection+2)
		TNT1 A 0 A_SetAngle(angle+2)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		TNK1 T 1 
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", user_tankbasedirection+2)
		TNT1 A 0 A_SetAngle(angle+2)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		TNT1 A 0 A_JumpIF(velz < 0, "Falling")
		
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnLeftAccel")
		TNT1 A 0 A_TakeInventory("TurnRight", 1)
		TNT1 A 0 A_TakeInventory("TurnLeft", 1)
		
		Goto CheckIfStillMoves	
		
	TurnRight:
		TNT1 A 0
		TNK1 T 1 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stay")
		TNT1 A 0 A_PlaySound("TANK1", 5, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("TnkTreadsDamage" , 100, 0, 0, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE | SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("TnkStep", 0, 0, 8, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE)
		
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection == 0, "TurnRIght2")
		TNT1 A 0 A_SetUserVar("user_Tankbasedirection", user_tankbasedirection-2)
		TNT1 A 0 A_SetAngle(angle-2)

		
		
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection == 0, "TurnRIght2")
		TNT1 A 0 A_SetUserVar("user_Tankbasedirection", user_tankbasedirection-2)
		TNT1 A 0 A_SetAngle(angle-2)
		TNT1 A 0 A_TakeInventory("TurnLeft", 1)
		TNT1 A 0 A_TakeInventory("TurnRight", 1)
		
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame3" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection == 0, "TurnRIght2")
		TNT1 A 0 A_SetUserVar("user_Tankbasedirection", user_tankbasedirection-2)
		TNT1 A 0 A_SetAngle(angle-2)
		
		Goto CheckIfStillMoves
	
	TurnRight2:
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", 360)
		TNT1 A 0 A_JumpIfInventory("Accelerate", 1, "TurnRightAccel")
		Goto TurnRight	
		
	
	TurnRightAccel:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TurnRight", 1)
		TNK1 T 0 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIf(user_tankbasedirection == 0, "TurnRIght2")
		
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", user_tankbasedirection-2)
		TNT1 A 0 A_SetAngle(angle-2)
		
		
		TNT1 A 0 A_PlaySound("TANK1", 5, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("TnkTreadsDamage" , 100, 0, 0, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE | SXF_ABSOLUTEVELOCITY)
		
		TNT1 A 0 A_SpawnItemEx("TnkStep", 0, 0, 8, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE)
		TNK1 T 1 
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame3" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", user_tankbasedirection-2)
		TNT1 A 0 A_SetAngle(angle-2)
		TNK1 T 1 
		//TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		TNT1 A 0 A_SetUserVar("user_tankbasedirection", user_tankbasedirection-2)
		TNT1 A 0 A_SetAngle(angle-2)
		TNK1 T 1 
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIF(velz < 0, "Falling")
		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnRightAccel")
		TNT1 A 0 A_TakeInventory("TurnLeft", 1)
		TNT1 A 0 A_TakeInventory("TurnRight", 1)
		Goto CheckIfStillMoves
	
	CheckIfStillMoves:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "ExitVehicle")
		TNT1 A 0 A_JumpIfInventory("Accelerate", 1, "Accelerate")
		TNT1 A 0 A_JumpIfInventory("BackPedal", 1, "BackPedal")
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnLeft")
		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnRight")
		TNT1 A 0 A_StopSound(2)
		TNT1 A 0 A_PlaySound("TANK2", 5, 1, 1)
		TNT1 A 0 A_PlaySound("TANK3", 2)
		
	Stay:
	    TNT1 A 0
		TNT1 A 0 
		
		TNT1 A 0 A_PlaySound("TANK2", 5, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "ExitVehicle")
		TNT1 A 0 A_JumpIfInventory("BackPedal", 1, "BackPedal")
		TNT1 A 0 A_JumpIfInventory("Accelerate", 1, "Accelerate")
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnLeft")
		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnRight")
		TNK1 T 1 
		TNT1 A 0 A_JumpIF(velz < 0, "Falling")
		Goto Stay
		
	
	Pain.TracksDamaged:
	    TNT1 A 0
		TNT1 A 0 
		
		TNT1 A 0 A_Jump(32, "DestroyTracks")
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "ExitVehicle")
		TNT1 A 0 A_JumpIfInventory("BackPedal", 1, "BackPedal")
		TNT1 A 0 A_JumpIfInventory("Accelerate", 1, "Accelerate")
		TNK1 T 1 
		Goto Stay
		
		
	
	Accelerate:
		
		TNT1 A 0 A_PlaySound("TANK1", 5, 1, 1)
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnLeftAccel")
		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnRightAccel")
		TNT1 A 0 A_SpawnItemEx ("TnkTreadsDamage" , 100, 0, 0, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE | SXF_ABSOLUTEVELOCITY)
		
		TNK1 T 1 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stay")
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "ExitVehicle")
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame3" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		
		TNT1 A 0 A_SpawnItemEx("TnkStep", 0, 0, 8, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE)
		TNK1 T 1 
		//TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnLeftAccel")
		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnRightAccel")
		
		TNK1 T 1 
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIF(velz < 0, "Falling")
		Goto CheckIfStillMoves
		
		
	Backpedal:
		
		
		TNT1 A 0 A_PlaySound("TANK1", 5, 1, 1)
		TNT1 A 0 A_SpawnItemEx("TnkStep", 0, 0, 8, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_SpawnItemEx ("TnkTreadsDamage" , -100, 0, 0, 0, 0, 0, user_tankbasedirection, SXF_ABSOLUTEANGLE | SXF_ABSOLUTEVELOCITY)
		
		TNK1 T 1 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stay")
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360+128, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame3" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		
		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnLeft")
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnRight")
		
		TNK1 T 1 
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "ExitVehicle")
		TNT1 A 0 //ThrustThing(user_tankbasedirection*256/360+128, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame2" , 0, 0, 0, momx, momy, momz, user_Tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)

		TNT1 A 0 A_JumpIfInventory("TurnRight", 1, "TurnLeft")
		TNT1 A 0 A_JumpIfInventory("TurnLeft", 1, "TurnRight")
		
		TNK1 T 1 
		TNT1 A 0 ThrustThing(user_tankbasedirection*256/360+128, 1, 1)
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIF(velz < 0, "Falling")
		Goto CheckIfStillMoves
		
		
	Falling:
		TNT1 A 0
		TNT1 A 0 A_CheckFloor("CheckIfStillMoves")
	
	FallingForReal:
		TNT1 A 0
		TNK1 T 1 
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "ExitVehicle")
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_JumpIF(velz == 0, "CrashIntoGround")
		TNT1 A 0 A_GiveInventory("VehicleFallingCount", 1)
		Loop
		
	CrashIntoGround:
		TNT1 A 0
		TNT1 A 0 A_JumpIfinventory("VehicleFallingCount", 6, "CrashIntoGroundViolently")
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_SpawnItem("CrashTankIntotheGround1")
		TNT1 A 0 A_SpawnItem("CrashTankIntotheGround2")
		TNT1 A 0 A_SpawnItemEx ("LargeMassWaterImpact", 0, 0, -10)
		TNT1 A 0 Radius_Quake(1, 6, 0, 4, 0)
		TNT1 A 0 A_PlaySound("EBIKEBNC", 2)
		TNT1 A 0 A_TakeInventory("VehicleFallingCount", 100)
		Goto Stay
		
	CrashIntoGroundViolently:
		TNT1 A 0
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_SpawnItem("CrashTankIntotheGround1")
		TNT1 A 0 A_SpawnItem("CrashTankIntotheGround2")
		
		TNT1 A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -10)
		
		TNT1 A 0 Radius_Quake(8, 24, 0, 4, 0)
		TNT1 A 0 A_PlaySound("BIKECLW", 1)
		TNT1 A 0 A_PlaySound("EBIKECLS", 2)
		TNT1 AAAA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_TakeInventory("VehicleFallingCount", 100)
		TNT1 A 0 A_SetPitch(-8.0 + pitch)
		TNK1 T 1 
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_SetPitch(4.0 + pitch)
		TNK1 T 1
		TNT1 A 0 A_SpawnItemEx ("PattonBaseFrame1" , 0, 0, 0, momx, momy, momz, user_tankbasedirection, SXF_ABSOLUTEVELOCITY | SXF_ABSOLUTEANGLE)
		TNT1 A 0 A_SetPitch(4.0 + pitch)
		Goto Stay	
		
		
		
	Death:	
	XDeath:
    TNT1 A 1
	TNT1 A 0 A_SpawnItem("BigExplosion1112")
	TNT1 A 0 A_PlaySound("weapons/explode")
	TNT1 A 0 A_PlaySound("EXPLOSIO", 3)
	TNT1 A 0 A_Scream
	TNT1 A 0 A_NoBlocking
	NULL AAAAAA 0 A_CustomMissile ("MetalShard1", 96, 0, random (0, 360), 2, random (0, 180))
	NULL AAAAAA 0 A_CustomMissile ("MetalShard2", 96, 0, random (0, 360), 2, random (0, 180))
	NULL AAAAAAAAA 0 A_CustomMissile ("GlassShard", 96, 0, random (0, 360), 2, random (0, 360))
	ELEC A 0 A_Explode(100, 250)
	TNT1 A 0 A_SpawnItem("DestroyedArmouredVehicle")
	8762 A 5
	TNT1 A 0 A_TakeInventory("PattonGun", 1)
	TNT1 A 0 A_TakeInventory("IsInATank", 1)
	8762 A 100
	8762 A -1
	Stop
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Vehicle's weapons and misc
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


ACTOR PattonGun : DoomWeapon
{
	Game Doom
	Weapon.SelectionOrder 1900
	Weapon.AmmoUse1 0
	Weapon.AmmoGive1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive2 0
	Weapon.AmmoType2 "TankAmmo"
	Weapon.AmmoType1 "HeavyMachinegunAmmo"
	Obituary "$OB_MPPISTOL"
	+WEAPON.AMMO_OPTIONAL
	+WEAPON.ALT_AMMO_OPTIONAL
	+WEAPON.NOAUTOAIM
	//+WEAPON.NOAUTOFIRE
	Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"
	Tag "$TAG_PISTOL"
	States
	{
	
	
	Ready:
		TNT1 A 0
		//TNT1 A 0 A_PlaySound("TNKENGS", 4)
		//TNHD W 10
		//TNT1 A 0 A_PlaySound("INFRARED", 1)
		//TNHD XYZXYZXYZXYZXYZXYZXYZ 1 BRIGHT
		TNT1 A 0 A_ZoomFactor(6.0)
		TNT1 A 0 ACS_NamedExecuteAlways("BDStartCamera", 0, 0, 0, 0)//Start third person camera
		TNT1 A 0 A_GiveInventory("TankReady", 100)
		TNT1 A 0 A_TakeInventory("PressedUse", 1)
		TNT1 A 0 A_TakeInventory("PressedJump", 2)
		TNHD Y 0 A_TakeInventory("PressedJump", 2)
		TNHD A 1 A_GunFlash
		Goto ReadyToFire
		
	ReadyToFire:
	    TNT1 A 0
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("SwitchFlashlight",1,"SwitchFlashlight")
		
		TNHD A 1 A_WeaponReady(1)
		TNT1 A 0 A_GiveInventory("TankReady", 1)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck2")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck2")
		Loop
		
		
	NotReady:
		TNHD A 1 A_GiveInventory("TankReady", 1)
		Goto ReadyToFire
		
		
	NotReadyZoom:
		TNT1 A 1 A_GiveInventory("TankReady", 1)
		Goto ReadyToFire	
			

	
	Deselect:
		TNHD Z 1 A_Lower
		TNHD Z 1 A_Lower
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 SetPlayerProperty(0,0,4)
		Loop
		
	Select:
		TNT1 A 0
		TNHD z 1 A_Raise
		TNHD zzzzzzzzzzzzzzzzzzzzzz 0 A_Raise
		TNHD z 1 A_Raise
		Goto Ready
	
	Flash:
		TNT1 A 0
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("TankReady", 99, 1)
		Goto Flashreloading
		TNHD J 1 BRIGHT
		TNT1 A 0 A_JumpIfHealthLower(2, "EmergencyExit")
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "LightEnd")
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck1")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck1")
		TNHD J 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "LightEnd")
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck1")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck1")
		
		TNHD J 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "LightEnd")
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck1")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck1")
		Goto Flash
		
	FLashReloading:
		TNHD I 1 BRIGHT
		TNT1 A 0 A_JumpIfHealthLower(2, "EmergencyExit")
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "LightEnd")
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck1")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck1")
		TNHD I 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "LightEnd")
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck1")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck1")
		TNHD I 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "LightEnd")
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		NULL A 0 A_JumpIf (pitch > 220, "TooHighCheck1")
		NULL A 0 A_JumpIf (pitch > 16, "TooLowCheck1")
		TNT1 A 0 A_JumpIfInventory("TankReady", 99, "Flash")
		Goto Flashreloading
		
	EmergencyExit:
		TNT1 A 0 
		TNT1 A 0 A_PlaySound("CARSTE", 1)
		TNT1 A 0 A_GiveInventory("PressedUse")

		TNT1 A 5
		Goto LightEnd
		
	Fire:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("TankReady", 99, 1)
		Goto NotReady
		TNT1 A 0 A_TakeInventory("TankReady", 200, 1)
		TNT1 A 0 A_PlaySound("TANKF", 1)
		TNT1 A 0 A_TakeInventory("TankAmmo", 1)
		
		MISG A 0 A_FireCustomMissile("TankShell", 0, 1, 0, -24)
		MISG A 0 A_FireCustomMissile("TankFireEffect", 0, 1, 0, -24)
		TNHD B 2 BRIGHT
		TNT1 A 0 BRIGHT A_SetPitch(pitch - 8.0)
		TNHD C 1
		TNHD DE 1 A_SetPitch(pitch + 2.0)
		TNHD AA 1 A_SetPitch(pitch + 2.0)
		TNT1 A 0 A_GiveInventory("FiredTankMainGun", 1)
		TNT1 A 0 A_GiveInventory("TankReady", 5)
		TNT1 A 0 A_PlaySound("TANKRE", 3)
		TNHD A 2
		Goto ReadyToFire
		
	
	NoAmmo:
		TNT1 A 2
		Goto ReadyToFire 
		
	AltFire:
		TNT1 A 0 A_JumpIfInventory("HeavyMachinegunAmmo", 1, 1)
		Goto NoAmmo
		
		
		TNT1 A 0 A_PlaySound("HMGFIRE", 1)
		TNT1 A 0 A_PlaySound("FARHMG", 4)
		TNT1 A 0 A_FireCustomMissile("HeavyMachinegunProjectile", 0, 0, 7, -15, 0, 0)
		TNT1 A 0 A_FireCustomMissile("HeavyMachinegunFlash", 0, 0, 7, -15)
		TNT1 A 0 A_TakeInventory("HeavyMachinegunAmmo", 1)
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		TNHD F 1 BRIGHT
		TNT1 A 0 A_GiveInventory("TankReady", 1)
		TNHD A 1 A_GiveInventory("TankReady", 1)
		MISG A 0 A_FireCustomMissile("TankAim", 0, 0, 0, 0)
		TNHD AA 1 A_GiveInventory("TankReady", 1)
		TNT1 A 0 A_ReFire
		Goto ReadyToFire
		
			
	TooHigh2:
		TNT1 A 0 A_SetPitch(326)
		Goto ReadyToFire
		
	
	TooLowCheck2:
		//NULL A 0 A_JumpIf (pitch > 180, "TooHighCheck1")
		TNT1 A 0 A_SetPitch(16)
		Goto ReadyToFire
		
		
	TooHighCheck2:
		TNT1 A 0
		NULL A 0 A_JumpIf (pitch < 325, "TooHigh2")
		Goto ReadyToFire
	
	
	
	TooHigh:
		TNT1 A 0 A_SetPitch(326)
		Goto Flash
		
	
	TooLowCheck1:
		//NULL A 0 A_JumpIf (pitch > 180, "TooHighCheck1")
		TNT1 A 0 A_SetPitch(16)
		Goto Flash
		
	TooHighCheck1:
		TNT1 A 0
		NULL A 0 A_JumpIf (pitch < 325, "TooHigh")
		Goto Flash
	
	
	
		
		
		
	SwitchFlashlight:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("SwitchFlashlight", 1)
		TNT1 A 0 A_JumpIfInventory("FlashlightOn",1,"TurnFlashOff")
		TNT1 A 0 A_Giveinventory("FlashlightOn",1)
		TNT1 A 0 A_giveinventory("PowerLightAmp", 1)
		TNT1 A 0 A_PlaySound("INFRARED", 1)
		TNT1 A 0 A_PlaySound("FLASHON", 2)
		
        Goto ReadyToFire
	TurnFlashOff:
		TNT1 A 0 A_Takeinventory("FlashlightOn",1)
		TNT1 A 0 A_TakEinventory("PowerLightAmp", 1)
		TNT1 A 0 A_PlaySound("FLASHOFF", 2)
        Goto ReadyToFire
	
	LightEnd:
		TNT1 A 1
		TNT1 A 0 A_Takeinventory("PowerLightAmp", 1)
		Stop
		
	Spawn:
		LAUN A -1
		Stop
		
	}
}
