package mapLeague import ( "f1-game/internal/data" leagueBase "f1-game/nodes/map/league/base" leagueMember "f1-game/nodes/map/league/member" leagueStorage "f1-game/nodes/map/league/storage" "time" ctime "github.com/cherry-game/cherry/extend/time" ) func (p *actorLeague) startTimer() { //移除所有定时器 p.Timer().RemoveAll() // 添加跨天定时器 p.Timer().AddFixedHour(int(data.Const.ResetTime), 0, 0, p.onCrossDayTimer) // 添加每秒定时器 p.Timer().Add(1*time.Second, p.every1STimer) // 资源定时器 p.Timer().Add(3*time.Second, p.every3STimer) } func (p *actorLeague) onCrossDayTimer() { p.dailyReset() } // oneSecondTimer 每1秒定时器 func (p *actorLeague) every1STimer() { nowSecond := ctime.Now().ToSecond() // 每日重置检查 p.dailyReset() // TODO 以下后续改到service中 // 盟主转让 leagueMember.Service().LeagueLeaderTransferTimer(p.leagueTable, nowSecond) // 盟主弹劾 leagueMember.Service().LeagueImpeachTimer(p.leagueTable, nowSecond) leagueBase.Service().LeagueDiplomacyTimer(p.leagueID, nowSecond) } // every3STimer 每3秒定时器 func (p *actorLeague) every3STimer() { nowSecond := ctime.Now().ToSecond() leagueStorage.Service().CheckAutoAdd(p.leagueID, nowSecond) } // 联盟每日重置 func (p *actorLeague) dailyReset() { now := ctime.Now() p.leagueTable.Stats.CheckReset(&now) // 不需要重置 if !p.leagueTable.Stats.IsCanReset() { return } // 执行重置 LeagueServiceOnReset(p.leagueTable) p.Warn("league daily reset finish. dayReset=%v, weekReset=%v", p.leagueTable.Stats.IsDayReset, p.leagueTable.Stats.IsWeekReset) }