// TERMINALS
actor BaseTerminal {
	+FULLVOLACTIVE
	-SOLID
	+SHOOTABLE
	+NOBLOOD
	+DONTGIB
	+NOICEDEATH
	+QUICKTORETALIATE
	+NEVERRESPAWN
	+GHOST
	//$Category Buildings
	Radius 16
	Height 120
	Mass 0x7FFFFFFF
	Speed 100 // [Dusk] used for base hud health percentages! DON'T TOUCH IT
	Damagetype "Explosion"
	Obituary "%o was killed with a building."
	DeathSound "grenade/explode"
	DesignatedTeam 1
	PainChance 255

	DamageFactor "Flash",			0.0		// Terminal dont have eyes!
	DamageFactor "Fist",			0.25	// Berserk kind of goes SMACKITY and it goes down in seconds.
	DamageFactor "Knife",			1.0
	DamageFactor "Bullet",			0.8
	DamageFactor "Rifle",			0.8
	DamageFactor "Explosion",		0.75
	DamageFactor "MassDriver",		0.25
	DamageFactor "AntiArmor",		0.25
	DamageFactor "Mine",			0.0
	DamageFactor "Fire",			0.6
	DamageFactor "FireSpecial",		0.6
	DamageFactor "Chemical",		0.8		// Why?
	DamageFactor "ChemicalSpecial",	0.8		// Ditto.
	DamageFactor "Energy",			1.0
	DamageFactor "Plasma",			0.75	// keep explosion damage.
	DamageFactor "EnergyDecay",		0.5
	DamageFactor "Ice",				0.25	// Cooling terminal. :D
	DamageFactor "Time",			1.0
	DamageFactor "Suicide",         1.0		// Needed?
	DamageFactor "Superweapon",		10.0
	DamageFactor "Disarm",			0.0
	DamageFactor "Deconstruction",	0.0
	DamageFactor "Mechstomp",		0.0
	DamageFactor "Monster",			5.0
	
	states {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("IsMCT", 1)
		TNT1 A -1
		loop
	Idle:
		TNT1 A -1
		stop
	SpawnDone:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag ("ISMONSTER",1)
		TNT1 A 0 A_ClearTarget
		TNT1 A -1 A_Stop
		stop
	Pain:
		goto Spawn
	Death:
		TNT1 A 5 A_Scream
		TNT1 A 5 A_Scream
		TNT1 A 0 bright A_PlayWeaponSound("weapons/rocklx")
		TNT1 A 0 A_SpawnItemEx ("TerminalExplosion")
		TNT1 A 0 A_SpawnItemEx("ExplosionMainLarge", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 A 5 A_Scream
		TNT1 A 0 bright A_Scream
		TNT1 A 0 A_SpawnItemEx ("TerminalExplosion")
		TNT1 A 0 bright A_PlayWeaponSound("weapons/rocklx")
		TNT1 A 0 A_SpawnItemEx ("TerminalExplosion")
		TNT1 A 0 A_SpawnItemEx("ExplosionMainLarge", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 A 5 A_Scream
		TNT1 A 5 A_Scream
		TNT1 A 0 bright A_PlayWeaponSound("weapons/rocklx")
		TNT1 A 0 A_SpawnItemEx ("TerminalExplosion")
		TNT1 A 0 A_SpawnItemEx("ExplosionMainLarge", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 A 5 A_Scream
		TNT1 A 5 A_Scream
		TNT1 A 0 bright A_Scream
		TNT1 A 5 
		TNT1 A -1 A_Scream
		stop
	}
}

actor BaseTerminalBlue : BaseTerminal {
	DesignatedTeam 0
}

actor TerminalExplosion {
	PROJECTILE
	Speed 0
	DamageType "Monster"
	states {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Explode (60, 128)
		stop
	}
}

actor BarracksTerminalBlue : BaseTerminalBlue 21100 {
	Tag "Blue Barracks Terminal"
//	Health 18000
	Health 20000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 101)
		TNT1 A 0 Thing_SetSpecial (0, 80, 101, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_BARRACKS, TEAM_BLUE)
		TNT1 A 0 ACS_Execute(97,0,1,1)
		goto Spawn
	}
}

actor RefineryTerminalBlue : BaseTerminalBlue 21102 {
	Tag "Blue Refinery Terminal"
	Health 27000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 103)
		TNT1 A 0 Thing_SetSpecial (0, 80, 102, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0 
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REFINERY, TEAM_BLUE)
		TNT1 A 0 ACS_Execute(97,0,2,1)
		goto Idle
	}
}

