PGRData/Script/matrix/xentity/xsupersmashbros/XSmashBRole.lua

211 lines
5.5 KiB
Lua
Raw Permalink Normal View History

local XBaseRole = require("XEntity/XRole/XBaseRole")
--===========================
--超限乱斗角色对象
--模块负责:吕天元
--===========================
2024-09-01 20:49:41 +00:00
---@class XSmashBCharacter:XBaseRole
local XSmashBRole = XClass(XBaseRole, "XSmashBCharacter")
--==================
--构造函数
--@param
--rawData : XCharacter或XRobot
--==================
function XSmashBRole:Ctor(rawData)
self.RawData = rawData
self.EquipCore = nil
self.HpLeft = 100
self.SpLeft = 100
self.EggOrgId = 0
self.IsEggOpen = nil
self.Unknown = nil
self.ShowOrgEnable = nil
end
--==================
--获取剩余的生命值百分比
--==================
function XSmashBRole:GetHpLeft()
return self.HpLeft
end
--==================
--设置剩余的生命值百分比
--==================
function XSmashBRole:SetHpLeft(value)
self.HpLeft = value
end
--==================
--获取剩余的能量百分比
--==================
function XSmashBRole:GetSpLeft()
return self.SpLeft
end
--==================
--设置剩余的能量百分比
--==================
function XSmashBRole:SetSpLeft(value)
self.SpLeft = value
end
--==================
--获取正在装备的核心
--==================
function XSmashBRole:GetCore()
if self.CoreId and self.CoreId > 0 then
return XDataCenter.SuperSmashBrosManager.GetCoreById(self.CoreId)
end
return nil
end
--==================
--设置正在装备的核心Id
--==================
function XSmashBRole:SetCore(coreId)
self.CoreId = coreId or 0
end
--==================
--设置为超限乱斗彩蛋机器人 并加入彩蛋配置 cxldV2
--==================
function XSmashBRole:SetSuperSmashEggRobot(config)
self.IsEggRobot = true
self.EggConfig = config
end
--==================
--是否为超限乱斗彩蛋机器人 cxldV2
--==================
function XSmashBRole:IsSmashEggRobot()
return self.IsEggRobot
end
--==================
--获得彩蛋机器人揭开前的角色id cxldV2
--==================
function XSmashBRole:GetEggRobotOrgId()
return self.EggOrgId
end
--==================
--设置是否显示彩蛋机器人原角色 在ready界面定义 cxldV2
--==================
function XSmashBRole:SetShowEggOrgCharEnable(flag)
self.ShowOrgEnable = flag
end
--==================
--是否显示彩蛋机器人原角色 cxldV2
--==================
function XSmashBRole:GetShowEggOrgCharEnable(flag)
return self.ShowOrgEnable
end
--==================
--设置彩蛋机器人揭开前的角色id cxldV2
--==================
function XSmashBRole:SetEggRobotOrgId(orgId)
if not self:IsSmashEggRobot() then
return
end
self.EggOrgId = orgId
end
--==================
--彩蛋是否已揭开 cxldV2
--==================
function XSmashBRole:GetIsEggOpen()
if not self:IsSmashEggRobot() then
return false
end
return self.IsEggOpen
end
--==================
--揭开彩蛋 cxldV2
--==================
function XSmashBRole:SetOpenEgg()
if not self:IsSmashEggRobot() then
self.IsEggOpen = false
return
end
self.IsEggOpen = true
end
--==================
--关闭彩蛋且关闭彩蛋角色绑定 cxldV2
--==================
function XSmashBRole:SetCloseEgg()
self.IsEggOpen = false
self.EggOrgId = 0
end
--==================
--根据彩蛋是否揭开获取角色或者原角色 cxldV2
--==================
function XSmashBRole:GetOrgOrEggRoleByEggOpen()
local char = nil
if self:GetIsEggOpen() then
char = XDataCenter.SuperSmashBrosManager.GetRoleById(self:GetEggRobotOrgId())
else
char = self
end
return char
end
--==================
--获取彩蛋配置 cxldV2
--==================
function XSmashBRole:GetEggConfig()
return self.EggConfig
end
--==================
--设为强制随机的未知状态 cxldV2
--==================
function XSmashBRole:SetUnknown(flag)
self.Unknown = flag
end
--==================
--获取强制随机状态 cxldV2
--==================
function XSmashBRole:GetIsUnknown()
return self.Unknown
end
--==================
--获取当前角色战力
--==================
function XSmashBRole:GetAbility()
local coreAbility = 0
local core = self:GetCore()
local manager = XDataCenter.SuperSmashBrosManager
if core then
coreAbility = (core:GetAtkLevel() * manager.GetAtkUpAbilityByLevel()) + (core:GetLifeLevel() * manager.GetLifeUpAbilityByLevel())
end
local teamLevelAbility = XDataCenter.SuperSmashBrosManager.GetNowTeamLevelConfig().AbilityUp
return coreAbility + self:GetCharacterViewModel():GetAbility() + teamLevelAbility
end
2024-09-01 20:49:41 +00:00
--==================
--NpcId
--==================
--function XSmashBRole:GetNpcId()
-- --XCharacter或XRobot
-- if self.RawData.__cname == "XCharacter" then
-- return self.RawData.NpcId
-- end
-- if self.RawData.__cname == "XRobot" then
-- return self.RawData.Id
-- end
-- XLog.Error("[XSmashBRole] unhandled rawData")
-- return 0
--end
--==================
--援助技能
--==================
function XSmashBRole:GetAssistantSkillDesc()
return XSuperSmashBrosConfig.GetAssistantSkillDesc(self)
end
--==================
--援助技能名称
--==================
function XSmashBRole:GetAssistantSkillName()
return XSuperSmashBrosConfig.GetAssistantSkillName(self)
end
function XSmashBRole:IsNoCareer()
return false
end
function XSmashBRole:GetAssistanceCharacterImg()
local id = self:GetId()
local config = XSuperSmashBrosConfig.GetCfgByIdKey(XSuperSmashBrosConfig.TableKey.Assistance, id, true)
if config then
return config.RoleCharacterBig
end
end
return XSmashBRole