Merge branch 'master_xma_local' of http://60.1.1.230/gaoxin/JL_Client into master_xma_local
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 294 KiB After Width: | Height: | Size: 294 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 239 KiB After Width: | Height: | Size: 239 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 465 KiB After Width: | Height: | Size: 465 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
|
|
@ -80,7 +80,7 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag: DynamicActivityAtlas
|
||||
spritePackingTag: DyAct_TongQiangTieBi
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
|
|
@ -1258,7 +1258,7 @@ function GetTimePass(timeValue)
|
|||
tab.sec = 0
|
||||
|
||||
local tab2 = os.date("*t", timeValue)
|
||||
tab2.hour = 5
|
||||
tab2.hour = 0
|
||||
tab2.min = 0
|
||||
tab2.sec = 0
|
||||
local timeStartSum = os.time(tab2)
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ function this.GetMonsterData(monsterId)
|
|||
skill = this.GetSkillData(monsterConfig.SkillList[1],monsterConfig.SkinId),
|
||||
superSkill = this.GetSkillData(monsterConfig.SkillList[2],monsterConfig.SkinId),
|
||||
element = monsterConfig.PropertyName,
|
||||
job=HeroConfig[monsterConfig.MonsterId].Job,
|
||||
passivity = this.GetPassivityData(monsterConfig.PassiveSkillList),
|
||||
property = {
|
||||
monsterConfig.Level,
|
||||
|
|
@ -290,6 +291,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 = { },
|
||||
|
|
@ -371,6 +373,7 @@ function this.GetBattleServerData(msg, isFightPlayer)
|
|||
position = position,
|
||||
star = star,
|
||||
skinId=skin,
|
||||
job=HeroConfig[monsterConfig.MonsterId].Job,
|
||||
camp = 1,
|
||||
type = monsterConfig.Type,
|
||||
quality = monsterConfig.Quality,
|
||||
|
|
@ -399,6 +402,7 @@ function this.GetBattleServerData(msg, isFightPlayer)
|
|||
position = position,
|
||||
star = star,
|
||||
skinId=skin,
|
||||
job=HeroConfig[rid].Job,
|
||||
camp = 1,
|
||||
type = 1,
|
||||
quality = 0,
|
||||
|
|
@ -544,6 +548,7 @@ function this.GetBattlePlayerData(fId)
|
|||
camp = 0,
|
||||
type = 1,
|
||||
quality = 0,
|
||||
job=HeroConfig[heroData.id].Job,
|
||||
element = HeroConfig[heroData.id].PropertyName,
|
||||
professionId = heroData.profession,
|
||||
}
|
||||
|
|
@ -844,6 +849,7 @@ function this.GetBattleSorting()
|
|||
if UIManager.IsOpen(UIName.GuideBattlePanel) then
|
||||
return GuideBattlePanel.sortingOrder
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
-- 判断是否是战斗测试
|
||||
|
|
|
|||
|
|
@ -2272,7 +2272,7 @@ local effectList = {
|
|||
local f1 = args[2]
|
||||
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local damage = BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro]))
|
||||
local damage = floor(BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro])))
|
||||
BattleUtil.FinalDamage(skill, caster, target, damage, nil, 0, nil, true)
|
||||
end)
|
||||
end,
|
||||
|
|
@ -2328,6 +2328,28 @@ local effectList = {
|
|||
end
|
||||
BattleUtil.SeckillHP(skill,caster,target,pro)
|
||||
end,
|
||||
-- 造成目标[a]*[b]%的直接伤害(不会被分摊机制分摊)
|
||||
-- a[属性],b[float]
|
||||
[124] = function(caster, target, args, interval, skill)
|
||||
local pro = args[1]
|
||||
local f1 = args[2]
|
||||
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local damage = floor(BattleUtil.ErrorCorrection(f1 * target:GetRoleData(BattlePropList[pro])))
|
||||
BattleUtil.FinalDamage(skill, caster, target, damage, nil, 0, nil, true)
|
||||
end)
|
||||
end,
|
||||
-- 目标[a]增加[b]%持续[c]回合,效果可叠加,[d]改变
|
||||
-- a[属性]b[float]c[int]d[改变类型]
|
||||
[125] = function(caster, target, args, interval, skill)
|
||||
local pro = args[1]
|
||||
local f1 = args[2]
|
||||
local i1 = args[3]
|
||||
local ct = args[4]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
target:AddBuff(Buff.Create(caster, BuffName.PropertyChange, i1, BattlePropList[pro], f1, ct))
|
||||
end)
|
||||
end,
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -177,6 +177,8 @@ BuffName = {
|
|||
Immune = "Immune",
|
||||
NoDead = "NoDead",
|
||||
Curse = "Curse",
|
||||
KylinMark = "KylinMark",
|
||||
Exile = "Exile",
|
||||
}
|
||||
|
||||
DotType = {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() --护盾列表
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -460,6 +460,9 @@ end
|
|||
|
||||
-- 怒气值改变
|
||||
function EnemyView:RoleRageChange(deltaRage)
|
||||
if self.role:IsRealDead() then
|
||||
return
|
||||
end
|
||||
if deltaRage ~= 0 then
|
||||
if deltaRage > 0 then
|
||||
self.Floater:ImageBuffFloating("z_zhandou_nuqijia", nil, deltaRage)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ FloatNode = {}
|
|||
|
||||
local floatingEffect = "FloatingText"
|
||||
local buffFloatingEffect = "BuffFloatingText"
|
||||
|
||||
local floor = math.floor
|
||||
-- 普通文字
|
||||
TextFloatingColor = {
|
||||
Blue = 1,
|
||||
|
|
@ -152,6 +152,7 @@ end
|
|||
|
||||
function FloatNode:GetArtText(type, color, value)
|
||||
local text = ""
|
||||
value=floor(value)
|
||||
if type == ArtFloatingType.CritDamage then
|
||||
text = text .. string.char(33) -- 暴击文字
|
||||
text = text .. string.char((color*2)+110) -- 减号
|
||||
|
|
|
|||
|
|
@ -518,6 +518,9 @@ end
|
|||
|
||||
-- 怒气值改变
|
||||
function PlayerView:RoleRageChange(deltaRage)
|
||||
if self.role:IsRealDead() then
|
||||
return
|
||||
end
|
||||
if deltaRage ~= 0 then
|
||||
if deltaRage > 0 then
|
||||
self.Floater:ImageBuffFloating("z_zhandou_nuqijia", nil, deltaRage)
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ function SkillCaster:PlaySkillCastingEffect(combat, skill, func)
|
|||
self.owner:OnSkillCastingStart()
|
||||
end
|
||||
|
||||
self.owner:DelayFunc(1, function()
|
||||
self.owner:DelayFunc(2, function()
|
||||
self.castingEfectNode:SetActive(false)
|
||||
|
||||
-- 调用上层接口
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ end
|
|||
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
||||
function this:OnShow()
|
||||
--this
|
||||
this.refreshText.text = Language[11009]
|
||||
this.refreshText.text = "每日凌晨0点重置求援次数"
|
||||
this.ShowPanelData()
|
||||
end
|
||||
function this.ShowPanelData()
|
||||
|
|
|
|||