| | |
| | | private bool createSwitch = false; |
| | | |
| | | private int curFrame = 0; |
| | | private int frameInteral = 2; |
| | | private int frameInteral = 4; |
| | | |
| | | public void SetSkeletonAnimation(SkeletonAnimation _skeletonAnimation) |
| | | { |
| | |
| | | |
| | | sa.skeleton.A = skeletonAnimation.skeleton.A; |
| | | // 使用DoTween做alpha淡出,Tween与objTest绑定,便于统一Kill |
| | | DOTween.To(() => sa.skeleton.A, x => { sa.skeleton.A = x; sa.LateUpdate(); }, 0f, 0.5f) |
| | | DOTween.To(() => sa.skeleton.A, x => { sa.skeleton.A = x; sa.LateUpdate(); }, 0f, 1f) |
| | | .SetTarget(objTest); |
| | | |
| | | // 安全销毁,移除引用 |
| | | _ = DestroyIllusionShadowAfterAsync(objTest, 0.5f); |
| | | _ = DestroyIllusionShadowAfterAsync(objTest, 1f); |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | public virtual void Hurt(List<long> damageValues, long _totalDamage, |
| | | HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig, bool isLastHit, |
| | | HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig, int hitIndex, |
| | | BattleDrops battleDrops, HB422_tagMCTurnFightObjDead deadPack) |
| | | { |
| | | BattleDmgInfo dmgInfo = PopDamage(damageValues, _totalDamage, hurt, skillConfig); |
| | | bool isLastHit = hitIndex >= skillConfig.DamageDivide.Length - 1; |
| | | bool firstHit = hitIndex == 0; |
| | | |
| | | // 这里 |
| | | if (dmgInfo.IsType(DamageType.Dodge)) |
| | | { |
| | | if (isLastHit) |
| | | { |
| | | DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this); |
| | | battleField.recordPlayer.InsertRecord(dodgeFinish); |
| | | } |
| | | |
| | | if (firstHit) |
| | | { |
| | | OnDodgeBegin(); |
| | | } |
| | | } |
| | | |
| | | bool isFatalAttack = (null != deadPack) && isLastHit; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | const float pingpongTime = 0.2f; |
| | | const float pingpongTime = 0.4f; |
| | | // 闪避开始 |
| | | public virtual void OnDodgeBegin() |
| | | { |
| | |
| | | { |
| | | BattleDmgInfo battleDmgInfo = new BattleDmgInfo(battleField.guid, damageValues, this, hurt, skillConfig); |
| | | |
| | | if (battleDmgInfo.IsType(DamageType.Dodge)) |
| | | { |
| | | OnDodgeBegin(); |
| | | DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this); |
| | | battleField.recordPlayer.InsertRecord(dodgeFinish); |
| | | } |
| | | |
| | | |
| | | int currentHurtHp = 0; |
| | | for (int i = 0; i < damageValues.Count; i++) |
| | |
| | | { |
| | | // 伤害分布 (万分比) |
| | | // Debug.LogError("skillConfig.DamageDivide.Count " + skillConfig.DamageDivide.Length + " _hitIndex " + _hitIndex); |
| | | bool isLastHit = _hitIndex >= skillConfig.DamageDivide.Length - 1; |
| | | int[] damageDivide = skillConfig.DamageDivide[_hitIndex]; |
| | | |
| | | long totalDamage = GeneralDefine.GetFactValue(hurt.HurtHP, hurt.HurtHPEx); |
| | |
| | | int objID = (int)target.ObjID; |
| | | tempDropList.TryGetValue(objID, out BattleDrops battleDrops); |
| | | tempDeadPackList.TryGetValue(objID, out HB422_tagMCTurnFightObjDead deadPack); |
| | | target.Hurt(damageList, totalDamage, hurt, skillConfig, isLastHit, battleDrops, deadPack); |
| | | target.Hurt(damageList, totalDamage, hurt, skillConfig, _hitIndex, battleDrops, deadPack); |
| | | |
| | | // TODO YYL 这里是要做统一计算后再hurt跟suckhp还是怎样 |
| | | caster.SuckHp(hurt.SuckHP, skillConfig);// 吸血 |