powerup.xml 16 KB

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