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

218 lines
7 KiB
Lua
Raw Normal View History

2022-12-26 08:36:01 +00:00
-- 约会活动地点对象
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 //地点IDint 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