MINV:
	Tooltip:
		Name: meta-mine-name
		RequiresCondition: !floating
	Tooltip@SEA:
		Name: meta-seamine-name
		RequiresCondition: floating
	WithSpriteBody:
		Sequence: idle
		PauseOnCondition: floating
	WithSpriteBody@SEA:
		Name: body2
		Sequence: idle2
		RequiresCondition: floating
	GrantConditionOnTerrain@SEA:
		TerrainTypes: Water
		Condition: floating
	Cloak:
		CloakSound:
		UncloakSound:
		CloakStyle: None
		DetectionTypes: Mine
		InitialDelay: 0
		RequiresCondition: !floating
	Cloak@SEA:
		CloakSound:
		UncloakSound:
		CloakStyle: None
		DetectionTypes: Mine, Underwater
		InitialDelay: 0
		PauseOnCondition: pinged
		RequiresCondition: floating
	Targetable:
		TargetTypes: GroundActor, Mine
		RequiresCondition: !floating
	Targetable@SEA:
		TargetTypes: WaterActor, Mine
		RequiresCondition: floating
	ExternalCondition@SONARPING:
		Condition: pinged
		SourceCap: 1
		TotalCap: 1

CRATE:
	-GiveUnitCrateAction@ss2:
	GiveUnitCrateAction@apc:
		SelectionShares: 6
		Units: apc
		ValidFactions: allies, england, france, germany, soviet, russia, ukraine
		Prerequisites: techlevel.low
	GiveUnitCrateAction@arty:
		SelectionShares: 5
		Units: arty
		ValidFactions: allies, england, germany
		Prerequisites: techlevel.medium, dome
	GiveUnitCrateAction@artyr1:
		SelectionShares: 5
		Units: arty.france
		ValidFactions: france
		Prerequisites: techlevel.medium, dome
	GiveUnitCrateAction@2tnk:
		SelectionShares: 4
		Units: 2tnk
		ValidFactions: allies, england, france
		Prerequisites: techlevel.medium, fix
	GiveUnitCrateAction@2tnkr1:
		SelectionShares: 4
		Units: 2tnk.germany
		ValidFactions: germany
		Prerequisites: techlevel.medium, fix
	GiveUnitCrateAction@3tnk:
		SelectionShares: 4
		Units: 3tnk
		ValidFactions: soviet, ukraine
		Prerequisites: techlevel.medium, fix
	GiveUnitCrateAction@3tnkr1:
		SelectionShares: 4
		Units: 3tnk.russia
		ValidFactions: russia
		Prerequisites: techlevel.medium, fix
	GiveUnitCrateAction@4tnk:
		SelectionShares: 2
		Units: 4tnk
		ValidFactions: soviet, russia, ukraine
		Prerequisites: techlevel.high, fix, stek
	GiveUnitCrateAction@pt:
		SelectionShares: 6
		Units: pt
		ValidFactions: allies, france, germany
		Prerequisites: techlevel.low
	GiveUnitCrateAction@ptr1:
		SelectionShares: 6
		Units: pt.england
		ValidFactions: england
		Prerequisites: techlevel.low
	GiveUnitCrateAction@ss:
		SelectionShares: 4
		Units: ss
		ValidFactions: soviet, russia
		Prerequisites: techlevel.low
	GiveUnitCrateAction@ssr1:
		SelectionShares: 4
		Units: ss.ukraine
		ValidFactions: ukraine
		Prerequisites: techlevel.low
	GiveUnitCrateAction@dd:
		SelectionShares: 4
		Units: dd
		ValidFactions: allies, france, germany
		Prerequisites: techlevel.medium, dome
	GiveUnitCrateAction@ddr1:
		SelectionShares: 4
		Units: dd.england
		ValidFactions: england
		Prerequisites: techlevel.medium, dome
	GiveUnitCrateAction@msub:
		SelectionShares: 4
		Units: msub
		ValidFactions: soviet, russia
		Prerequisites: techlevel.medium, dome
	GiveUnitCrateAction@msubr1:
		SelectionShares: 4
		Units: msub.ukraine
		ValidFactions: ukraine
		Prerequisites: techlevel.medium, dome
	GiveUnitCrateAction@ca:
		SelectionShares: 3
		Units: ca
		ValidFactions: allies, england, germany
		Prerequisites: techlevel.high, atek
	GiveUnitCrateAction@car1:
		SelectionShares: 3
		Units: ca.france
		ValidFactions: france
		Prerequisites: techlevel.high, atek
	GiveUnitCrateAction@dred:
		SelectionShares: 3
		Units: dred
		ValidFactions: soviet, russia, ukraine, belarus, kazakh, china, unholy
		Prerequisites: techlevel.high, stek
	GiveUnitCrateAction@seas:
		SelectionShares: 6
		Units: seas
		ValidFactions: soviet, russia, ukraine
		Prerequisites: techlevel.low
	ExplodeCrateAction@nuke:
		Weapon: CrateNuke
		SelectionShares: 1

