源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.3 KiB

  1. require("game.arena.ArenaModel")
  2. require("game.arena.ArenaView")
  3. require("game.arena.ArenaView")
  4. require("game.arena.ArenaConst")
  5. -- require("game.arena.BattleFieldDefine")
  6. ArenaController = ArenaController or BaseClass(BaseController)
  7. function ArenaController:__init()
  8. ArenaController.Instance = self
  9. self.model = ArenaModel:getInstance()
  10. self:RegisterProtocals()
  11. self:InitEvent()
  12. end
  13. function ArenaController:RegisterProtocals()
  14. end
  15. function ArenaController:InitEvent()
  16. local function OPEN_ARENA_VIEW(index)
  17. if type(index) == "table" then
  18. index = index[1] or 1
  19. end
  20. if self.ArenaView == nil then
  21. self.ArenaView = ArenaView.New()
  22. end
  23. if not self.ArenaView:HasOpen() then
  24. self.ArenaView:Open(index)
  25. else
  26. self.ArenaView:ReOpen(index)
  27. end
  28. self.model:UpdateAllTabDot()
  29. end
  30. GlobalEventSystem:Bind(EventName.OPEN_ARENA_VIEW,OPEN_ARENA_VIEW)
  31. local function CLOSE_ARENA_VIEW( ... )
  32. if self.ArenaView then
  33. self.ArenaView:Close()
  34. end
  35. end
  36. GlobalEventSystem:Bind(EventName.CLOSE_ARENA_VIEW,CLOSE_ARENA_VIEW)
  37. --竞技模块的外部红点全部丢到这里来处理,各个模块自己的红点事件更新后要调用ArenaConst.ANS_ARENA_UPDATE_RED_DOT来刷新外部红点
  38. local function UPDATE_ALL_RED()
  39. local red = false
  40. local pk_red = PkRankModel:getInstance():PkRankModelCheckRedDot(false)
  41. local endless_red = EndlessModel:getInstance():CheckEndlessRedDot()
  42. local wasteland_red = WastelandModel:getInstance():CheckWastelandRedDot()
  43. local clothing_red = ClothingVoteModel:getInstance():GetClothingVoteMainRed()
  44. -- local csgwar_red_data = CSGWarModel:getInstance():GetCSGWarRedData()
  45. -- local csgwar_red = csgwar_red_data.one_red or csgwar_red_data.support_red or csgwar_red_data.fight_red or csgwar_red_data.occupy_red
  46. red = pk_red or endless_red or wasteland_red or clothing_red or csgwar_red
  47. GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 4, red)
  48. end
  49. self.model:Bind(ArenaConst.ANS_ARENA_UPDATE_RED_DOT,UPDATE_ALL_RED)
  50. local function ON_LEVEL_UP(level)
  51. if level and level == 100 then
  52. local pk_red = PkRankModel:getInstance():PkRankModelCheckRedDot(false)
  53. GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 4, pk_red)
  54. end
  55. end
  56. RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, ON_LEVEL_UP)
  57. end