PGRData/Resources/Scripts/XEntity/XMiniGame/WhiteValentine2021/XWhiteValentinePlace.lua
2022-12-26 14:06:01 +05:30

218 lines
No EOL
7 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 约会活动地点对象
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