camera.spyplane:
	DetectCloaked:
		DetectionTypes: Cloak, Mine
		Range: 10c0

SONAR2:
	Inherits: ^SpriteActor
	RenderSprites:
		Image: empty
	Interactable:
		Bounds: 1024, 1024
	WithSpriteBody:
	AlwaysVisible:
	Health:
		HP: 1
		NotifyAppliedDamage: false
	Armor:
		Type: None
	Tooltip:
		Name: You should not be seeing this
	Targetable:
		TargetTypes: Water
	HitShape:
	KillsSelf:
	Immobile:
		OccupiesSpace: false
	FireWarheadsOnDeath:
		Weapon: DetectionPing
		EmptyWeapon: DetectionPing

infantry.upgraded:
	AlwaysVisible:
	ProvidesPrerequisite:

vehicles.upgraded:
	AlwaysVisible:
	ProvidesPrerequisite:

aircraft.upgraded:
	AlwaysVisible:
	ProvidesPrerequisite:

fact.colorpicker:
	Inherits: FACT
	RenderSprites:
		Image: fact
		FactionImages:
			allies: fact
			england: fact
			france: fact
			germany: fact
			soviet: fact
			russia: fact
			ukraine: fact
		Palette: colorpicker

gpssactivator:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-gpssactivator-name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	Health:
		HP: 1
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	SpawnActorOnDeath:
		Actor: gpss
		SpawnAfterDefeat: False
		RequiresCondition: !gpss-enabled
	GrantConditionOnPrerequisite@enabling:
		Prerequisites: gpss
		Condition: gpss-enabled
	KillsSelf:
	Buildable:
		Queue: SupportPower
		Prerequisites: ~disabled
	Tooltip:
		Name: actor-gpssactivator-description

gpss:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-gpss-name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	ProvidesPrerequisite:
		Prerequisite: gpss
	Health:
		HP: 3000
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	ProduceActorPower@GPSSactivesign:
		OrderName: GPSSatteliteTimer
		Name: actor-atek.gpspower-name
		Description: actor-atek.gpspower-description
		Icon: gps
		Actors: e1
		Type: Infantry
		ChargeInterval: 3001
		SupportPowerPaletteOrder: 120
		DisplayTimerRelationships: Ally, Neutral, Enemy
		RequiresCondition: gpss-activated
		BeginChargeSpeechNotification: SatelliteLaunched
		BeginChargeTextNotification: GPS Sattelite launched.
        #   EndChargeSpeechNotification: SatelliteTerminated
	GrantConditionOnPrerequisite@gpssactivation:
		Prerequisites: gpss
		Condition: gpss-activated
	GrantConditionOnPrerequisite@satelliteexists:
		Prerequisites: uplink, dome
		Condition: uplinkexists
	KillsSelf:
        #   Delay: 2
		RequiresCondition: !uplinkexists
	ActorLostNotification:
		Notification: SatelliteTerminated
		TextNotification: notification-sattelite-lost
		#   NotifyAll: True

#   this is required to prevent stacking duration issues from 
#   multiple sources of Veterancy infiltrated.
#   the alternative is to complicate the Spy Infilration code with
#   one Infiltrates per production structure.
infveterancyactivator:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-infveterancyactivator.name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	Health:
		HP: 1
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	SpawnActorOnDeath:
		Actor: infantry.upgraded2
		SpawnAfterDefeat: False
		RequiresCondition: !infveterancyenabled
	GrantConditionOnPrerequisite@veterancyenabling:
		Prerequisites: infantry.upgraded
		Condition: infveterancyenabled
	KillsSelf:
	Buildable:
		Queue: Infantry
		Prerequisites: ~disabled
	Tooltip:
		Name: actor-infveterancyactivator.description

