Merge branch 'master_xma_local' into gx/xma_local

dev_chengFeng
gaoxin 2021-01-12 10:56:36 +08:00
commit 13767fd26e
37 changed files with 198 additions and 40 deletions

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -80,7 +80,7 @@ TextureImporter:
indices:
edges: []
weights: []
spritePackingTag: DynamicActivityAtlas
spritePackingTag: DyAct_TongQiangTieBi
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:

View File

@ -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)

View File

@ -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
-- 判断是否是战斗测试

View File

@ -2269,10 +2269,12 @@ local effectList = {
-- a[属性],b[float]
[118] = function(caster, target, args, interval, skill)
local pro = args[1]
local f1 = args[2]
local f1 = args[2]
BattleLogic.WaitForTrigger(interval, function ()
local damage = BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro]))
if (pro==12 or pro==13) and BattleUtil.CheckIsBoss(target) then
return
end
local damage = floor(BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro])))
BattleUtil.FinalDamage(skill, caster, target, damage, nil, 0, nil, true)
end)
end,
@ -2328,6 +2330,30 @@ 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 ()
if (pro==12 or pro==13) and BattleUtil.CheckIsBoss(target) then
return
end
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,
}

View File

@ -177,6 +177,8 @@ BuffName = {
Immune = "Immune",
NoDead = "NoDead",
Curse = "Curse",
KylinMark = "KylinMark",
Exile = "Exile",
}
DotType = {

View File

@ -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,
}

View File

@ -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
},
}

View File

@ -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() --护盾列表

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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)

View File

@ -2,7 +2,7 @@
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) -- 减号

View File

@ -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)

View File

@ -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)
-- 调用上层接口

View File

@ -103,7 +103,7 @@ end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function this:OnShow()
--this
this.refreshText.text = Language[11009]
this.refreshText.text = "每日凌晨0点重置求援次数"
this.ShowPanelData()
end
function this.ShowPanelData()

View File

@ -17,6 +17,7 @@ this.timer = Timer.New()
local challengeNum = 0
local lootNum = 0
local isPlayAnim = true
local bossNum = 0
--初始化组件(用于子类重写)
function GuildCarDelayMainPanel:InitComponent()
this.live2dRoot = Util.GetGameObject(self.gameObject, "live2dRoot")
@ -54,6 +55,12 @@ function GuildCarDelayMainPanel:InitComponent()
this.RankListPre, nil, Vector2.New(-v2.x*2, -v2.y*2), 1, 1, Vector2.New(50,8))
this.ScrollView.moveTween.MomentumAmount = 1
this.ScrollView.moveTween.Strength = 1
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.WorldBossConfig)) do
if v.Id > 0 then
bossNum = bossNum + 1
end
end
end
--绑定事件(用于子类重写)
@ -181,7 +188,9 @@ end
function this.ShowTitleAllData()
curMonsterId = GuildCarDelayManager.bossIndexId
curMonsterIdConFig = ConfigManager.GetConfigData(ConfigName.WorldBossConfig,curMonsterId)
Log("BossId:"..curMonsterIdConFig.Boss)
--获取上一个boss数据
local lastMonsterId,lastMonsterIdConFig = this.GetLastBoss(curMonsterId)
Log("curMonsterId:"..curMonsterIdConFig.Boss.." lastMonsterId:"..lastMonsterIdConFig.Boss)
this.name.text = heroConfig[curMonsterIdConFig.Boss].ReadingName
this.proImage.sprite=Util.LoadSprite(GetProStrImageByProNum(heroConfig[curMonsterIdConFig.Boss].PropertyName))
curProgress = GuildCarDelayManager.progress
@ -203,7 +212,7 @@ function this.ShowTitleAllData()
this.timer = nil
end
this.timeTextGo:SetActive(true)
this.timeText2.text = Language[11040]
this.timeText2.text = "车迟斗法将于次日0点重置。"
--else
elseif curProgress == -1 then
timeText = Language[11041]
@ -219,20 +228,32 @@ function this.ShowTitleAllData()
timeText = Language[11044]
this.RemainTimeDown(this.timeTextGo,this.timeText,this.timeNumText,GuildCarDelayManager.endTime - GetTimeStamp(),timeText)
end
if testLiveGO then
poolManager:UnLoadLive(GetResourcePath(heroConfig[curMonsterIdConFig.Boss].Live), testLiveGO)
end
local pos = heroConfig[curMonsterIdConFig.Boss].Position
testLiveGO = poolManager:LoadLive(GetResourcePath(heroConfig[curMonsterIdConFig.Boss].Live), this.live2dRoot.transform, Vector3.one*heroConfig[curMonsterIdConFig.Boss].Scale, Vector3.New(pos[1], pos[2], 0))
LogYellow("############")
this.live2dRoot.transform.localScale = Vector3.one*0.8
if curMonsterIdConFig.Boss == 10023 then--孙悟空太大了特殊处理了
this.live2dRoot.transform.localPosition = Vector3.New(0,80,0)
else
this.live2dRoot.transform.localPosition = Vector3.New(0,170,0)
end
this.RefrePanelRedPoint()
if testLiveGO then
poolManager:UnLoadLive(GetResourcePath(heroConfig[lastMonsterIdConFig.Boss].Live), testLiveGO)
poolManager:UnLoadLive(GetResourcePath(heroConfig[curMonsterIdConFig.Boss].Live), testLiveGO)
end
local pos = heroConfig[curMonsterIdConFig.Boss].Position
testLiveGO = poolManager:LoadLive(GetResourcePath(heroConfig[curMonsterIdConFig.Boss].Live), this.live2dRoot.transform, Vector3.one*heroConfig[curMonsterIdConFig.Boss].Scale, Vector3.New(pos[1], pos[2], 0))
this.live2dRoot.transform.localScale = Vector3.one*0.8
if curMonsterIdConFig.Boss == 10023 then--孙悟空太大了特殊处理了
this.live2dRoot.transform.localPosition = Vector3.New(0,80,0)
else
this.live2dRoot.transform.localPosition = Vector3.New(0,170,0)
end
this.RefrePanelRedPoint()
end
function this.GetLastBoss(curBossId)
local lastIndex = 0
if curBossId == 1 then
lastIndex = bossNum
else
lastIndex = curBossId - 1
end
local lastMonsterIdConFig = ConfigManager.GetConfigData(ConfigName.WorldBossConfig,lastIndex)
return lastMonsterIdConFig.Boss,lastMonsterIdConFig
end
-- tab节点显示自定义
function this.TabAdapter(tab, index, status)
local tabLab = Util.GetGameObject(tab, "Text")

