powerup.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <?xml version="1.0"?>
  2. <powerup>
  3. <item name="zipper" icon="zipper_collect.png" />
  4. <item name="bowling" icon="bowling-icon.png"
  5. model="bowling.spm" speed="4.0"
  6. min-height="0.2" max-height="1.0"
  7. force-updown="1" force-to-target="40"
  8. max-distance="25" />
  9. <item name="bubblegum" icon="bubblegum-icon.png" />
  10. <item name="cake" icon="cake-icon.png"
  11. model="cake.spm" speed="50"
  12. min-height="0.2" max-height="1.0"
  13. force-updown="25" max-distance="90" />
  14. <item name="anchor" icon="anchor-icon.png"
  15. model="anchor.spm" />
  16. <item name="switch" icon="swap-icon.png" />
  17. <item name="swatter" icon="swatter-icon.png" />
  18. <!-- interval: How long a single bounce takes.
  19. max-height: The maximum height of a bounce.
  20. min-height: Unused mostly, but defines implicitly
  21. the starting height (as average of
  22. max and min height).
  23. target-distance: When the ball is closer than
  24. this to the target, it will aim
  25. directly at the target.
  26. target-max-angle: Once the ball is aiming for its
  27. target, it can at most change the angle
  28. this much per second(!).
  29. min-interpolation-distance: how far the control
  30. points (which are center of squads)
  31. must be from each other. A large value
  32. allows smoother turning (no abrupt
  33. change of direction), but a large
  34. value can result in the ball being
  35. off track (e.g. a value of 30 results
  36. on the ramp in sand track that the
  37. ball goes to the left of the tunnel,
  38. bouncing on the pyramid). Quite
  39. catastrophal on the startrack and
  40. skyline).
  41. squash-slowdown: How much karts that are
  42. squashed are slowed down.
  43. squash-duration: How long karts stay squashed.
  44. delete-timer: How long before the ball is removed
  45. if no suitable target is found.
  46. early-target-factor: the rubber ball can use the
  47. relative position of the kart to the
  48. center of the track for improved targeting
  49. (i.e. the ball will align its relative
  50. position to the center of the track early).
  51. This allows a lower target-distance to be
  52. used since the ball is better aligned,
  53. hopefully reducing the frequency of
  54. tunneling.
  55. -->
  56. <item name="rubber-ball" icon="rubber_ball-icon.png"
  57. model="rubber_ball.spm" speed="35.0"
  58. scale="1 1 1" interval="1"
  59. max-height="4.0" min-height="0"
  60. fast-ping-distance="50"
  61. early-target-factor="1"
  62. target-distance="15" target-max-angle = "90"
  63. min-interpolation-distance="5"
  64. squash-slowdown="0.5" squash-duration="2"
  65. delete-time="5.0" max-height-difference="10" />
  66. <item name="parachute" icon="parachute-icon.png"
  67. model="parachute.spm" />
  68. <item name="plunger" icon="plunger-icon.png"
  69. model="plunger.spm" speed="35"
  70. min-height="0.2" max-height="1.0"
  71. force-updown="35" force-to-target="15"
  72. max-distance="25" />
  73. <!-- This defines the probabilities to get each type of item depending on
  74. the position of the kart and number of karts in the race.
  75. For each race mode (race, time-trial, soccer etc) there is one
  76. weight-list entry (e.g. race-weight-list etc). Each of those lists
  77. contains a list (1 or more entries) of weights for a certain number
  78. of karts in the race. This offers two advantages:
  79. 1) the frequency of global items (like switch) can be reduced for
  80. higher number of karts (so that game play does not get dominated
  81. by frequent global items)
  82. 2) to take into account the balance changes when the number of karts
  83. is different. Typically, the higher the number of karts, the
  84. stronger the difference in "powerup quality" between the first and
  85. the last.
  86. Each of those weight tags is stored into a WeightsData object.
  87. At race time, a new WeightsData object is created from the list for
  88. the current race type depending on number of karts in the race.
  89. If there is a WeightsData object for the same kart number, it is
  90. copied, otherwise an interpolated WeightsData object is created
  91. from the two WeightsData objects that are closest to the current
  92. number of karts. If there is only one WeightsData for the race
  93. mode, it is used for any number of karts.
  94. Each Weights entry itself can contain one or more weight tags:
  95. The first entry is for the kart with rank 1, the last weight entry
  96. for the last kart. The remaining entries are evenly distributed
  97. between the first and last kart (exception is follow-the-leader,
  98. where the first entry is for the leader, the second entry for
  99. the first non-leader kart, and the last entry for the last
  100. kart. So the 3rd till second-last entries are distributed
  101. evenly instead of the 2nd till second-last).
  102. For example, with 5 karts and 5 entries those points will
  103. match positions 2, 3, 4. With 10 karts (and 5 entries), they
  104. will correspond to 3,25 ; 5,5 ; 7,75. It is not an issue if
  105. the kart number is not an integer value, since the actual
  106. weights will be interpolated.
  107. The order of items must correspond to powerup_manager.hpp.
  108. Each weight entry contains two list of integer values that
  109. represent the probability that a particular item is picked
  110. (the integer weight is divided by the sum of all weights to
  111. get the actual probability). The first line (single=...)
  112. corresponds to the weights of getting one specific item,
  113. the second line (multi) to the weight at which it will yeld
  114. a triple item rather than a single one. The probability to get
  115. an item is its weight divided by the sum of weights of all items
  116. (single AND multi). It is recommended to keep that sum equal
  117. to 1000 to easily keep track of probabilities.
  118. 'Global' items which affect all karts (switch, parachute) should
  119. be quite rare, since otherwise the item might be used
  120. too often (compared with many items which will only
  121. affect a karts or two) - especially with increasing number of
  122. karts in a race.
  123. The distribution should give more similar items to different ranks
  124. when there are few karts, but have more important differences when
  125. there are more karts. -->
  126. <race-weight-list>
  127. <weights num-karts="1">
  128. <!-- The entry for '1' kart lists more than a single weight
  129. because the others are used for interpolation when
  130. there are two karts or more. -->
  131. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  132. <weight single ="140 0 300 100 225 75 160 0 0 0"
  133. multi =" 0 0 0 0 0 0 0 0 0 0" />
  134. <weight single ="150 0 295 130 200 70 135 0 0 0"
  135. multi =" 0 0 20 0 0 0 0 0 0 0" />
  136. <weight single ="150 0 310 135 180 65 135 0 0 0"
  137. multi =" 0 0 25 0 0 0 0 0 0 0" />
  138. <weight single ="155 0 280 180 170 60 125 0 0 0"
  139. multi =" 0 0 30 0 0 0 0 0 0 0" />
  140. <weight single ="170 0 180 275 150 50 85 0 0 0"
  141. multi =" 0 0 90 0 0 0 0 0 0 0" />
  142. </weights>
  143. <weights num-karts="5">
  144. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  145. <weight single ="130 80 260 75 230 60 165 0 0 0"
  146. multi =" 0 0 0 0 0 0 0 0 0 0" />
  147. <weight single ="150 135 240 125 140 50 135 0 0 0"
  148. multi =" 0 0 25 0 0 0 0 0 0 0" />
  149. <weight single ="150 135 225 135 135 45 135 15 0 0"
  150. multi =" 0 0 25 0 0 0 0 0 0 0" />
  151. <weight single ="160 120 140 190 110 35 100 80 30 0"
  152. multi =" 0 0 35 0 0 0 0 0 0 0" />
  153. <weight single ="140 105 45 225 0 30 0 50 90 0"
  154. multi =" 40 0 80 175 20 0 0 0 0 0" />
  155. </weights>
  156. <weights num-karts="9">
  157. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  158. <weight single ="120 60 290 50 270 40 170 0 0 0"
  159. multi =" 0 0 0 0 0 0 0 0 0 0" />
  160. <weight single ="145 150 225 120 160 35 135 0 0 0"
  161. multi =" 0 0 30 0 0 0 0 0 0 0" />
  162. <weight single ="150 130 205 140 130 30 130 50 0 0"
  163. multi =" 0 0 35 0 0 0 0 0 0 0" />
  164. <weight single ="165 115 130 225 70 25 80 60 40 0"
  165. multi =" 0 0 60 0 30 0 0 0 0 0" />
  166. <weight single ="100 80 35 185 0 15 0 20 75 0"
  167. multi =" 90 0 90 290 20 0 0 0 0 0" />
  168. </weights>
  169. <weights num-karts="14">
  170. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  171. <weight single ="110 40 320 25 300 30 175 0 0 0"
  172. multi =" 0 0 0 0 0 0 0 0 0 0" />
  173. <weight single ="140 155 240 110 170 20 135 0 0 0"
  174. multi =" 0 0 30 0 0 0 0 0 0 0" />
  175. <weight single ="150 125 210 145 145 15 120 50 0 0"
  176. multi =" 0 0 40 0 0 0 0 0 0 0" />
  177. <weight single ="135 105 115 220 60 15 70 40 30 0"
  178. multi =" 40 0 80 40 50 0 0 0 0 0" />
  179. <weight single =" 90 70 15 175 0 0 0 0 50 0"
  180. multi ="120 0 125 325 30 0 0 0 0 0" />
  181. </weights>
  182. <weights num-karts="20">
  183. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  184. <weight single ="100 0 370 0 330 20 180 0 0 0"
  185. multi =" 0 0 0 0 0 0 0 0 0 0" />
  186. <weight single ="135 160 240 100 185 15 135 0 0 0"
  187. multi =" 0 0 30 0 0 0 0 0 0 0" />
  188. <weight single ="150 120 200 150 140 10 105 50 0 0"
  189. multi =" 0 0 50 0 25 0 0 0 0 0" />
  190. <weight single ="125 90 100 250 50 10 50 30 15 0"
  191. multi =" 50 0 100 50 80 0 0 0 0 0" />
  192. <weight single =" 75 60 0 125 0 0 0 0 35 0"
  193. multi ="150 0 155 400 0 0 0 0 0 0" />
  194. </weights>
  195. </race-weight-list>
  196. <ftl-weight-list>
  197. <weights num-karts="1">
  198. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  199. <!-- This is the entry for the leader: -->
  200. <weight single ="35 0 25 35 25 15 25 0 0 0"
  201. multi ="20 0 0 20 0 0 0 0 0 0" />
  202. <!-- This is the entry for the first non-leader karts: -->
  203. <weight single ="25 0 60 25 58 2 30 0 0 0"
  204. multi =" 0 0 0 0 0 0 0 0 0 0" />
  205. <weight single ="35 0 55 35 25 3 25 0 0 0"
  206. multi =" 0 0 10 0 12 0 0 0 0 0" />
  207. <weight single ="25 0 40 45 15 5 15 10 5 0"
  208. multi ="10 0 15 15 0 0 0 0 0 0" />
  209. <!-- This is the entry for the last kart: -->
  210. <weight single ="20 0 15 25 0 0 0 0 15 0"
  211. multi ="20 0 25 80 0 0 0 0 0 0" />
  212. </weights>
  213. </ftl-weight-list>
  214. <battle-weight-list>
  215. <weights num-karts="1">
  216. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  217. <weight single ="10 30 60 0 0 10 30 0 0 0"
  218. multi =" 0 0 5 0 0 0 0 0 0 0" />
  219. </weights>
  220. </battle-weight-list>
  221. <soccer-weight-list>
  222. <weights num-karts="1">
  223. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  224. <weight single =" 0 30 60 0 0 10 30 0 0 0"
  225. multi =" 0 0 5 0 0 0 0 0 0 0" />
  226. </weights>
  227. </soccer-weight-list>
  228. <tutorial-weight-list>
  229. <weights num-karts="1">
  230. <!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
  231. <weight single =" 0 0 0 0 0 0 0 0 0 0"
  232. multi =" 0 0 100 0 0 0 0 0 0 0" />
  233. </weights>
  234. </tutorial-weight-list>
  235. </powerup>