infantry.upgraded2:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-infantry-upgraded.name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	ProvidesPrerequisite:
		Prerequisite: infantry.upgraded
	Health:
		HP: 3000
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	ProduceActorPower@veterancyactivesign:
		OrderName: InfantryVeterancy
		Name: actor-infantry-upgraded.produceactorpower-infantryveterancy-name
		Description: actor-infantry-upgraded.produceactorpower-infantryveterancy-description
		Icon: infvet
		Actors: e1
		Type: Infantry
		ChargeInterval: 3001
		SupportPowerPaletteOrder: 120
		DisplayTimerRelationships: Ally, Neutral, Enemy
		RequiresCondition: infveterancyactivated
	GrantConditionOnPrerequisite@veterancyactivation:
		Prerequisites: infantry.upgraded
		Condition: infveterancyactivated

vehveterancyactivator:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-vehveterancyactivator.name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	Health:
		HP: 1
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	SpawnActorOnDeath:
		Actor: vehicles.upgraded2
		SpawnAfterDefeat: False
 		RequiresCondition: !vehveterancyenabled
	GrantConditionOnPrerequisite@veterancyenabling2:
		Prerequisites: vehicles.upgraded
		Condition: vehveterancyenabled
	KillsSelf:
	Buildable:
		Queue: Vehicle
		Prerequisites: ~disabled
	Tooltip:
		Name: actor-vehveterancyactivator.description

vehicles.upgraded2:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-vehicles-upgraded.name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	ProvidesPrerequisite:
		Prerequisite: vehicles.upgraded
	Health:
		HP: 3000
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	ProduceActorPower@veterancyactivesign2:
		OrderName: VehicleVeterancy
		Name: actor-vehicles-upgraded.produceactorpower-vehiclesveterancy-name
		Description: actor-vehicles-upgraded.produceactorpower-vehiclesveterancy-description
		Icon: vehvet
		Actors: jeep
		Type: Vehicle
		ChargeInterval: 3001
		SupportPowerPaletteOrder: 220
		DisplayTimerRelationships: Ally, Neutral, Enemy
		RequiresCondition: vehveterancyactivated
	GrantConditionOnPrerequisite@veterancyactivation2:
		Prerequisites: vehicles.upgraded
		Condition: vehveterancyactivated

airveterancyactivator:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-airveterancyactivator.name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	Health:
		HP: 1
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	SpawnActorOnDeath:
		Actor: aircraft.upgraded2
		SpawnAfterDefeat: False
		RequiresCondition: !airveterancyenabled
	GrantConditionOnPrerequisite@veterancyenabling3:
		Prerequisites: aircraft.upgraded
		Condition: airveterancyenabled
	KillsSelf:
	Buildable:
		Queue: Aircraft
		Prerequisites: ~disabled
	Tooltip:
		Name: actor-airveterancyactivator.description

aircraft.upgraded2:
	Interactable:
	EditorOnlyTooltip:
		Name: actor-aircraft-upgraded.name
	AlwaysVisible:
	Aircraft:
		Repulsable: False
	BodyOrientation:
		QuantizedFacings: 1
	WithSpriteBody:
	RenderSpritesEditorOnly:
		Image: camera
	MapEditorData:
		Categories: System
	ProvidesPrerequisite:
		Prerequisite: aircraft.upgraded
	Health:
		HP: 3000
	HitShape:
	ChangesHealth:
		Step: -1
		StartIfBelow: 101
		Delay: 1
	ProduceActorPower@veterancyactivesign3:
		OrderName: AircraftVeterancy
		Name: actor-aircraft-upgraded.produceactorpower-aircraftveterancy-name
		Description: actor-aircraft-upgraded.produceactorpower-aircraftveterancy-description
		Icon: airvet
		Actors: tran
		Type: Aircraft
		ChargeInterval: 3001
		SupportPowerPaletteOrder: 320
		DisplayTimerRelationships: Ally, Neutral, Enemy
		RequiresCondition: airveterancyactivated
	GrantConditionOnPrerequisite@veterancyactivation3:
		Prerequisites: aircraft.upgraded
		Condition: airveterancyactivated
