Merge branch 'china/dev' of http://60.1.1.230/gaoxin/JL_Client into china/dev
commit
b63ad78128
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
|
@ -0,0 +1,131 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 012d9cd8169720e43a996d0dec97f5e2
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
21300000: r_zjm_shenhun
|
||||
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: 2
|
||||
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
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: 65
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 1
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: 33
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 1
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: r_zjm_shenhun
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 148
|
||||
height: 126
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 5f1cd8129411e9344866c6bf1c99c1f5
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: bca2e88436fc8fc4da1ff8e0e40ee262
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 34 KiB |
|
@ -19,27 +19,18 @@ AnimationClip:
|
|||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: 0, y: 180, z: 21.445002}
|
||||
value: {x: 0, y: 180, z: 9.373}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: {x: 0, y: 180.00002, z: 21.445002}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: -25.464457}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.9734258}
|
||||
- serializedVersion: 3
|
||||
time: 1.0833334
|
||||
value: {x: 0, y: 179.99998, z: 12.964346}
|
||||
inSlope: {x: 0, y: 0, z: -14.844557}
|
||||
outSlope: {x: 0, y: 0, z: -14.844557}
|
||||
value: {x: 0, y: 179.99998, z: 9.373}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
|
@ -47,7 +38,7 @@ AnimationClip:
|
|||
- serializedVersion: 3
|
||||
time: 1.5833334
|
||||
value: {x: 0, y: 180.00002, z: 9.373}
|
||||
inSlope: {x: 0, y: 0, z: 1.05247}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 1.05247}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
|
@ -81,16 +72,7 @@ AnimationClip:
|
|||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: -6.46, y: 4.22, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: {x: -6.82, y: 4.22, z: 0}
|
||||
value: {x: -6, y: 4.22, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
|
@ -99,34 +81,34 @@ AnimationClip:
|
|||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 1.0833334
|
||||
value: {x: -2.35, y: 2.83, z: 0}
|
||||
inSlope: {x: 7.3418183, y: -0.61090857, z: 0}
|
||||
outSlope: {x: 7.3418183, y: -0.61090857, z: 0}
|
||||
value: {x: 200, y: 2.83, z: 0}
|
||||
inSlope: {x: 193.26315, y: -0.3536839, z: 0}
|
||||
outSlope: {x: 193.26315, y: -0.3536839, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 1.5833334
|
||||
value: {x: -0.09, y: 2.69, z: 0}
|
||||
inSlope: {x: 5.5820227, y: 0, z: 0}
|
||||
outSlope: {x: 5.5820227, y: 0, z: 0}
|
||||
value: {x: 300, y: 2.69, z: 0}
|
||||
inSlope: {x: 269.66293, y: 0, z: 0}
|
||||
outSlope: {x: 269.66293, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 2.5666666
|
||||
value: {x: 5.93, y: 3.72, z: 0}
|
||||
inSlope: {x: 10.41628, y: 1.6883723, z: 0}
|
||||
outSlope: {x: 10.41628, y: 1.6883723, z: 0}
|
||||
value: {x: 600, y: 3.72, z: 0}
|
||||
inSlope: {x: 348.83722, y: 1.0674417, z: 0}
|
||||
outSlope: {x: 348.83722, y: 1.0674417, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 3.0166667
|
||||
value: {x: 14.84, y: 5.11, z: 0}
|
||||
value: {x: 800, y: 4.22, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
|
@ -188,16 +170,7 @@ AnimationClip:
|
|||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -6.46
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: -6.82
|
||||
value: -6
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
|
@ -206,37 +179,37 @@ AnimationClip:
|
|||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.0833334
|
||||
value: -2.35
|
||||
inSlope: 7.3418183
|
||||
outSlope: 7.3418183
|
||||
value: 200
|
||||
inSlope: 193.26315
|
||||
outSlope: 193.26315
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.5833334
|
||||
value: -0.09
|
||||
inSlope: 5.5820227
|
||||
outSlope: 5.5820227
|
||||
value: 300
|
||||
inSlope: 269.66293
|
||||
outSlope: 269.66293
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 2.5666666
|
||||
value: 5.93
|
||||
inSlope: 10.41628
|
||||
outSlope: 10.41628
|
||||
value: 600
|
||||
inSlope: 348.83722
|
||||
outSlope: 348.83722
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 3.0166667
|
||||
value: 14.84
|
||||
value: 800
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
tangentMode: 1
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
|
@ -259,20 +232,11 @@ AnimationClip:
|
|||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: 4.22
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.0833334
|
||||
value: 2.83
|
||||
inSlope: -0.61090857
|
||||
outSlope: -0.61090857
|
||||
inSlope: -0.3536839
|
||||
outSlope: -0.3536839
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
|
@ -289,18 +253,18 @@ AnimationClip:
|
|||
- serializedVersion: 3
|
||||
time: 2.5666666
|
||||
value: 3.72
|
||||
inSlope: 1.6883723
|
||||
outSlope: 1.6883723
|
||||
inSlope: 1.0674417
|
||||
outSlope: 1.0674417
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 3.0166667
|
||||
value: 5.11
|
||||
value: 4.22
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
tangentMode: 1
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
|
@ -323,15 +287,6 @@ AnimationClip:
|
|||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.0833334
|
||||
value: 0
|
||||
|
@ -364,7 +319,7 @@ AnimationClip:
|
|||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
tangentMode: 1
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
|
@ -378,15 +333,6 @@ AnimationClip:
|
|||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.5833334
|
||||
value: 0
|
||||
|
@ -433,15 +379,6 @@ AnimationClip:
|
|||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: 180.00002
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.0833334
|
||||
value: 179.99998
|
||||
|
@ -488,15 +425,6 @@ AnimationClip:
|
|||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0.6666667
|
||||
value: 21.445002
|
||||
inSlope: -25.464457
|
||||
outSlope: -25.464457
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.9734258
|
||||
- serializedVersion: 3
|
||||
time: 1.5833334
|
||||
value: 9.373
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 29 KiB |
|
@ -27,6 +27,7 @@ GameEvent = {
|
|||
GuidePanelScrollViewPos = "Guide.GuidePanelScrollViewPos",
|
||||
|
||||
BattleGuideDone = "Guide.BattleGuideDone",
|
||||
FuncGuideDone = "Guide.FuncGuideDone",
|
||||
},
|
||||
Player = {
|
||||
--金币数量改变
|
||||
|
|
|
@ -815,6 +815,7 @@ function this.GetSkillCombat(id)
|
|||
BeforeBullet = combat.BeforeBullet,
|
||||
SkillNumber = combat.SkillNumber,
|
||||
SkillDuration = combat.SkillDuration,
|
||||
DamageDelay = combat.DamageDelay,
|
||||
BeforeOrientation = combat.BeforeOrientation,
|
||||
Orientation = combat.Orientation,
|
||||
HitOrientation = combat.HitOrientation,
|
||||
|
|
|
@ -652,9 +652,14 @@ function BattleUtil.ApplyDamageNoPassive(skill, atkRole, defRole, damage, bCrit,
|
|||
damage = BattleUtil.CalShield(atkRole, defRole, damage,skill)
|
||||
-- 造成的最终伤害
|
||||
local damagingFunc = function(dmgDeduction)
|
||||
--不计算增伤只计算减伤
|
||||
if dmgDeduction<0 then
|
||||
return
|
||||
end
|
||||
damage = damage - dmgDeduction
|
||||
end
|
||||
|
||||
atkRole.Event:DispatchEvent(BattleEventName.PassiveDamaging, damagingFunc, defRole, damage, skill, dotType, bCrit,damageType, dotType,isDirect)
|
||||
defRole.Event:DispatchEvent(BattleEventName.FinalBeDamageEnd, damagingFunc, atkRole, damage, skill, dotType, bCrit, damageType,isDirect)
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.FinalDamage, damagingFunc, atkRole, defRole, damage, skill, dotType, bCrit, damageType)
|
||||
|
||||
|
@ -814,8 +819,8 @@ function BattleUtil.FinalDamageCountShield(skill, atkRole, defRole, damage, bCri
|
|||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player then
|
||||
return
|
||||
end
|
||||
-- 计算护盾减伤
|
||||
damage = BattleUtil.CalShield(atkRole, defRole, damage,skill)
|
||||
-- 计算无敌盾减伤
|
||||
damage = BattleUtil.CalAllReduceShield(atkRole, defRole, damage,skill)
|
||||
|
||||
if damage < 0 then damage = 0 end
|
||||
if skill and skill.type==BattleSkillType.Special then
|
||||
|
|
|
@ -125,12 +125,12 @@ function RoleLogic:Init(uid, data, position)
|
|||
local len=floor((#coverArgs-1)/2)
|
||||
for i = 1, len do
|
||||
local id=0
|
||||
if #coverArgs>i+1 then
|
||||
id=coverArgs[i+1]
|
||||
if #coverArgs>i+i then
|
||||
id=coverArgs[i+i]
|
||||
end
|
||||
local value=0
|
||||
if #coverArgs>=i+2 then
|
||||
value=coverArgs[i+2]
|
||||
if #coverArgs>=i+i+1 then
|
||||
value=coverArgs[i+i+1]
|
||||
end
|
||||
if id~=0 and value~=0 and #args>=id and args[id] then
|
||||
args[id]=value
|
||||
|
|
|
@ -417,10 +417,16 @@ local DotTypeTip = {
|
|||
}
|
||||
--
|
||||
function EnemyView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
|
||||
if skill and skill.continueTime > 0 and skill.attackCount > 1 then
|
||||
local space = skill.continueTime / skill.attackCount
|
||||
local count = skill.attackCount
|
||||
local d = math.floor(dmg/count)
|
||||
if skill then
|
||||
-- 技能配置
|
||||
local combatId = BattleManager.GetCombatIdBySkin(skill.id, atkRole.roleData.skinId)
|
||||
local combat = BattleManager.GetSkillCombat(combatId)
|
||||
--
|
||||
local delay = combat.DamageDelay or 0
|
||||
local continue = skill.continueTime or 0
|
||||
local count = skill.attackCount or 1
|
||||
local space = continue / count
|
||||
local d = math.floor(dmg / count)
|
||||
-- 如果平均伤害小于0 则
|
||||
if d == 0 then
|
||||
d = dmg
|
||||
|
@ -429,7 +435,11 @@ function EnemyView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType,
|
|||
if BattleManager.IsBattleTestPanel() then
|
||||
LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s, 伤害段数:%s,每段伤害:%s", self.camp, self.role.position, dmg, count, d))
|
||||
end
|
||||
-- 伤害文字延时,有些受击特效不是立刻播放文字
|
||||
self:DelayFunc(delay/1000, function()
|
||||
-- 伤害文字
|
||||
if count ~= 1 then
|
||||
-- 多段伤害
|
||||
-- 后续伤害延迟打出
|
||||
self:LoopFunc(space, count - 1, function()
|
||||
self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill)
|
||||
|
@ -437,14 +447,24 @@ function EnemyView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType,
|
|||
-- 立刻打出第一次伤害
|
||||
local fd = dmg - d *(count - 1)
|
||||
self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
|
||||
-- 被伤害卡牌表现
|
||||
self:DOHitEffect(continue)
|
||||
else
|
||||
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
|
||||
-- 被伤害卡牌表现
|
||||
self:DOHitEffect()
|
||||
end
|
||||
end)
|
||||
-- 播放特效
|
||||
self.SkillCaster:CheckSkillHitEffect("hit", combat, skill)
|
||||
else
|
||||
if BattleManager.IsBattleTestPanel() then
|
||||
LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s", self.camp, self.role.position, dmg))
|
||||
end
|
||||
-- 伤害文字
|
||||
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
|
||||
-- 被伤害卡牌表现
|
||||
self:DOHitEffect()
|
||||
end
|
||||
end
|
||||
--
|
||||
|
@ -476,26 +496,35 @@ function EnemyView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotTyp
|
|||
end
|
||||
end
|
||||
end
|
||||
self.RoleLiveGOTran:DOShakeAnchorPos(0.3, Vector2.New(200, 100), 100, 50, false, true):OnComplete(function ()
|
||||
self.RoleLiveGO.transform.anchoredPosition = Vector2.New(self.outOffset[1], self.outOffset[2] )
|
||||
end)
|
||||
self.RoleLiveGOGraphic:DOColor(Color.New(1,0,0,1), 0.3):OnComplete(function ()
|
||||
self.RoleLiveGOGraphic:DOColor(Color.New(1,1,1,1), 0.1)
|
||||
end)
|
||||
-- 受击放大1.2倍
|
||||
self:DoScale(1.2, 0.3, function()
|
||||
self:DoScale(1, 0.1)
|
||||
end)
|
||||
-- 播放受击动画
|
||||
self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "hit", false)
|
||||
-- bo
|
||||
if skill then
|
||||
local combatId = BattleManager.GetCombatIdBySkin(skill.id, atkRole.roleData.skinId)
|
||||
local combat = BattleManager.GetSkillCombat(combatId)
|
||||
self.SkillCaster:CheckSkillHitEffect("hit", combat, skill)
|
||||
end
|
||||
end
|
||||
|
||||
-- 播放卡牌受击效果
|
||||
function EnemyView:DOHitEffect(time, func)
|
||||
-- 时间修正
|
||||
if not time or time < 0.3 then
|
||||
time = 0.3
|
||||
end
|
||||
-- 受击放大1.2倍
|
||||
self:DoScale(1.2, 0.1)
|
||||
-- 卡面变红
|
||||
self.RoleLiveGOGraphic:DOColor(Color.New(1,0,0,1), 0.1):OnComplete(function ()
|
||||
self.RoleLiveGOGraphic:DOColor(Color.New(1,1,1,1), 0.1):SetDelay(time)
|
||||
end)
|
||||
-- 震动
|
||||
self.RoleLiveGOTran:DOShakeAnchorPos(time, Vector2.New(200, 100), 100, 50, false, true):OnComplete(function ()
|
||||
self.RoleLiveGO.transform.anchoredPosition = Vector2.New(self.outOffset[1], self.outOffset[2] )
|
||||
-- 恢复大小
|
||||
self:DoScale(1, 0.1)
|
||||
-- 回调
|
||||
if func then
|
||||
func()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
function EnemyView:OnHealed(castRole)
|
||||
local sortingOrder = nil
|
||||
local go = BattleManager.LoadAsset(healEffect, sortingOrder)
|
||||
|
|
|
@ -456,10 +456,16 @@ local DotTypeTip = {
|
|||
}
|
||||
--
|
||||
function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
|
||||
if skill and skill.continueTime > 0 and skill.attackCount > 1 then
|
||||
local space = skill.continueTime / skill.attackCount
|
||||
local count = skill.attackCount
|
||||
local d = math.floor(dmg/count)
|
||||
if skill then
|
||||
-- 技能配置
|
||||
local combatId = BattleManager.GetCombatIdBySkin(skill.id, atkRole.roleData.skinId)
|
||||
local combat = BattleManager.GetSkillCombat(combatId)
|
||||
--
|
||||
local delay = combat.DamageDelay or 0
|
||||
local continue = skill.continueTime or 0
|
||||
local count = skill.attackCount or 1
|
||||
local space = continue / count
|
||||
local d = math.floor(dmg / count)
|
||||
-- 如果平均伤害小于0 则
|
||||
if d == 0 then
|
||||
d = dmg
|
||||
|
@ -468,7 +474,11 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType
|
|||
if BattleManager.IsBattleTestPanel() then
|
||||
LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s, 伤害段数:%s,每段伤害:%s", self.camp, self.role.position, dmg, count, d))
|
||||
end
|
||||
-- 伤害文字延时,有些受击特效不是立刻播放文字
|
||||
self:DelayFunc(delay/1000, function()
|
||||
-- 伤害文字
|
||||
if count ~= 1 then
|
||||
-- 多段伤害
|
||||
-- 后续伤害延迟打出
|
||||
self:LoopFunc(space, count - 1, function()
|
||||
self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill)
|
||||
|
@ -476,14 +486,24 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType
|
|||
-- 立刻打出第一次伤害
|
||||
local fd = dmg - d *(count - 1)
|
||||
self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill)
|
||||
-- 被伤害卡牌表现
|
||||
self:DOHitEffect(continue)
|
||||
else
|
||||
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
|
||||
-- 被伤害卡牌表现
|
||||
self:DOHitEffect()
|
||||
end
|
||||
end)
|
||||
-- 播放特效
|
||||
self.SkillCaster:CheckSkillHitEffect("hit", combat, skill)
|
||||
else
|
||||
if BattleManager.IsBattleTestPanel() then
|
||||
LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s", self.camp, self.role.position, dmg))
|
||||
end
|
||||
-- 伤害文字
|
||||
self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill)
|
||||
-- 被伤害卡牌表现
|
||||
self:DOHitEffect()
|
||||
end
|
||||
end
|
||||
--
|
||||
|
@ -515,43 +535,49 @@ function PlayerView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotTy
|
|||
end
|
||||
end
|
||||
end
|
||||
-- 播放受击动画
|
||||
self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "hit", false)
|
||||
end
|
||||
|
||||
|
||||
-- 播放卡牌受击效果
|
||||
function PlayerView:DOHitEffect(time, func)
|
||||
-- 时间修正
|
||||
if not time or time < 0.3 then
|
||||
time = 0.3
|
||||
end
|
||||
-- 受击放大1.2倍
|
||||
self:DoScale(1.2, 0.1)
|
||||
-- 卡面变红
|
||||
DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 1 end),
|
||||
DG.Tweening.Core.DOSetter_float(function (progress)
|
||||
local color = Color.New(1, progress, progress, 1)
|
||||
Util.SetColor(self.GameObject, color)
|
||||
Util.SetColor(self.RoleLiveGOGraphic, color)
|
||||
end), 0, 0.3):SetEase(Ease.Linear):OnComplete(function()
|
||||
end), 0, 0.1):SetEase(Ease.Linear):OnComplete(function()
|
||||
DoTween.To(DG.Tweening.Core.DOGetter_float( function () return 0 end),
|
||||
DG.Tweening.Core.DOSetter_float(function (progress)
|
||||
local color = Color.New(1, progress, progress, 1)
|
||||
Util.SetColor(self.GameObject, color)
|
||||
Util.SetColor(self.RoleLiveGOGraphic, color)
|
||||
end), 1, 0.1):SetEase(Ease.Linear)
|
||||
end), 1, 0.1):SetEase(Ease.Linear):SetDelay(time)
|
||||
end)
|
||||
|
||||
self.GameObject.transform.parent:DOShakeAnchorPos(0.3, Vector2.New(200, 100), 100, 50, false, true):OnComplete(function ()
|
||||
-- 震动
|
||||
self.GameObject.transform.parent:DOShakeAnchorPos(time, Vector2.New(200, 100), 100, 50, false, true):OnComplete(function ()
|
||||
if self.GameObject then
|
||||
self.GameObject.transform.parent.anchoredPosition = Vector2.New(self.role.position == 1 and -145 or 0, -221)
|
||||
end
|
||||
end)
|
||||
|
||||
-- 受击放大1.2倍
|
||||
self:DoScale(1.2, 0.3, function()
|
||||
-- 恢复大小
|
||||
self:DoScale(1, 0.1)
|
||||
end)
|
||||
-- 播放受击动画
|
||||
self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "hit", false)
|
||||
|
||||
-- 播放受击特效
|
||||
if skill then
|
||||
local combatId = BattleManager.GetCombatIdBySkin(skill.id, atkRole.roleData.skinId)
|
||||
local combat = BattleManager.GetSkillCombat(combatId)
|
||||
self.SkillCaster:CheckSkillHitEffect("hit", combat, skill)
|
||||
-- 回调
|
||||
if func then
|
||||
func()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
|
||||
function PlayerView:OnHealed(castRole)
|
||||
local sortingOrder = self.GameObject:GetComponent("Canvas").sortingOrder + 21
|
||||
local go = BattleManager.LoadAsset(healEffect, sortingOrder)
|
||||
|
|
|
@ -331,7 +331,8 @@ function this.LingShouBuildData()
|
|||
showData.sasId = 0
|
||||
showData.monsterId = tempData.Reward[1]
|
||||
showData.iconId = LSrewardData[1].Reward[1][1]
|
||||
showData.battleId = tempData.Fakebattle
|
||||
local tempConfigId = ConfigManager.GetConfigDataByKey(ConfigName.SpiritAnimalSummon,"ActivityID",activityId,"FocusID",showData.monsterId)
|
||||
showData.battleId = tempConfigId.Fakebattle
|
||||
else
|
||||
local tempData = SpiritAnimalSummonConfig[v.progress]
|
||||
showData.sasId = tempData.Id
|
||||
|
|
|
@ -694,8 +694,10 @@ function this.ExcuteBattle()
|
|||
PopupTipPanel.ShowTip(tip)
|
||||
return
|
||||
end
|
||||
|
||||
-- 检测是否有前置引导
|
||||
GuideManager.BeforeFightCheck(curFightId, function()
|
||||
this.SetInitAnim()
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -140,6 +140,7 @@ function this.RefreshFightId(msg)
|
|||
PlayerPrefs.SetInt(PlayerManager.uid .. OLD_ID, oldFight)
|
||||
-- 最后一关更新
|
||||
--if data.NextLevel ~= -1 then
|
||||
Game.GlobalEvent:DispatchEvent(GameEvent.Mission.OnPassFight, oldFight)
|
||||
|
||||
-- 服务器更新关卡状态
|
||||
this.curOpenFight = msg.fightId
|
||||
|
|
|
@ -185,7 +185,7 @@ function this:BuildRateData(actType,UpItem,upItemList)
|
|||
break
|
||||
end
|
||||
end
|
||||
rateList = this:RefreshMonsterRate(upItemList,_upRateList)
|
||||
rateList = this:RefreshMonsterRate(UpItem,_upRateList)
|
||||
elseif actType == ActivityTypeDef.XiangYaoDuoBao then
|
||||
local rewardData,showData,curScore = DynamicActivityManager.XiangYaoBuildData(activityType)
|
||||
for n,m in ipairs(upItemList) do
|
||||
|
|
|
@ -3,6 +3,7 @@ local this = GuideManager
|
|||
local GuideConfig = ConfigManager.GetConfig(ConfigName.GuideConfig)
|
||||
local GlobalSystemConfig = ConfigManager.GetConfig(ConfigName.GlobalSystemConfig)
|
||||
local SpecialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
|
||||
local MainLevelConfig = ConfigManager.GetConfig(ConfigName.MainLevelConfig)
|
||||
local openDic = {}
|
||||
local funcDic = {}
|
||||
|
||||
|
@ -18,6 +19,7 @@ function this.Initialize()
|
|||
Game.GlobalEvent:AddEvent(GameEvent.Player.OnLevelChange, this.OnLevelChange)
|
||||
Game.GlobalEvent:AddEvent(GameEvent.Practice.PracticeGuide,this.PracticeGuideFun)
|
||||
Game.GlobalEvent:AddEvent(GameEvent.EndLess.GuidePanel,this.EndlessGuideFun)
|
||||
Game.GlobalEvent:AddEvent(GameEvent.Mission.OnPassFight,this.OnFightPass)
|
||||
end
|
||||
this.IsFirstOpenHarmonyBei = false
|
||||
|
||||
|
@ -106,6 +108,60 @@ function this.OnFunctionOpen(funcId)
|
|||
this.CheckFuncGuide()
|
||||
end
|
||||
|
||||
-- 通过关卡时判断
|
||||
function this.OnFightPass(fightId)
|
||||
if not fightId then return end
|
||||
if not AppConst.isGuide then
|
||||
return
|
||||
end
|
||||
local guideId = MainLevelConfig[fightId].PassGuideId
|
||||
if not guideId or guideId == 0 then
|
||||
return
|
||||
end
|
||||
if funcDic[guideId] then
|
||||
-- funcDic[guideId] = nil
|
||||
return
|
||||
end
|
||||
--
|
||||
table.insert(_FuncGuideList, guideId)
|
||||
this.CheckFuncGuide()
|
||||
end
|
||||
-- 通过关卡时判断
|
||||
function this.BeforeFightCheck(fightId, func)
|
||||
-- 引导完成
|
||||
local function OnFuncGuideDone()
|
||||
if func then
|
||||
func()
|
||||
end
|
||||
Game.GlobalEvent:RemoveEvent(GameEvent.Guide.FuncGuideDone, OnFuncGuideDone)
|
||||
end
|
||||
Game.GlobalEvent:AddEvent(GameEvent.Guide.FuncGuideDone, OnFuncGuideDone)
|
||||
-- 正确性检测
|
||||
if not fightId then
|
||||
OnFuncGuideDone()
|
||||
return
|
||||
end
|
||||
-- 是否开启引导
|
||||
if not AppConst.isGuide then
|
||||
OnFuncGuideDone()
|
||||
return
|
||||
end
|
||||
-- 判断是否需要引导
|
||||
local guideId = MainLevelConfig[fightId].BeforeGuideId
|
||||
if not guideId or guideId == 0 then
|
||||
OnFuncGuideDone()
|
||||
return
|
||||
end
|
||||
-- 引导过了
|
||||
if funcDic[guideId] then
|
||||
-- funcDic[guideId] = nil
|
||||
OnFuncGuideDone()
|
||||
return
|
||||
end
|
||||
-- 功能引导检测
|
||||
table.insert(_FuncGuideList, guideId)
|
||||
this.CheckFuncGuide()
|
||||
end
|
||||
|
||||
|
||||
-- 将引导加入引导队列
|
||||
|
@ -164,6 +220,8 @@ function GuideManager.CheckFuncGuide()
|
|||
GuideManager.ShowGuide(guideId)
|
||||
end
|
||||
table.remove(_FuncGuideList, 1)
|
||||
else
|
||||
Game.GlobalEvent:DispatchEvent(GameEvent.Guide.FuncGuideDone)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ function this.RegisterMessage(network)
|
|||
-- 神印信息推送
|
||||
socket:RegistNetMessage(MessageTypeProto_pb.PurpleMansionSealIndication, this.PracticeImprintData)
|
||||
-- Vip等级奖励信息推送
|
||||
-- socket:RegistNetMessage(MessageTypeProto_pb.VIP_LEVEL_STATE_RESPONSE, this.RefreshLevleRewardDatas)
|
||||
socket:RegistNetMessage(MessageTypeProto_pb.VIP_LEVEL_STATE_RESPONSE, this.RefreshLevleRewardDatas)
|
||||
-- --心愿抽卡信息推送
|
||||
socket:RegistNetMessage(MessageTypeProto_pb.wishDrawCardIndication, this.WishDrawCardInfoIndication)
|
||||
-- --心愿抽卡信息推送
|
||||
|
|
|
@ -206,7 +206,6 @@ function RewardTalismanSingleShowPopup2:SetBtns()
|
|||
self.btnSwitch:SetActive(self.openType == 4)
|
||||
self.btnUpgrade:SetActive(self.openType == 2)
|
||||
self.btnUpstar:SetActive(self.openType == 2)
|
||||
self.mid:GetComponent("LayoutElement").minHeight = not self.isShowGet and 850 or 250
|
||||
|
||||
if self.equipData and self.equipData ~= 0 then
|
||||
isGongMing = HarmonyManager.IsInfo(self.equipData.upHeroDid)
|
||||
|
@ -276,9 +275,6 @@ function RewardTalismanSingleShowPopup2:OnShow()
|
|||
self.treeLevel.text = string.format("[神应等级:%s/%s]",self.equipData.treeLv,self.equipData.maxTreeLv)
|
||||
if (self.equipData.treeLv < 1 and SacredTreeManager.CulAttri(self.equipData) < 1) or self.openType == 1 then
|
||||
self.treeAttri:SetActive(false)
|
||||
if not self.isShowGet then
|
||||
self.mid:GetComponent("LayoutElement").minHeight = 450
|
||||
end
|
||||
else
|
||||
self.treeAttri:SetActive(true)
|
||||
self:SetPropertyShow2(treeInfo,self.TreeAttriList,self.treeGrid,self.TreeAttriList2)
|
||||
|
@ -288,9 +284,6 @@ function RewardTalismanSingleShowPopup2:OnShow()
|
|||
if self.equipData.upHeroDid == "" or self.equipData.upHeroDid == "0" then
|
||||
self.baseMaster:SetActive(false)
|
||||
self.refineMaster:SetActive(false)
|
||||
if not self.isShowGet then
|
||||
self.mid:GetComponent("LayoutElement").minHeight = 250
|
||||
end
|
||||
else
|
||||
--强化共鸣
|
||||
self:GongMingSetData(1,self.BaseMasterList,self.baseMasterGrid,self.baseMasterName,self.baseMaster)
|
||||
|
@ -330,6 +323,15 @@ function RewardTalismanSingleShowPopup2:OnShow()
|
|||
ForceRebuildLayout(self.midBar.transform)
|
||||
ForceRebuildLayout(self.midBar.transform)
|
||||
|
||||
|
||||
local maxHeight = self.isShowGet and 250 or 850
|
||||
local sizeDelta = GetPreferredHeight(self.midBar.transform)
|
||||
if sizeDelta >= maxHeight then
|
||||
self.mid:GetComponent("LayoutElement").minHeight = maxHeight
|
||||
else
|
||||
self.mid:GetComponent("LayoutElement").minHeight = sizeDelta
|
||||
end
|
||||
|
||||
if self.func then
|
||||
self.func()
|
||||
end
|
||||
|
@ -486,9 +488,6 @@ function RewardTalismanSingleShowPopup2:GongMingSetData(curTabIndex,proPreList,g
|
|||
end
|
||||
if curJewelResonanceConfig.SortId < 1 then
|
||||
go.gameObject:SetActive(false)
|
||||
if not self.isShowGet then
|
||||
self.mid:GetComponent("LayoutElement").minHeight = self.mid:GetComponent("LayoutElement").minHeight - 100
|
||||
end
|
||||
return
|
||||
end
|
||||
go.gameObject:SetActive(true)
|
||||
|
|
|
@ -93,7 +93,12 @@ function RoleInfoPopup:BindEvent()
|
|||
Util.AddClick(this.ShenhunBtn,function()
|
||||
local s = function()
|
||||
local pro = {}
|
||||
local lv = curHeroData.godSoulLv
|
||||
local lv = 0
|
||||
if this.isOther then
|
||||
lv = curHeroData.godSoulLv
|
||||
else
|
||||
lv = GodSoulManager.GetGodSoulLv(curHeroData.dynamicId)
|
||||
end
|
||||
local skillList = GodSoulManager.GetGodSoulDataByLv(curHeroData.heroConfig.Id,0)
|
||||
|
||||
for i = 1,LengthOfTable(skillList) do
|
||||
|
@ -191,7 +196,6 @@ function RoleInfoPopup:OnOpen(...)
|
|||
this.selsectSkillImage:SetActive(false)
|
||||
local arg = { ... }
|
||||
curHeroData = arg[1]
|
||||
LogGreen("curHeroData:"..curHeroData.dynamicId)
|
||||
this.isOther = arg[2]
|
||||
choosedList = arg[3] or nil
|
||||
formationHeroNum = arg[4] or nil
|
||||
|
|
|
@ -218,6 +218,9 @@ function SoulPrintPopUp:RefreshShow(type)
|
|||
self.equipInfoText.text = GetLanguageStrById(itemConfig[soulId].ItemDescribe)
|
||||
self.equipQuaText.text= GetStringByEquipQua(equipConfig[soulId].Quality, GetQuaStringByEquipQua(equipConfig[soulId].Quality))
|
||||
self.equipType.text= Language[11089]..GetEquipPosStrByEquipPosNum(equipConfig[soulId].Position)
|
||||
self.topBar:GetComponent("Image").sprite = self.spLoader:LoadSprite("t_tongyong_di_"..equipConfig[soulId].Quality)
|
||||
self.effectbaijin:SetActive(equipConfig[soulId].Quality==7)
|
||||
Util.SetParticleSortLayer(self.effectbaijin,self.sortingOrder + 1)
|
||||
|
||||
if equipConfig[soulId] then --魂印效果
|
||||
local txt = ""
|
||||
|
|
|
@ -120,7 +120,7 @@ function this.Show()
|
|||
|
||||
local skillId=curTalismanConFig.Property[i][1]
|
||||
local curValue=curTalismanConFig.Property[i][2]
|
||||
proName.text= " "..GetLanguageStrById(propertyConfig[skillId].Info).."+<size=40>"..curValue.."</size>"
|
||||
proName.text= " <size=40>"..GetLanguageStrById(propertyConfig[skillId].Info).."+"..curValue.."</size>"
|
||||
proImage.sprite=this.spLoader:LoadSprite(artResourcesConfig[propertyConfig[skillId].PropertyIcon].Name)
|
||||
Util.GetGameObject(proImage.gameObject,"Image"):GetComponent("Image"):SetNativeSize()
|
||||
end
|
||||
|
|
|
@ -229,7 +229,7 @@ function this.OnShowHeroAndTalisman()
|
|||
|
||||
local skillId=curTalismanConFig.Property[i][1]
|
||||
local curValue=curTalismanConFig.Property[i][2]
|
||||
proName.text= " "..GetLanguageStrById(propertyConfig[skillId].Info).."+<size=40>"..curValue.."</size>"
|
||||
proName.text= " <size=40>"..GetLanguageStrById(propertyConfig[skillId].Info).."+"..curValue.."</size>"
|
||||
proImage.sprite=this.spLoader:LoadSprite(artResourcesConfig[propertyConfig[skillId].PropertyIcon].Name)
|
||||
Util.GetGameObject(proImage.gameObject,"Image"):GetComponent("Image"):SetNativeSize()
|
||||
end
|
||||
|
|
|
@ -211,7 +211,11 @@ function this.RefreshPanel(eventId, isFirstOpen)
|
|||
-- 显示立绘
|
||||
if resId > 0 and resId ~= 999 then
|
||||
local data = artResConfig[resId]
|
||||
if NameManager.roleName == tostring(PlayerManager.uid) then
|
||||
this.RoleName.text =string.gsub(GetLanguageStrById(data.Desc), Language[11252], "??????")
|
||||
else
|
||||
this.RoleName.text =string.gsub(GetLanguageStrById(data.Desc), Language[11252], NameManager.roleName)
|
||||
end
|
||||
|
||||
-- 初始化特效
|
||||
StoryManager.InitEffect(this.effectRoot)
|
||||
|
|
Loading…
Reference in New Issue