PGRData/Resources/Scripts/XEntity/XMiniGame/WhiteValentine2021/XWhiteValentinePlaceManager.lua

79 lines
2.9 KiB
Lua
Raw Normal View History

2022-12-26 08:36:01 +00:00
-- 白情活动地点管理器
local XWhiteValentinePlaceManager = XClass(nil, "XWhiteValentinePlaceManager")
function XWhiteValentinePlaceManager:Ctor(Game)
self.Game = Game
self:InitPlaces()
end
--==================
--初始化地点
--==================
function XWhiteValentinePlaceManager:InitPlaces()
self.Places = {}
local PlaceObj = require("XEntity/XMiniGame/WhiteValentine2021/XWhiteValentinePlace")
local AllPlaces = XWhiteValentineConfig.GetAllWhiteValentinePlace()
for placeId, _ in pairs(AllPlaces) do
local newPlace = PlaceObj.New(self.Game, placeId)
self.Places[placeId] = newPlace
end
end
--==================
--刷新数据
--@param PlaceDb:PlaceData集合。PlaceData = {int Id //地点IDint RoleId //在该地点派遣的角色Id, int EventCfgId //事件Id
-- long EventEndTime //结束时间戳,0 表示未派遣角色
-- int EventFinishCount //此地点的完成事件计数}
--==================
function XWhiteValentinePlaceManager:RefreshData(PlaceDb)
if not PlaceDb then return end
for _, placeData in pairs(PlaceDb) do
local place = self.Places[placeData.Id]
if place then place:RefreshData(placeData) end
end
end
--==================
--刷新地点数据
--@param PlaceData = {int Id //地点IDint RoleId //在该地点派遣的角色Id, int EventCfgId //事件Id
-- long EventEndTime //结束时间戳,0 表示未派遣角色
-- int EventFinishCount //此地点的完成事件计数}
--==================
function XWhiteValentinePlaceManager:RefreshPlace(PlaceData)
local place = self.Places[PlaceData.Id]
if place then place:RefreshData(PlaceData) end
end
--==================
--批量刷新地点数据
--@param PlaceDatas:PlaceData集合。PlaceData = {int Id //地点IDint RoleId //在该地点派遣的角色Id, int EventCfgId //事件Id
-- long EventEndTime //结束时间戳,0 表示未派遣角色
-- int EventFinishCount //此地点的完成事件计数}
--==================
function XWhiteValentinePlaceManager:RefreshPlaceRange(PlaceDatas)
if not PlaceDatas then return end
for _, placeData in pairs(PlaceDatas) do
self:RefreshPlace(placeData)
end
end
--==================
--获取地点列表
--==================
function XWhiteValentinePlaceManager:GetPlaceList()
return self.Places
end
--==================
--根据ID获取地点
--@param placeId:地点ID
--==================
function XWhiteValentinePlaceManager:GetPlaceByPlaceId(placeId)
return self.Places[placeId]
end
--==================
--检查是否有事件已经结束
--==================
function XWhiteValentinePlaceManager:CheckCanFinishEvent()
for _, place in pairs(self.Places) do
if place:CheckCanFinishEvent() then
return true
end
end
return false
end
return XWhiteValentinePlaceManager