ScriptedPathMusicGameDynamicState.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  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 file contains PathMusic Dynamic State Sets which are specially designed to work with
  4. campaigns. They are usually truncated verions of the Standard Full State Set. They allow
  5. a certain degree of dynamic music detection, but will still keep the music within a certain
  6. "feel" for the circumstances of the campaign. It relies on certain portions of the Standard
  7. Full set. -->
  8. <!-- ______________________________________________________________________________________________ -->
  9. <!-- ******************************************************************************
  10. TOTAL STATE SET
  11. ****************************************************************************** -->
  12. <PathMusicGameDynamicStateSet id="CombatOnly_Full" Category="SCRIPTED">
  13. <State>CombatOnly_GeneralCombat</State>
  14. <State>CombatOnly_DisadvantageCombat</State>
  15. <State>CombatOnly_EvenCombat</State>
  16. </PathMusicGameDynamicStateSet>
  17. <!-- ******************************************************************************
  18. STATES
  19. ****************************************************************************** -->
  20. <PathMusicGameDynamicState id="CombatOnly_GeneralCombat" EnterEvent="Combat">
  21. <Transition>CombatOnly_GeneralCombat_to_CombatOnly_DisadvantageCombat</Transition>
  22. </PathMusicGameDynamicState>
  23. <PathMusicGameDynamicState id="CombatOnly_DisadvantageCombat" EnterEvent="SetAdvantageEnemy">
  24. <Transition>CombatOnly_DisadvantageCombat_to_CombatOnly_EvenCombat</Transition>
  25. </PathMusicGameDynamicState>
  26. <PathMusicGameDynamicState id="CombatOnly_EvenCombat" EnterEvent="ResetAdvantage">
  27. <Transition>CombatOnly_EvenCombat_to_CombatOnly_DisadvantageCombat</Transition>
  28. </PathMusicGameDynamicState>
  29. <!-- ******************************************************************************
  30. TRANSITIONS
  31. ****************************************************************************** -->
  32. <PathMusicGameDynamicTransition id="CombatOnly_GeneralCombat_to_CombatOnly_DisadvantageCombat"
  33. DestinationState="CombatOnly_DisadvantageCombat">
  34. <Condition>CombatOnly_GeneralCombat_to_CombatOnly_DisadvantageCombat_Allowed</Condition>
  35. </PathMusicGameDynamicTransition>
  36. <PathMusicGameDynamicTransition id="CombatOnly_DisadvantageCombat_to_CombatOnly_EvenCombat"
  37. DestinationState="CombatOnly_EvenCombat">
  38. <Condition>CombatOnly_DisadvantageCombat_to_CombatOnly_EvenCombat_Allowed</Condition>
  39. </PathMusicGameDynamicTransition>
  40. <PathMusicGameDynamicTransition id="CombatOnly_EvenCombat_to_CombatOnly_DisadvantageCombat"
  41. DestinationState="CombatOnly_DisadvantageCombat">
  42. <Condition>CombatOnly_EvenCombat_to_CombatOnly_DisadvantageCombat_Allowed</Condition>
  43. </PathMusicGameDynamicTransition>
  44. <!-- ******************************************************************************
  45. CONDITIONS : General-Reuseable
  46. ****************************************************************************** -->
  47. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="CombatOnly_GeneralCombatCurrentlyActive"
  48. TrackedState="CombatOnly_GeneralCombat" >
  49. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  50. <MusicScriptConditionNugget_PathMusicStateLastActive id="CombatOnly_GeneralCombatEnteredMomentAgo"
  51. TrackedState="CombatOnly_GeneralCombat"
  52. TrackedStateChange="ENTER"
  53. TimeSinceLastActive="20s"
  54. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  55. </MusicScriptConditionNugget_PathMusicStateLastActive>
  56. <MusicScriptConditionNugget_PathMusicStateLastActive id="CombatOnly_DisadvantageCombatEnteredMomentAgo"
  57. TrackedState="CombatOnly_DisadvantageCombat"
  58. TrackedStateChange="ENTER"
  59. TimeSinceLastActive="20s"
  60. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  61. </MusicScriptConditionNugget_PathMusicStateLastActive>
  62. <MusicScriptConditionNugget_PathMusicStateLastActive id="CombatOnly_EvenCombatEnteredMomentAgo"
  63. TrackedState="CombatOnly_EvenCombat"
  64. TrackedStateChange="ENTER"
  65. TimeSinceLastActive="20s"
  66. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  67. </MusicScriptConditionNugget_PathMusicStateLastActive>
  68. <!-- ******************************************************************************
  69. CONDITIONS : Transition-Specific Combinations
  70. ****************************************************************************** -->
  71. <MusicScriptConditionNugget_And id="CombatOnly_GeneralCombat_to_CombatOnly_DisadvantageCombat_Allowed" >
  72. <Condition>CombatOnly_GeneralCombatCurrentlyActive</Condition>
  73. <Condition>CombatOnly_GeneralCombatEnteredMomentAgo</Condition>
  74. <Condition>EnemyWinningBattleModerate</Condition>
  75. <Condition>EnemyScoredKillsMedium</Condition>
  76. </MusicScriptConditionNugget_And>
  77. <MusicScriptConditionNugget_And id="CombatOnly_DisadvantageCombat_to_CombatOnly_EvenCombat_Allowed" >
  78. <Condition>CombatOnly_DisadvantageCombatEnteredMomentAgo</Condition>
  79. <Condition>PlayerWinningBattleModerate</Condition>
  80. <Condition>PlayerScoredKillsMedium</Condition>
  81. </MusicScriptConditionNugget_And>
  82. <MusicScriptConditionNugget_And id="CombatOnly_EvenCombat_to_CombatOnly_DisadvantageCombat_Allowed" >
  83. <Condition>CombatOnly_EvenCombatEnteredMomentAgo</Condition>
  84. <Condition>EnemyWinningBattleModerate</Condition>
  85. <Condition>EnemyScoredKillsMedium</Condition>
  86. </MusicScriptConditionNugget_And>
  87. <!-- ________________________________________________________________________________________________________-->
  88. <!-- ******************************************************************************
  89. TOTAL STATE SET
  90. ****************************************************************************** -->
  91. <PathMusicGameDynamicStateSet id="CombatOnly_NoLeadIn" Category="SCRIPTED">
  92. <State>CombatOnly_NoLeadIn_GeneralCombat</State>
  93. <State>CombatOnly_DisadvantageCombat</State>
  94. <State>CombatOnly_EvenCombat</State>
  95. </PathMusicGameDynamicStateSet>
  96. <!-- ******************************************************************************
  97. STATES
  98. ****************************************************************************** -->
  99. <PathMusicGameDynamicState id="CombatOnly_NoLeadIn_GeneralCombat" >
  100. <Transition>CombatOnly_NoLeadIn_GeneralCombat_to_CombatOnly_DisadvantageCombat</Transition>
  101. </PathMusicGameDynamicState>
  102. <!-- ******************************************************************************
  103. TRANSITIONS
  104. ****************************************************************************** -->
  105. <PathMusicGameDynamicTransition id="CombatOnly_NoLeadIn_GeneralCombat_to_CombatOnly_DisadvantageCombat"
  106. DestinationState="CombatOnly_DisadvantageCombat">
  107. <Condition>CombatOnly_NoLeadIn_GeneralCombat_to_CombatOnly_DisadvantageCombat_Allowed</Condition>
  108. </PathMusicGameDynamicTransition>
  109. <!-- ******************************************************************************
  110. CONDITIONS : General-Reuseable
  111. ****************************************************************************** -->
  112. <MusicScriptConditionNugget_PathMusicStateCurrentlyActive id="CombatOnly_NoLeadIn_GeneralCombatCurrentlyActive"
  113. TrackedState="CombatOnly_NoLeadIn_GeneralCombat" >
  114. </MusicScriptConditionNugget_PathMusicStateCurrentlyActive>
  115. <MusicScriptConditionNugget_PathMusicStateLastActive id="CombatOnly_NoLeadIn_GeneralCombatEnteredMomentAgo"
  116. TrackedState="CombatOnly_NoLeadIn_GeneralCombat"
  117. TrackedStateChange="ENTER"
  118. TimeSinceLastActive="20s"
  119. TimeSicneLastActiveOp="GREATER_THAN_OR_EQUAL" >
  120. </MusicScriptConditionNugget_PathMusicStateLastActive>
  121. <!-- ******************************************************************************
  122. CONDITIONS : Transition-Specific Combinations
  123. ****************************************************************************** -->
  124. <MusicScriptConditionNugget_And id="CombatOnly_NoLeadIn_GeneralCombat_to_CombatOnly_DisadvantageCombat_Allowed" >
  125. <Condition>CombatOnly_NoLeadIn_GeneralCombatCurrentlyActive</Condition>
  126. <Condition>CombatOnly_NoLeadIn_GeneralCombatEnteredMomentAgo</Condition>
  127. <Condition>EnemyWinningBattleModerate</Condition>
  128. <Condition>EnemyScoredKillsMedium</Condition>
  129. </MusicScriptConditionNugget_And>
  130. <!-- ________________________________________________________________________________________________________-->
  131. <!-- ******************************************************************************
  132. TOTAL STATE SET
  133. ****************************************************************************** -->
  134. <PathMusicGameDynamicStateSet id="Standard_NoLeadIn" Category="SCRIPTED">
  135. <State>NoLeadIn_BaseBuilding</State>
  136. <State>ThreatLevel1</State>
  137. <State>ThreatLevel1_1</State>
  138. <State>GeneralCombat</State>
  139. <State>DisadvantageCombat</State>
  140. <State>EvenCombat</State>
  141. <State>AdvantageCombat</State>
  142. </PathMusicGameDynamicStateSet>
  143. <!-- ******************************************************************************
  144. STATES
  145. ****************************************************************************** -->
  146. <PathMusicGameDynamicState id="NoLeadIn_BaseBuilding">
  147. <Transition>NoLeadIn_BaseBuilding_to_ThreatLevel1</Transition>
  148. <Transition>NoLeadIn_BaseBuilding_to_GeneralCombat</Transition>
  149. </PathMusicGameDynamicState>
  150. <!-- ******************************************************************************
  151. TRANSITIONS
  152. ****************************************************************************** -->
  153. <PathMusicGameDynamicTransition id="NoLeadIn_BaseBuilding_to_ThreatLevel1" DestinationState="ThreatLevel1">
  154. <Condition>SkirmishSmall</Condition>
  155. </PathMusicGameDynamicTransition>
  156. <PathMusicGameDynamicTransition id="NoLeadIn_BaseBuilding_to_GeneralCombat" DestinationState="GeneralCombat">
  157. <Condition>SkirmishMediumOnScreen</Condition>
  158. </PathMusicGameDynamicTransition>
  159. <!-- ________________________________________________________________________________________________________-->
  160. <!-- ******************************************************************************
  161. TOTAL STATE SET
  162. ****************************************************************************** -->
  163. <PathMusicGameDynamicStateSet id="ThreatAndCombat_NoLeadIn" Category="SCRIPTED">
  164. <State>NoLeadIn_ThreatLevel1</State>
  165. <State>ThreatLevel1_1</State>
  166. <State>GeneralCombat</State>
  167. <State>DisadvantageCombat</State>
  168. <State>EvenCombat</State>
  169. <State>AdvantageCombat</State>
  170. </PathMusicGameDynamicStateSet>
  171. <!-- ******************************************************************************
  172. STATES
  173. ****************************************************************************** -->
  174. <PathMusicGameDynamicState id="NoLeadIn_ThreatLevel1">
  175. <Transition>NoLeadIn_ThreatLevel1_to_GeneralCombat</Transition>
  176. </PathMusicGameDynamicState>
  177. <!-- ******************************************************************************
  178. TRANSITIONS
  179. ****************************************************************************** -->
  180. <!-- Note that unlike the Standard ThreatLevel_1_to_GeneralCombat Transition, we are not requiring that you
  181. have been in the ThreatLevel_1 State for x seconds. It is assumed that since this is "NoLeadIn", you have
  182. already been listening to the music for a while and can transition out at any time. -->
  183. <PathMusicGameDynamicTransition id="NoLeadIn_ThreatLevel1_to_GeneralCombat" DestinationState="GeneralCombat">
  184. <Condition>SkirmishMediumOnScreen</Condition>
  185. </PathMusicGameDynamicTransition>
  186. <!-- ________________________________________________________________________________________________________-->
  187. <!-- ******************************************************************************
  188. TOTAL STATE SET
  189. ****************************************************************************** -->
  190. <PathMusicGameDynamicStateSet id="Rushmore_Scuffle_Full" Category="SCRIPTED">
  191. <State>GeneralScuffle</State>
  192. <State>ActionScuffle</State>
  193. <State>TenseScuffle</State>
  194. </PathMusicGameDynamicStateSet>
  195. <!-- ******************************************************************************
  196. STATES
  197. ****************************************************************************** -->
  198. <PathMusicGameDynamicState id="GeneralScuffle" EnterEvent="S_A06RushmoreTowerDown">
  199. <Transition>GeneralScuffle_to_ActionScuffle</Transition>
  200. </PathMusicGameDynamicState>
  201. <PathMusicGameDynamicState id="ActionScuffle" EnterEvent="S_A06SetSkirmishOn">
  202. <Transition>ActionScuffle_to_TenseScuffle</Transition>
  203. </PathMusicGameDynamicState>
  204. <PathMusicGameDynamicState id="TenseScuffle" EnterEvent="S_A06SetSkirmishOff">
  205. <Transition>TenseScuffle_to_ActionScuffle</Transition>
  206. </PathMusicGameDynamicState>
  207. <!-- ******************************************************************************
  208. TRANSITIONS
  209. ****************************************************************************** -->
  210. <PathMusicGameDynamicTransition id="GeneralScuffle_to_ActionScuffle" DestinationState="ActionScuffle">
  211. <Condition>AnyEngagement</Condition>
  212. </PathMusicGameDynamicTransition>
  213. <PathMusicGameDynamicTransition id="ActionScuffle_to_TenseScuffle" DestinationState="TenseScuffle">
  214. <Condition>NoEngagement</Condition>
  215. </PathMusicGameDynamicTransition>
  216. <PathMusicGameDynamicTransition id="TenseScuffle_to_ActionScuffle" DestinationState="ActionScuffle">
  217. <Condition>AnyEngagement</Condition>
  218. </PathMusicGameDynamicTransition>
  219. <!-- ________________________________________________________________________________________________________-->
  220. <!-- ******************************************************************************
  221. TOTAL STATE SET
  222. ****************************************************************************** -->
  223. <PathMusicGameDynamicStateSet id="NoLeadIn_Rushmore_Scuffle_Full" Category="SCRIPTED">
  224. <State>NoLeadIn_GeneralScuffle</State>
  225. <State>ActionScuffle</State>
  226. <State>TenseScuffle</State>
  227. </PathMusicGameDynamicStateSet>
  228. <!-- ******************************************************************************
  229. STATES
  230. ****************************************************************************** -->
  231. <PathMusicGameDynamicState id="NoLeadIn_GeneralScuffle">
  232. <Transition>NoLeadIn_GeneralScuffle_to_ActionScuffle</Transition>
  233. </PathMusicGameDynamicState>
  234. <!-- ******************************************************************************
  235. TRANSITIONS
  236. ****************************************************************************** -->
  237. <PathMusicGameDynamicTransition id="NoLeadIn_GeneralScuffle_to_ActionScuffle" DestinationState="ActionScuffle">
  238. <Condition>AnyEngagement</Condition>
  239. </PathMusicGameDynamicTransition>
  240. <!-- ________________________________________________________________________________________________________-->
  241. <!-- ******************************************************************************
  242. TOTAL STATE SET
  243. ****************************************************************************** -->
  244. <PathMusicGameDynamicStateSet id="Yokohama_Breakdown_NoLeadIn" Category="SCRIPTED">
  245. <State>NoLeadIn_NoBuildingsLost</State>
  246. <State>FewBuildingsLost</State>
  247. <State>ManyBuildingsLost</State>
  248. </PathMusicGameDynamicStateSet>
  249. <!-- ******************************************************************************
  250. STATES
  251. ****************************************************************************** -->
  252. <PathMusicGameDynamicState id="NoLeadIn_NoBuildingsLost">
  253. <Transition>NoLeadIn_NoBuildingsLost_to_FewBuildingsLost</Transition>
  254. </PathMusicGameDynamicState>
  255. <PathMusicGameDynamicState id="FewBuildingsLost" EnterEvent="S_J07BuildingsLost3">
  256. <Transition>FewBuildingsLost_to_ManyBuildingsLost</Transition>
  257. </PathMusicGameDynamicState>
  258. <PathMusicGameDynamicState id="ManyBuildingsLost" EnterEvent="S_J07BuildingsLost6">
  259. </PathMusicGameDynamicState>
  260. <!-- ******************************************************************************
  261. TRANSITIONS
  262. ****************************************************************************** -->
  263. <PathMusicGameDynamicTransition id="NoLeadIn_NoBuildingsLost_to_FewBuildingsLost" DestinationState="FewBuildingsLost">
  264. <Condition>PlayerLostFewStructures</Condition>
  265. </PathMusicGameDynamicTransition>
  266. <PathMusicGameDynamicTransition id="FewBuildingsLost_to_ManyBuildingsLost" DestinationState="ManyBuildingsLost">
  267. <Condition>PlayerLostManyStructures</Condition>
  268. </PathMusicGameDynamicTransition>
  269. <!-- ******************************************************************************
  270. CONDITIONS : General-Reuseable
  271. ****************************************************************************** -->
  272. <MusicScriptConditionNugget_ScoredKillCount id="PlayerLostFewStructures"
  273. Count="3"
  274. Time="120s"
  275. CountOnlyKillsAgainstTheLocalPlayer="true"
  276. CountOnlyKillsByTheLocalPlayer="false"
  277. Filter="PathMusicGameDynamicActiveStructures" >
  278. </MusicScriptConditionNugget_ScoredKillCount>
  279. <MusicScriptConditionNugget_ScoredKillCount id="PlayerLostManyStructures"
  280. Count="6"
  281. Time="120s"
  282. CountOnlyKillsAgainstTheLocalPlayer="true"
  283. CountOnlyKillsByTheLocalPlayer="false"
  284. Filter="PathMusicGameDynamicActiveStructures" >
  285. </MusicScriptConditionNugget_ScoredKillCount>
  286. </AssetDeclaration>