PR

エピックレイド #3232

kouho opened this at 2023-11-20T17:19:40; closed

Description

opened by kouho at 2023-11-20T17:19:40; updated 2023-11-24T13:36:44

概要

仕様書
https://docs.google.com/spreadsheets/d/1uYZ9TM9YDN4NW7MTsGwn1PNMI1CdS_gRRuvT-a2frOo/edit#gid=1077899962

対応箇所

メインページ

  • アイコン表示の追加

エピックレイド討伐ページ

  • 通常レイド・レアレイドの討伐ページを流用
  • 現在のエピックレイド撃破ボーナスの表示追加
  • エピックレイドの詳細リンクを追加

エピックレイド詳細ページ

  • 現在のエピックレイド撃破数の表示
  • 現在のエピックレイド撃破数に応じてゲージ表示
  • 現在のエピックレイド撃破数が20体以上の場合ゲージを強調表示
  • 現在のエピックレイド撃破ボーナスの表示
  • 注意事項テキスト表示

レイドモンスター出現時

  • 確率でエピックレイドモンスターの出現
  • 通常レイドとレアレイド出現時にエピックレイドモンスターの出現保証を増加
  • エピックレイドモンスター出現時に出現保証をリセット

レイドモンスター討伐時

  • エピックレイドモンスターの場合エteam_raid_monsterからlog_team_raid_monsterへの移動

チーム対抗レイドモンスター討伐時

  • エピックレイド撃破ボーナスに応じたポイントの付与

レイドモンスター討伐画面
チーム対抗レイドモンスター討伐画面

  • 討伐時点のエピックレイド撃破ボーナスの表示

チーム対抗レイド討伐ページ

  • エピックレイド撃破ボーナスの表示追加
  • エピックレイドの詳細リンクを追加

管理画面

  • エピックレイド出現メニューの追加
  • エピックレイド出現時に現在の撃破ボーナスをteam_raid_monsterにinsert

テスト方法、確認した内容

  • 下部に記載のSQLを実行してDB更新
  • 冒険もしくは管理画面でエピックレイドモンスターを出現させて討伐
  • team_epic_raid_monsterのdefeat_numが増えることと、討伐時にlog_team_raid_monsterに移動し、epic_defeat_numが増えることを確認
  • エピックレイドとチーム対抗レイド討伐時にepic_defeat_numに応じて撃破ボーナスが増えることを確認。

TODO

・バトル用のレイドモンスターカード画像
・告知用説明画像の作成
・エピックレイドモンスターのカードデータ
・エピックレイドのステータス作成
・スプレッドシートからのインポートの対応
・管理画面側での集計追加
・エピックレイドページのテキスト調整

SQL

エピックレイド用テーブル

