Этот модуль зависит от следующих других модулей: |
Это файл конфигурации для Модуля:Item2. Этот файл можно отредактировать, чтобы облегчить перевод/перенос модуля на другие вики-страницы.
Вышеприведенная документация извлекается из Модуль:Item2/config/doc.
Редакторы могут экспериментировать в sandbox этого модуля и в testcases страницах.
Подстраницы этого модуля.
Редакторы могут экспериментировать в sandbox этого модуля и в testcases страницах.
Подстраницы этого модуля.
-------------------------------------------------------------------------------
--
-- Configuration for Module:Item2 and submodules
--
-------------------------------------------------------------------------------
local m_util = require('Module:Util')
local cfg = {}
-- ----------------------------------------------------------------------------
-- i18n
-- ----------------------------------------------------------------------------
cfg.i18n = {}
--
-- Main
--
cfg.i18n.inventory_icon = 'File:%s inventory icon.png'
cfg.i18n.status_icon = 'File:%s status icon.png'
cfg.i18n.divination_card_art = 'File:%s card art.png'
cfg.i18n.gem_tag_category = '[[:Категория:%s (тег камня)|%s]]'
cfg.i18n.misc = {
-- used to identify betrayal map series to avoid showing area infobox.
betrayal = 'Предательство',
}
cfg.i18n.categories = {
-- maintenance cats
improper_modifiers = 'Предметы с неправильными модификаторами',
missing_release_version = 'Предметы без параметра "release_version"',
broken_upgraded_from_reference = 'Предметы со сломанными ссылками предметов в параметрах "upgraded_from"',
duplicate_upgraded_from_reference = 'Предметы с повторяющимися наборами в параметрах "upgraded_from"',
duplicate_query_area_ids = 'Предметы с повторяющимися идентификаторами областей из запросов',
base_items = 'Базовые предметы',
derived_items = 'Производные предметы',
sell_prices_override = 'Предметы с изменёнными ценами продаж',
-- regular cats
alternate_artwork = 'Предметы с альтернативным внешним видом',
-- misc
gem_tag_affix = '%s (тег камня)',
unique_affix = 'Уникальные %s',
prophecies = 'Пророчества',
blight_item = 'Масла',
talismans = 'Талисманы',
essences = 'Сущности',
}
cfg.i18n.stat_skip_patterns = {
maps = {
'%d+%% увеличение количества найденных предметов в этой области',
'%d+%% повышение редкости найденных предметов в этой области',
'%+%d+%% увеличение размера групп монстров',
-- ranges
'%(%d+%-%d+%)%% увеличение количества найденных предметов в этой области',
'%(%d+%-%d+%)%% повышение редкости найденных предметов в этой области',
'%+%(%d+%-%d+%)%% увеличение размера групп монстров',
},
jewels = {
'Limited to %d+ %(Hidden%)',
'Jewel has a radius of %d+ %(Hidden%)',
},
}
cfg.i18n.help_text_defaults = {
active_gem = 'Для получения умения выберите предмет и поместите камень в гнездо соответствующего цвета. Щелкните ПКМ, чтобы вынуть камень из гнезда.',
support_gem = 'Это камень поддержки. Он дает преимущества не герою, а камню умения в связанных гнездах. Вставьте камень поддержки в гнездо, соединенное с гнездом усиливаемого камня активного умения. Щелкните ПКМ, чтобы вынуть камень из гнезда.',
jewel = 'Поместите самоцвет в доступное гнездо на дереве пассивных умений. Чтобы вынуть самоцвет, щёлкните по нему правой кнопкой мыши.',
}
-- Used by the item info box
cfg.i18n.tooltips = {
corrupted = m_util.html.poe_color('corrupted', 'Осквернено'),
support_icon = 'Изображение: %s',
radius = 'Радиус: %s',
mana_cost = 'Расход ресурсов: %s маны',
mana_reserved = 'Удержано ресурсов: %s маны',
cost = 'Расход ресурсов: %s',
reservation = 'Удержано ресурсов: %s',
mana_multiplier = 'Множитель расхода и удержания ресурсов: %s',
vaal_souls_per_use = 'Разовый расход душ: %s',
stored_uses = 'Максимум зарядов: %s',
stored_uses_singular = 'Максимум зарядов: %s',
stored_uses_plural = 'Максимум зарядов: %s',
vaal_soul_gain_prevention_time = 'Нельзя получать души: %s',
cooldown_time = 'Перезарядка: %s',
uses_quantity = 'uses',
cast_time = 'Время применения: %s',
instant_cast_time = 'Мгновенное',
critical_strike_chance = 'Шанс критического удара: %s',
attack_speed_multiplier = 'Скорость атаки: %s',
damage_multiplier = 'Урон от атаки: %s',
of_base_stat = 'от базовой',
damage_effectiveness = 'Эффективность добавленного урона: %s',
projectile_speed = 'Скорость снаряда: %s',
quality = 'Качество: %s',
physical_damage = 'Физический урон: %s',
elemental_damage = 'Урон от стихий: %s',
chaos_damage = 'Урон хаосом: %s',
attacks_per_second = 'Атак в секунду: %s',
weapon_range = 'Дальность оружия: %s',
map_level = 'Уровень области: %s',
map_tier = 'Уровень карты: %s',
map_guild_character = m_util.html.abbr('Редактор тега гильдии', 'При редактировании тега гильдии эта карта может быть использована для данного символа') .. ': %s',
item_quantity = 'Количество предметов: %s',
item_rarity = 'Редкость предметов: %s',
monster_pack_size = 'Размер групп монстров: %s',
limited_to = 'Максимум: %s',
flask_mana_recovery = 'Восстанавливает ману: %s за %s сек.',
flask_life_recovery = 'Восстанавливает здоровье: %s за %s сек.',
flask_duration = 'Длится %s сек.',
flask_charges_per_use = 'Расходует %s из %s зарядов при использовании',
chance_to_block = 'Шанс заблокировать удар: %s',
armour = 'Броня: %s',
evasion = 'Уклонение: %s',
energy_shield = 'Энерг. щит: %s',
movement_speed = 'Скорость передвижения: %s',
talisman_tier = 'Уровень талисмана: %s',
stack_size = 'Размер стопки: %s',
essence_level = 'Уровень сущности: %s',
blight_item_tier = 'Уровень масла: %s',
requires = 'Требуется %s',
level_inline = 'Уровень %s',
level = 'Уровень: %s',
gem_quality = 'За 1% качества:',
gem_quality_1 = 'По умолчанию',
gem_quality_2 = 'Аномальный',
gem_quality_3 = 'Искривлённый',
gem_quality_4 = 'Фантомный',
variation_singular = 'Изменений:',
variation_plural = 'Изменений:',
favour_cost = 'Цена расположения: %s',
seal_cost = 'Стоимость печати: <br>%s',
cannot_be_traded_or_modified = 'Этот предмет нельзя отдать или изменить',
-- harvest seeds
seed_tier = 'Уровень семени: %s',
seed_monster = 'При сборе появляется монстр ? уровня',
seed_lifeforce_gained = 'При сборе даёт ? едениц(-ы) чистой %s жизненной силы',
seed_growth_cycles = 'Можно собрать после %s циклов роста',
seed_lifeforce_consumed = 'Потребляет (%s%%) единиц(-ы) конденсированной %s жизненной силы из распылителя за цикл роста',
seed_required_seeds = 'Для роста требует соседства %s %s растений как минимум %s уровня',
-- harvest plant boosters, not used at the moment
plant_booster_extra_chances = 'Seeds in radius give the rarest of %s chosen Crafting Options when Harvested',
plant_booster_lifeforce = 'Seeds in radius produce %s more Lifeforce when Harvested',
plant_booster_additional_crafting_optioons = 'Seeds in radius have %s chance to generate additional Crafting Options when Harvested',
-- heist
heist_required_npc = 'Этот предмет могут использовать: %s',
heist_required_job = 'Требуется %s %s уровня',
heist_any_job = 'Любая роль',
random_mod = '<<случайное свойство %s>>',
--
-- secondary infobox
--
extra_info = 'Дополнительная информация',
header_overall = 'Диаграмма улучшения области',
header_upgrades = 'Уровень улучшения',
header_map_tier = 'Уровень карты',
header_map_level = 'Уровень области',
header_connections = 'Соединения',
drop_restrictions = 'Получение',
league_restriction = m_util.html.abbr('Лига(-и):', 'Предмет может быть получен только в Лиге(-ах)') .. ' %s',
drop_disabled = 'НЕ ВЫПАДАЕТ',
purchase_costs = m_util.html.abbr('Стоимость покупки', 'Стоимость покупки предмета такого типа у торгующих NPC. Это не означает, действительно ли NPC продаст вам этот предмет.'),
sell_price = m_util.html.abbr('Цена продажи', 'Товары или валюта, полученные при продаже этого товара у торгующих NPC. Некоторые рецепты торговцев могут переопределить это значение.'),
damage_per_second = 'УВС Оружия',
physical_dps = 'Physical',
fire_dps = 'Fire',
cold_dps = 'Cold',
lightning_dps = 'Lightning',
chaos_dps = 'Chaos',
elemental_dps = 'Стихийный',
poison_dps = 'Физ+Хаос',
dps = 'Общий',
misc = 'Прочее',
item_class = 'Класс предмета: %s',
metadata_id = 'Metadata ID: %s',
}
-- Keys are item class ids
cfg.i18n.item_class_map = {
['Staff'] = 'Посох',
['Bow'] = 'Лук',
['Wand'] = 'Жезл',
['Two Hand Axe'] = 'Двуручный топор',
['Two Hand Sword'] = 'Двуручный меч',
['Two Hand Mace'] = 'Двуручная булава',
['Warstaff'] = 'Воинский посох',
['Sceptre'] = 'Скипетр',
['One Hand Mace'] = 'Одноручная булава',
['One Hand Axe'] = 'Одноручный топор',
['One Hand Sword'] = 'Одноручный меч',
['Thrusting One Hand Sword'] = 'One Handed Sword',
['Claw'] = 'Когти',
['Dagger'] = 'Кинжал',
['Rune Dagger'] = 'Рунический кинжал',
['FishingRod'] = 'Удочка',
['HideoutDoodad'] = 'Предмет для убежища',
}
-- Formatting
cfg.i18n.fmt = {
standard_damage_range = '%s-%s',
variable_damage_range = '%s to %s',
}
cfg.i18n.debug = {
base_item_field_not_found = 'Base item property not found: %s.%s',
field_value_mismatch = 'Значение для аргумента "%s" установлено на что-то другое, чем по умолчанию: %s',
}
cfg.i18n.errors = {
missing_base_item = 'Rarity is set to above normal, but base item is not set. A base item for rarities above normal is required!',
missing_rarity = 'Base item parameter is set, but rarity is set to normal. A rarity above normal is required!',
duplicate_base_items = 'More then one result found for the specified base item. Consider using base_item_page or base_item_id to narrow down the results.',
base_item_not_found = 'Базовый предмет не найден в базе данных. Проверьте орфографические ошибки или наличие страницы базового предмета на вики. Если страница базового предмета существует на вики, но не может быть найдена, пожалуйста, отредактируйте страницу.',
invalid_league = '%s не распознаётся как лига',
invalid_tag = '%s не является допустимым тегом',
generic_argument_parameter = 'Unrecognized %s parameter "%s"',
generic_required_parameter = 'Parameter "%s" must be specified for this item type.',
non_unique_flag = 'Only unique items can are egible for the flag "%s".',
duplicate_area_id_from_query = 'Query found duplicate area ids that do not need to be set on the item. Duplicate ids: "%s"',
duplicate_metadata = 'Дубликат metadata_id "%s" на странице "%s"',
invalid_influence = 'Значение influence "%s" недопустимо. Допустимые значения - "shaper", "elder", "crusader", "redeemer", "hunter" и "warlord".',
invalid_class = 'The item class name "%s" is invalid.',
invalid_class_id = 'Данный class_id не верный "%s". Для правильной работы модуля Item2 и шаблона, необходимо использовать правильный идентификатор.',
invalid_rarity_id = 'Недопустимый rarity_id "%s". Допустимые значения: "normal", "magic", "rare" и "unique".',
invalid_region_upgrade_count = 'atlas_connection%s_tier: Invalid amount (%s) of connections, only 5 are allowed',
}
--
-- Upgrade paths
--
cfg.i18n.upgrade_paths = {}
cfg.i18n.upgrade_paths = {
-- items / rewards not covered by module game
agate_amulet = 'Agate Amulet',
unset_ring = 'Unset Ring',
gold_ring = 'Gold Ring',
prismatic_ring = 'Prismatic Ring',
two_stone_ring = 'Two-Stone Ring',
talisman = 'Talisman',
tier_1_talisman = 'tier 1 talisman',
breachstone = 'Breachstone',
scarab = 'Scarab',
gilded_scarab = 'Gilded Scarab',
divination_card = 'divination card',
deafening_essence = 'Deafening Essence',
shrieking_essence = 'Shrieking Essence',
essence = 'Essence',
harbinger_fragment = 'Harbinger Fragment',
body_armour = 'body armour',
shield = 'Shield',
map = 'Map',
belt = 'Belt',
armour = 'Armour',
weapon = 'Weapon',
jewellery = 'Jewellery',
one_hand_weapon = 'one-handed weapon',
two_hand_weapon = 'two-handed weapon',
sword = 'Sword',
axe = 'Axe',
flask = 'Flask',
amulet = 'Amulet',
ring = 'Ring',
league_specific_item = 'league-specific item',
item = 'item',
fated_item = 'fated unique item',
wand = 'Wand',
staff = 'Staff',
claw = 'Claw',
dagger = 'Dagger',
sceptre = 'Sceptre',
bow = 'Bow',
gloves = 'Gloves',
jewel = 'Jewel',
-- prefix
life = 'Life',
-- used within essences
essence_plus_one_level = string.format('+1 level %s outcome', m_util.html.poe_color('corrupted', 'corruption')),
essence_type_change = string.format('type change %s outcome', m_util.html.poe_color('corrupted', 'corruption')),
}
-- formatters
cfg.i18n.upgrade_paths.fmt = {
random = 'random %s',
random_corrupted = string.format('random %s %%s', m_util.html.poe_color('corrupted', 'corrupted')),
random_unidentified_corrupted = string.format('random %s %%s', m_util.html.poe_color('corrupted', 'unidentified corrupted')),
random_two_implicit_corrupted = string.format('random %s %%s', m_util.html.poe_color('corrupted', 'two-implicit corrupted')),
random_item_level_x = 'random item level %s %s',
random_x_link = 'random %s-link %s',
random_x_link_item_level_y = 'random %s-link item level %s %s',
random_x_amount = 'random %s (%sx)',
random_shaper = 'random shaper %s',
random_shaper_item_level_x = 'random shaper item level %s %s',
random_elder_item_level_x = 'random elder item level %s %s',
tier_x_map = 'tier %s map',
level_x_gem = 'level %s gem',
level_x_y_gem = 'level %s %s gem',
superior_gem_q_x = 'superior gem (Q%s)',
superior_x_gem_q_y = 'superior %s gem (Q%s)',
x_item = '%s item',
}
--[[cfg.i18n.upgrade_paths.misc = {
upgraded_from_map = 'случайная карта уровнем выше того же региона',
}--]]
cfg.i18n.upgrade_paths.errors = {
missing_amount = 'Item amount is missing or not a number (%s)',
upgraded_from_broken_reference = 'Item reference in %s is broken (value: %s)',
upgraded_from_duplicate = 'Automatic upgraded from entry is duplicated on page in upgraded_from_set%s',
}
-- ----------------------------------------------------------------------------
-- Constants
-- ----------------------------------------------------------------------------
cfg.image_size = 39
cfg.image_size_full = cfg.image_size * 2
-- TODO: Second pass for i18n item classes
-- base item is default, but will be validated later
-- Notes:
-- inventory_icon must always be before alternate_art_inventory_icons
-- drop_areas after tags
-- is_relic after rarity
cfg.default_args = {
'rarity_id', 'rarity', 'name', 'name_list', 'size_x', 'size_y',
'drop_rarities_ids', 'drop_rarities', 'drop_enabled', 'drop_level', 'drop_level_maximum', 'drop_leagues', 'drop_text', 'required_level', 'required_level_final',
'inventory_icon', 'alternate_art_inventory_icons', 'flavour_text', 'flavour_text_id',
'cannot_be_traded_or_modified', 'help_text', 'tags', 'metadata_id', 'influences', 'is_fractured', 'is_synthesised', 'is_veiled', 'is_replica', 'is_corrupted', 'is_relic', 'is_fated', 'purchase_costs', 'sell_prices_override', 'mods',
'drop_areas', 'drop_areas_html', 'drop_monsters',
'upgraded_from_disabled',
'suppress_improper_modifiers_category',
'is_prophecy', 'is_blight_item',
'class',
'is_drop_restricted',
}
-- frame_type is needed in stat_text
cfg.late_args = {'frame_type', 'implicit_stat_text', 'explicit_stat_text', 'stat_text'}
cfg.prophecy_args = {'prophecy_id', 'prediction_text', 'seal_cost', 'prophecy_objective', 'prophecy_reward'}
cfg.tables = {'items'}
cfg.class_groups = {
flasks = {
tables = {'flasks'},
keys = {['LifeFlask'] = true, ['ManaFlask'] = true, ['HybridFlask'] = true, ['UtilityFlask'] = true, ['UtilityFlaskCritical'] = true},
args = {'quality', 'flask_duration', 'charges_max', 'charges_per_use'},
},
weapons = {
tables = {'weapons'},
keys = {['Claw'] = true, ['Dagger'] = true, ['Wand'] = true, ['One Hand Sword'] = true, ['Thrusting One Hand Sword'] = true, ['One Hand Axe'] = true, ['One Hand Mace'] = true, ['Bow'] = true, ['Staff'] = true, ['Two Hand Sword'] = true, ['Two Hand Axe'] = true, ['Two Hand Mace'] = true, ['Sceptre'] = true, ['FishingRod'] = true, ['Rune Dagger'] = true, ['Warstaff'] = true},
args = {'quality', 'required_dexterity', 'required_intelligence', 'required_strength', 'critical_strike_chance', 'attack_speed', 'physical_damage_min', 'physical_damage_max', 'lightning_damage_min', 'lightning_damage_max', 'cold_damage_min', 'cold_damage_max', 'fire_damage_min', 'fire_damage_max', 'chaos_damage_min', 'chaos_damage_max', 'weapon_range'},
late_args = {'physical_damage_html', 'fire_damage_html', 'cold_damage_html', 'lightning_damage_html', 'chaos_damage_html', 'damage_avg', 'damage_html'},
},
gems = {
tables = {'skill_gems'},
keys = {['Active Skill Gem'] = true, ['Support Skill Gem'] = true},
args = {'dexterity_percent', 'strength_percent', 'intelligence_percent', 'primary_attribute', 'gem_tags'},
},
armor = {
tables = {'armours'},
keys = {['Gloves'] = true, ['Boots'] = true, ['Body Armour'] = true, ['Helmet'] = true, ['Shield'] = true},
args = {'quality', 'required_dexterity', 'required_intelligence', 'required_strength', 'armour', 'energy_shield', 'evasion', 'movement_speed'},
},
stackable = {
tables = {'stackables'},
keys = {['Currency'] = true, ['StackableCurrency'] = true, ['HideoutDoodad'] = true, ['Microtransaction'] = true, ['DivinationCard'] = true, ['DelveSocketableCurrency'] = true, ['DelveStackableSocketableCurrency'] = true, ['Incubator'] = true, ['HarvestSeed'] = true, ['HarvestPlantBooster'] = true},
args = {'stack_size', 'stack_size_currency_tab', 'description', 'cosmetic_type'},
},
heist_equipment = {
tables = {'heist_equipment'},
keys = {['HeistEquipmentWeapon'] = true, ['HeistEquipmentTool'] = true, ['HeistEquipmentUtility'] = true, ['HeistEquipmentReward'] = true},
args = {'heist_required_job_id', 'heist_required_job_level', 'heist_data'},
},
}
-- Parameters for specific item classes
cfg.class_specifics = {
['Amulet'] = {
tables = {'amulets'},
args = {'is_talisman', 'talisman_tier'},
},
['LifeFlask'] = {
args = {'flask_life'},
},
['ManaFlask'] = {
args = {'flask_mana'},
},
['HybridFlask'] = {
args = {'flask_life', 'flask_mana'},
},
['UtilityFlask'] = {
tables = {'item_buffs'},
args = {'buff_id', 'buff_values', 'buff_stat_text', 'buff_icon'},
},
['UtilityFlaskCritical'] = {
tables = {'item_buffs'},
args = {'buff_id', 'buff_values', 'buff_stat_text', 'buff_icon'},
},
['Active Skill Gem'] = {
defaults = {
help_text = cfg.i18n.help_text_defaults.active_gem,
size_x = 1,
size_y = 1,
},
frame_type = 'gem',
},
['Support Skill Gem'] = {
args = {'support_gem_letter', 'support_gem_letter_html'},
defaults = {
help_text = cfg.i18n.help_text_defaults.support_gem,
size_x = 1,
size_y = 1,
},
frame_type = 'gem',
},
['Shield'] = {
tables = {'shields'},
args = {'block'},
},
['Map'] = {
tables = {'maps', 'atlas_maps'},
args = {
'quality',
'map_tier',
'map_guild_character',
'map_area_id',
'map_area_level',
'unique_map_area_id',
'unique_map_area_level',
'unique_map_guild_character',
'map_series',
'atlas_x',
'atlas_y',
'atlas_region_id',
'atlas_x0',
'atlas_x1',
'atlas_x2',
'atlas_x3',
'atlas_x4',
'atlas_y0',
'atlas_y1',
'atlas_y2',
'atlas_y3',
'atlas_y4',
'atlas_map_tier0',
'atlas_map_tier1',
'atlas_map_tier2',
'atlas_map_tier3',
'atlas_map_tier4',
'atlas_connections', -- pseudo to fill connections table
},
skip_stat_lines = cfg.i18n.stat_skip_patterns.maps,
},
['Currency'] = {
frame_type = 'currency',
},
['StackableCurrency'] = {
tables = {'essences', 'prophecies', 'blight_items'},
args = {'is_essence', 'essence_level_restriction', 'essence_level', 'essence_type', 'essence_category', 'blight_item_tier'},
frame_type = 'currency',
},
['Microtransaction'] = {
frame_type = 'currency',
},
['HideoutDoodad'] = {
tables = {'hideout_doodads'},
args = {'is_master_doodad', 'master', 'master_level_requirement', 'master_favour_cost', 'variation_count'},
frame_type = 'currency',
},
['Jewel'] = {
tables = {'jewels'},
late_args = {'item_limit', 'jewel_radius_html'},
defaults = {
help_text = cfg.i18n.help_text_defaults.jewel,
},
skip_stat_lines = cfg.i18n.stat_skip_patterns.jewels,
},
['AbyssJewel'] = {
tables = {'jewels'},
late_args = {'item_limit', 'jewel_radius_html'},
skip_stat_lines = cfg.i18n.stat_skip_patterns.jewels,
},
['QuestItem'] = {
args = {'description'},
frame_type = 'quest',
},
['DivinationCard'] = {
tables = {'divination_cards'},
args = {'card_art',},
frame_type = 'divicard',
},
['LabyrinthItem'] = {
frame_type = 'currency',
},
['LabyrinthTrinket'] = {
tables = {'item_buffs'},
args = {'description', 'buff_icon'},
frame_type = 'currency',
},
['PantheonSoul'] = {
defaults = {
cannot_be_traded_or_modified = true,
},
},
['IncursionItem'] = {
frame_type = 'currency',
},
['Incubator'] = {
tables = {'incubators'},
args = {'incubator_effect'},
frame_type = 'currency',
},
['HarvestSeed'] = {
tables = {'harvest_seeds'},
args = {'seed_effect', 'seed_type_id', 'seed_effect', 'seed_type', 'seed_type_html', 'seed_tier', 'seed_growth_cycles', 'seed_required_nearby_seed_tier', 'seed_required_nearby_seed_amount', 'seed_consumed_wild_lifeforce_percentage', 'seed_consumed_vivid_lifeforce_percentage', 'seed_consumed_primal_lifeforce_percentage', 'seed_granted_craft_option_ids'},
frame_type = 'currency',
},
['HarvestPlantBooster'] = {
tables = {'harvest_plant_boosters'},
args = {'plant_booster_radius', 'plant_booster_lifeforce', 'plant_booster_additional_crafting_options', 'plant_booster_extra_chances'},
frame_type = 'currency',
},
}
return cfg