218 lines
No EOL
7 KiB
Lua
218 lines
No EOL
7 KiB
Lua
-- 约会活动地点对象
|
||
local XWhiteValentinePlace = XClass(nil, "XWhiteValentinePlace")
|
||
--==========构造函数,初始化,实体操作==========
|
||
--==================
|
||
--构造函数
|
||
--@param Game:约会Game对象
|
||
--@param PlaceId:地点ID
|
||
--@param PlaceData:地点数据(可缺省)
|
||
--==================
|
||
function XWhiteValentinePlace:Ctor(GameController, PlaceId)
|
||
self.GameController = GameController
|
||
self:InitConfig(PlaceId)
|
||
end
|
||
|
||
function XWhiteValentinePlace:InitConfig(PlaceId)
|
||
self:ResetStatus()
|
||
self.Config = XWhiteValentineConfig.GetWhiteValentinePlaceByPlaceId(PlaceId)
|
||
end
|
||
--==================
|
||
--重置地点配置以外数据
|
||
--==================
|
||
function XWhiteValentinePlace:ResetStatus()
|
||
self.EventCfg = nil
|
||
self.EventRankCfg = nil
|
||
self.EventAttrCfg = nil
|
||
self.EventFinishCount = 0
|
||
self.DispatchingChara = nil
|
||
self.EventEndTime = 0
|
||
end
|
||
--==================
|
||
--刷新数据
|
||
--@param PlaceData:{int Id //地点ID,int RoleId //在该地点派遣的角色Id, int EventCfgId //事件Id,
|
||
-- long EventEndTime //结束时间戳,0 表示未派遣角色
|
||
-- int EventFinishCount //此地点的完成事件计数}
|
||
--==================
|
||
function XWhiteValentinePlace:RefreshData(PlaceData)
|
||
if not PlaceData then return end
|
||
self.EventCfg = XWhiteValentineConfig.GetWhiteValentineEventByEventId(PlaceData.EventCfgId)
|
||
self.EventRankCfg = XWhiteValentineConfig.GetWhiteValentineRankConfigById(PlaceData.EventRankType)
|
||
self.EventAttrCfg = XWhiteValentineConfig.GetWhiteValentineAttrById(self.EventCfg.AttrType)
|
||
self.EventFinishCount = PlaceData.EventFinishCount
|
||
self.EventEndTime = PlaceData.EventEndTime
|
||
self:SetDispatchingChara(self.GameController:GetChara(PlaceData.RoleId))
|
||
end
|
||
--=================== END =====================
|
||
--=================对外接口(Get,Set,Check等接口)================
|
||
--==================
|
||
--获取游戏ID
|
||
--==================
|
||
function XWhiteValentinePlace:GetGameId()
|
||
return self.GameController and self.GameController:GetGameId()
|
||
end
|
||
--==================
|
||
--获取地点ID
|
||
--==================
|
||
function XWhiteValentinePlace:GetPlaceId()
|
||
return self.Config and self.Config.Id
|
||
end
|
||
--==================
|
||
--获取地点序号
|
||
--==================
|
||
function XWhiteValentinePlace:GetOrderId()
|
||
return self.Config and self.Config.OrderId
|
||
end
|
||
--==================
|
||
--获取地点开放前置
|
||
--==================
|
||
function XWhiteValentinePlace:GetPrePlaceId()
|
||
return self.Config and self.Config.PrePlaceId
|
||
end
|
||
--==================
|
||
--获取地点附赠邀请次数
|
||
--==================
|
||
function XWhiteValentinePlace:GetInviteNum()
|
||
return self.Config and self.Config.InviteNum
|
||
end
|
||
--==================
|
||
--获取默认事件
|
||
--==================
|
||
function XWhiteValentinePlace:GetDefaultEventId()
|
||
return self.Config and self.Config.DefaultEventId
|
||
end
|
||
--==================
|
||
--获取随机事件池
|
||
--==================
|
||
function XWhiteValentinePlace:GetRandomEventId()
|
||
return self.Config and self.Config.RandomEventId
|
||
end
|
||
--==================
|
||
--获取地点是否开放
|
||
--==================
|
||
function XWhiteValentinePlace:GetIsOpen()
|
||
return self.EventCfg ~= nil
|
||
end
|
||
--==================
|
||
--获取事件名称
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventName()
|
||
return self.EventCfg and self.EventCfg.Name
|
||
end
|
||
--==================
|
||
--获取事件描述
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventDescription()
|
||
return self.EventCfg and self.EventCfg.Description
|
||
end
|
||
--==================
|
||
--获取阶级名称
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventRankName()
|
||
return self.EventRankCfg and self.EventRankCfg.Name
|
||
end
|
||
--==================
|
||
--获取事件阶级图标
|
||
--==================
|
||
function XWhiteValentinePlace:GetRankIcon()
|
||
return self.EventRankCfg and self.EventRankCfg.IconPath
|
||
end
|
||
--==================
|
||
--获取事件阶级贡献值奖励
|
||
--==================
|
||
function XWhiteValentinePlace:GetRankContributionReward()
|
||
return self.EventRankCfg and self.EventRankCfg.RewardContribution
|
||
end
|
||
--==================
|
||
--获取事件阶级消耗时间
|
||
--==================
|
||
function XWhiteValentinePlace:GetCostTime()
|
||
return self.EventRankCfg and self.EventRankCfg.CostTime
|
||
end
|
||
--==================
|
||
--获取事件阶级金币奖励
|
||
--==================
|
||
function XWhiteValentinePlace:GetRankCoinReward()
|
||
return self.EventRankCfg and self.EventRankCfg.RewardCoin
|
||
end
|
||
--==================
|
||
--获取地点背景图
|
||
--==================
|
||
function XWhiteValentinePlace:GetBgPath()
|
||
return self.Config and self.Config.BgPath
|
||
end
|
||
--==================
|
||
--获取地点事件消耗体力
|
||
--==================
|
||
function XWhiteValentinePlace:GetCostEnergy()
|
||
return self.EventRankCfg and self.EventRankCfg.CostEnergy or 0
|
||
end
|
||
--==================
|
||
--获取地点事件属性图标
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventAttrIcon()
|
||
return self.EventAttrCfg and self.EventAttrCfg.IconPath
|
||
end
|
||
--==================
|
||
--获取地点事件属性种类
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventAttrType()
|
||
return self.EventAttrCfg and self.EventAttrCfg.Id
|
||
end
|
||
--==================
|
||
--获取派遣至此地点的角色
|
||
--==================
|
||
function XWhiteValentinePlace:GetDispatchingChara()
|
||
return self.DispatchingChara
|
||
end
|
||
--==================
|
||
--设置派遣至此地点的角色
|
||
--==================
|
||
function XWhiteValentinePlace:SetDispatchingChara(chara)
|
||
self.DispatchingChara = chara
|
||
end
|
||
--==================
|
||
--获取派遣结束时间,为0表示没有派遣
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventEndTime()
|
||
return self.EventEndTime or 0
|
||
end
|
||
--==================
|
||
--获取离派遣结束的时间
|
||
--==================
|
||
function XWhiteValentinePlace:GetEventEndTimeString()
|
||
local timeEnd = self:GetEventEndTime()
|
||
local timeNow = XTime.GetServerNowTimestamp()
|
||
local leftTime = timeEnd - timeNow
|
||
if leftTime < 0 then leftTime = 0 end
|
||
local string = CS.XTextManager.GetText("WhiteValentinePlaceCountDownStr", XUiHelper.GetTime(leftTime, XUiHelper.TimeFormatType.TO_A_MINUTE))
|
||
return string
|
||
end
|
||
--==================
|
||
--获取是否正在派遣倒计时中,未派遣或已完成都会返回false
|
||
--==================
|
||
function XWhiteValentinePlace:GetIsDispatching()
|
||
local timeNow = XTime.GetServerNowTimestamp()
|
||
return (self.EventEndTime > 0) and (timeNow < self:GetEventEndTime())
|
||
end
|
||
--==================
|
||
--检查本地点事件是否已完成
|
||
--==================
|
||
function XWhiteValentinePlace:CheckCanFinishEvent()
|
||
if self:GetEventEndTime() == 0 then return false end
|
||
local timeNow = XTime.GetServerNowTimestamp()
|
||
return timeNow >= self.EventEndTime
|
||
end
|
||
--==================
|
||
--获取贡献值道具图标
|
||
--==================
|
||
function XWhiteValentinePlace:GetContributionItemIcon()
|
||
return self.GameController:GetContributionItemIcon()
|
||
end
|
||
--==================
|
||
--获取金币图标
|
||
--==================
|
||
function XWhiteValentinePlace:GetCoinItemIcon()
|
||
return self.GameController:GetCoinItemIcon()
|
||
end
|
||
--=================== END =====================
|
||
return XWhiteValentinePlace |