package mapPlayer import ( "f1-game/internal/event" nameRemote "f1-game/internal/name/remote" "f1-game/nodes/map/internal/db" cfacade "github.com/cherry-game/cherry/facade" ) func (p *actorPlayer) initPlayerStats() { p.Remote().Register(nameRemote.MapPlayer_ResGatherStats, p.onPlayerResGatherStats) p.Remote().Register(nameRemote.MapPlayer_CrusadeBattleStats, p.onPlayerCrusadeBattleStats) p.Remote().Register(nameRemote.MapPlayer_TileOccupyStats, p.onPlayerTileOccupyStats) // p.EventRegister(nameEvent.Map_PlayerResGather, p.onPlayerResGatherStats) // p.EventRegister(nameEvent.Map_PlayerCrusadeBattle, p.onPlayerCrusadeBattleStats) // p.EventRegister(nameEvent.Map_PlayerTileOccupy, p.onPlayerTileOccupyStats) } // 资源采集事件统计 func (p *actorPlayer) onPlayerResGatherStats(e cfacade.IEventData) { evt, ok := e.(*event.PlayerResGather) if !ok { p.Warn("[onPlayerResGatherStats] fail, event:%+v", e) return } assets := evt.Assets() if assets.IsEmpty() { return } playerTable := db.GetMapPlayerTable(p.playerID) if ok := playerTable.Stats.UpdateResGatherStats(assets); ok { playerTable.Save2Queue() } } // 讨贼事件统计 func (p *actorPlayer) onPlayerCrusadeBattleStats(e cfacade.IEventData) { evt, ok := e.(*event.CrusadeBattle) if !ok { p.Warn("[onPlayerCrusadeBattleStats] fail, event:%+v", e) return } playerTable := db.GetMapPlayerTable(p.playerID) if ok := playerTable.Stats.UpdateCrusadeBattleStats(evt.ConfigID(), evt.Level(), evt.IsWin()); ok { playerTable.Save2Queue() } } // 攻占资源地事件统计 func (p *actorPlayer) onPlayerTileOccupyStats(e cfacade.IEventData) { evt, ok := e.(*event.TileOccupy) if !ok { p.Warn("[onPlayerTileOccupyStats] fail, event:%+v", e) return } playerTable := db.GetMapPlayerTable(p.playerID) if ok := playerTable.Stats.UpdateTileOccpuyStats(evt.Level()); ok { playerTable.Save2Queue() } }