object-priorities.txt 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. Engine: visit tile
  2. description: visit tile priority
  3. InputVariable: mainTurnDistance
  4. description: distance to tile in turns
  5. enabled: true
  6. range: 0.000 10.000
  7. lock-range: true
  8. term: LOWEST Ramp 0.400 0.000
  9. term: LOW Discrete 0.000 1.000 0.500 0.800 0.800 0.300 2.000 0.000
  10. term: MEDIUM Discrete 0.000 0.000 0.500 0.200 0.800 0.700 2.000 1.000 6.000 0.000
  11. term: LONG Discrete 2.000 0.000 6.000 1.000 10.000 0.800
  12. InputVariable: scoutTurnDistance
  13. description: distance to tile in turns
  14. enabled: true
  15. range: 0.000 10.000
  16. lock-range: true
  17. term: LOWEST Ramp 0.250 0.000
  18. term: LOW Discrete 0.000 1.000 0.500 0.800 1.000 0.000
  19. term: MEDIUM Discrete 0.000 0.000 0.500 0.200 1.000 1.000 2.500 0.300 4.000 0.000
  20. term: LONG Discrete 1.000 0.000 1.500 0.200 3.000 0.800 10.000 1.000
  21. InputVariable: goldReward
  22. description: estimated amount of gold received
  23. enabled: true
  24. range: 0.000 5000.000
  25. lock-range: true
  26. term: LOWEST Triangle 0.000 100.000 200.000
  27. term: SMALL Triangle 100.000 200.000 400.000
  28. term: MEDIUM Triangle 200.000 400.000 1000.000
  29. term: BIG Triangle 400.000 1000.000 5000.000
  30. term: HUGE Ramp 1000.000 5000.000
  31. InputVariable: armyReward
  32. enabled: true
  33. range: 0.000 10000.000
  34. lock-range: false
  35. term: NONE Ramp 100.000 0.000
  36. term: LOW Triangle 0.000 700.000 3000.000
  37. term: HIGH Ramp 3000.000 10000.000
  38. term: MEDIUM Triangle 700.000 3000.000 8000.000
  39. InputVariable: armyLoss
  40. enabled: true
  41. range: 0.000 1.000
  42. lock-range: false
  43. term: LOW Ramp 0.200 0.000
  44. term: MEDIUM Triangle 0.000 0.200 0.500
  45. term: HIGH Ramp 0.200 0.500
  46. term: ALL Ramp 0.700 1.000
  47. InputVariable: heroRole
  48. enabled: true
  49. range: -0.100 1.100
  50. lock-range: false
  51. term: SCOUT Rectangle -0.500 0.500
  52. term: MAIN Rectangle 0.500 1.500
  53. InputVariable: danger
  54. enabled: true
  55. range: 0.000 10000.000
  56. lock-range: false
  57. term: NONE Ramp 20.000 0.000
  58. term: LOW Triangle 50.000 1000.000 2000.000
  59. term: HIGH Ramp 2000.000 5000.000
  60. term: MEDIUM Triangle 1000.000 2000.000 5000.000
  61. InputVariable: skillReward
  62. enabled: true
  63. range: 0.000 10.000
  64. lock-range: false
  65. term: NONE Ramp 1.000 0.000
  66. term: LOW Triangle 0.000 1.000 3.000
  67. term: MEDIUM Triangle 1.000 3.000 5.000
  68. term: HIGH Discrete 3.000 0.000 5.000 0.800 10.000 1.000
  69. InputVariable: rewardType
  70. enabled: true
  71. range: 0.000 3.000
  72. lock-range: false
  73. term: SINGLE Rectangle 0.500 1.500
  74. term: MIXED Rectangle 1.500 2.500
  75. term: NONE Rectangle 0.000 0.500
  76. InputVariable: closestHeroRatio
  77. enabled: true
  78. range: 0.000 1.000
  79. lock-range: false
  80. term: LOW Discrete 0.000 1.000 0.500 0.800 0.700 0.200 1.000 0.000
  81. term: HIGH Discrete 0.500 0.000 0.700 0.600 1.000 1.000
  82. term: LOWEST Discrete 0.000 1.000 0.400 0.200 0.900 0.000
  83. InputVariable: strategicalValue
  84. description: Some abstract long term benefit non gold or army or skill
  85. enabled: true
  86. range: 0.000 3.000
  87. lock-range: false
  88. term: NONE Ramp 0.200 0.000
  89. term: LOWEST Triangle 0.000 0.010 0.250
  90. term: LOW Triangle 0.000 0.250 1.000
  91. term: MEDIUM Triangle 0.250 1.000 2.000
  92. term: HIGH Triangle 1.000 2.000 3.000
  93. term: CRITICAL Ramp 2.000 3.000
  94. InputVariable: goldPreasure
  95. description: Ratio between weekly army cost and gold income
  96. enabled: true
  97. range: 0.000 1.000
  98. lock-range: false
  99. term: LOW Ramp 0.300 0.000
  100. term: HIGH Discrete 0.100 0.000 0.250 0.200 0.300 0.300 0.400 0.700 1.000 1.000
  101. InputVariable: goldCost
  102. description: Action cost in gold
  103. enabled: true
  104. range: 0.000 1.000
  105. lock-range: false
  106. term: NONE Ramp 0.050 0.000
  107. term: MEDIUM Triangle 0.100 0.200 0.500
  108. term: LOW Triangle 0.000 0.100 0.200
  109. term: HIGH Discrete 0.200 0.000 0.300 0.600 0.500 0.900 1.000 1.000
  110. InputVariable: turn
  111. description: Turn of goal completion. Discrete variable to sharpen boundaries between turns. Turn distances does not care about turn boundaries and just count total movement points
  112. enabled: true
  113. range: 0.000 5.000
  114. lock-range: false
  115. term: NOW Ramp 1.000 0.999
  116. term: NEXT Trapezoid 1.000 1.000 1.990 2.000
  117. term: FUTURE Discrete 1.990 0.000 2.000 0.500 2.999 0.500 3.000 1.000
  118. InputVariable: fear
  119. description: Fear strength of enemy heroes
  120. enabled: true
  121. range: 0.000 2.000
  122. lock-range: false
  123. term: LOW Triangle 0.000 0.500 1.000
  124. term: MEDIUM Triangle 0.500 1.000 1.500
  125. term: HIGH Ramp 1.000 1.800
  126. InputVariable: armyGrowth
  127. enabled: true
  128. range: 0.000 20000.000
  129. lock-range: false
  130. term: NONE Ramp 100.000 0.000
  131. term: SMALL Triangle 0.000 1000.000 3000.000
  132. term: MEDIUM Triangle 1000.000 3000.000 8000.000
  133. term: BIG Triangle 3000.000 8000.000 20000.000
  134. term: HUGE Ramp 8000.000 20000.000
  135. OutputVariable: Value
  136. enabled: true
  137. range: -1.500 2.500
  138. lock-range: false
  139. aggregation: AlgebraicSum
  140. defuzzifier: Centroid 100
  141. default: 0.500
  142. lock-previous: false
  143. term: WORST Binary -1.000 -inf 0.700
  144. term: BAD Rectangle -1.000 -0.700 0.500
  145. term: BASE Rectangle -0.200 0.200 0.350
  146. term: MEDIUM Rectangle 0.910 1.090 0.500
  147. term: SMALL Rectangle 0.960 1.040 0.600
  148. term: BITHIGH Rectangle 0.850 1.150 0.400
  149. term: HIGH Rectangle 0.750 1.250 0.400
  150. term: HIGHEST Rectangle 0.500 1.500 0.350
  151. term: CRITICAL Ramp 0.500 2.000 0.500
  152. RuleBlock: basic
  153. enabled: true
  154. conjunction: AlgebraicProduct
  155. disjunction: AlgebraicSum
  156. implication: AlgebraicProduct
  157. activation: General
  158. rule: if heroRole is MAIN then Value is BASE
  159. rule: if heroRole is SCOUT then Value is BASE
  160. rule: if heroRole is MAIN and armyGrowth is HUGE and fear is not HIGH then Value is HIGH
  161. rule: if heroRole is MAIN and armyGrowth is BIG and mainTurnDistance is LOW then Value is HIGH
  162. rule: if heroRole is MAIN and armyGrowth is BIG and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
  163. rule: if heroRole is MAIN and armyGrowth is BIG and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
  164. rule: if armyLoss is ALL then Value is WORST
  165. rule: if turn is not NOW then Value is BAD with 0.1
  166. rule: if closestHeroRatio is LOWEST and heroRole is SCOUT then Value is WORST
  167. rule: if closestHeroRatio is LOW and heroRole is SCOUT then Value is BAD
  168. rule: if closestHeroRatio is LOWEST and heroRole is MAIN then Value is BAD
  169. rule: if heroRole is SCOUT and turn is NOW and mainTurnDistance is LONG then Value is WORST
  170. rule: if heroRole is SCOUT and turn is NOW and mainTurnDistance is MEDIUM then Value is BAD
  171. rule: if heroRole is SCOUT and turn is NEXT and mainTurnDistance is LONG then Value is BAD
  172. rule: if heroRole is SCOUT and turn is NOW and scoutTurnDistance is LONG then Value is BAD
  173. rule: if heroRole is SCOUT and fear is HIGH then Value is BAD with 0.8
  174. rule: if heroRole is SCOUT and fear is MEDIUM then Value is BAD with 0.5
  175. rule: if heroRole is MAIN and fear is HIGH then Value is BAD with 0.5
  176. rule: if heroRole is MAIN and fear is MEDIUM then Value is BAD with 0.2
  177. RuleBlock: strategicalValue
  178. enabled: true
  179. conjunction: AlgebraicProduct
  180. disjunction: NormalizedSum
  181. implication: AlgebraicProduct
  182. activation: General
  183. rule: if heroRole is MAIN and strategicalValue is HIGH and turn is NOW then Value is HIGHEST
  184. rule: if heroRole is MAIN and strategicalValue is HIGH and turn is not NOW and mainTurnDistance is LOW and fear is not HIGH then Value is HIGHEST
  185. rule: if heroRole is MAIN and strategicalValue is HIGH and mainTurnDistance is MEDIUM and fear is not HIGH then Value is HIGHEST with 0.5
  186. rule: if heroRole is MAIN and strategicalValue is HIGH and mainTurnDistance is LONG and fear is not HIGH then Value is HIGH
  187. rule: if heroRole is MAIN and strategicalValue is MEDIUM and mainTurnDistance is LOW then Value is HIGH
  188. rule: if heroRole is MAIN and strategicalValue is MEDIUM and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
  189. rule: if heroRole is MAIN and strategicalValue is MEDIUM and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
  190. rule: if heroRole is MAIN and strategicalValue is LOW and mainTurnDistance is LOW and fear is not HIGH then Value is MEDIUM
  191. rule: if heroRole is MAIN and strategicalValue is LOW and mainTurnDistance is MEDIUM and fear is not HIGH then Value is SMALL
  192. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is not NONE and turn is NOW then Value is HIGH
  193. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is not NONE and turn is not NOW and scoutTurnDistance is LOW and fear is not HIGH then Value is HIGH
  194. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is not NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is HIGH with 0.5
  195. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is not NONE and scoutTurnDistance is LONG and fear is not HIGH then Value is BITHIGH
  196. rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is not NONE and scoutTurnDistance is LOW then Value is BITHIGH
  197. rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is not NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is MEDIUM
  198. rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is not NONE and scoutTurnDistance is LONG and fear is not HIGH then Value is SMALL
  199. rule: if heroRole is SCOUT and strategicalValue is LOW and danger is not NONE and scoutTurnDistance is LOW and fear is not HIGH then Value is SMALL
  200. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is NONE and turn is NOW then Value is HIGHEST
  201. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is NONE and turn is not NOW and scoutTurnDistance is LOW and fear is not HIGH then Value is HIGHEST
  202. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is HIGHEST with 0.5
  203. rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is NONE and scoutTurnDistance is LONG and fear is not HIGH then Value is HIGH
  204. rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is NONE and scoutTurnDistance is LOW then Value is HIGH
  205. rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
  206. rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is NONE and scoutTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
  207. rule: if heroRole is SCOUT and strategicalValue is LOW and danger is NONE and scoutTurnDistance is LOW and fear is not HIGH then Value is MEDIUM
  208. rule: if heroRole is SCOUT and strategicalValue is LOW and danger is NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is SMALL
  209. rule: if armyLoss is HIGH and strategicalValue is LOW then Value is BAD
  210. rule: if armyLoss is HIGH and strategicalValue is MEDIUM then Value is BAD with 0.7
  211. rule: if strategicalValue is CRITICAL and heroRole is MAIN then Value is CRITICAL
  212. rule: if strategicalValue is CRITICAL and heroRole is SCOUT then Value is CRITICAL with 0.7
  213. RuleBlock: armyReward
  214. enabled: true
  215. conjunction: AlgebraicProduct
  216. disjunction: AlgebraicSum
  217. implication: AlgebraicProduct
  218. activation: General
  219. rule: if heroRole is MAIN and armyReward is HIGH and mainTurnDistance is LOW and fear is not HIGH then Value is HIGHEST
  220. rule: if heroRole is MAIN and armyReward is HIGH and mainTurnDistance is MEDIUM and fear is not HIGH then Value is HIGH
  221. rule: if heroRole is MAIN and armyReward is HIGH and mainTurnDistance is LONG and fear is not HIGH then Value is BITHIGH
  222. rule: if heroRole is MAIN and armyReward is MEDIUM and mainTurnDistance is LOW then Value is HIGH
  223. rule: if heroRole is MAIN and armyReward is MEDIUM and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
  224. rule: if heroRole is MAIN and armyReward is MEDIUM and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
  225. rule: if heroRole is MAIN and armyReward is LOW and mainTurnDistance is LOW and fear is not HIGH then Value is MEDIUM
  226. rule: if heroRole is MAIN and armyReward is LOW and mainTurnDistance is MEDIUM and fear is not HIGH then Value is SMALL
  227. rule: if heroRole is SCOUT and armyReward is HIGH and danger is NONE and scoutTurnDistance is LOW and fear is not HIGH then Value is HIGH
  228. rule: if heroRole is SCOUT and armyReward is HIGH and danger is NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is HIGH with 0.7
  229. rule: if heroRole is SCOUT and armyReward is HIGH and danger is NONE and scoutTurnDistance is LONG and fear is not HIGH then Value is BITHIGH
  230. rule: if heroRole is SCOUT and armyReward is MEDIUM and danger is NONE and scoutTurnDistance is LOW then Value is HIGH with 0.7
  231. rule: if heroRole is SCOUT and armyReward is MEDIUM and danger is NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
  232. rule: if heroRole is SCOUT and armyReward is MEDIUM and danger is NONE and scoutTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
  233. rule: if heroRole is SCOUT and armyReward is LOW and danger is NONE and scoutTurnDistance is LOW and fear is not HIGH then Value is MEDIUM
  234. rule: if heroRole is SCOUT and armyReward is LOW and danger is NONE and scoutTurnDistance is MEDIUM and fear is not HIGH then Value is SMALL
  235. RuleBlock: gold
  236. enabled: true
  237. conjunction: AlgebraicProduct
  238. disjunction: AlgebraicSum
  239. implication: AlgebraicProduct
  240. activation: General
  241. rule: if goldReward is HUGE and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is HIGHEST
  242. rule: if goldReward is HUGE and goldPreasure is HIGH and heroRole is SCOUT and danger is not NONE and armyLoss is LOW then Value is BITHIGH
  243. rule: if goldReward is HUGE and heroRole is MAIN and danger is not NONE and armyLoss is LOW then Value is HIGHEST
  244. rule: if goldReward is HUGE and goldPreasure is HIGH and heroRole is MAIN and danger is NONE then Value is HIGH
  245. rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is HIGH
  246. rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is SCOUT and danger is not NONE then Value is MEDIUM
  247. rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is MAIN and danger is not NONE and armyLoss is LOW then Value is HIGH
  248. rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is MAIN and danger is NONE then Value is MEDIUM
  249. rule: if goldReward is MEDIUM and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is BITHIGH
  250. rule: if goldReward is MEDIUM and goldPreasure is HIGH and heroRole is SCOUT and danger is not NONE then Value is SMALL
  251. rule: if goldReward is MEDIUM and goldPreasure is HIGH and heroRole is MAIN and danger is not NONE and armyLoss is LOW then Value is BITHIGH
  252. rule: if goldReward is SMALL and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is MEDIUM
  253. rule: if goldReward is SMALL and goldPreasure is HIGH and heroRole is MAIN and danger is not NONE and armyLoss is LOW then Value is SMALL
  254. rule: if goldReward is LOWEST then Value is SMALL with 0.1
  255. rule: if goldReward is SMALL then Value is SMALL with 0.2
  256. rule: if goldReward is MEDIUM then Value is SMALL with 0.5
  257. rule: if goldReward is BIG then Value is SMALL
  258. rule: if goldReward is HUGE then Value is BITHIGH
  259. RuleBlock: skill reward
  260. enabled: true
  261. conjunction: AlgebraicProduct
  262. disjunction: AlgebraicSum
  263. implication: AlgebraicProduct
  264. activation: General
  265. rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is LOWEST and fear is not HIGH then Value is HIGH
  266. rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is LOWEST and fear is not HIGH then Value is HIGHEST
  267. rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is LOWEST and fear is not HIGH then Value is HIGHEST
  268. rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is LOW and fear is not HIGH then Value is BITHIGH
  269. rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is LOW and fear is not HIGH then Value is HIGH
  270. rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is LOW and fear is not HIGH then Value is HIGHEST
  271. rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is MEDIUM and fear is not HIGH then Value is MEDIUM
  272. rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
  273. rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is MEDIUM and fear is not HIGH then Value is HIGH
  274. rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is LONG and fear is not HIGH then Value is SMALL
  275. rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
  276. rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is LONG and fear is not HIGH then Value is BITHIGH