| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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)
- }
|