6d95836d11
Empty Russian and Chinese locale files so English is used regardless of client language. Translate all CustomGameEventManager error messages, SendCustomMessage calls, and deck/card UI strings to English. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
901 lines
29 KiB
Lua
901 lines
29 KiB
Lua
local ____lualib = require("lualib_bundle")
|
|
local __TS__Number = ____lualib.__TS__Number
|
|
local __TS__ArrayFind = ____lualib.__TS__ArrayFind
|
|
local __TS__NumberIsFinite = ____lualib.__TS__NumberIsFinite
|
|
local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
|
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
local __TS__ArraySort = ____lualib.__TS__ArraySort
|
|
local ____exports = {}
|
|
local function cards1to13(self)
|
|
return {
|
|
{
|
|
id = 1,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
inherent = true,
|
|
deck_slots = 3,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {vampirism_bonus = {7, 9, 11}, damage_multiplier = {0.5, 1.25, 2}, max_health_penalty_pct = {25, 20, 15}}
|
|
},
|
|
{
|
|
id = 2,
|
|
inherent = true,
|
|
deck_slots = 3,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {speed_bonus = {45, 60, 75}, speed_limit = {0, 1100, 1350}, pass_through_units = {0, 0, 1}, attacktime = {0, 0, 50}}
|
|
},
|
|
{
|
|
id = 3,
|
|
quality = 1,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {damage_pct = {2.5, 3.5, 4.5}}
|
|
},
|
|
{
|
|
id = 4,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {card_bonus = {1, 2, 3}}
|
|
},
|
|
{
|
|
id = 5,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {card_bonus_pct = {1.15, 1.35, 1.67}}
|
|
},
|
|
{
|
|
id = 6,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
values = {card_show_count = {3}, min_card_choice = {4}, free_reroll_charges = {0, 2, 2}}
|
|
},
|
|
{
|
|
id = 7,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {daynight_bonus_pct = {35, 40, 45}}
|
|
},
|
|
{
|
|
id = 8,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {damage_bonus_health_decress = {2.5, 3.5, 4.5}, stack_health_threshold = {900, 1200, 1500}}
|
|
},
|
|
{
|
|
id = 9,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {greed_net_worth_per_stack = {100, 100, 100}, kill_gold_bonus_pct = {15, 20, 25}}
|
|
},
|
|
{
|
|
id = 10,
|
|
quality = 1,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {debuff_duration = {3.5, 4, 4.5}, incoming_damage_per_fired_stack_pct = {1, 1.35, 1.7}, max_incoming_damage_bonus_pct = {30, 45, 60}}
|
|
},
|
|
{
|
|
id = 11,
|
|
quality = 1,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {primary_attribute_bonus_per_level = {2, 3, 4}, universal_all_bonus_per_level = {1, 1.5, 2}}
|
|
},
|
|
{
|
|
id = 12,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {
|
|
scan_interval = {8, 6, 4.5},
|
|
scan_radius = {900, 1200, 1500},
|
|
mark_duration = {5, 7, 9},
|
|
bonus_damage_pct = {22, 30, 40},
|
|
on_kill_heal_pct = {6, 8, 10},
|
|
on_kill_mana = {35, 50, 70},
|
|
boss_penalty_pct = {50, 40, 30}
|
|
}
|
|
},
|
|
{
|
|
id = 13,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {fired_stacks_on_hit = {1, 2, 3}, explosion_chance_pct = {12, 18, 24}, explosion_radius = {175, 240, 300}, explosion_damage_per_stack = {3, 4.5, 6}}
|
|
},
|
|
{
|
|
id = 14,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {
|
|
proc_chance_pct = {18, 24, 30},
|
|
main_target_bonus_damage_pct = {25, 35, 45},
|
|
fired_stacks = {1, 2, 3},
|
|
ricochet_radius = {300, 420, 540},
|
|
ricochet_damage_pct = {60, 80, 100}
|
|
}
|
|
},
|
|
{
|
|
id = 15,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {base_crit_chance_pct = {15, 20, 25}, crit_multiplier_pct = {200, 240, 280}, crit_multiplier_bonus_pct_per_luck = {0.5, 1, 1.5}}
|
|
},
|
|
{
|
|
id = 16,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {max_stacks = {200, 260, 320}, spell_amp_per_stack_pct = {0.1, 0.15, 0.2}}
|
|
},
|
|
{
|
|
id = 17,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {min_health_pct_to_activate = {30}, health_cost_pct = {5}, curse_damage_pct_per_curse_stack = {10, 20, 30}}
|
|
},
|
|
{
|
|
id = 18,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {base_luck_bonus = {3, 5, 7}, luck_per_card_taken = {0.25, 0.5, 0.75}}
|
|
},
|
|
{
|
|
id = 19,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {ghost_step_chance_pct = {12, 18, 24}, ghost_step_duration = {2.5, 3.2, 4}, ghost_step_move_speed_pct = {15, 22, 30}, ghost_step_evasion_pct = {15, 22, 30}}
|
|
},
|
|
{
|
|
id = 20,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {gold_per_step = {100, 70, 40}, move_speed_pct_per_step = {0.25, 0.35, 0.45}, speed_limit = {10000, 12000, 14000}}
|
|
},
|
|
{
|
|
id = 21,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
inherent = false,
|
|
deck_slots = 4,
|
|
max_copies = 1,
|
|
values = {wave_pure_damage_base = {125, 170, 215}, wave_pure_damage_base_hand = {0.15, 0.25, 0.35}}
|
|
},
|
|
{
|
|
id = 22,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {morning_gold_base = {700, 700, 700}, morning_gold_decay_per_night = {100, 100, 100}, pickup_gold_pct = {0, 50, 50}, pre_night_gold_pct = {0, 0, 50}}
|
|
},
|
|
{
|
|
id = 23,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
deck_slots = 3,
|
|
max_copies = 1,
|
|
values = {gold_income_pct_per_minute = {2, 3.5, 5}, gold_tick_interval_sec = {60}, min_earned_gold_pct_of_dividend_required = {25}}
|
|
},
|
|
{
|
|
id = 24,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {gold_per_step = {100, 80, 60}, attack_damage_per_step = {1.5, 1.75, 2}, spell_amp_per_step_pct = {1.5, 1.75, 2}}
|
|
},
|
|
{
|
|
id = 25,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
inherent = true,
|
|
values = {mana_per_step = {50}, spell_amp_per_step_pct = {0.5, 0.75, 1}, mana_regen_per_step = {0.1, 0.15, 0.2}, max_mana_bonus_pct = {0, 0, 25}}
|
|
},
|
|
{
|
|
id = 26,
|
|
quality = 4,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 1,
|
|
values = {trigger_health_threshold = {100}, heal_pct_per_second = {10, 14, 18}, cooldown_seconds = {120, 100, 80}, invisibility_duration = {10, 12, 14}}
|
|
},
|
|
{
|
|
id = 27,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {mana_to_damage_pct = {1.5, 2, 2.5}}
|
|
},
|
|
{
|
|
id = 28,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {health_to_damage_pct = {1.5, 2, 2.5}}
|
|
},
|
|
{
|
|
id = 29,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {night_vampirism_pct = {10, 14, 18}, night_incoming_damage_reduce_pct = {5, 7, 9}}
|
|
},
|
|
{
|
|
id = 30,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {strength_per_level = {0.5, 1, 1.5}, agility_penalty_per_level = {1, 0.5, 0.25}, intellect_penalty_per_level = {1, 0.5, 0.25}}
|
|
},
|
|
{
|
|
id = 31,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {agility_per_level = {0.5, 1, 1.5}, strength_penalty_per_level = {1, 0.5, 0.25}, intellect_penalty_per_level = {1, 0.5, 0.25}}
|
|
},
|
|
{
|
|
id = 32,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {base_cooldown_reduction_pct = {6, 9, 11}, cooldown_loss_per_death_pct = {3}}
|
|
},
|
|
{
|
|
id = 33,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {mana_increase_pct = {15, 25, 35}}
|
|
},
|
|
{
|
|
id = 34,
|
|
quality = 3,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {heal_from_enemy_max_hp_pct = {15, 22, 30}, heal_from_attack_damage_pct = {100, 130, 160}}
|
|
},
|
|
{
|
|
id = 35,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {poison_duration = {1, 2, 3}, poison_tick_interval = {1, 0.8, 0.6}, damage_current_hp_pct = {5, 7, 9}, boss_damage_current_hp_pct = {1, 1.4, 1.8}}
|
|
},
|
|
{
|
|
id = 36,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {crystals_per_step = {2}, damage_pct_per_step = {1, 2, 3}, max_bonus_pct = {80, 160, 320}}
|
|
},
|
|
{
|
|
id = 37,
|
|
quality = 1,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {base_crystals = {10, 15, 20}, crystals_per_night = {5, 7, 9}}
|
|
},
|
|
{
|
|
id = 38,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
deck_slots = 5,
|
|
values = {multiplier = {1.25, 1.5, 1.75}}
|
|
},
|
|
{
|
|
id = 39,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {gold_per_crystal = {50, 75, 100}}
|
|
},
|
|
{
|
|
id = 40,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {gold_per_crystal = {75, 50, 25}}
|
|
},
|
|
{
|
|
id = 41,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
canupgrade = true,
|
|
max_copies = 2,
|
|
values = {pool_pairs = {1, 1, 2}}
|
|
},
|
|
{
|
|
id = 42,
|
|
quality = 2,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {exp_bonus_pct = {10, 15, 20}}
|
|
},
|
|
{
|
|
id = 43,
|
|
quality = 1,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {bat_reduction = {0.1, 0.15, 0.2}, projectile_speed_bonus = {0, 300, 0}, attack_anim_reduction_pct = {0, 0, 33}}
|
|
},
|
|
{
|
|
id = 44,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {bonus_move_speed_pct = {5, 7, 9}, bonus_evasion_pct = {5, 7, 9}, luck_bonus_pct_per_point = {0.5, 0.7, 0.9}, max_evasion_pct = {35, 45, 55}}
|
|
},
|
|
{
|
|
id = 45,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
inherent = true,
|
|
price_free = 20800,
|
|
deck_slots = 2,
|
|
max_copies = 1,
|
|
values = {max_bonus_pct = {30, 40, 50}, decay_pct_per_minute = {5}}
|
|
},
|
|
{
|
|
id = 46,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {damage_to_mana_pct = {20, 25, 30}}
|
|
},
|
|
{
|
|
id = 47,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
canupgrade = true,
|
|
max_copies = 1,
|
|
inherent = true,
|
|
deck_slots = 4,
|
|
values = {exp_bonus_pct = {35, 50, 65}, exp_boost_duration_sec = {180, 180, 180}}
|
|
},
|
|
{
|
|
id = 48,
|
|
quality = 3,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 1,
|
|
values = {trigger_hp_pct = {25}, shield_heal_max_hp_pct = {30, 45, 60}, insurance_duration = {3.5, 4.5, 5.5}, incoming_damage_reduction_pct = {100}}
|
|
},
|
|
{
|
|
id = 49,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
canupgrade = false,
|
|
max_copies = 1,
|
|
values = {}
|
|
},
|
|
{
|
|
id = 50,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
canupgrade = false,
|
|
max_copies = 1,
|
|
values = {}
|
|
},
|
|
{
|
|
id = 51,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {gold_from_damage_taken_pct = {11, 16, 21}, incoming_damage_base_pct = {25, 20, 15}, incoming_damage_per_100_taken = {0.1, 0.1, 0.1}, morning_gold_cap = {250, 400, 550}}
|
|
},
|
|
{
|
|
id = 52,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {night_duration_reduce_sec = {15, 20, 25}, enemy_stats_bonus_pct = {15, 20, 25}}
|
|
},
|
|
{
|
|
id = 53,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {trigger_card_id = {3, 3, 3}, extra_card_choices = {1, 2, 3}}
|
|
},
|
|
{
|
|
id = 54,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {intellect_per_level = {0.5, 1, 1.5}, strength_penalty_per_level = {1, 0.5, 0.25}, agility_penalty_per_level = {1, 0.5, 0.25}}
|
|
},
|
|
{
|
|
id = 55,
|
|
quality = 1,
|
|
defaultCard = true,
|
|
price_free = 0,
|
|
max_copies = 2,
|
|
values = {max_health_bonus_pct = {25, 50, 75}}
|
|
},
|
|
{
|
|
id = 56,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
obtainable = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {creep_reflect_pct = {15, 22, 30}}
|
|
},
|
|
{
|
|
id = 57,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
canupgrade = false,
|
|
max_copies = 1,
|
|
deck_slots = 5,
|
|
values = {}
|
|
},
|
|
{
|
|
id = 58,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
inherent = true,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
deck_slots = 2,
|
|
values = {extra_selections_on_start = {3, 4, 5}, cards_per_selection = {3, 4, 5}}
|
|
},
|
|
{
|
|
id = 59,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
obtainable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 62,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {xp_reward = {500, 800, 1200}}
|
|
},
|
|
{
|
|
id = 60,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
obtainable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 62,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {gold_reward = {250, 500, 750}}
|
|
},
|
|
{
|
|
id = 61,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
obtainable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 62,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {crystals_reward = {12, 18, 24}}
|
|
},
|
|
{
|
|
id = 62,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
canupgrade = false,
|
|
max_copies = 1,
|
|
values = {}
|
|
},
|
|
{
|
|
id = 63,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {bonus_card_choices = {3, 4, 5}}
|
|
},
|
|
{
|
|
id = 64,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {hp_threshold_pct = {20, 25, 30}, crit_multiplier_pct = {200, 250, 300}}
|
|
},
|
|
{
|
|
id = 65,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {target_hp_full_pct = {100, 100, 100}, crit_multiplier_pct = {300, 450, 500}}
|
|
},
|
|
{
|
|
id = 66,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
values = {bonus_from_health_pct = {50, 65, 80}, bonus_from_mana_pct = {50, 65, 80}}
|
|
},
|
|
{
|
|
id = 67,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
inherent = true,
|
|
deck_slots = 3,
|
|
values = {
|
|
hp_per_strength = {0.1},
|
|
outgoing_pct_per_strength = {0.05},
|
|
proc_chance_pct = {40, 45, 50},
|
|
proc_cooldown_sec = {3},
|
|
bonus_damage_from_max_hp_pct = {60, 80, 100}
|
|
}
|
|
},
|
|
{
|
|
id = 68,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
canupgrade = false,
|
|
values = {curse_stacks = {1, 2, 3}, cursed_offer_slots = {3, 3, 3}}
|
|
},
|
|
{
|
|
id = 69,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {outgoing_damage_per_curse_stack_pct = {1, 2.5, 4}, other_cards_effectiveness_pct = {50, 35, 20}}
|
|
},
|
|
{
|
|
id = 70,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {incoming_reduction_per_rage_pct = {0.1, 0.15, 0.2}}
|
|
},
|
|
{
|
|
id = 71,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {max_health_pct_per_curse_stack = {1}, self_damage_max_hp_pct_per_sec = {2.5, 2, 1.5}}
|
|
},
|
|
{
|
|
id = 72,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {cooldown_reduction_pct = {15, 25, 35}}
|
|
},
|
|
{
|
|
id = 73,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
deck_slots = 3,
|
|
max_copies = 1,
|
|
values = {deferred_damage_pct = {30, 40, 50}, deferred_dot_duration_sec = {3, 3.5, 4}}
|
|
},
|
|
{
|
|
id = 74,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
inherent = true,
|
|
deck_slots = 3,
|
|
values = {crit_mult_bonus_pct = {30, 60, 90}, enemy_armor_reduction_pct = {20, 25, 30}, aura_radius = {600, 900, 1200}}
|
|
},
|
|
{
|
|
id = 75,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
values = {
|
|
mana_cost_pct = {15},
|
|
base_damage = {90, 120, 150},
|
|
damage_from_max_mana_pct = {5, 7, 11},
|
|
blast_radius = {175},
|
|
search_radius = {1000},
|
|
blast_interval_sec = {5, 4, 3},
|
|
blast_delay_sec = {1.2, 1, 0.8}
|
|
}
|
|
},
|
|
{
|
|
id = 76,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {target_count = {1, 2, 3}, radius = {250, 300, 350}, mana_damage_pct = {20, 40, 60}}
|
|
},
|
|
{
|
|
id = 77,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
values = {damage_reduction_pct = {60, 70, 80}, mana_per_mitigated_damage = {1, 0.8, 0.67}}
|
|
},
|
|
{
|
|
id = 78,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
max_copies = 1,
|
|
values = {stack_duration_sec = {10, 12, 14}, max_mana_pct_per_stack = {0.5, 1, 1.5}}
|
|
},
|
|
{
|
|
id = 79,
|
|
quality = 3,
|
|
deck_slots = 4,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
canupgrade = false,
|
|
max_copies = 2,
|
|
values = {}
|
|
},
|
|
{
|
|
id = 80,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
inherent = true,
|
|
deck_slots = 3,
|
|
price_free = 83200,
|
|
max_copies = 1,
|
|
values = {outgoing_damage_per_curse_stack_pct = {5, 7, 9}}
|
|
},
|
|
{
|
|
id = 81,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 80,
|
|
price_free = 0,
|
|
max_copies = 1,
|
|
values = {outgoing_damage_pct = {15, 15, 15}, spell_amp_pct = {15, 15, 15}}
|
|
},
|
|
{
|
|
id = 82,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 80,
|
|
price_free = 0,
|
|
max_copies = 1,
|
|
values = {max_health_pct = {20, 20, 20}, max_mana_pct = {20, 20, 20}}
|
|
},
|
|
{
|
|
id = 83,
|
|
quality = 5,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 80,
|
|
price_free = 0,
|
|
max_copies = 1,
|
|
values = {model_scale_pct = {20, 20, 20}, physical_vampirism_pct = {10, 10, 10}, magical_vampirism_pct = {10, 10, 10}}
|
|
},
|
|
{
|
|
id = 84,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
obtainable = false,
|
|
canupgrade = true,
|
|
deck_builder_non_deckable = true,
|
|
deck_builder_unlock_card_id = 33,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
values = {spell_amp_from_mana_pct = {15, 20, 25}, spell_amp_mana_scale = 0.1}
|
|
},
|
|
{
|
|
id = 85,
|
|
quality = 3,
|
|
defaultCard = false,
|
|
price_free = 10400,
|
|
max_copies = 2,
|
|
values = {bonus_card_choices = {1, 2, 3}, slag_pool_copies = {2}}
|
|
},
|
|
{
|
|
id = 86,
|
|
quality = 1,
|
|
defaultCard = false,
|
|
purchasable = false,
|
|
obtainable = false,
|
|
canupgrade = false,
|
|
deck_builder_non_deckable = true,
|
|
price_free = 0,
|
|
max_copies = 0,
|
|
values = {}
|
|
},
|
|
{
|
|
id = 87,
|
|
quality = 4,
|
|
defaultCard = false,
|
|
price_free = 20800,
|
|
deck_slots = 5,
|
|
max_copies = 1,
|
|
canupgrade = false,
|
|
values = {attr_pct_per_slag = {1.25, 1.5, 1.75}}
|
|
},
|
|
{
|
|
id = 88,
|
|
quality = 2,
|
|
defaultCard = false,
|
|
price_free = 5200,
|
|
max_copies = 2,
|
|
canupgrade = false,
|
|
deck_slots = 2,
|
|
values = {free_rerolls_on_slag = {1}}
|
|
}
|
|
}
|
|
end
|
|
local function buildAll(self)
|
|
return {unpack(cards1to13(nil))}
|
|
end
|
|
____exports.ALL_CARD_CATALOG_DEFS = buildAll(nil)
|
|
--- Лимит слотов в deck builder и при нормализации колоды на сервере.
|
|
____exports.DECK_BUILDER_SLOT_CAPACITY = 30
|
|
____exports.FROSTMOURNE_CARD_ID = 80
|
|
____exports.FROSTMOURNE_SHARD_CARD_IDS = {81, 82, 83}
|
|
--- Карта желания и её дары (59–61): только через выбор, не в колоду.
|
|
____exports.WISH_CARD_ID = 62
|
|
____exports.WISH_GIFT_CARD_IDS = {59, 60, 61}
|
|
____exports.MANA_SURGE_CARD_ID = 33
|
|
____exports.SMALL_MANA_SURGE_CARD_ID = 84
|
|
____exports.FISHING_CARD_ID = 85
|
|
--- Пустая карта-шлак в пуле (только через «Рыбаловство»).
|
|
____exports.SLAG_CARD_ID = 86
|
|
function ____exports.isWishGiftCardId(self, cardId)
|
|
local id = math.floor(__TS__Number(cardId))
|
|
for ____, giftId in ipairs(____exports.WISH_GIFT_CARD_IDS) do
|
|
if giftId == id then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
function ____exports.getDeckBuilderUnlockRequiredMessage(self, unlockCardId)
|
|
local id = math.floor(__TS__Number(unlockCardId))
|
|
if id == ____exports.FROSTMOURNE_CARD_ID then
|
|
return "Requires purchased Frostmourne card"
|
|
end
|
|
if id == ____exports.WISH_CARD_ID then
|
|
return "Requires purchased Wish card"
|
|
end
|
|
if id == ____exports.MANA_SURGE_CARD_ID then
|
|
return "Requires purchased Mana Surge card"
|
|
end
|
|
return "Requires purchased parent card"
|
|
end
|
|
function ____exports.isFrostmourneShardCardId(self, cardId)
|
|
local id = math.floor(__TS__Number(cardId))
|
|
for ____, shardId in ipairs(____exports.FROSTMOURNE_SHARD_CARD_IDS) do
|
|
if shardId == id then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
--- Сколько слотов колоды занимает карта по каталогу (по умолчанию 1).
|
|
function ____exports.getCardDeckSlotsFromCatalog(self, cardId)
|
|
return 1
|
|
end
|
|
____exports.DEFAULT_DECK_CARD_IDS = __TS__ArraySort(
|
|
__TS__ArrayMap(
|
|
__TS__ArrayFilter(
|
|
____exports.ALL_CARD_CATALOG_DEFS,
|
|
function(____, c) return c.defaultCard end
|
|
),
|
|
function(____, c) return c.id end
|
|
),
|
|
function(____, a, b) return a - b end
|
|
)
|
|
--- Строки для витрины магазина (только нестартовые карты).
|
|
function ____exports.getCardShopRows(self)
|
|
return __TS__ArrayMap(
|
|
__TS__ArrayFilter(
|
|
____exports.ALL_CARD_CATALOG_DEFS,
|
|
function(____, c) return not c.defaultCard end
|
|
),
|
|
function(____, c) return {id = c.id, price_free = c.price_free, quality = c.quality} end
|
|
)
|
|
end
|
|
--- Компенсация дубликата БП по id вида card_data_N.
|
|
function ____exports.buildCardPurchaseCompensationMap(self)
|
|
local r = {}
|
|
for ____, c in ipairs(____exports.ALL_CARD_CATALOG_DEFS) do
|
|
if not c.defaultCard and c.price_free > 0 then
|
|
r["card_data_" .. tostring(c.id)] = {price_free = c.price_free}
|
|
end
|
|
end
|
|
return r
|
|
end
|
|
return ____exports
|