Files
Main/Assets/GameAssets/Resources/Lua/Logic/FactionSkill/FactionSkillSystem.lua

104 lines
2.9 KiB
Lua
Raw Normal View History

2025-01-25 04:38:09 +08:00
------------------------------------------------
--作者: _SqL_
--日期: 2019-05-08
--文件: FactionSkillSystem.lua
--模块: FactionSkillSystem
--描述: 宗派技能系统
------------------------------------------------
local FactionSkillSystem = {
-- 是否打开界面
OpenForm = false,
-- 是否刷新宗派技能信息
Refresh = false,
-- 技能列表
SkillList = List:New(),
-- 技能的 最大等级
SkillMaxLvDic = Dictionary:New(), -- 技能的最大等级
}
function FactionSkillSystem:Initialize()
DataConfig.DataGuildCollege:Foreach(function(k, v)
if v.NextLevelID == 0 then
self.SkillMaxLvDic[v.Type] = v.Level
end
end)
end
function FactionSkillSystem:UnInitialize()
self.SkillList:Clear()
self.SkillMaxLvDic:Clear()
end
-- 获取技能的最大等级
function FactionSkillSystem:GetSkillMaxLv(id)
return self.SkillMaxLvDic[id]
end
-- 获取技能的id
function FactionSkillSystem:GetSkillIdByType(t)
for i = 1, #self.SkillList do
local _cfg = DataConfig.DataGuildCollege[self.SkillList[i]]
if _cfg.Type == t then
return _cfg.Id
end
end
end
-- 获取技能列表
function FactionSkillSystem:GetSkillList()
return self.SkillList
end
-- 检测是有否有可升级的技能
function FactionSkillSystem:CheckUpgreadSkill()
local _guildMoney = GameCenter.ItemContianerSystem:GetEconomyWithType(ItemTypeCode.UnionContribution)
for i = 1, #self.SkillList do
local _cfg = DataConfig.DataGuildCollege[self.SkillList[i]]
local _value = tonumber(Utils.SplitStr(_cfg.LearningConsumption,"_")[2])
if _value <= _guildMoney then
return true
end
end
return false
end
-- 宗派技能列表返回
function FactionSkillSystem:GS2U_ResFactionSkills(msg)
if msg.skills then
self.SkillList:Clear()
for i = 1, #msg.skills do
self.SkillList:Add(msg.skills[i])
end
table.sort( self.SkillList, function(a, b)
return a < b
end)
end
if self.OpenForm then
GameCenter.PushFixEvent(UIEventDefine.UIFactionSkillForm_OPEN)
self.OpenForm = false
end
if self.Refresh then
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_REFRESH_FACTIONSKILLS)
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_REFRESH_FACTIONSKILLINFO)
self.Refresh = false
end
-- GameCenter.MainFunctionSystem:SetAlertFlag(FunctionStartIdCode.GuildSkill, self:CheckUpgreadSkill())
end
-- 研究技能 (id=0 一键研究)
function FactionSkillSystem:ReqStudyFactionSkill(id)
self.Refresh = true
local _req = {}
_req.id = id
GameCenter.Network.Send("MSG_Guild.ReqLearnSkill", _req)
end
-- 请求技能列表
function FactionSkillSystem:ReqFactionSkilList()
self.OpenForm = true
GameCenter.Network.Send("MSG_Guild.ReqPlayerLearnSkills",{})
end
return FactionSkillSystem