[ongeki] Add experimental Bright Memory support

pull/1/head
Dom Eori 2022-03-11 17:37:36 +09:00
parent ee6d28bd00
commit 50cecae272
19 changed files with 450 additions and 7 deletions

View File

@ -32,6 +32,7 @@ public class OngekiController {
private final GetUserBpBaseHandler getUserBpBaseHandler;
private final GetUserCardHandler getUserCardHandler;
private final GetUserChapterHandler getUserChapterHandler;
private final GetUserMemoryChapterHandler getUserMemoryChapterHandler;
private final GetUserCharacterHandler getUserCharacterHandler;
private final GetUserDataHandler getUserDataHandler;
private final GetUserDeckByKeyHandler getUserDeckByKeyHandler;
@ -59,9 +60,12 @@ public class OngekiController {
private final GetUserTrainingRoomByKeyHandler getUserTrainingRoomByKeyHandler;
private final GetUserKopHandler getUserKopHandler;
private final UpsertUserAllHandler upsertUserAllHandler;
private final GetClientBookkeepingHandler getClientBookkeepingHandler;
private final GetClientTestmodeHandler getClientTestmodeHandler;
private final GetGameMusicReleaseStateHandler getGameMusicReleaseStateHandler;
@Autowired
public OngekiController(GetGameEventHandler getGameEventHandler, GetGameIdlistHandler getGameIdlistHandler, GetGameMessageHandler getGameMessageHandler, GetGamePointHandler getGamePointHandler, GetGamePresentHandler getGamePresentHandler, GetGameRankingHandler getGameRankingHandler, GetGameRewardHandler getGameRewardHandler, GetGameSettingHandler getGameSettingHandler, GetUserActivityHandler getUserActivityHandler, GetUserBossHandler getUserBossHandler, GetUserBpBaseHandler getUserBpBaseHandler, GetUserCardHandler getUserCardHandler, GetUserChapterHandler getUserChapterHandler, GetUserCharacterHandler getUserCharacterHandler, GetUserDataHandler getUserDataHandler, GetUserDeckByKeyHandler getUserDeckByKeyHandler, GetUserEventPointHandler getUserEventPointHandler, GetUserEventRankingHandler getUserEventRankingHandler, GetUserItemHandler getUserItemHandler, GetUserLoginBonusHandler getUserLoginBonusHandler, GetUserMissionPointHandler getUserMissionPointHandler, GetUserMusicHandler getUserMusicHandler, GetUserMusicItemHandler getUserMusicItemHandler, GetUserOptionHandler getUserOptionHandler, GetUserPreviewHandler getUserPreviewHandler, GetUserRatinglogListHandler getUserRatinglogListHandler, GetUserRecentRatingHandler getUserRecentRatingHandler, GetUserRegionHandler getUserRegionHandler, GetUserRivalHandler getUserRivalHandler, GetUserRivalMusicHandler getUserRivalMusicHandler, GetUserScenarioHandler getUserScenarioHandler, GetUserStoryHandler getUserStoryHandler, GetUserTechCountHandler getUserTechCountHandler, GetUserTrainingRoomByKeyHandler getUserTrainingRoomByKeyHandler, UpsertUserAllHandler upsertUserAllHandler, GetGameTechMusicHandler getGameTechMusicHandler, GetUserTechEventHandler getUserTechEventHandler, GetUserTechEventRankingHandler getUserTechEventRankingHandler, GetUserEventMusicHandler getUserEventMusicHandler, GetUserTradeItemHandler getUserTradeItemHandler, GetUserKopHandler getUserKopHandler) {
public OngekiController(GetGameEventHandler getGameEventHandler, GetGameIdlistHandler getGameIdlistHandler, GetGameMessageHandler getGameMessageHandler, GetGamePointHandler getGamePointHandler, GetGamePresentHandler getGamePresentHandler, GetGameRankingHandler getGameRankingHandler, GetGameRewardHandler getGameRewardHandler, GetGameSettingHandler getGameSettingHandler, GetUserActivityHandler getUserActivityHandler, GetUserBossHandler getUserBossHandler, GetUserBpBaseHandler getUserBpBaseHandler, GetUserCardHandler getUserCardHandler, GetUserChapterHandler getUserChapterHandler, GetUserCharacterHandler getUserCharacterHandler, GetUserDataHandler getUserDataHandler, GetUserDeckByKeyHandler getUserDeckByKeyHandler, GetUserEventPointHandler getUserEventPointHandler, GetUserEventRankingHandler getUserEventRankingHandler, GetUserItemHandler getUserItemHandler, GetUserLoginBonusHandler getUserLoginBonusHandler, GetUserMissionPointHandler getUserMissionPointHandler, GetUserMusicHandler getUserMusicHandler, GetUserMusicItemHandler getUserMusicItemHandler, GetUserOptionHandler getUserOptionHandler, GetUserPreviewHandler getUserPreviewHandler, GetUserRatinglogListHandler getUserRatinglogListHandler, GetUserRecentRatingHandler getUserRecentRatingHandler, GetUserRegionHandler getUserRegionHandler, GetUserRivalHandler getUserRivalHandler, GetUserRivalMusicHandler getUserRivalMusicHandler, GetUserScenarioHandler getUserScenarioHandler, GetUserStoryHandler getUserStoryHandler, GetUserTechCountHandler getUserTechCountHandler, GetUserTrainingRoomByKeyHandler getUserTrainingRoomByKeyHandler, UpsertUserAllHandler upsertUserAllHandler, GetGameTechMusicHandler getGameTechMusicHandler, GetUserTechEventHandler getUserTechEventHandler, GetUserTechEventRankingHandler getUserTechEventRankingHandler, GetUserEventMusicHandler getUserEventMusicHandler, GetUserTradeItemHandler getUserTradeItemHandler, GetUserKopHandler getUserKopHandler, GetClientBookkeepingHandler getClientBookkeepingHandler, GetClientTestmodeHandler getClientTestmodeHandler, GetGameMusicReleaseStateHandler getGameMusicReleaseStateHandler, GetUserMemoryChapterHandler getUserMemoryChapterHandler) {
this.getGameEventHandler = getGameEventHandler;
this.getGameIdlistHandler = getGameIdlistHandler;
this.getGameMessageHandler = getGameMessageHandler;
@ -75,6 +79,7 @@ public class OngekiController {
this.getUserBpBaseHandler = getUserBpBaseHandler;
this.getUserCardHandler = getUserCardHandler;
this.getUserChapterHandler = getUserChapterHandler;
this.getUserMemoryChapterHandler = getUserMemoryChapterHandler;
this.getUserCharacterHandler = getUserCharacterHandler;
this.getUserDataHandler = getUserDataHandler;
this.getUserDeckByKeyHandler = getUserDeckByKeyHandler;
@ -103,6 +108,9 @@ public class OngekiController {
this.getUserEventMusicHandler = getUserEventMusicHandler;
this.getUserTradeItemHandler = getUserTradeItemHandler;
this.getUserKopHandler = getUserKopHandler;
this.getClientBookkeepingHandler = getClientBookkeepingHandler;
this.getClientTestmodeHandler = getClientTestmodeHandler;
this.getGameMusicReleaseStateHandler = getGameMusicReleaseStateHandler;
}
@PostMapping("ExtendLockTimeApi")
@ -150,6 +158,11 @@ public class OngekiController {
return getGameTechMusicHandler.handle(request);
}
@PostMapping("GetGameMusicReleaseStateApi")
public String GetGameMusicReleaseState(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getGameMusicReleaseStateHandler.handle(request);
}
@PostMapping("GetUserTechEventApi")
public String getUserTechEvent(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getUserTechEventHandler.handle(request);
@ -200,6 +213,11 @@ public class OngekiController {
return getUserChapterHandler.handle(request);
}
@PostMapping("GetUserMemoryChapterApi")
public String getUserMemoryChapter(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getUserMemoryChapterHandler.handle(request);
}
@PostMapping("GetUserCharacterApi")
public String getUserCharacter(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getUserCharacterHandler.handle(request);
@ -323,10 +341,25 @@ public class OngekiController {
}
@PostMapping("GetUserKopApi")
public String getUserKopApi(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
public String getUserKop(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getUserKopHandler.handle(request);
}
@PostMapping("GetClientBookkeepingApi")
public String getClientBookkeeping(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getClientBookkeepingHandler.handle(request);
}
@PostMapping("GetClientTestmodeApi")
public String getClientTestmode(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
return getClientTestmodeHandler.handle(request);
}
@PostMapping("RegisterPromotionCardApi")
public String registerPromotionCard(@ModelAttribute Map<String, Object> request) {
return "{\"returnCode\":1,\"apiName\":\"registerPromotionCard\"}";
}
@PostMapping("UpsertClientBookkeepingApi")
public String upsertClientBookkeeping(@ModelAttribute Map<String, Object> request) {
return "{\"returnCode\":1},\"apiName\":\"upsertClientBookkeeping\"";

View File

@ -0,0 +1,24 @@
package icu.samnyan.aqua.sega.ongeki.dao.userdata;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMemoryChapter;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("OngekiUserMemoryChapterRepository")
public interface UserMemoryChapterRepository extends JpaRepository<UserMemoryChapter, Long> {
List<UserMemoryChapter> findByUser_Card_ExtId(long userId);
Optional<UserMemoryChapter> findByUserAndChapterId(UserData userData, int chapterId);
@Transactional
void deleteByUser(UserData user);
}

View File

@ -0,0 +1,46 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component("OngekiGetClientBookkeepingHandler")
public class GetClientBookkeepingHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(GetClientBookkeepingHandler.class);
private final BasicMapper mapper;
@Autowired
public GetClientBookkeepingHandler(BasicMapper mapper, UserKopRepository userKopRepository) {
this.mapper = mapper;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long placeId = ((Number) request.get("placeId")).longValue();
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("placeId", placeId);
resultMap.put("length", 0);
resultMap.put("clientBookkeepingList", List.of());
String json = mapper.write(resultMap);
logger.info("Response: " + json);
return json;
}
}

View File

@ -0,0 +1,46 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component("OngekiGetClientTestmodeHandler")
public class GetClientTestmodeHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(GetClientTestmodeHandler.class);
private final BasicMapper mapper;
@Autowired
public GetClientTestmodeHandler(BasicMapper mapper, UserKopRepository userKopRepository) {
this.mapper = mapper;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long placeId = ((Number) request.get("placeId")).longValue();
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("placeId", placeId);
resultMap.put("length", 0);
resultMap.put("clientTestmodeList", List.of());
String json = mapper.write(resultMap);
logger.info("Response: " + json);
return json;
}
}

View File

@ -0,0 +1,45 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component("OngekiGetGameMusicReleaseStateHandler")
public class GetGameMusicReleaseStateHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(GetGameMusicReleaseStateHandler.class);
private final BasicMapper mapper;
@Autowired
public GetGameMusicReleaseStateHandler(BasicMapper mapper, UserKopRepository userKopRepository) {
this.mapper = mapper;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
// TODO: Find out what this does
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("techScore", 0);
resultMap.put("cardNum", 0);
String json = mapper.write(resultMap);
logger.info("Response: " + json);
return json;
}
}

View File

@ -43,6 +43,7 @@ public class GetGameSettingHandler implements BaseHandler {
GameSetting gameSetting = new GameSetting(
"1.05.00",
"", //TODO dynamic
false,
10,
start.getPropertyValue(),

View File

@ -0,0 +1,51 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMemoryChapterRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMemoryChapter;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component("OngekiGetUserMemoryChapterHandler")
public class GetUserMemoryChapterHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(GetUserMemoryChapterHandler.class);
private final BasicMapper mapper;
private final UserMemoryChapterRepository userMemoryChapterRepository;
@Autowired
public GetUserMemoryChapterHandler(BasicMapper mapper, UserMemoryChapterRepository userMemoryChapterRepository) {
this.mapper = mapper;
this.userMemoryChapterRepository = userMemoryChapterRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
List<UserMemoryChapter> MemoryChapterList = userMemoryChapterRepository.findByUser_Card_ExtId(userId);
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("length", MemoryChapterList.size());
resultMap.put("userMemoryChapterList", MemoryChapterList);
String json = mapper.write(resultMap);
logger.info("Response: " + json);
return json;
}
}

View File

@ -61,6 +61,8 @@ public class UpsertUserAll implements Serializable {
private List<UserChapter> userChapterList;
private List<UserMemoryChapter> userMemoryChapterList;
private List<UserItem> userItemList;
private List<UserMusicItem> userMusicItemList;
@ -110,6 +112,9 @@ public class UpsertUserAll implements Serializable {
@JsonProperty("isNewChapterList")
private String isNewChapterList;
@JsonProperty("isNewMemoryChapterList")
private String isNewMemoryChapterList;
@JsonProperty("isNewItemList")
private String isNewItemList;

View File

@ -35,7 +35,7 @@ public class GetUserPreviewResp {
private int headphone = 0;
private int banStatus = 0;
@JsonProperty("isWarningConfirmed")
private boolean isWarningConfirmed = true;
private boolean isWarningConfirmed = false;
private int lastEmoneyBrand = 0;
private int lastEmoneyCredit = 0;
}

View File

@ -14,6 +14,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class GameSetting {
private String dataVersion;
private String onlineDataVersion;
@JsonProperty("isMaintenance")
private boolean isMaintenance;
private int requestInterval;

View File

@ -66,6 +66,9 @@ public class UserData implements Serializable {
private int overDamageBattlePoint;
@JsonProperty("isDialogWatchedSuggestMemory")
private boolean isDialogWatchedSuggestMemory;
private int nameplateId;
private int trophyId;
@ -74,6 +77,8 @@ public class UserData implements Serializable {
private int characterId;
private int characterVoiceNo;
private int tabSetting;
private int tabSortSetting;

View File

@ -0,0 +1,63 @@
package icu.samnyan.aqua.sega.ongeki.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "OngekiUserMemoryChapter")
@Table(name = "ongeki_user_memory_chapter")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserMemoryChapter implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private int chapterId;
private int jewelCount;
private int lastPlayMusicCategory;
private int lastPlayMusicId;
private int lastPlayMusicLevel;
@JsonProperty("isDialogWatched")
private boolean isDialogWatched;
@JsonProperty("isStoryWatched")
private boolean isStoryWatched;
@JsonProperty("isBossWatched")
private boolean isBossWatched;
@JsonProperty("isClear")
private boolean isClear;
private int gaugeId;
private int gauseNum;
public UserMemoryChapter(UserData userData) {
this.user = userData;
}
}

View File

@ -42,7 +42,7 @@ public class UserOption implements Serializable {
private int abort;
public int stealthField;
private int stealthField;
private int tapSound;
@ -72,7 +72,7 @@ public class UserOption implements Serializable {
private int colorLaneBright;
public int colorWallBright;
private int colorWallBright;
private int colorLane;

View File

@ -105,6 +105,8 @@ public class UserPlaylog implements Serializable {
private int battleScoreRank;
private int platinumScore;
private int maxCombo;
private int judgeMiss;

View File

@ -0,0 +1,29 @@
-- ongeki_user_data
ALTER TABLE ongeki_user_data ADD COLUMN is_dialog_watched_suggest_memory BOOLEAN;
ALTER TABLE ongeki_user_data ADD COLUMN character_voice_no INTEGER;
UPDATE ongeki_user_data SET is_dialog_watched_suggest_memory=false;
UPDATE ongeki_user_data SET character_voice_no=0;
-- ongeki_user_playlog
ALTER TABLE ongeki_user_playlog ADD COLUMN platinum_score INTEGER;
UPDATE ongeki_user_playlog SET platinum_score=0;
-- ongeki_user_memory_chapter
CREATE TABLE ongeki_user_memory_chapter
(
id BIGINT auto_increment PRIMARY KEY,
chapter_id INTEGER NOT NULL,
is_clear BOOLEAN NOT NULL,
is_story_watched BOOLEAN NOT NULL,
is_dialog_watched BOOLEAN NOT NULL,
is_boss_watched BOOLEAN NOT NULL,
jewel_count INTEGER NOT NULL,
last_play_music_category INTEGER NOT NULL,
last_play_music_id INTEGER NOT NULL,
last_play_music_level INTEGER NOT NULL,
gauge_id INTEGER NOT NULL,
gauge_num INTEGER NOT NULL,
user_id BIGINT,
constraint FKkbNRqobZgn7cDysE
foreign key (user_id) references ongeki_user_data (id)
);

View File

@ -0,0 +1,29 @@
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (1, 'あかニャン', '',1);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (6, 'こんじきニャン', '',6);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (2024, '風見 幽香', '',2024);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46020, '山手響子', '',46020);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46021, '犬寄しのぶ', '',46021);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46022, '笹子・ジェニファー・由香', '',46022);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46023, '清水絵空', '',46023);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46024, '青柳 椿', '',46024);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46025, '月見山 渚', '',46025);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46026, '矢野緋彩', '',46026);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46027, '三宅葵依', '',46027);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46069, 'イレイナ', '',46069);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46070, 'フラン', '',46070);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46071, 'サヤ', '',46071);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46072, 'シーラ', '',46072);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46073, 'ジャンヌ・ダルク', '',46073);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46074, '鷹取 舞花', '',46074);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46075, '鹿野 志穂', '',46075);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46076, '月居 ほのか', '',46076);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46077, '赤川 千紗', '',46077);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46078, '恵庭 あいり', '',46078);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46079, '九条 柚葉', '',46079);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46080, '神室 絢', '',46080);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46081, '宮路 まほろ', '',46081);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46082, '日名倉 莉子', '',46082);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46083, '宇津木 聡里', '',46083);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46084, '明神 凛音', '',46084);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46085, '遠見 鳴', '',46085);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46086, 'ノエル・ザ・ネクストシーズン', '',46086);

