| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package achieve
- import (
- "f1-game/internal/data"
- "f1-game/internal/enum"
- "f1-game/internal/facade"
- "f1-game/internal/sessions"
- "f1-game/nodes/map/internal/db"
- "f1-game/nodes/map/player/quest"
- clog "github.com/cherry-game/cherry/logger"
- cproto "github.com/cherry-game/cherry/net/proto"
- )
- type service struct {
- facade.PlayerServiceBase[*db.MapPlayerTable]
- }
- func Service() *service {
- return &service{}
- }
- func (p *service) OnLogined(mapPlayerTable *db.MapPlayerTable, session *cproto.Session) {
- // 不是首次创建
- if !session.Contains(sessions.IsNewPlayer) {
- return
- }
- // 初始化赛季成就任务
- for _, row := range data.QuestAchieveType.List() {
- // 不是赛季任务 跳过
- if row.AchieveType != int32(enum.QuestAchieveType_Season) {
- continue
- }
- // 累计任务
- quest.Service().TriggerOpenGroup(mapPlayerTable.PlayerID, row.CumAchieveGroupID)
- achievePoolList, found := data.QuestAchievePool.ListByPoolID(row.AchievePool)
- if !found {
- clog.Warnf("add season achieve quest fail. playerID:%d, groupID:%d", mapPlayerTable.PlayerID, row.CumAchieveGroupID)
- continue
- }
- // 添加成就任务
- for _, achievePoolRow := range achievePoolList {
- for _, groupID := range achievePoolRow.QuestGroupIDs {
- quest.Service().TriggerOpenGroup(mapPlayerTable.PlayerID, groupID)
- }
- }
- }
- clog.Infof("init season achieve quest finish. playerID:%d", mapPlayerTable.PlayerID)
- }
|