CREATE TABLE `team_epic_raid_monster` (
  `event_no` int NOT NULL,
  `team_no` int unsigned NOT NULL,
  `defeat_num` int unsigned NOT NULL DEFAULT '0',
  `progress` tinyint unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`event_no`,`team_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;

カラム追加

ALTER TABLE `team_raid_monster` ADD `epic_defeat_num` tinyint(4) unsigned DEFAULT NULL;
ALTER TABLE `team_raid_monster_vs` ADD `epic_defeat_num` tinyint(4) unsigned DEFAULT NULL;

ALTER TABLE `log_team_raid_monster` ADD `epic_defeat_num` tinyint(4) unsigned DEFAULT NULL;
ALTER TABLE `log_team_raid_monster_vr` ADD `epic_defeat_num` tinyint(4) unsigned DEFAULT NULL;

エピックレイドサンプルデータ挿入

INSERT INTO `master_raid_monster_data` (`event_no`, `type`, `lv`, `defense_type`, `card_stamina`, `card_attack`, `card_speed`)
VALUES
	(57, 4, 30, 1, 1000000, 1000, 1000);

INSERT INTO `master_raid_monster_data_lvtype_defense_set` (`event_no`, `type`, `lv`, `defense_type`, `skill_set`)
VALUES
	(57, 4, 30, 2, -64),
	(57, 4, 30, 1, 1);

INSERT INTO `master_raid_monster_data_skill` (`event_no`, `type`, `lv`, `defense_type`, `turn`, `skill_set`, `skill_ratio`)
VALUES
	(57, 4, 30, 1, 0, 1, 10),
	(57, 4, 30, 1, 1, 2, 10),
	(57, 4, 30, 1, 2, 6, 10),
	(57, 4, 30, 1, 3, 4, 10),
	(57, 4, 30, 1, 4, 5, 10),
	(57, 4, 30, 1, 0, 13, 10),
	(57, 4, 30, 1, 1, 14, 10),
	(57, 4, 30, 1, 2, 18, 10),
	(57, 4, 30, 1, 3, 16, 10),
	(57, 4, 30, 1, 4, 17, 10);
kouho change_title at 2023-11-20T17:55:21: [WIP]エピックレイド エピックレイド

Comment

#31854 by kouho at 2023-11-20T17:55:34; updated 2023-11-20T17:55:34

@wada
レビューお願いいたします

Comment

#31908 by wada at 2023-11-22T11:37:06; updated 2023-11-22T11:37:06

@kouho
おそらくdao/log_team_raid_monsterがgit管理されていません。

Comment

#31909 by kouho at 2023-11-22T11:39:00; updated 2023-11-22T11:39:00

@wada
すみません、以下をコミットしました。
dao/log_team_raid_monster.php
dao/log_team_raid_monster_vs.php

Comment

#31910 by wada at 2023-11-22T11:39:31; updated 2023-11-22T11:39:31

@kouho
ありがとうございます。

Comment

#31918 by wada at 2023-11-22T15:16:28; updated 2023-11-22T15:16:28

@kouho
team_epic_raid_monsterテーブルで、主キーではなくユニークキーを設定する理由は何ですか?

Comment

#31919 by kouho at 2023-11-22T15:58:40; updated 2023-11-22T15:58:40

@wada
確認ありがとうございます。以下修正しました。

> $this->epic_defeat_num = の後にスペースが2つあります。
get_defeat_num(のカッコ前後のスペースは不要です。
>
このプロジェクトには、基本的なコーディング規約はありませんが、コードの読みやすさに注意を払ってもらえると助かります。
JrControllerRaidEventクラス内では、スペースは1文字、カッコ内のスペースは無いので、それに統一されていないと違和感があります。

> コメントはレアではなくエピックかと思います。

> ドキュメントの情報が不足しています。

> ログ だけではメソッドの情報を把握出来ません。

Comment

#31920 by kouho at 2023-11-22T16:13:02; updated 2023-11-22T16:13:02

@wada
> team_epic_raid_monsterテーブルで、主キーではなくユニークキーを設定する理由は何ですか?

event_noとteam_noがNULLを許容することはなく、
PRIMARY KEYではなく、UNIQUE KEYを設定する理由がありませんでしたのでPRIMARY KEYに修正しました。

Comment

#31921 by kouho at 2023-11-22T16:25:40; updated 2023-11-22T16:25:40

@wada
> このコードは何をしていますか?(vs側も同じ)

エピックレイドモンスターとチーム対抗レイド討伐時にS_GetRaidMonster関数を呼び出してteam_raid_monsterからlog_team_raid_monsterに移動させようとしています。

元々だとレイドモンスター討伐時ではなく、レイドモンスター討伐結果ページ確認時にS_GetRaidMonster関数内でteam_raid_monsterからlog_team_raid_monsterに移動していました。

薄い可能性ですが、エピックレイドモンスターの討伐結果ページをブラウザバックなどでチーム内の誰も確認せず別のエピックレイドが討伐されることが起きると討伐時点のエピックレイド討伐数とlog_team_raid_monster.epic_defeat_numにズレが起きる可能性があると思い、討伐結果ページではなく、討伐した時点でlogに移動させようとしています。チーム対抗レイドでも同様のズレが起きる可能性をケアしようとしました。

Comment

#31931 by wada at 2023-11-22T16:40:49; updated 2023-11-22T16:41:27

@kouho
> 討伐時点のエピックレイド討伐数とlog_team_raid_monster.epic_defeat_numにズレが起きる可能性

どのような~~手順~~処理の流れで発生しますか?

Comment

#31943 by kouho at 2023-11-22T18:54:16; updated 2023-11-22T18:54:16

@wada
エピックレイド討伐後に次のエピックレイドを出して結果を見ていない場合ズレたかと思いましたが、処理順的にズレ起きないですね。。。
不要な処理でしたので削除しました。

また、エピックレイド討伐後メインページアイコンで飛んだページでエピックレイド討伐ボーナスが表示されませんでしたので修正しました。

Comment

#31946 by wada at 2023-11-23T16:30:27; updated 2023-11-23T16:30:27

@kouho
対応ありがとうございます。

kouho merge at 2023-11-24T13:36:44: Merged by user
kouho close at 2023-11-24T13:36:44: Close

commit comment

#208 by wada at 2023-11-22T15:20:52; lib/class/controller/JrControllerRaidEvent.class.php / old:None new:88
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
$this->epic_defeat_num = の後にスペースが2つあります。
get_defeat_num(のカッコ前後のスペースは不要です。

このプロジェクトには、基本的なコーディング規約はありませんが、コードの読みやすさに注意を払ってもらえると助かります。
JrControllerRaidEventクラス内では、スペースは1文字、カッコ内のスペースは無いので、それに統一されていないと違和感があります。

commit comment

#209 by wada at 2023-11-22T15:35:16; lib/ajax/main_default.inc / old:None new:448
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
コメントはレアではなくエピックかと思います。

commit comment

#210 by wada at 2023-11-22T15:36:13; lib/models/dao/log_team_raid_monster.php / old:None new:13
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
ドキュメントの情報が不足しています。

commit comment

#211 by wada at 2023-11-22T15:37:34; lib/models/dao/log_team_raid_monster_vs.php / old:None new:13
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
ログ だけではメソッドの情報を把握出来ません。

commit comment

#212 by wada at 2023-11-22T16:01:38; lib/models/raid/Team_raid_monster.php / old:None new:210
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
このコードは何をしていますか?(vs側も同じ)

Commit range

base785e7026f696411499ad05b8fd103a04e06ee4cf
headc6aa8416f69b7ed87b5ef71255b5699f8ee13dc0
base branchjolly/jr-web:develop
head branchjolly/jr-web:epic_raid

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed15 filesView patch
statusfile
modifiedlib/ajax/main_default.inc
modifiedlib/class/controller/JrControllerRaidEvent.class.php
modifiedlib/models/dao/log_team_raid_monster.php
modifiedlib/models/dao/log_team_raid_monster_vs.php
modifiedlib/models/raid/Team_raid_monster.php
modifiedlib/models/raid_vs/Team_raid_monster_vs.php
modifiedlib/public/Raid-Default.inc
modifiedpublic_html/img/card/120/253.jpg
modifiedpublic_html/img/card/240/253.jpg
modifiedpublic_html/img/card/320/253.jpg
modifiedpublic_html/img/card/640/253.jpg
modifiedpublic_html/img/card/70/253.jpg
deletedpublic_html/img/card/battle/154/253.jpg
deletedpublic_html/img/card/battle/58/253.jpg
modifiedpublic_html/img/card/battle/raid/253.jpg
Patch body is stored as a separate file to keep this page lightweight.

Review comment

#208 by wada at 2023-11-22T15:20:52; lib/class/controller/JrControllerRaidEvent.class.php / old:None new:88
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
$this->epic_defeat_num = の後にスペースが2つあります。
get_defeat_num(のカッコ前後のスペースは不要です。

このプロジェクトには、基本的なコーディング規約はありませんが、コードの読みやすさに注意を払ってもらえると助かります。
JrControllerRaidEventクラス内では、スペースは1文字、カッコ内のスペースは無いので、それに統一されていないと違和感があります。

Review comment

#209 by wada at 2023-11-22T15:35:16; lib/ajax/main_default.inc / old:None new:448
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
コメントはレアではなくエピックかと思います。

Review comment

#210 by wada at 2023-11-22T15:36:13; lib/models/dao/log_team_raid_monster.php / old:None new:13
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
ドキュメントの情報が不足しています。

Review comment

#211 by wada at 2023-11-22T15:37:34; lib/models/dao/log_team_raid_monster_vs.php / old:None new:13
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
ログ だけではメソッドの情報を把握出来ません。

Review comment

#212 by wada at 2023-11-22T16:01:38; lib/models/raid/Team_raid_monster.php / old:None new:210
785e7026f696411499ad05b8fd103a04e06ee4cf

@kouho
このコードは何をしていますか?(vs側も同じ)