View File

@ -0,0 +1,34 @@
-- ongeki_user_data
ALTER TABLE ongeki_user_data ADD COLUMN is_dialog_watched_suggest_memory BOOLEAN;
ALTER TABLE ongeki_user_data ADD COLUMN character_voice_no INTEGER;
UPDATE ongeki_user_data SET is_dialog_watched_suggest_memory=false;
UPDATE ongeki_user_data SET character_voice_no=0;
-- ongeki_user_playlog
ALTER TABLE ongeki_user_playlog ADD COLUMN platinum_score INTEGER;
UPDATE ongeki_user_playlog SET platinum_score=0;
-- ongeki_user_memory_chapter
CREATE TABLE ongeki_user_memory_chapter
(
id INTEGER,
chapter_id INTEGER NOT NULL,
is_clear BOOLEAN NOT NULL,
is_story_watched BOOLEAN NOT NULL,
is_dialog_watched BOOLEAN NOT NULL,
is_boss_watched BOOLEAN NOT NULL,
jewel_count INTEGER NOT NULL,
last_play_music_category INTEGER NOT NULL,
last_play_music_id INTEGER NOT NULL,
last_play_music_level INTEGER NOT NULL,
gauge_id INTEGER NOT NULL,
gauge_num INTEGER NOT NULL,
user_id BIGINT REFERENCES ongeki_user_data (id) ON DELETE CASCADE,
PRIMARY KEY (
id
),
CONSTRAINT ongeki_user_memory_chapter_uq UNIQUE (
chapter_id,
user_id
) ON CONFLICT REPLACE
);

