Утрицца, ребят. Есть 1) Pawn с HP и Mana, от

него наследуются Player и NPC
и/или
2) Actor Component с HP и Mana.
Нужно понижать и повышать HP и Mana при взаимодействии (зелья, урон, спринт).
Вопрос: на кого кастовать/вызывать интерфейс? На родителя (pawn), на детей (player, npc) или на actor component (но я не знаю, как добраться до него интерфейсом)

з.ы. за интерфейсы шарю не глубоко

как всегда, хочу сделать, чтоб "правильно" было.
буду очень благодарен направлению пинком

7 ответов

16 просмотров

Я как сделал со своим Здоровьем, у Actor есть TakeDamage делегаты и на них я подписывался в HeatlhComponent, а дальше делал при срабатывании делагата логику... А вот как различить что отнимать? Я придумал сейчас сделать два типа DamageType один для ХП, а для другой Маны. Чем это плохо?)

Тут можно обойтись гетКомпонентом

Reinold-Drake Автор вопроса
Никита Алексеев
Я как сделал со своим Здоровьем, у Actor есть Take...

довольно неплохо. я столкнулся с тем, что takeDamage не принимает минусовые значения (ну знаешь, чтобы похилить, нужно урон на -1 умножить). то есть хилки, почему-то, не работали. а вот в actor(health)component чтобы event apply damage вызвался, я посмотрю, спасибо :)

Reinold-Drake Автор вопроса
Artem Zakharov
Тут можно обойтись гетКомпонентом

кастовать? у меня костыль в каждом экторе CastToPlayerCharacter и от него создаю референс, дальше использую его. почему так делаю - потому что интерфейсы иной референс не читают. например, при коллизии OtherActor ничего не дает в Interface Function

Reinold Drake
кастовать? у меня костыль в каждом экторе CastToPl...

Тебе энивей приводить к интерфейсу == кастовать

Похожие вопросы

Обсуждают сегодня

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами "гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь м...
Wlad
21
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
привет, как сбилдить свифт прогу статически? делаю -Xswiftc -static-executable - получаю такую ошибку: /lib/aarch64-linux-gnu/libc.a(pthread_join_common.o)(.note.stapsdt+0x14...
🦊 Fox 🌸 🌸
6
Карта сайта