battle.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. local bagData = require("data.bag")
  2. local root = class("battle", require("base.baseModule"))
  3. function root:ctor(uid)
  4. root.super.ctor(self, uid, "battle", "uid", true)
  5. self.uid = uid
  6. end
  7. function root:mysql_get_init_columns()
  8. return {
  9. uid = "int(11) unsigned NOT NULL",
  10. roomId = "int(11) DEFAULT 0 COMMENT '当前房间ID'",
  11. costItems = "json COMMENT '消耗物品列表'"
  12. }
  13. end
  14. -- 登录
  15. function root:do_login()
  16. end
  17. -- 绑定房间
  18. function root:band_room(roomId, costItems)
  19. self:redis_update_key_info("roomId", roomId)
  20. self:redis_update_key_info("costItems", costItems)
  21. end
  22. -- 解绑房间
  23. -- ty - 解绑类型: leave:离开 dismiss:解散 seat:更换座位 settle:结算
  24. function root:unband_room(ty)
  25. self:redis_update_key_info("roomId")
  26. local costItems = self:redis_get_key_info("costItems")
  27. if (ty == "leave" or ty == "dismiss" or ty == "seat") and not is_empty(costItems) then
  28. -- 返回物品
  29. local keyEvent = string.format("room-%s", ty)
  30. bagData:add_items(self.uid, costItems, keyEvent)
  31. end
  32. self:redis_update_key_info("costItems")
  33. return true
  34. end
  35. -- 是否绑定房间
  36. function root:is_band_room()
  37. local roomId = self:redis_get_key_info("roomId")
  38. local costItems = self:redis_get_key_info("costItems")
  39. return not is_empty(roomId) and not is_empty(costItems)
  40. end
  41. -- 获取当前房间ID
  42. function root:get_room_id()
  43. return self:redis_get_key_info("roomId")
  44. end
  45. -- 获取绑定房间消耗物品
  46. function root:get_room_cost_items()
  47. return self:redis_get_key_info("costItems")
  48. end
  49. return root