ru:rpd:kunai_throw_spell
Table of Contents
Метание Кунай
Описание
Это заклинание метает кунай во вражеских существ, видимых пользователем, с невероятной скоростью. Количество метаемых кунай зависит от уровня навыка заклинателя - чем выше уровень, тем больше кунай метается. Это заклинание настолько быстро, что вы не можете выбрать цель.
Характеристики
Механики
- Количество кунай: min(уровеньНавыка(заклинатель) - уровеньЗаклинания + 1, 3) - максимум 3 кунай
- Урон: Случайный урон между n и (n + уровень(заклинатель) * n), где n - количество кунай, метаемых
- Целеуказание: Автоматически выбирает случайных видимых врагов для заклинателя
- Эффект поражения: Показывает “Кунай” зап-эффект от заклинателя к цели
- Требование: Требуется хотя бы один видимый враг для произнесения
Использование
Заклинание “Метание Кунай” может использоваться для:
Классы
Классы, которые могут использовать это заклинание, включают:
- Классы с разбойничьей специализацией (например, класс Разбойника)
- Другие классы, которые получают доступ через специальные средства
Стратегия
Как эффективно использовать заклинание “Метание Кунай”:
- Лучше всего использовать, когда видно несколько врагов, чтобы потенциально поразить несколько целей
- Более эффективно на более высоких уровнях навыка, когда можно метать больше кунай
- Быстрое время произнесения делает его полезным в трудных ситуациях
- Хорошо работает, когда враги собраны в кучу
- Поскольку оно целится в случайных врагов, полезно, когда вам не нужно целиться в конкретного
Технические детали
- Реализация: KunaiThrow.lua
- Класс: Lua-скрипт, реализующий систему заклинаний
- Доступность заклинаний: CustomSpellsList.lua - доступно классу Разбойника
- Строковые ресурсы: KunaiThrow_Name и KunaiThrow_Info
- Русские строковые ресурсы: KunaiThrow_Name и KunaiThrow_Info
- Библиотека систем заклинаний: spell.lua
- Библиотека общих классов: commonClasses.lua
- Параметры заклинания: level = 2, castTime = 0.01, spellCost = 5
- Расчет уровня: math.min(caster:skillLevel() - spellLevel + 1, 3) - рассчитывает количество метаемых кунай (максимум 3)
- Расчет урона: math.random( n, n + caster:lvl()*n ) - диапазон урона зависит от количества кунай и уровня заклинателя
- Эффект поражения: RPD.zapEffect(ownPos,tgt:getPos(),"Kunai") - визуальный эффект от заклинателя к цели
- Выбор цели: caster:randomEnemy() - случайным образом выбирает видимого врага как цель
- Проверка видимых врагов: caster:visibleEnemies() - гарантирует, что хотя бы один враг виден перед произнесением
- Сопоставление изображений: lvl2img = {1,9,17} based on spell tier - разные иконки в зависимости от количества кунай
- Магическая специализация: Magic Affinity: "Rogue" - доступно только классам с разбойничьей специализацией
- Тип целеуказания: Targeting: "self" - автоматически целится в случайных видимых врагов
- Библиотека общих классов: commonClasses.lua
- Инициализация заклинания: return spell.init{} - определяет структуру и поведение заклинания
- Интеграция системы урона: tgt:damage() - вызывает систему урона игры для нанесения урона цели
- Расчет количества кунай: local n = spellTier(caster) - рассчитывает количество кунай, исходя из уровня навыка заклинателя
- Проверка произнесения заклинания: https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/scripts/spells/KunaiThrow.lua#L27-L28 - проверяет, существуют ли видимые враги перед произнесением
- Доступность для класса: spells["Rogue"] = {"Cloak","Backstab","KunaiThrow","Haste"} - доступно классу Разбойника
- Типы эффектов поражения: Implementations.java - определяет доступные эффекты поражения, включая эффект “Кунай”
- Ссылка на систему урона: Char:damage() method - обрабатывает расчет и применение урона
- Ссылка на уровень персонажа: Char:lvl() method - уровень заклинателя влияет на расчет урона
- Позиция цели: Char:getPos() method - получает позицию персонажа для эффекта поражения
- Случайный выбор врага: CharUtils:randomEnemy() method - предоставляет функционал случайного выбора врага
- Проверка видимых врагов: CharUtils:visibleEnemies() method - проверяет наличие видимых врагов на уровне
- Интерфейс персонажа: Char.java - базовый класс для всех персонажей (игрок, мобы и т.д.)
- Ссылка на уровень навыка: CharUtils:skillLevel() method - получает уровень навыка персонажа
- RPD API: RPDScriptUtils.java - предоставляет интерфейс Lua для игровой функциональности
- Реализация эффектов поражения: ZapGlow.java - отрисовывает эффекты поражения
- Интеграция Lua: LuaEngine.java - интегрирует Lua-скрипты с игровым движком
- Процесс произнесения заклинания: LuaSpell:cast() method - обрабатывает вызов Lua-заклинания
- Система заклинаний: Spell.java - базовый класс заклинания в Java
- Спрайты заклинаний: rogue.png - файл спрайта с иконками заклинаний
- Машиночитаемые данные: mr:kunai_throw_spell
Вкусовой текст
Из игры: “Это смертельное метание кунай будет сделано настолько быстро, что вы даже не сможете выбрать цель.\n\nНастоящие мастера способны метать более одной кунай за раз.”
См. также
ru/rpd/kunai_throw_spell.txt · Last modified: by 127.0.0.1
