Скрипт на зависимость стоимости апгрейда от отношений с фракцией юнита готов и протестирован.
("game_get_upgrade_cost",
[
(store_script_param_1, ":troop_id"),
(store_character_level, ":troop_level", ":troop_id"),
(store_troop_faction, ":troop_faction", ":troop_id"),
(store_relation,":rel", ":troop_faction","fac_player_faction"),
(try_begin),
(is_between, ":troop_level", 0, 6),
(le, ":rel", 6),
(assign, reg0, 100),
(else_try),
(is_between, ":troop_level", 0, 6),
(assign, reg0, 10),
(else_try),
(is_between, ":troop_level", 6, 11),
(le, ":rel", 11),
(assign, reg0, 200),
(else_try),
(is_between, ":troop_level", 6, 11),
(assign, reg0, 20),
(else_try),
(is_between, ":troop_level", 11, 16),
(le, ":rel", 16),
(assign, reg0, 400),
(else_try),
(is_between, ":troop_level", 11, 16),
(assign, reg0, 40),
(else_try),
(is_between, ":troop_level", 16, 21),
(le, ":rel", 21),
(assign, reg0, 80),
(else_try),
(is_between, ":troop_level", 16, 21),
(assign, reg0, 800),
(else_try),
(is_between, ":troop_level", 21, 26),
(le, ":rel", 26),
(assign, reg0, 1200),
(else_try),
(is_between, ":troop_level", 21, 26),
(assign, reg0, 120),
(else_try),
(is_between, ":troop_level", 26, 31),
(le, ":rel", 31),
(assign, reg0, 1600),
(else_try),
(is_between, ":troop_level", 26, 31),
(assign, reg0, 160),
(else_try),
(is_between, ":troop_level", 31, 36),
(le, ":rel", 36),
(assign, reg0, 2000),
(else_try),
(is_between, ":troop_level", 31, 36),
(assign, reg0, 200),
(else_try),
(is_between, ":troop_level", 36, 41),
(le, ":rel", 41),
(assign, reg0, 2500),
(else_try),
(is_between, ":troop_level", 36, 41),
(assign, reg0, 250),
(else_try),
(is_between, ":troop_level", 41, 46),
(le, ":rel", 46),
(assign, reg0, 3000),
(is_between, ":troop_level", 41, 46),
(assign, reg0, 300),
(else_try),
(is_between, ":troop_level", 46, 51),
(le, ":rel", 51),
(assign, reg0, 3500),
(else_try),
(is_between, ":troop_level", 46, 51),
(assign, reg0, 350),
(else_try),
(assign, reg0, 400),
(try_end),
(set_trigger_result, reg0),
]),