actor Tortoise : MechPlayer_Base {
	+USESPECIAL
	Health 3500
	Radius 40
	Height 64
	Player.DisplayName "Titan"
	Player.ForwardMove 0.35
	Player.SideMove 0.15
	Player.MaxHealth 3500
	Player.ViewHeight 48
	Player.AttackZOffset 13
	Player.MorphWeapon "TortoiseWeapons"
	States {
	Spawn:
		ROB2 Q 0
		ROB2 Q 0 SetPlayerProperty (0, 0, 3)
		ROB2 Q 0 ACS_ExecuteAlways (SC_STEALTH, 0, STEALTH_FORCEOFF)
		ROB2 Q 0 ACS_Execute (315, 0)
		ROB2 Q 0 Thing_SetSpecial (0, ACS_ExecuteAlways, 914, 0, tid)
		ROB2 Q 0 A_GiveInventory ("MechEjectButton", 1)
		ROB2 Q 0 A_GiveInventory ("IsMech",1)
		ROB2 Q 35
		ROB2 QQQQ 35 A_PlaySound ("mech/idle", 5, 1.0, 1, ATTN_NONE)
		ROB2 Q 35
		loop
	See:
		ROB2 A 0 SetPlayerProperty(0,0,3)
		ROB2 AB 7 A_JumpIfHealthLower (500,"SeeDamaged")
		ROB2 C 0 A_PlaySound ("mech/idle", 5, 1.0, 1, ATTN_NONE)
		ROB2 Q 0 A_SpawnItemEx ("MechStepSmokePuff", 0, -32, 4)
		ROB2 Q 0 A_SpawnItemEx ("MechStepDamageWeak", 0, -32, 4)
		ROB2 CD 7
		ROB2 Q 0 A_SpawnItemEx ("MechStepSmokePuff", 0, 32, 4)
		ROB2 Q 0 A_SpawnItemEx ("MechStepDamageWeak", 0, 32, 4)
		ROB2 A 0 A_JumpIf (waterlevel >= 1, "Drown")
		Goto Spawn
	SeeDamaged:
		ROB2 C 0 A_PlaySound ("mech/idle", 5, 1.0, 1, ATTN_NONE)
		ROB2 Q 0 A_SpawnItemEx ("MechStepSmokePuff", 0, -32, 4)
		ROB2 Q 0 A_SpawnItemEx ("MechStepDamageWeak", 0, -32, 4)
		ROB2 C 0 A_SpawnItemEx("EjectedMechSmokePuff",random(-32,32),random(-32,32),random(96,128),0,0,3,0,0,0)
		ROB2 CD 7
		ROB2 Q 0 A_SpawnItemEx ("MechStepSmokePuff", 0, 32, 4)
		ROB2 Q 0 A_SpawnItemEx ("MechStepDamageWeak", 0, 32, 4)
		ROB2 A 0 A_SpawnItemEx("EjectedMechSmokePuff",random(-32,32),random(-32,32),random(96,128),0,0,3,0,0,0)
		ROB2 A 0 A_JumpIf (waterlevel >= 1, "Drown")
		Goto Spawn
	Drown:
		TNT1 A 0 Thing_Damage (0, 500, 12)
		goto Spawn
	Death:
		ROB2 A 0 A_StopSound (6)
		TNT1 A 0 A_JumpIfInventory ("IsKamikaze", 1, "Death.IonExplosion")
		TNT1 A 0 A_JumpIfInventory ("IsBombCrate", 1, "Death.BombExplosion")
	DeathGo:
		ROB2 A 10 A_NoBlocking
		ROB2 A 0 A_StopSound (5)
		ROB2 A 0 A_StopSound (CHAN_WEAPON)
		ROB2 A 35 A_SpawnItemEx ("MechExplosionLarge", 0,0,0,0,0,0,0, SXF_NOCHECKPOSITION)
		DISR Z -1 A_SetTranslucent(0,0.0)
		Stop
	Death.IonExplosion:
		ROB2 A 0
		ROB2 A 0 A_JumpIfInventory ("IsBlue", 1, "Death.NukeExplosion")
		ROB2 A 0 A_SpawnItemEx ("BlueStrikeKamikaze", 0, 0, 32)
		goto DeathGo
	Death.NukeExplosion:
		ROB2 A 0
		ROB2 A 0 A_SpawnItemEx ("NukeKamikaze", 0, 0, 32)
		goto DeathGo
	Death.BombExplosion:
		ROB2 A 0
		ROB2 A 0 A_SpawnItemEx("BombExplosion")
		goto DeathGo
	}
}

