Issue

チームレイドのバトル処理 #598

iwamoto opened this at 2021-02-08T15:52:51; closed

Description

opened by iwamoto at 2021-02-08T15:52:51; updated 2023-11-22T10:52:28

【2/9】レイド1期 #584

上記の際に対応を行ったが保守性向上のため追加対応
開催には間に合わないため、別記載

Comment

#9359 by iwamoto at 2021-02-08T15:53:51; updated 2021-02-08T15:54:38

【2/9】レイドイベント6-1期 #593
コメント

実装の方向性は問題なくて、できれば継承を使用して欲しいです。

以下の内容は、対応してもしなくても良いです。
あくまで保守性をあげるだけなので、実際の処理には関係ありません。

  • 定数以外をconstで設定しない

max_lvなど
変数(今後変更が予想される値)は、configに設定する

  • 継承について

レイド戦闘に関わるクラスは全て継承を想定して、public,protectedにしているので、可能であれば継承が望ましい

  • team_raid_monsterクラスを継承する

vsクラスとほぼ同じなので継承して変更に強く
daoが変わる問題は、クラスにdao名を変数で持たせて同一処理で別daoにアクセスできるようにする

#daoを変数に格納
protected $dao = 'dao/team_raid_monster_vs';
$this->dao = 'dao/team_raid_monster_vs';
$res = S_LoadModelClass($this->dao)->get_by_team_no($team_no);
  • attack_bonusクラスを継承する

team_raid_monsterクラスと同様
attack_bonusにteam_no追加しても良い

  • battle_user内でteam_raid_monsterクラスを参照する

vsクラスがteam_raid_monsterを継承することで、team_raid_monsterのuserだけで問題ない?
クイックアタックは現在使用していないので対応しなくて良い
update_battleとupdate_battle_vsの共通箇所はメソッド化する(別クラスにする場合)

#update_battleを別クラスとする場合
public function update_battle(Team_raid_monster $raid) {
    #個別処理
    $this->{共通処理}();
}
public function update_battle_vs(Team_raid_monster_vs $raid) {
    #個別処理
    $this->{共通処理}();
}

#update_battleを統一する場合
public function update_battle(Team_raid_monster $raid) {
    if ($raid->is_normal()) {
        #個別処理
    } else if ($raid->is_rare()) {
        #個別処理
    } else if ($raid->is_vs()) {
        #個別処理
    }
    #共通処理
}
iwamoto commit at 2021-02-08T19:18:48: 継承対応 #598 0a9aeaa22f8b52bae147fc29adec6a3efcbc9bda
iwamoto commit at 2021-02-08T19:18:48: overkill 修正 #598 02b82566d63890a9fbb1584df77824f457abbd38
iwamoto commit at 2021-02-23T18:54:34: damagelogのcreatelog 修正前#598 fb5e7780f922b5d264ea114a93d3b63c481b61bf
wada close at 2021-10-18T12:20:07: Close