Compare commits

2 Commits

Author SHA1 Message Date
Ilya Groshev ab5a999ffe Fix black screen re-entering a side story with no quest cleared
Build and Push Docker images to Docker Hub / build-and-push (push) Has been cancelled
2026-05-18 20:52:19 +03:00
Ilya Groshev 8520b67a8b Fix endless battle loop on background quests with battle scenes 2026-05-18 19:52:27 +03:00
2 changed files with 11 additions and 1 deletions
+8 -1
View File
@@ -24,7 +24,14 @@ func (h *QuestHandler) initQuestState(user *store.UserState, questId int32) {
} }
func isMainQuestPlayable(quest masterdata.EntityMQuest) bool { func isMainQuestPlayable(quest masterdata.EntityMQuest) bool {
return !quest.IsRunInTheBackground && quest.IsCountedAsQuest if quest.IsRunInTheBackground {
// A background quest is still actively played — and must NOT be
// auto-cleared on start — when it carries battle content (a non-zero
// recommended deck power, e.g. quests 500/515/30515). Pure cutscene
// background quests have RecommendedDeckPower == 0.
return quest.RecommendedDeckPower > 0
}
return quest.IsCountedAsQuest
} }
func (h *QuestHandler) clearQuestMissions(user *store.UserState, questId int32, nowMillis int64) { func (h *QuestHandler) clearQuestMissions(user *store.UserState, questId int32, nowMillis int64) {
@@ -101,6 +101,9 @@ func (s *SideStoryQuestServiceServer) MoveSideStoryQuestProgress(ctx context.Con
scene, ok = info.SceneIdByType(model.SideStorySceneIntroduction) scene, ok = info.SceneIdByType(model.SideStorySceneIntroduction)
} else { } else {
scene, ok = sideStoryNextSceneAfterBattle(info, user) scene, ok = sideStoryNextSceneAfterBattle(info, user)
if !ok {
scene, ok = existing.HeadSideStoryQuestSceneId, true
}
} }
if !ok { if !ok {
return return