Então, eu estou começando a introduzir ataques ao nosso RTS espacial 2D (isso é no Unity, então é orientado por componentes). Inicialmente era tão simples quanto "inimigo à distância, dano aplicado". No entanto, haverá vários "tipos" de armas / ataques associados a sua nave ou estrutura específica. Assim como outros fatores envolvidos, apenas danos brutos, como o tipo de dano e, possivelmente, inércia no futuro.
Vocês teriam cada tipo de unidade e estrutura com seu próprio tipo de ataque. Ou seja, você cria um script para cada unidade / estrutura que define seu tipo de ataque, dano, efeitos, alcance, partículas, sprites ... etc. E anexa isso como um componente?
Ou faça um script que defina um tipo de ataque, um script para o tipo de projétil associado a esse ... etc E depois estenda-os e modifique-os para cada unidade, anexando cada script à unidade / estrutura.
Espero estar fazendo algum sentido, estou pensando nisso há tanto tempo que não tenho certeza se estou resolvendo um problema ou apenas inventando meus próprios problemas e me cavando em um buraco.
Quando você tem um jogo que pode ter vários tipos de ataque que podem ou não estar limitados a uma unidade / estrutura específica, como você projeta a estrutura que vincula isso às unidades / estruturas específicas em um ambiente de design orientado a componentes ?
Se isso não estiver claro o suficiente, avise-me.
Edit: Ótimas respostas, obrigado.
Pergunta expandida:
As respostas parecem variar de "cada objeto pode ter seu próprio script de ataque" a "Ter os tipos de ataque como seus próprios scripts e atribuí-los a cada objeto para uma solução mais reutilizável". Digamos que eu tenha um ataque "blaster", ele atira um projétil vermelho a uma certa velocidade. O dano, a taxa de tiro e o tamanho do projétil dependem da unidade que o disparou. É melhor criar um script de ataque para essa unidade ou tentar modificar um "ataque blaster" para se adequar ao objetivo de cada unidade que deseja usá-lo?