diff --git a/Assets/ManagedResources/Atlas/DynamicActivityAtlas/LingShouBaoGe/l_lingshou_jinwu.png b/Assets/ManagedResources/Atlas/DynamicActivityAtlas/LingShouBaoGe/l_lingshou_jinwu.png new file mode 100644 index 0000000000..b4cae75b60 Binary files /dev/null and b/Assets/ManagedResources/Atlas/DynamicActivityAtlas/LingShouBaoGe/l_lingshou_jinwu.png differ diff --git a/Assets/ManagedResources/Atlas/DynamicActivityAtlas/LingShouBaoGe/l_lingshou_jinwu.png.meta b/Assets/ManagedResources/Atlas/DynamicActivityAtlas/LingShouBaoGe/l_lingshou_jinwu.png.meta new file mode 100644 index 0000000000..a304af739a --- /dev/null +++ b/Assets/ManagedResources/Atlas/DynamicActivityAtlas/LingShouBaoGe/l_lingshou_jinwu.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 2c604d8634e4b944abcf9535ed7f901a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 74d79a32a3e48794a83e9da7136640a9 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: DynamicActivityAtlas + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua b/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua index ac9cfced5f..bd7f41f954 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua @@ -290,6 +290,7 @@ function this.GetBattleServerData(msg, isFightPlayer) camp = 0, type = 1, quality = 0, + job=HeroConfig[rid].Job, element = HeroConfig[rid].PropertyName, professionId = HeroConfig[rid].Profession, passivity = { }, diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua index 6662ef4695..009d49625b 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -177,6 +177,8 @@ BuffName = { Immune = "Immune", NoDead = "NoDead", Curse = "Curse", + KylinMark = "KylinMark", + Exile = "Exile", } DotType = { diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MCondition.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MCondition.lua index 2ddc8b26b1..d6f0f75503 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MCondition.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MCondition.lua @@ -46,13 +46,74 @@ local _ConditionConfig = { return isRoundOk and isRandomOk end, - [4] = function(skill, condition) --4:行动单位的职业设定 【比较类型】 N + [4] = function(skill, condition) --4:场上燃烧目标的数量 【比较类型】 N local conId = condition[1] local comType = condition[2] local comValue = condition[3] -- 当前释放技能的单位的职业 local professionId = skill.owner.professionId - return professionId == comValue + + local list = RoleManager.Query(function(role) + return role.camp ~= skill.owner.camp + end) + if not list then + return false + end + local num=0 + for key, value in pairs(list) do + local isHave=BattleLogic.BuffMgr:HasBuff(value, BuffName.DOT, function(buff) return buff.damageType == 1 end) + if isHave then + num=num+1 + end + end + return BattleUtil.CompareValue(num, comValue, comType) + end, + [5] = function(skill, condition) --5:敌方上场神将数量 且概率(万分比) + local conId = condition[1] + local comType = condition[2] + local comValue = condition[3] + local rand = condition[4] + local roleList = RoleManager.Query(function(role) + return role.camp ~= skill.owner.camp + end) + local isEnough=BattleUtil.CompareValue(#roleList, comValue, comType) + local r = Random.Range01() + -- 判断概率 + if isEnough then + return r>rand/10000 + end + return false + end, + [6] = function(skill, condition) --6:敌方任意神将生命百分比 【比较类型】 N(万分比) + local conId = condition[1] + local comType = condition[2] + local comValue = condition[3] + local round = condition[4] + -- 获取该技能相同阵营人物 + local roleList = RoleManager.Query(function(role) + return role.camp ~= skill.owner.camp + end) + -- 判断 + local r = Random.Range01() + for _, role in ipairs(roleList) do + local hpf = role:GetRoleData(RoleDataName.Hp) / role:GetRoleData(RoleDataName.MaxHp) + if BattleUtil.CompareValue(hpf, comValue/10000, comType) then + return round/10000>r + end + end + return false + end, + [7] = function(skill, condition) --7:检测是否有可以放逐的目标 + local list=skill.owner.exileTargets + if list then + local roleList = RoleManager.Query(function(role) + return role.camp ~= skill.owner.camp and not BattleUtil.ChecklistIsContainValue(list,role) + end) + if roleList and #roleList>0 then + return true + end + end + return false end, } diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MTrigger.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MTrigger.lua index 5ea443bb38..eebb84f5f0 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MTrigger.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Monster/MonsterSkill/MTrigger.lua @@ -90,7 +90,7 @@ local _TriggerConfig = { triggerFunc = function(skill, ...) local args = {...} local castSkill = args[1] - return castSkill.owner.camp == skill.owner.camp + return castSkill.owner.camp == skill.owner.camp and castSkill.owner.job==2 and (castSkill.type==BattleSkillType.DeadSkill or castSkill.type==BattleSkillType.Extra or castSkill.type==BattleSkillType.Special) end }, } diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua index 4a0e4a5c7f..a37870ce3e 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua @@ -33,6 +33,7 @@ function RoleLogic:Init(uid, data, position) self.name = data.name self.element = data.element self.professionId = data.professionId + self.job=data.job self.star = data.star or 1 -- LogError("英雄uid".. self.roleId .." " .. self.star) self.shield:Clear() --护盾列表 diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/SkillManager.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/SkillManager.lua index d820659a29..544a79676b 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/SkillManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/SkillManager.lua @@ -157,15 +157,22 @@ function this.Update() -- 检测一下轮转 this.IsSkilling = false -- this.CheckTurnRound() - -- 检测一次灵兽技能 - this.CheckMonsterSkill(this.MonsterCheckFunc) + if this.MonsterCheckFunc then + this.CheckMonsterSkill(this.MonsterCheckFunc) + else + this.CheckMonsterSkill(this.CheckTurnRound) + end end) else -- 检测一下轮转 this.IsSkilling = false -- this.CheckTurnRound() -- 检测一次灵兽技能 - this.CheckMonsterSkill(this.MonsterCheckFunc) + if this.MonsterCheckFunc then + this.CheckMonsterSkill(this.MonsterCheckFunc) + else + this.CheckMonsterSkill(this.CheckTurnRound) + end end return end diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Test/BattleTestPanel.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Test/BattleTestPanel.lua index 43f05b1ceb..a1c123a0e1 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Test/BattleTestPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Test/BattleTestPanel.lua @@ -308,6 +308,7 @@ function this.RefreshFightData(type) data.skinId=role.skinId LogError("skinId==="..role.skinId) data.type = 1 + data.job=roleData.Job local paskill = string.split(role.passivity, "#") data.passivity = BattleManager.GetPassivityData(paskill) or {} data.property = {} @@ -364,6 +365,7 @@ end function this.ApplyMonsterData(data) monsterTestData = data this.RefreshFightData(2) + return true end function this.ClearMonsterData(camp) if camp == 0 then diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua index 4d50b185a7..11549fb5f4 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua @@ -8,6 +8,8 @@ local BuffTypeToConfigType = { [BuffName.Shield] = 5, [BuffName.Immune] = 6, [BuffName.Curse] = 7, + [BuffName.KylinMark] = 8, + [BuffName.Exile] = 9, } local function _GetPropChangeBuffCType(pName) for cType, pn in ipairs(BattlePropList) do @@ -39,6 +41,10 @@ local function _GetBuffEffectConfig(buff) cType = buff.immuneType elseif bType == BuffName.Curse then cType = buff.curseType + elseif bType== BuffName.KylinMark then + cType = 1 + elseif bType== BuffName.Exile then + cType = 1 end local type = BuffTypeToConfigType[bType]