1イベントでトリガーする処理を動的に追加にする際の考え方について

質問の意図としては、「カードの効果は無数にあるが、どうすればスマートに実装できるか」
ということだとして答えます

まずDROSS_JPさんの補足としては、ActorComponentというものが使えると思います
image

ActorComponentに関する説明はこの辺りを読んでもらえれば。

ざっくりいうとActorにくっつけることでActorComponentの能力を借りることができるというものです。
なので例えば「自身のライフを100回復する」効果と「相手に100ダメージを与える」というActorComponentを作りってカードActorにこの二つを取り付けてやり
image

このように効果を発動する処理を呼び出すことで、カード本体と効果を切り分けることができます
image

当然ですが、ActorComponentにはそれぞれの効果が設定されていないと動きません。

そしてさらに、ActorComponentの親クラスに効果発動のイベントなどを用意してやることで以下のように「所持しているすべての効果を発動する」という処理を組むことができます。

以上によってカード本体は「発動条件やコストなどの管理」だけを行い、効果はComponentが実行するというように分けることができます。

2 Likes