StandardPathMusicGameDynamicState.xml 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AssetDeclaration xmlns="uri:ea.com:eala:asset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3. <!-- This is the Standard PathMusic Dynamic State Set. It features the full range of Transitions that
  4. might occur throughout the course of a game. It is designed to take care of all the music changes by
  5. itself, without needing lots of specifically scripted events. Usually this is used in Multiplayer
  6. maps, but in some cases it may be used on Campaign maps as well. -->
  7. <!-- ******************************************************************************
  8. TOTAL STATE SET
  9. ****************************************************************************** -->
  10. <PathMusicGameDynamicStateSet id="Standard_Full" Category="STANDARD">
  11. <State>BaseBuilding</State>
  12. <State>ThreatLevel1</State>
  13. <State>ThreatLevel1_1</State>
  14. <State>GeneralCombat</State>
  15. <State>DisadvantageCombat</State>
  16. <State>EvenCombat</State>
  17. <State>AdvantageCombat</State>
  18. <State>VacuumBombTragedy</State>
  19. <State>DecimatorTragedy</State>
  20. <State>ParticleBeamTragedy</State>
  21. <State>RedAlert</State>
  22. </PathMusicGameDynamicStateSet>
  23. <!-- ******************************************************************************
  24. STATES
  25. ****************************************************************************** -->
  26. <!-- BaseBuilding : The initial State before anything has happened yet. -->
  27. <PathMusicGameDynamicState id="BaseBuilding" EnterEvent="Base">
  28. <Transition>BaseBuilding_to_ThreatLevel1</Transition>
  29. <Transition>BaseBuilding_to_GeneralCombat</Transition>
  30. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  31. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  32. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  33. <Transition>Anywhere_to_RedAlert</Transition>
  34. </PathMusicGameDynamicState>
  35. <!-- ThreatLevel1 : Indicates first contact, a very minor skirmish -->
  36. <PathMusicGameDynamicState id="ThreatLevel1" EnterEvent="Threat1">
  37. <Transition>ThreatLevel1_to_GeneralCombat</Transition>
  38. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  39. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  40. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  41. <Transition>Anywhere_to_RedAlert</Transition>
  42. </PathMusicGameDynamicState>
  43. <!-- ThreatLevel1_1 : Basically the same as ThreatLevel1, except that it lacks the punchy intro.
  44. This is what you fall back to when serious combat has ended -->
  45. <PathMusicGameDynamicState id="ThreatLevel1_1" EnterEvent="Threat1_1">
  46. <Transition>ThreatLevel1_1_to_GeneralCombat</Transition>
  47. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  48. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  49. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  50. <Transition>Anywhere_to_RedAlert</Transition>
  51. </PathMusicGameDynamicState>
  52. <!-- GeneralCombat : This is the gateway state for combat, you always enter through here. This requires
  53. that a significant amount of fighting is going on to trigger. It has a particularly notable intro as
  54. well -->
  55. <PathMusicGameDynamicState id="GeneralCombat" EnterEvent="Combat">
  56. <Transition>GeneralCombat_to_ThreatLevel1_1</Transition>
  57. <Transition>GeneralCombat_to_AdvantageCombat</Transition>
  58. <Transition>GeneralCombat_to_DisadvantageCombat</Transition>
  59. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  60. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  61. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  62. <Transition>Anywhere_to_RedAlert</Transition>
  63. </PathMusicGameDynamicState>
  64. <!-- AdvantageCombat : This implies that you have a clear advantage, and are about to win. It is
  65. particularly epic, so not something we want to play for minor victories -->
  66. <PathMusicGameDynamicState id="AdvantageCombat" EnterEvent="SetAdvantagePlayer">
  67. <Transition>AdvantageCombat_to_ThreatLevel1_1</Transition>
  68. <Transition>AdvantageCombat_to_EvenCombat</Transition>
  69. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  70. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  71. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  72. <Transition>Anywhere_to_RedAlert</Transition>
  73. </PathMusicGameDynamicState>
  74. <!-- DisadvantageCombat : You are in the midst of Combat, and are generally losing. Sad music. -->
  75. <PathMusicGameDynamicState id="DisadvantageCombat" EnterEvent="SetAdvantageEnemy">
  76. <Transition>DisadvantageCombat_to_ThreatLevel1_1</Transition>
  77. <Transition>DisadvantageCombat_to_EvenCombat</Transition>
  78. <Transition>DisadvantageCombat_to_AdvantageCombat</Transition>
  79. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  80. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  81. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  82. <Transition>Anywhere_to_RedAlert</Transition>
  83. </PathMusicGameDynamicState>
  84. <!-- EvenCombat : You are in the midst of combat, and are doing OK. Similar to GeneralCombat, but
  85. without qutie so much intro -->
  86. <PathMusicGameDynamicState id="EvenCombat" EnterEvent="ResetAdvantage">
  87. <Transition>EvenCombat_to_AdvantageCombat</Transition>
  88. <Transition>EvenCombat_to_DisadvantageCombat</Transition>
  89. <Transition>EvenCombat_to_ThreatLevel1_1</Transition>
  90. <Transition>Anywhere_to_VacuumBombTragedy</Transition>
  91. <Transition>Anywhere_to_DecimatorTragedy</Transition>
  92. <Transition>Anywhere_to_ParticleBeamTragedy</Transition>
  93. <Transition>Anywhere_to_RedAlert</Transition>
  94. </PathMusicGameDynamicState>
  95. <!-- VacuumBombTragedy : A group of your units have just been hit by the Soviet Super Weapon. Up yours! -->
  96. <PathMusicGameDynamicState id="VacuumBombTragedy" EnterEvent="UpYoursSoviet">
  97. <Transition>VacuumBombTragedy_to_ThreatLevel1_1</Transition>
  98. <Transition>Anywhere_to_RedAlert</Transition>
  99. </PathMusicGameDynamicState>
  100. <!-- DecimatorTragedy : A group of your units have just been hit by the Japanese Super Weapon. Up yours! -->
  101. <PathMusicGameDynamicState id="DecimatorTragedy" EnterEvent="UpYoursEmpire">
  102. <Transition>DecimatorTragedy_to_ThreatLevel1_1</Transition>
  103. <Transition>Anywhere_to_RedAlert</Transition>
  104. </PathMusicGameDynamicState>
  105. <!-- ParticleBeamTragedy : A group of your units have just been hit by the Allied Super Weapon. Up yours! -->
  106. <PathMusicGameDynamicState id="ParticleBeamTragedy" EnterEvent="UpYoursAllied">
  107. <Transition>ParticleBeamTragedy_to_ThreatLevel1_1</Transition>
  108. <Transition>Anywhere_to_RedAlert</Transition>
  109. </PathMusicGameDynamicState>
  110. <!-- RedAlert : The Player has hit the Red Alert button, panicky state. -->
  111. <PathMusicGameDynamicState id="RedAlert" EnterEvent="RedAlert">
  112. <Transition>RedAlert_to_ThreatLevel1_1</Transition>
  113. </PathMusicGameDynamicState>
  114. <!-- ******************************************************************************
  115. TRANSITIONS
  116. ****************************************************************************** -->
  117. <PathMusicGameDynamicTransition id="BaseBuilding_to_ThreatLevel1" DestinationState="ThreatLevel1">
  118. <Condition>SkirmishSmall</Condition>
  119. </PathMusicGameDynamicTransition>
  120. <PathMusicGameDynamicTransition id="BaseBuilding_to_GeneralCombat" DestinationState="GeneralCombat">
  121. <Condition>SkirmishMediumOnScreen</Condition>
  122. </PathMusicGameDynamicTransition>
  123. <PathMusicGameDynamicTransition id="ThreatLevel1_to_GeneralCombat" DestinationState="GeneralCombat">
  124. <Condition>ThreatLevel1_to_GeneralCombat_Allowed</Condition>
  125. </PathMusicGameDynamicTransition>
  126. <PathMusicGameDynamicTransition id="ThreatLevel1_1_to_GeneralCombat" DestinationState="GeneralCombat">
  127. <Condition>ThreatLevel1_1_to_GeneralCombat_Allowed</Condition>
  128. </PathMusicGameDynamicTransition>
  129. <PathMusicGameDynamicTransition id="GeneralCombat_to_AdvantageCombat" DestinationState="AdvantageCombat">
  130. <Condition>GeneralCombat_to_AdvantageCombat_Allowed</Condition>
  131. </PathMusicGameDynamicTransition>
  132. <PathMusicGameDynamicTransition id="GeneralCombat_to_DisadvantageCombat" DestinationState="DisadvantageCombat">
  133. <Condition>GeneralCombat_to_DisadvantageCombat_Allowed</Condition>
  134. </PathMusicGameDynamicTransition>
  135. <PathMusicGameDynamicTransition id="GeneralCombat_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  136. <Condition>GeneralCombat_to_ThreatLevel1_1_Allowed</Condition>
  137. </PathMusicGameDynamicTransition>
  138. <PathMusicGameDynamicTransition id="AdvantageCombat_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  139. <Condition>AdvantageCombat_to_ThreatLevel1_1_Allowed</Condition>
  140. </PathMusicGameDynamicTransition>
  141. <PathMusicGameDynamicTransition id="AdvantageCombat_to_EvenCombat" DestinationState="EvenCombat">
  142. <Condition>AdvantageCombat_to_EvenCombat_Allowed</Condition>
  143. </PathMusicGameDynamicTransition>
  144. <PathMusicGameDynamicTransition id="DisadvantageCombat_to_EvenCombat" DestinationState="EvenCombat">
  145. <Condition>DisadvantageCombat_to_EvenCombat_Allowed</Condition>
  146. </PathMusicGameDynamicTransition>
  147. <PathMusicGameDynamicTransition id="DisadvantageCombat_to_AdvantageCombat" DestinationState="AdvantageCombat">
  148. <Condition>DisadvantageCombat_to_AdvantageCombat_Allowed</Condition>
  149. </PathMusicGameDynamicTransition>
  150. <PathMusicGameDynamicTransition id="DisadvantageCombat_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  151. <Condition>DisadvantageCombat_to_ThreatLevel1_1_Allowed</Condition>
  152. </PathMusicGameDynamicTransition>
  153. <PathMusicGameDynamicTransition id="EvenCombat_to_AdvantageCombat" DestinationState="AdvantageCombat">
  154. <Condition>EvenCombat_to_AdvantageCombat_Allowed</Condition>
  155. </PathMusicGameDynamicTransition>
  156. <PathMusicGameDynamicTransition id="EvenCombat_to_DisadvantageCombat" DestinationState="DisadvantageCombat">
  157. <Condition>EvenCombat_to_DisadvantageCombat_Allowed</Condition>
  158. </PathMusicGameDynamicTransition>
  159. <PathMusicGameDynamicTransition id="EvenCombat_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  160. <Condition>EvenCombat_to_ThreatLevel1_1_Allowed</Condition>
  161. </PathMusicGameDynamicTransition>
  162. <PathMusicGameDynamicTransition id="VacuumBombTragedy_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  163. <Condition>VacuumBombTragedy_to_ThreatLevel1_1_Allowed</Condition>
  164. </PathMusicGameDynamicTransition>
  165. <PathMusicGameDynamicTransition id="DecimatorTragedy_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  166. <Condition>DecimatorTragedy_to_ThreatLevel1_1_Allowed</Condition>
  167. </PathMusicGameDynamicTransition>
  168. <PathMusicGameDynamicTransition id="ParticleBeamTragedy_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  169. <Condition>ParticleBeamTragedy_to_ThreatLevel1_1_Allowed</Condition>
  170. </PathMusicGameDynamicTransition>
  171. <PathMusicGameDynamicTransition id="RedAlert_to_ThreatLevel1_1" DestinationState="ThreatLevel1_1">
  172. <Condition>RedAlert_to_ThreatLevel1_1_Allowed</Condition>
  173. </PathMusicGameDynamicTransition>
  174. <PathMusicGameDynamicTransition id="Anywhere_to_VacuumBombTragedy" DestinationState="VacuumBombTragedy">
  175. <Condition>Anywhere_to_VacuumBombTragedy_Allowed</Condition>
  176. </PathMusicGameDynamicTransition>
  177. <PathMusicGameDynamicTransition id="Anywhere_to_DecimatorTragedy" DestinationState="DecimatorTragedy">
  178. <Condition>Anywhere_to_DecimatorTragedy_Allowed</Condition>
  179. </PathMusicGameDynamicTransition>
  180. <PathMusicGameDynamicTransition id="Anywhere_to_ParticleBeamTragedy" DestinationState="ParticleBeamTragedy">
  181. <Condition>Anywhere_to_ParticleBeamTragedy_Allowed</Condition>
  182. </PathMusicGameDynamicTransition>
  183. <PathMusicGameDynamicTransition id="Anywhere_to_RedAlert" DestinationState="RedAlert">
  184. <Condition>PlayerActiavtedRedAlert</Condition>
  185. </PathMusicGameDynamicTransition>
  186. <!-- ******************************************************************************
  187. CONDITIONS : General-Reuseable
  188. ****************************************************************************** -->
  189. <MusicScriptConditionNugget_Not id="NoEngagement" >
  190. <Condition>AnyEngagement</Condition>
  191. </MusicScriptConditionNugget_Not>
  192. <MusicScriptConditionNugget_Or id="AnyEngagement" >
  193. <Condition>PlayerUnitsEngagedSmall</Condition>
  194. <Condition>EnemyUnitsEngagedSmall</Condition>
  195. </MusicScriptConditionNugget_Or>
  196. <MusicScriptConditionNugget_Not id="NoSkirmish" >
  197. <Condition>SkirmishSmall</Condition>
  198. </MusicScriptConditionNugget_Not>
  199. <MusicScriptConditionNugget_And id="SkirmishSmall" >
  200. <Condition>PlayerUnitsEngagedSmall</Condition>
  201. <Condition>EnemyUnitsEngagedSmall</Condition>
  202. </MusicScriptConditionNugget_And>
  203. <MusicScriptConditionNugget_EngagementCount id="PlayerUnitsEngagedSmall"
  204. Count="1"
  205. Time="20s"
  206. CountOnlyEngagementsAgainstTheLocalPlayer="false"
  207. CountOnlyEngagementsByTheLocalPlayer="true"
  208. RequiredScreenStatus="ON_OR_OFF_SCREEN"
  209. TimeBetweenConditionChecks="0.5s"
  210. TargetFilter="PathMusicGameDynamicCombatTargets">
  211. </MusicScriptConditionNugget_EngagementCount>
  212. <MusicScriptConditionNugget_EngagementCount id="EnemyUnitsEngagedSmall"
  213. Count="1"
  214. Time="20s"
  215. CountOnlyEngagementsAgainstTheLocalPlayer="true"
  216. CountOnlyEngagementsByTheLocalPlayer="false"
  217. RequiredScreenStatus="ON_OR_OFF_SCREEN"
  218. TimeBetweenConditionChecks="0.5s"
  219. TargetFilter="PathMusicGameDynamicCombatTargets">
  220. </MusicScriptConditionNugget_EngagementCount>
  221. <MusicScriptConditionNugget_Not id="NoEngagementLongDuration" >
  222. <Condition>AnyEngagementLongDuration</Condition>
  223. </MusicScriptConditionNugget_Not>
  224. <MusicScriptConditionNugget_Or id="AnyEngagementLongDuration" >
  225. <Condition>PlayerUnitsEngagedSmallLongDuration</Condition>
  226. <Condition>EnemyUnitsEngagedSmallLongDuration</Condition>
  227. </MusicScriptConditionNugget_Or>
  228. <MusicScriptConditionNugget_EngagementCount id="PlayerUnitsEngagedSmallLongDuration"
  229. Count="1"
  230. Time="60s"
  231. CountOnlyEngagementsAgainstTheLocalPlayer="false"
  232. CountOnlyEngagementsByTheLocalPlayer="true"
  233. RequiredScreenStatus="ON_OR_OFF_SCREEN"
  234. TimeBetweenConditionChecks="0.5s"
  235. TargetFilter="PathMusicGameDynamicCombatTargets">
  236. </MusicScriptConditionNugget_EngagementCount>
  237. <MusicScriptConditionNugget_EngagementCount id="EnemyUnitsEngagedSmallLongDuration"
  238. Count="1"
  239. Time="60s"
  240. CountOnlyEngagementsAgainstTheLocalPlayer="true"
  241. CountOnlyEngagementsByTheLocalPlayer="false"
  242. RequiredScreenStatus="ON_OR_OFF_SCREEN"
  243. TimeBetweenConditionChecks="0.5s"
  244. TargetFilter="PathMusicGameDynamicCombatTargets">
  245. </MusicScriptConditionNugget_EngagementCount>
  246. <MusicScriptConditionNugget_And id="SkirmishMediumOnScreen" >
  247. <Condition>PlayerUnitsEngagedMediumOnScreen</Condition>
  248. <Condition>EnemyUnitsEngagedMediumOnScreen</Condition>
  249. </MusicScriptConditionNugget_And>
  250. <MusicScriptConditionNugget_EngagementCount id="PlayerUnitsEngagedMediumOnScreen"
  251. Count="3"
  252. Time="20s"
  253. CountOnlyEngagementsAgainstTheLocalPlayer="false"
  254. CountOnlyEngagementsByTheLocalPlayer="true"
  255. RequiredScreenStatus="ON_SCREEN"
  256. TimeBetweenConditionChecks="0.5s"
  257. TargetFilter="PathMusicGameDynamicCombatTargets">
  258. </MusicScriptConditionNugget_EngagementCount>
  259. <MusicScriptConditionNugget_EngagementCount id="EnemyUnitsEngagedMediumOnScreen"
  260. Count="3"
  261. Time="20s"
  262. CountOnlyEngagementsAgainstTheLocalPlayer="true"
  263. CountOnlyEngagementsByTheLocalPlayer="false"
  264. RequiredScreenStatus="ON_SCREEN"
  265. TimeBetweenConditionChecks="0.5s"
  266. TargetFilter="PathMusicGameDynamicCombatTargets">
  267. </MusicScriptConditionNugget_EngagementCount>
  268. <MusicScriptConditionNugget_EngagementCount id="AnyUnitsEngagedMediumOnScreen"
  269. Count="10"
  270. Time="20s"
  271. CountOnlyEngagementsAgainstTheLocalPlayer="false"
  272. CountOnlyEngagementsByTheLocalPlayer="false"
  273. RequiredScreenStatus="ON_SCREEN"
  274. TimeBetweenConditionChecks="0.5s"
  275. TargetFilter="PathMusicGameDynamicCombatTargets">
  276. </MusicScriptConditionNugget_EngagementCount>
  277. <MusicScriptConditionNugget_LocalPlayerKillRatio id="PlayerWinningBattleModerate"
  278. Time="20s"
  279. Ratio="2.0"
  280. RatioOp="GREATER_THAN_OR_EQUAL" >
  281. </MusicScriptConditionNugget_LocalPlayerKillRatio>
  282. <MusicScriptConditionNugget_ScoredKillCount id="PlayerScoredKillsMedium"
  283. Count="3"
  284. Time="20s"
  285. CountOnlyKillsAgainstTheLocalPlayer="false"
  286. CountOnlyKillsByTheLocalPlayer="true" >
  287. </MusicScriptConditionNugget_ScoredKillCount>
  288. <MusicScriptConditionNugget_LocalPlayerKillRatio id="EnemyWinningBattleModerate"
  289. Time="20s"
  290. Ratio="0.5"
  291. RatioOp="LESS_THAN_OR_EQUAL" >
  292. </MusicScriptConditionNugget_LocalPlayerKillRatio>
  293. <MusicScriptConditionNugget_ScoredKillCount id="EnemyScoredKillsMedium"
  294. Count="3"
  295. Time="20s"
  296. CountOnlyKillsAgainstTheLocalPlayer="true"
  297. CountOnlyKillsByTheLocalPlayer="false" >
  298. </MusicScriptConditionNugget_ScoredKillCount>
  299. <MusicScriptConditionNugget_And id="EvenBattle" >
  300. <Condition>EvenBattleLowerBound</Condition>
  301. <Condition>EvenBattleUpperBound</Condition>
  302. </MusicScriptConditionNugget_And>
  303. <MusicScriptConditionNugget_LocalPlayerKillRatio id="EvenBattleLowerBound"
  304. Time="20s"
  305. Ratio="0.9"
  306. RatioOp="GREATER_THAN_OR_EQUAL" >
  307. </MusicScriptConditionNugget_LocalPlayerKillRatio>
  308. <MusicScriptConditionNugget_LocalPlayerKillRatio id="EvenBattleUpperBound"
  309. Time="20s"
  310. Ratio="1.1"
  311. RatioOp="LESS_THAN_OR_EQUAL" >
  312. </MusicScriptConditionNugget_LocalPlayerKillRatio>
  313. <MusicScriptConditionNugget_ScoredKillCount id="PlayerDestroyedManyImportantStructures"
  314. Count="5"
  315. Time="120s"
  316. CountOnlyKillsAgainstTheLocalPlayer="false"
  317. CountOnlyKillsByTheLocalPlayer="true"
  318. Filter="PathMusicGameDynamicImportantStructures" >
  319. </MusicScriptConditionNugget_ScoredKillCount>
  320. <MusicScriptConditionNugget_HitBySuperWeapon id="PlayerUnitsHitByVacuumBomb"
  321. TrackedWeapon="VacuumBombIncrementalWeapon"
  322. Count="3"
  323. Time="0.5s"
  324. CountOnlyHitsAgainstTheLocalPlayer="true"
  325. TargetFilter="PathMusicGameDynamicSuperWeaponTargets" >
  326. </MusicScriptConditionNugget_HitBySuperWeapon>
  327. <MusicScriptConditionNugget_HitBySuperWeapon id="PlayerUnitsHitByDecimator"
  328. TrackedWeapon="TelekineticExplosion"
  329. Count="3"
  330. Time="0.5s"
  331. CountOnlyHitsAgainstTheLocalPlayer="true"
  332. TargetFilter="PathMusicGameDynamicSuperWeaponTargets" >
  333. </MusicScriptConditionNugget_HitBySuperWeapon>
  334. <MusicScriptConditionNugget_HitBySuperWeapon id="PlayerUnitsHitByParticleBeam"
  335. TrackedWeapon="ParticleAcceleratorFinalWeapon"
  336. Count="3"
  337. Time="0.5s"
  338. CountOnlyHitsAgainstTheLocalPlayer="true"
  339. TargetFilter="PathMusicGameDynamicSuperWeaponTargets" >
  340. </MusicScriptConditionNugget_HitBySuperWeapon>
  341. <MusicScriptConditionNugget_LocalPlayerHitRedAlertButton id="PlayerActiavtedRedAlert"
  342. DurationToReturnTrueAfterButtonHit="5.0s">
  343. </MusicScriptConditionNugget_LocalPlayerHitRedAlertButton>
  344. <MusicScriptConditionNugget_PathMusicStateLastActive id="ThreatLevel1ExitedWhileAgo"
  345. TrackedState="ThreatLevel1"
  346. TrackedStateChange="EXIT"
  347. TimeSinceLastActive="60s"
  348. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  349. </MusicScriptConditionNugget_PathMusicStateLastActive>
  350. <MusicScriptConditionNugget_PathMusicStateLastActive id="ThreatLevel1EnteredMomentAgo"
  351. TrackedState="ThreatLevel1"
  352. TrackedStateChange="ENTER"
  353. TimeSinceLastActive="20s"
  354. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  355. </MusicScriptConditionNugget_PathMusicStateLastActive>
  356. <MusicScriptConditionNugget_PathMusicStateLastActive id="ThreatLevel1_1EnteredMomentAgo"
  357. TrackedState="ThreatLevel1_1"
  358. TrackedStateChange="ENTER"
  359. TimeSinceLastActive="20s"
  360. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  361. </MusicScriptConditionNugget_PathMusicStateLastActive>
  362. <MusicScriptConditionNugget_PathMusicStateLastActive id="GeneralCombatEnteredMomentAgo"
  363. TrackedState="GeneralCombat"
  364. TrackedStateChange="ENTER"
  365. TimeSinceLastActive="20s"
  366. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  367. </MusicScriptConditionNugget_PathMusicStateLastActive>
  368. <MusicScriptConditionNugget_PathMusicStateLastActive id="DisadvantageCombatEnteredMomentAgo"
  369. TrackedState="DisadvantageCombat"
  370. TrackedStateChange="ENTER"
  371. TimeSinceLastActive="20s"
  372. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  373. </MusicScriptConditionNugget_PathMusicStateLastActive>
  374. <MusicScriptConditionNugget_PathMusicStateLastActive id="EvenCombatEnteredMomentAgo"
  375. TrackedState="EvenCombat"
  376. TrackedStateChange="ENTER"
  377. TimeSinceLastActive="20s"
  378. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  379. </MusicScriptConditionNugget_PathMusicStateLastActive>
  380. <MusicScriptConditionNugget_PathMusicStateLastActive id="AdvantageCombatEnteredWhileAgo"
  381. TrackedState="AdvantageCombat"
  382. TrackedStateChange="ENTER"
  383. TimeSinceLastActive="120s"
  384. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  385. </MusicScriptConditionNugget_PathMusicStateLastActive>
  386. <MusicScriptConditionNugget_PathMusicStateLastActive id="AdvantageCombatExitedWhileAgo"
  387. TrackedState="AdvantageCombat"
  388. TrackedStateChange="EXIT"
  389. TimeSinceLastActive="120s"
  390. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  391. </MusicScriptConditionNugget_PathMusicStateLastActive>
  392. <MusicScriptConditionNugget_And id="AllTragediesExitedLongTimeAgo" >
  393. <Condition>VacuumBombTragedyExitedLongTimeAgo</Condition>
  394. <Condition>DecimatorTragedyExitedLongTimeAgo</Condition>
  395. <Condition>ParticleBeamTragedyExitedLongTimeAgo</Condition>
  396. </MusicScriptConditionNugget_And>
  397. <MusicScriptConditionNugget_PathMusicStateLastActive id="VacuumBombTragedyExitedLongTimeAgo"
  398. TrackedState="VacuumBombTragedy"
  399. TrackedStateChange="EXIT"
  400. TimeSinceLastActive="3600s"
  401. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  402. </MusicScriptConditionNugget_PathMusicStateLastActive>
  403. <MusicScriptConditionNugget_PathMusicStateLastActive id="DecimatorTragedyExitedLongTimeAgo"
  404. TrackedState="DecimatorTragedy"
  405. TrackedStateChange="EXIT"
  406. TimeSinceLastActive="3600s"
  407. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  408. </MusicScriptConditionNugget_PathMusicStateLastActive>
  409. <MusicScriptConditionNugget_PathMusicStateLastActive id="ParticleBeamTragedyExitedLongTimeAgo"
  410. TrackedState="ParticleBeamTragedy"
  411. TrackedStateChange="EXIT"
  412. TimeSinceLastActive="3600s"
  413. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  414. </MusicScriptConditionNugget_PathMusicStateLastActive>
  415. <MusicScriptConditionNugget_PathMusicStateLastActive id="VacuumBombTragedyEnteredShortWhileAgo"
  416. TrackedState="VacuumBombTragedy"
  417. TrackedStateChange="ENTER"
  418. TimeSinceLastActive="60s"
  419. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  420. </MusicScriptConditionNugget_PathMusicStateLastActive>
  421. <MusicScriptConditionNugget_PathMusicStateLastActive id="DecimatorTragedyEnteredShortWhileAgo"
  422. TrackedState="DecimatorTragedy"
  423. TrackedStateChange="ENTER"
  424. TimeSinceLastActive="60s"
  425. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  426. </MusicScriptConditionNugget_PathMusicStateLastActive>
  427. <MusicScriptConditionNugget_PathMusicStateLastActive id="ParticleBeamTragedyEnteredShortWhileAgo"
  428. TrackedState="ParticleBeamTragedy"
  429. TrackedStateChange="ENTER"
  430. TimeSinceLastActive="60s"
  431. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  432. </MusicScriptConditionNugget_PathMusicStateLastActive>
  433. <MusicScriptConditionNugget_PathMusicStateLastActive id="RedAlertEnteredShortWhileAgo"
  434. TrackedState="RedAlert"
  435. TrackedStateChange="ENTER"
  436. TimeSinceLastActive="60s"
  437. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  438. </MusicScriptConditionNugget_PathMusicStateLastActive>
  439. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="GeneralCombatCurrentlyActive"
  440. TrackedState="GeneralCombat" >
  441. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  442. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="AdvantageCombatCurrentlyActive"
  443. TrackedState="AdvantageCombat" >
  444. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  445. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="VacuumBombTragedyCurrentlyActive"
  446. TrackedState="VacuumBombTragedy" >
  447. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  448. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="DecimatorTragedyCurrentlyActive"
  449. TrackedState="DecimatorTragedy" >
  450. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  451. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="ParticleBeamTragedyCurrentlyActive"
  452. TrackedState="ParticleBeamTragedy" >
  453. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  454. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="RedAlertCurrentlyActive"
  455. TrackedState="RedAlert" >
  456. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  457. <MusicScriptConditionNugget_Not id="AdvantageCombatNotCurrentlyActive" >
  458. <Condition>AdvantageCombatCurrentlyActive</Condition>
  459. </MusicScriptConditionNugget_Not>
  460. <!-- ******************************************************************************
  461. CONDITIONS : Transition-Specific Combinations
  462. ****************************************************************************** -->
  463. <MusicScriptConditionNugget_And id="ThreatLevel1_to_GeneralCombat_Allowed" >
  464. <Condition>ThreatLevel1EnteredMomentAgo</Condition>
  465. <Condition>SkirmishMediumOnScreen</Condition>
  466. </MusicScriptConditionNugget_And>
  467. <MusicScriptConditionNugget_And id="ThreatLevel1_1_to_GeneralCombat_Allowed" >
  468. <Condition>ThreatLevel1_1EnteredMomentAgo</Condition>
  469. <Condition>SkirmishMediumOnScreen</Condition>
  470. </MusicScriptConditionNugget_And>
  471. <MusicScriptConditionNugget_And id="GeneralCombat_to_ThreatLevel1_1_Allowed" >
  472. <Condition>GeneralCombatCurrentlyActive</Condition>
  473. <Condition>GeneralCombatEnteredMomentAgo</Condition>
  474. <Condition>NoEngagementLongDuration</Condition>
  475. </MusicScriptConditionNugget_And>
  476. <MusicScriptConditionNugget_And id="GeneralCombat_to_DisadvantageCombat_Allowed" >
  477. <Condition>GeneralCombatCurrentlyActive</Condition>
  478. <Condition>GeneralCombatEnteredMomentAgo</Condition>
  479. <Condition>EnemyWinningBattleModerate</Condition>
  480. <Condition>EnemyScoredKillsMedium</Condition>
  481. </MusicScriptConditionNugget_And>
  482. <MusicScriptConditionNugget_And id="GeneralCombat_to_AdvantageCombat_Allowed" >
  483. <Condition>GeneralCombatCurrentlyActive</Condition>
  484. <Condition>GeneralCombatEnteredMomentAgo</Condition>
  485. <Condition>PlayerDestroyedManyImportantStructures</Condition>
  486. <Condition>AdvantageCombatNotCurrentlyActive</Condition>
  487. <Condition>AdvantageCombatExitedWhileAgo</Condition>
  488. </MusicScriptConditionNugget_And>
  489. <MusicScriptConditionNugget_And id="DisadvantageCombat_to_ThreatLevel1_1_Allowed" >
  490. <Condition>DisadvantageCombatEnteredMomentAgo</Condition>
  491. <Condition>NoEngagementLongDuration</Condition>
  492. </MusicScriptConditionNugget_And>
  493. <MusicScriptConditionNugget_And id="DisadvantageCombat_to_EvenCombat_Allowed" >
  494. <Condition>DisadvantageCombatEnteredMomentAgo</Condition>
  495. <Condition>PlayerWinningBattleModerate</Condition>
  496. <Condition>PlayerScoredKillsMedium</Condition>
  497. </MusicScriptConditionNugget_And>
  498. <MusicScriptConditionNugget_And id="DisadvantageCombat_to_AdvantageCombat_Allowed" >
  499. <Condition>DisadvantageCombatEnteredMomentAgo</Condition>
  500. <Condition>PlayerDestroyedManyImportantStructures</Condition>
  501. <Condition>AdvantageCombatNotCurrentlyActive</Condition>
  502. <Condition>AdvantageCombatExitedWhileAgo</Condition>
  503. </MusicScriptConditionNugget_And>
  504. <MusicScriptConditionNugget_And id="EvenCombat_to_ThreatLevel1_1_Allowed" >
  505. <Condition>EvenCombatEnteredMomentAgo</Condition>
  506. <Condition>NoEngagementLongDuration</Condition>
  507. </MusicScriptConditionNugget_And>
  508. <MusicScriptConditionNugget_And id="EvenCombat_to_DisadvantageCombat_Allowed" >
  509. <Condition>EvenCombatEnteredMomentAgo</Condition>
  510. <Condition>EnemyWinningBattleModerate</Condition>
  511. <Condition>EnemyScoredKillsMedium</Condition>
  512. </MusicScriptConditionNugget_And>
  513. <MusicScriptConditionNugget_And id="EvenCombat_to_AdvantageCombat_Allowed" >
  514. <Condition>EvenCombatEnteredMomentAgo</Condition>
  515. <Condition>PlayerDestroyedManyImportantStructures</Condition>
  516. <Condition>AdvantageCombatNotCurrentlyActive</Condition>
  517. <Condition>AdvantageCombatExitedWhileAgo</Condition>
  518. </MusicScriptConditionNugget_And>
  519. <MusicScriptConditionNugget_And id="AdvantageCombat_to_ThreatLevel1_1_Allowed" >
  520. <Condition>AdvantageCombatEnteredWhileAgo</Condition>
  521. <Condition>AdvantageCombatCurrentlyActive</Condition>
  522. <Condition>NoEngagementLongDuration</Condition>
  523. </MusicScriptConditionNugget_And>
  524. <MusicScriptConditionNugget_And id="AdvantageCombat_to_EvenCombat_Allowed" >
  525. <Condition>AdvantageCombatEnteredWhileAgo</Condition>
  526. <Condition>AdvantageCombatCurrentlyActive</Condition>
  527. <Condition>AnyEngagementLongDuration</Condition>
  528. </MusicScriptConditionNugget_And>
  529. <MusicScriptConditionNugget_And id="VacuumBombTragedy_to_ThreatLevel1_1_Allowed" >
  530. <Condition>VacuumBombTragedyEnteredShortWhileAgo</Condition>
  531. <Condition>VacuumBombTragedyCurrentlyActive</Condition>
  532. </MusicScriptConditionNugget_And>
  533. <MusicScriptConditionNugget_And id="DecimatorTragedy_to_ThreatLevel1_1_Allowed" >
  534. <Condition>DecimatorTragedyEnteredShortWhileAgo</Condition>
  535. <Condition>DecimatorTragedyCurrentlyActive</Condition>
  536. </MusicScriptConditionNugget_And>
  537. <MusicScriptConditionNugget_And id="ParticleBeamTragedy_to_ThreatLevel1_1_Allowed" >
  538. <Condition>ParticleBeamTragedyEnteredShortWhileAgo</Condition>
  539. <Condition>ParticleBeamTragedyCurrentlyActive</Condition>
  540. </MusicScriptConditionNugget_And>
  541. <MusicScriptConditionNugget_And id="RedAlert_to_ThreatLevel1_1_Allowed" >
  542. <Condition>RedAlertEnteredShortWhileAgo</Condition>
  543. <Condition>RedAlertCurrentlyActive</Condition>
  544. </MusicScriptConditionNugget_And>
  545. <MusicScriptConditionNugget_And id="Anywhere_to_VacuumBombTragedy_Allowed" >
  546. <Condition>AllTragediesExitedLongTimeAgo</Condition>
  547. <Condition>PlayerUnitsHitByVacuumBomb</Condition>
  548. </MusicScriptConditionNugget_And>
  549. <MusicScriptConditionNugget_And id="Anywhere_to_DecimatorTragedy_Allowed" >
  550. <Condition>AllTragediesExitedLongTimeAgo</Condition>
  551. <Condition>PlayerUnitsHitByDecimator</Condition>
  552. </MusicScriptConditionNugget_And>
  553. <MusicScriptConditionNugget_And id="Anywhere_to_ParticleBeamTragedy_Allowed" >
  554. <Condition>AllTragediesExitedLongTimeAgo</Condition>
  555. <Condition>PlayerUnitsHitByParticleBeam</Condition>
  556. </MusicScriptConditionNugget_And>
  557. <!-- ******************************************************************************
  558. EXTRA DATA : Stuff that isn't specific to PathMusicGameDynamic State
  559. ****************************************************************************** -->
  560. <ObjectFilterAsset id="PathMusicGameDynamicImportantStructures">
  561. <Filter
  562. Rule="ANY"
  563. Include="STRUCTURE"
  564. Exclude="FS_BASE_DEFENSE DEFENSIVE_WALL WALL_UPGRADE WALL_PIECE WALL_HUB WALL_SEGMENT SCALEABLE_WALL WALL_GATE SUMMONED">
  565. </Filter>
  566. </ObjectFilterAsset>
  567. <ObjectFilterAsset id="PathMusicGameDynamicActiveStructures">
  568. <Filter
  569. Rule="ANY"
  570. Include="STRUCTURE"
  571. Exclude="DEFENSIVE_WALL WALL_UPGRADE WALL_PIECE WALL_HUB WALL_SEGMENT SCALEABLE_WALL WALL_GATE SUMMONED">
  572. </Filter>
  573. </ObjectFilterAsset>
  574. <ObjectFilterAsset id="PathMusicGameDynamicCombatTargets">
  575. <Filter
  576. Rule="ALL"
  577. Relationship="ENEMIES">
  578. </Filter>
  579. </ObjectFilterAsset>
  580. <ObjectFilterAsset id="PathMusicGameDynamicSuperWeaponTargets">
  581. <Filter
  582. Rule="ALL"
  583. Relationship="ENEMIES">
  584. </Filter>
  585. </ObjectFilterAsset>
  586. </AssetDeclaration>