| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- Engine: visit tile
- description: visit tile priority
- InputVariable: mainTurnDistance
- description: distance to tile in turns
- enabled: true
- range: 0.000 10.000
- lock-range: true
- term: LOWEST Ramp 0.400 0.000
- term: LOW Discrete 0.000 1.000 0.500 0.800 0.800 0.300 2.000 0.000
- term: MEDIUM Discrete 0.000 0.000 0.500 0.200 0.800 0.700 2.000 1.000 6.000 0.000
- term: LONG Discrete 2.000 0.000 6.000 1.000 10.000 0.800
- InputVariable: scoutTurnDistance
- description: distance to tile in turns
- enabled: true
- range: 0.000 10.000
- lock-range: true
- term: LOWEST Ramp 0.250 0.000
- term: LOW Discrete 0.000 1.000 0.500 0.800 1.000 0.000
- term: MEDIUM Discrete 0.000 0.000 0.500 0.200 1.000 1.000 2.500 0.300 4.000 0.000
- term: LONG Discrete 1.000 0.000 1.500 0.200 3.000 0.800 10.000 1.000
- InputVariable: goldReward
- description: estimated amount of gold received
- enabled: true
- range: 0.000 5000.000
- lock-range: true
- term: LOWEST Triangle 0.000 100.000 200.000
- term: SMALL Triangle 100.000 200.000 400.000
- term: MEDIUM Triangle 200.000 400.000 1000.000
- term: BIG Triangle 400.000 1000.000 5000.000
- term: HUGE Ramp 1000.000 5000.000
- InputVariable: armyReward
- enabled: true
- range: 0.000 10000.000
- lock-range: false
- term: NONE Ramp 100.000 0.000
- term: LOW Triangle 0.000 700.000 3000.000
- term: HIGH Ramp 3000.000 10000.000
- term: MEDIUM Triangle 700.000 3000.000 8000.000
- InputVariable: armyLoss
- enabled: true
- range: 0.000 1.000
- lock-range: false
- term: LOW Ramp 0.200 0.000
- term: MEDIUM Triangle 0.000 0.200 0.500
- term: HIGH Ramp 0.200 0.500
- term: ALL Ramp 0.700 1.000
- InputVariable: heroRole
- enabled: true
- range: -0.100 1.100
- lock-range: false
- term: SCOUT Rectangle -0.500 0.500
- term: MAIN Rectangle 0.500 1.500
- InputVariable: danger
- enabled: true
- range: 0.000 10000.000
- lock-range: false
- term: NONE Ramp 20.000 0.000
- term: LOW Triangle 50.000 1000.000 2000.000
- term: HIGH Ramp 2000.000 5000.000
- term: MEDIUM Triangle 1000.000 2000.000 5000.000
- InputVariable: skillReward
- enabled: true
- range: 0.000 10.000
- lock-range: false
- term: NONE Ramp 1.000 0.000
- term: LOW Triangle 0.000 1.000 3.000
- term: MEDIUM Triangle 1.000 3.000 5.000
- term: HIGH Discrete 3.000 0.000 5.000 0.800 10.000 1.000
- InputVariable: rewardType
- enabled: true
- range: 0.000 3.000
- lock-range: false
- term: SINGLE Rectangle 0.500 1.500
- term: MIXED Rectangle 1.500 2.500
- term: NONE Rectangle 0.000 0.500
- InputVariable: closestHeroRatio
- enabled: true
- range: 0.000 1.000
- lock-range: false
- term: LOW Discrete 0.000 1.000 0.500 0.800 0.700 0.200 1.000 0.000
- term: HIGH Discrete 0.500 0.000 0.700 0.600 1.000 1.000
- term: LOWEST Discrete 0.000 1.000 0.400 0.200 0.900 0.000
- InputVariable: strategicalValue
- description: Some abstract long term benefit non gold or army or skill
- enabled: true
- range: 0.000 3.000
- lock-range: false
- term: NONE Ramp 0.200 0.000
- term: LOWEST Triangle 0.000 0.010 0.250
- term: LOW Triangle 0.000 0.250 1.000
- term: MEDIUM Triangle 0.250 1.000 2.000
- term: HIGH Triangle 1.000 2.000 3.000
- term: CRITICAL Ramp 2.000 3.000
- InputVariable: goldPreasure
- description: Ratio between weekly army cost and gold income
- enabled: true
- range: 0.000 1.000
- lock-range: false
- term: LOW Ramp 0.300 0.000
- term: HIGH Discrete 0.100 0.000 0.250 0.200 0.300 0.300 0.400 0.700 1.000 1.000
- InputVariable: goldCost
- description: Action cost in gold
- enabled: true
- range: 0.000 1.000
- lock-range: false
- term: NONE Ramp 0.050 0.000
- term: MEDIUM Triangle 0.100 0.200 0.500
- term: LOW Triangle 0.000 0.100 0.200
- term: HIGH Discrete 0.200 0.000 0.300 0.600 0.500 0.900 1.000 1.000
- InputVariable: turn
- 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
- enabled: true
- range: 0.000 5.000
- lock-range: false
- term: NOW Ramp 1.000 0.999
- term: NEXT Trapezoid 1.000 1.000 1.990 2.000
- term: FUTURE Discrete 1.990 0.000 2.000 0.500 2.999 0.500 3.000 1.000
- InputVariable: fear
- description: Fear strength of enemy heroes
- enabled: true
- range: 0.000 2.000
- lock-range: false
- term: LOW Triangle 0.000 0.500 1.000
- term: MEDIUM Triangle 0.500 1.000 1.500
- term: HIGH Ramp 1.000 1.800
- InputVariable: armyGrowth
- enabled: true
- range: 0.000 20000.000
- lock-range: false
- term: NONE Ramp 100.000 0.000
- term: SMALL Triangle 0.000 1000.000 3000.000
- term: MEDIUM Triangle 1000.000 3000.000 8000.000
- term: BIG Triangle 3000.000 8000.000 20000.000
- term: HUGE Ramp 8000.000 20000.000
- OutputVariable: Value
- enabled: true
- range: -1.500 2.500
- lock-range: false
- aggregation: AlgebraicSum
- defuzzifier: Centroid 100
- default: 0.500
- lock-previous: false
- term: WORST Binary -1.000 -inf 0.700
- term: BAD Rectangle -1.000 -0.700 0.500
- term: BASE Rectangle -0.200 0.200 0.350
- term: MEDIUM Rectangle 0.910 1.090 0.500
- term: SMALL Rectangle 0.960 1.040 0.600
- term: BITHIGH Rectangle 0.850 1.150 0.400
- term: HIGH Rectangle 0.750 1.250 0.400
- term: HIGHEST Rectangle 0.500 1.500 0.350
- term: CRITICAL Ramp 0.500 2.000 0.500
- RuleBlock: basic
- enabled: true
- conjunction: AlgebraicProduct
- disjunction: AlgebraicSum
- implication: AlgebraicProduct
- activation: General
- rule: if heroRole is MAIN then Value is BASE
- rule: if heroRole is SCOUT then Value is BASE
- rule: if heroRole is MAIN and armyGrowth is HUGE and fear is not HIGH then Value is HIGH
- rule: if heroRole is MAIN and armyGrowth is BIG and mainTurnDistance is LOW then Value is HIGH
- rule: if heroRole is MAIN and armyGrowth is BIG and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
- rule: if heroRole is MAIN and armyGrowth is BIG and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
- rule: if armyLoss is ALL then Value is WORST
- rule: if turn is not NOW then Value is BAD with 0.1
- rule: if closestHeroRatio is LOWEST and heroRole is SCOUT then Value is WORST
- rule: if closestHeroRatio is LOW and heroRole is SCOUT then Value is BAD
- rule: if closestHeroRatio is LOWEST and heroRole is MAIN then Value is BAD
- rule: if heroRole is SCOUT and turn is NOW and mainTurnDistance is LONG then Value is WORST
- rule: if heroRole is SCOUT and turn is NOW and mainTurnDistance is MEDIUM then Value is BAD
- rule: if heroRole is SCOUT and turn is NEXT and mainTurnDistance is LONG then Value is BAD
- rule: if heroRole is SCOUT and turn is NOW and scoutTurnDistance is LONG then Value is BAD
- rule: if heroRole is SCOUT and fear is HIGH then Value is BAD with 0.8
- rule: if heroRole is SCOUT and fear is MEDIUM then Value is BAD with 0.5
- rule: if heroRole is MAIN and fear is HIGH then Value is BAD with 0.5
- rule: if heroRole is MAIN and fear is MEDIUM then Value is BAD with 0.2
- RuleBlock: strategicalValue
- enabled: true
- conjunction: AlgebraicProduct
- disjunction: NormalizedSum
- implication: AlgebraicProduct
- activation: General
- rule: if heroRole is MAIN and strategicalValue is HIGH and turn is NOW then Value is HIGHEST
- 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
- 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
- rule: if heroRole is MAIN and strategicalValue is HIGH and mainTurnDistance is LONG and fear is not HIGH then Value is HIGH
- rule: if heroRole is MAIN and strategicalValue is MEDIUM and mainTurnDistance is LOW then Value is HIGH
- rule: if heroRole is MAIN and strategicalValue is MEDIUM and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
- rule: if heroRole is MAIN and strategicalValue is MEDIUM and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
- rule: if heroRole is MAIN and strategicalValue is LOW and mainTurnDistance is LOW and fear is not HIGH then Value is MEDIUM
- rule: if heroRole is MAIN and strategicalValue is LOW and mainTurnDistance is MEDIUM and fear is not HIGH then Value is SMALL
- rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is not NONE and turn is NOW then Value is HIGH
- 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
- 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
- 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
- rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is not NONE and scoutTurnDistance is LOW then Value is BITHIGH
- 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
- 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
- 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
- rule: if heroRole is SCOUT and strategicalValue is HIGH and danger is NONE and turn is NOW then Value is HIGHEST
- 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
- 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
- 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
- rule: if heroRole is SCOUT and strategicalValue is MEDIUM and danger is NONE and scoutTurnDistance is LOW then Value is HIGH
- 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
- 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
- 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
- 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
- rule: if armyLoss is HIGH and strategicalValue is LOW then Value is BAD
- rule: if armyLoss is HIGH and strategicalValue is MEDIUM then Value is BAD with 0.7
- rule: if strategicalValue is CRITICAL and heroRole is MAIN then Value is CRITICAL
- rule: if strategicalValue is CRITICAL and heroRole is SCOUT then Value is CRITICAL with 0.7
- RuleBlock: armyReward
- enabled: true
- conjunction: AlgebraicProduct
- disjunction: AlgebraicSum
- implication: AlgebraicProduct
- activation: General
- rule: if heroRole is MAIN and armyReward is HIGH and mainTurnDistance is LOW and fear is not HIGH then Value is HIGHEST
- rule: if heroRole is MAIN and armyReward is HIGH and mainTurnDistance is MEDIUM and fear is not HIGH then Value is HIGH
- rule: if heroRole is MAIN and armyReward is HIGH and mainTurnDistance is LONG and fear is not HIGH then Value is BITHIGH
- rule: if heroRole is MAIN and armyReward is MEDIUM and mainTurnDistance is LOW then Value is HIGH
- rule: if heroRole is MAIN and armyReward is MEDIUM and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
- rule: if heroRole is MAIN and armyReward is MEDIUM and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
- rule: if heroRole is MAIN and armyReward is LOW and mainTurnDistance is LOW and fear is not HIGH then Value is MEDIUM
- rule: if heroRole is MAIN and armyReward is LOW and mainTurnDistance is MEDIUM and fear is not HIGH then Value is SMALL
- 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
- 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
- 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
- rule: if heroRole is SCOUT and armyReward is MEDIUM and danger is NONE and scoutTurnDistance is LOW then Value is HIGH with 0.7
- 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
- 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
- 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
- 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
- RuleBlock: gold
- enabled: true
- conjunction: AlgebraicProduct
- disjunction: AlgebraicSum
- implication: AlgebraicProduct
- activation: General
- rule: if goldReward is HUGE and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is HIGHEST
- 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
- rule: if goldReward is HUGE and heroRole is MAIN and danger is not NONE and armyLoss is LOW then Value is HIGHEST
- rule: if goldReward is HUGE and goldPreasure is HIGH and heroRole is MAIN and danger is NONE then Value is HIGH
- rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is HIGH
- rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is SCOUT and danger is not NONE then Value is MEDIUM
- 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
- rule: if goldReward is BIG and goldPreasure is HIGH and heroRole is MAIN and danger is NONE then Value is MEDIUM
- rule: if goldReward is MEDIUM and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is BITHIGH
- rule: if goldReward is MEDIUM and goldPreasure is HIGH and heroRole is SCOUT and danger is not NONE then Value is SMALL
- 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
- rule: if goldReward is SMALL and goldPreasure is HIGH and heroRole is SCOUT and danger is NONE then Value is MEDIUM
- 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
- rule: if goldReward is LOWEST then Value is SMALL with 0.1
- rule: if goldReward is SMALL then Value is SMALL with 0.2
- rule: if goldReward is MEDIUM then Value is SMALL with 0.5
- rule: if goldReward is BIG then Value is SMALL
- rule: if goldReward is HUGE then Value is BITHIGH
- RuleBlock: skill reward
- enabled: true
- conjunction: AlgebraicProduct
- disjunction: AlgebraicSum
- implication: AlgebraicProduct
- activation: General
- rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is LOWEST and fear is not HIGH then Value is HIGH
- rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is LOWEST and fear is not HIGH then Value is HIGHEST
- rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is LOWEST and fear is not HIGH then Value is HIGHEST
- rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is LOW and fear is not HIGH then Value is BITHIGH
- rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is LOW and fear is not HIGH then Value is HIGH
- rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is LOW and fear is not HIGH then Value is HIGHEST
- rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is MEDIUM and fear is not HIGH then Value is MEDIUM
- rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is MEDIUM and fear is not HIGH then Value is BITHIGH
- rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is MEDIUM and fear is not HIGH then Value is HIGH
- rule: if heroRole is MAIN and skillReward is LOW and mainTurnDistance is LONG and fear is not HIGH then Value is SMALL
- rule: if heroRole is MAIN and skillReward is MEDIUM and mainTurnDistance is LONG and fear is not HIGH then Value is MEDIUM
- rule: if heroRole is MAIN and skillReward is HIGH and mainTurnDistance is LONG and fear is not HIGH then Value is BITHIGH
|