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

153 lines
4.6 KiB
Lua
Raw Normal View History

2022-12-26 08:36:01 +00:00
-- 约会小游戏角色对象
local XWhiteValentineChara = XClass(nil, "XWhiteValentineChara")
--==========构造函数,初始化,实体操作==========
--==================
--构造函数
--==================
function XWhiteValentineChara:Ctor(CharaManager, CharaId, CharaData)
self.CharaManager = CharaManager
self:InitConfig(CharaId)
self:RefreshData(CharaData)
end
--==================
--初始化配置
--==================
function XWhiteValentineChara:InitConfig(CharaId)
self:ResetStatus()
self.Config = XWhiteValentineConfig.GetWhiteValentineCharaByCharaId(CharaId)
self.AttrCfg = XWhiteValentineConfig.GetWhiteValentineAttrById(self:GetAttrType())
end
--==================
--重置状态
--==================
function XWhiteValentineChara:ResetStatus()
self.Dispatching = false
self:SetInTeam(false)
self:SetFinishEventCount(0)
end
--==================
--刷新数据
--@param CharaData:{int Id //角色IDlong EventEndTime //事件完成时间, int FinishEventCount //完成的事件次数}
--==================
function XWhiteValentineChara:RefreshData(CharaData)
if not CharaData then return end
self:SetInTeam(true)
self.Dispatching = CharaData.EventEndTime > 0
self:SetFinishEventCount(CharaData.FinishEventCount)
end
--=================== END =====================
--=================Get,Set,Check================
--==================
--获取游戏ID
--==================
function XWhiteValentineChara:GetGameId()
return self.CharaManager:GetGameId()
end
--==================
--获取角色ID
--==================
function XWhiteValentineChara:GetCharaId()
return self.Config and self.Config.Id
end
--==================
--获取角色名
--==================
function XWhiteValentineChara:GetName()
return self.Config and self.Config.Name
end
--==================
--获取角色图标
--==================
function XWhiteValentineChara:GetIconPath()
return self.Config and self.Config.IconPath
end
--==================
--获取角色属性类型
--==================
function XWhiteValentineChara:GetAttrType()
return self.Config and self.Config.AttrType
end
--==================
--获取角色属性数值
--==================
function XWhiteValentineChara:GetAttrValue()
return self.Config and self.Config.AttrValue
end
--==================
--获取角色属性图标
--==================
function XWhiteValentineChara:GetAttrIcon()
return self.AttrCfg and self.AttrCfg.IconPath
end
--==================
--获取偶遇约会ID
--==================
function XWhiteValentineChara:GetEncounterStoryId()
return self.Config and self.Config.EncounterStoryId
end
--==================
--获取邀约约会ID
--==================
function XWhiteValentineChara:GetInviteStoryId()
return self.Config and self.Config.InviteStoryId
end
--==================
--获取约会故事配置
--@param storyType:WhiteValentineManager.StoryType 故事类型
--==================
function XWhiteValentineChara:GetStoryByStoryType(storyType)
local storyName = XDataCenter.WhiteValentineManager.StoryTypeName[storyType]
local storyId = storyName and 0 or -1
if storyId == -1 then return nil end
if self["Get" .. storyName .. "StoryId"] then
storyId = self["Get" .. storyName .. "StoryId"](self)
end
local storyCfg = XWhiteValentineConfig.GetWhiteValentineStoryById(storyId)
return storyCfg
end
--==================
--获取特殊通讯ID
--==================
function XWhiteValentineChara:GetCommuId()
return self.Config and self.Config.CommuId
end
--==================
--获取节省时间百分比
--==================
function XWhiteValentineChara:GetCutDownTime()
return self.Config and self.Config.CutDownTime
end
--==================
--获取增加贡献值奖励百分比
--==================
function XWhiteValentineChara:GetContributionBuff()
return self.Config and self.Config.ContributionBuff
end
--==================
--设置已完成约会数目
--==================
function XWhiteValentineChara:SetFinishEventCount(finishEventCount)
if not finishEventCount then return end
if finishEventCount < 0 then finishEventCount = 0 end
self.FinishEventCount = finishEventCount
end
--==================
--获取角色是否已获取
--==================
function XWhiteValentineChara:GetInTeam()
return self.InTeam
end
--==================
--设置角色获取状态
--==================
function XWhiteValentineChara:SetInTeam(isInTeam)
self.InTeam = isInTeam
end
--==================
--获取角色是否已派遣
--==================
function XWhiteValentineChara:GetDispatching()
return self.Dispatching
end
--=================== END =====================
return XWhiteValentineChara