actor TortoiseUsed : Tortoise {
	Health 1750
}

actor PowerTortoise : AOWMorph {
	PowerMorph.PlayerClass "Tortoise"
}

actor PowerTortoise2 : AOWMorph {
	PowerMorph.PlayerClass "TortoiseUsed"
}

actor TortoiseSwitch : PermanentPowerup {
	Powerup.Type "Tortoise"
}

actor TortoiseSwitch2 : PermanentPowerup {
	Powerup.Type "Tortoise2"
}

actor TortoiseSwitchPickup : CustomInventory {
	+INVENTORY.AUTOACTIVATE
	Inventory.PickupSound "mech/start"
	Translation "112:127=[255,255,255]:[0,0,0]"
	States {
	Spawn:
		ROB2 A -1
		stop
	Pickup:
		ROB2 A 0 ACS_ExecuteWithResult (353, 0)
		stop
	Use:
		RAVN I 0 A_GiveInventory ("TortoiseSwitch2", 1)
		stop
	}
}

actor TortoiseWeapons : AOWWeapon {
	Weapon.SelectionOrder 1
	Weapon.AmmoUse 1
	Weapon.AmmoGive 400
	Weapon.AmmoType "PlasmaRifleAmmo"
	Obituary "$OB_TORTOISE"
	+WEAPON.CHEATNOTWEAPON
	+WEAPON.DONTBOB
	Weapon.PreferredSkin "Tortoise"
	states {
	Ready:
		MHUD A 1 A_WeaponReady
		wait
	Deselect:
		MHUD A 0 A_JumpIfHealthLower(1,1)
		goto Ready
		TNT1 A 1 A_Lower
		wait
	Select:
		MHUD A 0
		MHUD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		MHUD A 1 A_Raise
		wait
	Fire:
		MHUD A 0 A_GunFlash
		MHUD A 0 A_PlaySound ("Weapons/PlasmaShot", CHAN_WEAPON)
		MHUD A 0 A_JumpIfInventory ("IsBlue", 1, "FireBlue")
		MHUD A 0 A_FireCustomMissile ("TortoisePlasmaShotRed", 0, 1, -16, 0)
		MHUD B 3 Bright
		MHUD B 1 A_Refire
		Goto Ready
	FireBlue:
		MHUD B 0 A_FireCustomMissile ("TortoisePlasmaShotBlue", 0, 1, -16, 0)
		MHUD B 3 Bright
		MHUD B 1 A_Refire
		Goto Ready
	Flash:
		TNT1 A 2 Bright A_Light2
		TNT1 A 1 Bright A_Light1
		TNT1 A 0 Bright A_Light0
		stop
	Spawn:
		TNT1 A 0
		stop
	}
}

actor TortoisePlasmaShotBlue : PlasmaShotBlue {
	Obituary "$OB_TORTOISE"
}

actor TortoisePlasmaShotRed : PlasmaShotRed {
	Obituary "$OB_TORTOISE"
}

actor TortoiseAmmoPackage : CustomInventory {
	+AUTOACTIVATE
	inventory.maxamount 0
	states {
	Pickup:
		TNT1 A 0 A_GiveInventory ("PlasmaRifleAmmo", 600)
		stop
	}
}

actor MakePassenger : CustomInventory {
	+AUTOACTIVATE
	+ALWAYSPICKUP
	Inventory.MaxAmount 0
	States {
	Pickup:
		TNT1 A 0 A_UnsetSolid
		TNT1 A 0 A_UnsetShootable
		TNT1 A 0 Thing_Stop (0)
		TNT1 A 0 A_SetTranslucent (0.0, 0)
		stop
	}
}

actor UnmakePassenger : MakePassenger {
	States {
	Pickup:
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_SetTranslucent (1.0, 0)
		stop
	}
}

actor IsPassenger : Inventory {
	Inventory.MaxAmount 0x7FFFFFFF
}

actor TortoiseEjectSpaceCheck {
	+SOLID
	+SERVERSIDEONLY
	Radius 31
	Height 64
}

actor TortoiseEjectSpaceCheck2 : TortoiseEjectSpaceCheck {
	+THRUACTORS
	Radius 80
}

actor EjectedTortoise {
	Translation "112:127=[255,255,255]:[0,0,0]"
	States {
	Spawn:
		ROB2 AAAA 35
		ROB2 A 0 A_SpawnItemEx ("TortoiseSwitchPickup")
		stop
	}
}