View File

@ -0,0 +1,29 @@
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (1, 'あかニャン', '',1);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (6, 'こんじきニャン', '',6);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (2024, '風見 幽香', '',2024);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46020, '山手響子', '',46020);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46021, '犬寄しのぶ', '',46021);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46022, '笹子・ジェニファー・由香', '',46022);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46023, '清水絵空', '',46023);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46024, '青柳 椿', '',46024);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46025, '月見山 渚', '',46025);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46026, '矢野緋彩', '',46026);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46027, '三宅葵依', '',46027);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46069, 'イレイナ', '',46069);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46070, 'フラン', '',46070);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46071, 'サヤ', '',46071);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46072, 'シーラ', '',46072);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46073, 'ジャンヌ・ダルク', '',46073);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46074, '鷹取 舞花', '',46074);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46075, '鹿野 志穂', '',46075);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46076, '月居 ほのか', '',46076);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46077, '赤川 千紗', '',46077);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46078, '恵庭 あいり', '',46078);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46079, '九条 柚葉', '',46079);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46080, '神室 絢', '',46080);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46081, '宮路 まほろ', '',46081);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46082, '日名倉 莉子', '',46082);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46083, '宇津木 聡里', '',46083);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46084, '明神 凛音', '',46084);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46085, '遠見 鳴', '',46085);
INSERT INTO ongeki_game_chara (id, name, cv, model_id) VALUES (46086, 'ノエル・ザ・ネクストシーズン', '',46086);