actor PowerPlantTerminalBlue : BaseTerminalBlue 21103 {
	Tag "Blue Research Centre Terminal"
//	Health 18000
	Health 20000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 105)
		TNT1 A 0 Thing_SetSpecial (0, 80, 103, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0 
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_RESCENTRE, TEAM_BLUE)
		TNT1 A 0 ACS_Execute(97,0,3,1)
		goto Idle
	}
}

actor WarFactoryTerminalBlue : BaseTerminalBlue 21104 {
	Tag "Blue War Factory Terminal"
	Health 27000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 107)
		TNT1 A 0 Thing_SetSpecial (0, 80, 104, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0 
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_FACTORY, TEAM_BLUE)
		TNT1 A 0 ACS_Execute(97,0,4,1)
		goto Idle
	}
}

actor ObeliskTerminalBlue : BaseTerminalBlue 21111 {
	Tag "Blue Obelisk Terminal"
//	Health 13500
	Health 17500
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 114)
		TNT1 A 0 Thing_SetSpecial (0, 80, 114, 0, 0)
		goto SpawnDone
	Pain.Chemical:
	Pain.Fire:
		goto Pain+1
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_OBELISK, TEAM_BLUE)
		TNT1 A 0 ACS_Execute(97,0,6,1)
		goto Idle
	}
}

actor BarracksTerminalRed : BaseTerminal 21105 {
	Tag "Red Barracks Terminal"
	Health 20000
//	Health 18000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 201)
		TNT1 A 0 Thing_SetSpecial (0, 80, 201, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_BARRACKS, TEAM_RED)
		TNT1 A 0 ACS_Execute(97, 0, 1)
		goto Idle
	}
}

actor RefineryTerminalRed : BaseTerminal 21106 {
	Tag "Red Refinery Terminal"
	Health 27000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 203)
		TNT1 A 0 Thing_SetSpecial (0, 80, 202, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REFINERY, TEAM_RED)
		TNT1 A 0 ACS_Execute (97, 0, 2)
		goto Idle
	}
}

actor PowerPlantTerminalRed : BaseTerminal 21107 {
	Tag "Red Research Centre Terminal"
	Health 20000
//	Health 18000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 205)
		TNT1 A 0 Thing_SetSpecial (0, 80, 203, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_RESCENTRE, TEAM_RED)
		TNT1 A 0 ACS_Execute (97, 0, 3)
		goto Idle
	}
}

actor WarFactoryTerminalRed : BaseTerminal 21108 {
	Tag "Red War Factory Terminal"
	Health 27000
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 207)
		TNT1 A 0 Thing_SetSpecial (0, 80, 204, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_FACTORY, TEAM_RED)
		TNT1 A 0 ACS_Execute(97, 0, 4)
		goto Idle
	}
}

actor ObeliskTerminalRed : BaseTerminal 21112 {
	Tag "Red Obelisk Terminal"
	Health 17500
//	Health 13500
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 214)
		TNT1 A 0 Thing_SetSpecial (0, 80, 214, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_OBELISK, TEAM_RED)
		TNT1 A 0 ACS_Execute(97,0,6,0)
		goto Idle
	}
}

// REPAIR TERMINAL
actor RepairTerminalRed : BaseTerminal 21110 {
	Tag "Red Repair Facility"
	Radius 145
	Height 12
	DeathSound "grenade/explode"
	PainChance 255
	Health 13500
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 209)
		TNT1 A 0 Thing_SetSpecial (0, 80, 205, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REPAIR, TEAM_RED)
		TNT1 A 0 
		goto Idle
	}
}

actor RepairTerminalBlue : BaseTerminalBlue 21109 {
	Tag "Blue Repair Facility"
	Radius 145
	Height 12
	DeathSound "grenade/explode"
	PainChance 255
	Health 13500
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID (0, 109)
		TNT1 A 0 Thing_SetSpecial (0, 80, 105, 0, 0)
		goto SpawnDone
	Pain:
		TNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REPAIR, TEAM_BLUE)
		TNT1 A 0
		goto Idle
	}
}

// 2022/10/04 Xindage - Repair pads that uses MTC
actor RepairTerminalRedMTC : RepairTerminalRed 21114
{
    Tag "Red Repair Facility Terminal"
    Radius 24
    Height 48
}
actor RepairTerminalBlueMTC : RepairTerminalBlue 21113
{
    Tag "Blue Repair Facility Terminal"
    Radius 24
    Height 48
}
