09/07/17 15:14:29
キャラクターどうしが交互に殴りあうゲームで
キャラクターの属性相性や命中率、回避率、物理無効、魔法無効、その他のさまざまな特性によって殴った結果が変わる
場合によってはダメージの分体力を吸収、ステータス異常化などの処理も行うといった仕様にしたいんですけど
この「殴る」という処理はキャラクタ管理クラスに関数を作ったほうがいいんでしょうか?
それとも攻撃されるクラスに持たせる、あるいは攻撃するクラスに持たせるべきでしょうか?
CharaBaseにはキャラクターから各種パラメーターを読み書きするメンバがあるとして
charaManager.fight(CharaBase *pAssailant, CharaBase *pSufferer);
assailant.attack(CharaBase *pSufferer);
sufferer.attacked(CharaBase *pAssailant);
どれがベターでしょうか?