View File

@ -338,7 +338,7 @@ class OngekiRepositoryTest {
}
private UserData getUser(Card c) {
return new UserData(-1, c, "Hello", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "2020", "2020", "SDDT", "1.00.00", "1.00.00", "2020", "SDDT", "1.00.00", "1.00.00", "", "2020", 0, "0", 0, "123", 0, "A000000", 0, 0, 0);
return new UserData(-1, c, "Hello", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "2020", "2020", "SDDT", "1.00.00", "1.00.00", "2020", "SDDT", "1.00.00", "1.00.00", "", "2020", 0, "0", 0, "123", 0, "A000000", 0, 0, 0);
}
private UserActivity getActivity(UserData u, Integer activityId) {
@ -398,7 +398,7 @@ class OngekiRepositoryTest {
}
private UserPlaylog getPlaylog(UserData u, Integer musicId) {
return new UserPlaylog(-1, u, 0, 0, "", "", "", musicId, 1, 1, 1, "", 1, 1, 1, 1, "", "", "", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, true, true, true, true, true, true, 0, 0);
return new UserPlaylog(-1, u, 0, 0, "", "", "", musicId, 1, 1, 1, "", 1, 1, 1, 1, "", "", "", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, true, true, true, true, true, true, 0, 0);
}
private UserScenario getScenario(UserData u, Integer scenarioId) {