View File

@ -70,9 +70,10 @@ function this:InitRankView()
if #msg.ranks==0 then this.firstPlayerName.text=Language[11073] end
this.scrollView:SetData(msg.ranks,function(index, root)
if index==1 then
this:SetFirstShow(msg.ranks[index])
end
this:SetShow(root, msg.ranks[index],msg.myRankInfo.rank)
if index>1 then return end
this:SetFirstShow(msg.ranks[index])
end)
end)
end

View File

@ -89,7 +89,7 @@ function BattleFailPopup:OnOpen(battlePanel, showRecord, backPanel,_fightType)
FightPointPassManager.FightBattleEnd()
Util.GetGameObject(this.btnClose, "record"):SetActive(m_showRecord)
Util.GetGameObject(this.btnClose,"tip"):SetActive(not fightType ==12)--副本内无法点击招募
if fightType == BATTLE_TYPE.MAP_FIGHT then--地图
if fightType == BATTLE_TYPE.MAP_FIGHT or GuideManager.IsInMainGuide then--地图
this.btnBattleBack:SetActive(false)
else
this.btnBattleBack:SetActive(true)

View File

@ -145,7 +145,7 @@ function RewardItemPopup:OnOpen(...)
end
local haveRecord = BattleRecordManager.isHaveRecord()
this.btnResult:SetActive(haveRecord and args[5])
this.btnBattleBack:SetActive(haveRecord and args[5] and BattleManager.GetLastBattleType() ~= BATTLE_TYPE.MAP_FIGHT)
this.btnBattleBack:SetActive(haveRecord and args[5] and BattleManager.GetLastBattleType() ~= BATTLE_TYPE.MAP_FIGHT and not GuideManager.IsInMainGuide)
this.btnResultMax:SetActive(haveRecord and args[5])
-- 设置背景遮罩的显隐
local isHideBG = args[6]

View File

@ -147,6 +147,24 @@ function this:RefreshBtnState()
self:InitNewOpenShow()
self:CheckMainCityNew()
self:SetAnimState()
self:RedPointTimer()
end
function this:RedPointTimer()
if this.timer then
this.timer:Stop()
this.timer = nil
end
local t = 0
this.timer = Timer.New(function ()
t = t + 1
if t%5 == 1 then
if (PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_CHALLENGE) > 0 or PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_LOOT) > 0) then--车迟的红点
CheckRedPointStatus(RedPointType.LegendExplore)
end
end
end,1,-1,true)
this.timer:Start()
end
-- 检测是否开启