| | |
| | | packList = _packList; |
| | | |
| | | // Debug.LogError("start a skill id " + skillConfig.SkillID + " caster " + caster.teamHero.heroId + " pos " + caster.teamHero.positionNum + " camp " + caster.Camp); |
| | | |
| | | } |
| | | |
| | | public virtual void Run() |
| | |
| | | // 技能开始 |
| | | public void OnSkillStart() |
| | | { |
| | | HandleDead(); |
| | | skillEffect = SkillEffectFactory.CreateSkillEffect( |
| | | caster, |
| | | skillConfig, |
| | |
| | | { |
| | | skillEffect.OnFinalFrameEnd(); |
| | | |
| | | HandleDead(); |
| | | // 转移到死亡包 battleobject.hurt 最后一击的时候播放 |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | // TODO YYL AttackTypes 要表现成什么样呢? 支持多种类型并存,如无视防御且暴击同时被格挡,二进制或运算最终值;0-失败;1-普通;2-回血;5-格挡;6-无视防御;7-暴击;9-闪避 |
| | | |
| | | List<HB422_tagMCTurnFightObjDead> deadPacks = BattleUtility.FindDeadPack(packList); |
| | | bool isTargetDead = deadPacks.Exists(p => p.ObjID == target.ObjID); |
| | | |
| | | bool notPlayHitAnime = isLastHit && isTargetDead; |
| | | target.Hurt(damageList, totalDamage, hurt, skillConfig, !notPlayHitAnime); |
| | | 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); |
| | | |
| | | // TODO YYL 这里是要做统一计算后再hurt跟suckhp还是怎样 |
| | | caster.SuckHp(hurt.SuckHP, skillConfig);// 吸血 |
| | | caster.HurtByReflect(hurt.BounceHP, skillConfig);// 反弹伤害 |
| | | } |
| | | |
| | | private Dictionary<int, BattleDrops> tempDropList = new Dictionary<int, BattleDrops>(); |
| | | |
| | | private Dictionary<int, HB422_tagMCTurnFightObjDead> tempDeadPackList = new Dictionary<int, HB422_tagMCTurnFightObjDead>(); |
| | | |
| | | protected void HandleDead() |
| | | { |
| | |
| | | dropItemPackIndex = itemModelDropsIndexList, |
| | | expDrops = expAssign[i] |
| | | }; |
| | | deadTarget.PushDropItems(battleDrops); |
| | | |
| | | tempDropList.Add((int)deadPackList[i].ObjID, battleDrops); |
| | | // deadTarget.PushDropItems(battleDrops); |
| | | } |
| | | |
| | | // 分发死亡包 |
| | | |
| | | battleField.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>(deadPackList)); |
| | | // battleField.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>(deadPackList)); |
| | | foreach (var deadPack in deadPackList) |
| | | { |
| | | tempDeadPackList.Add((int)deadPack.ObjID, deadPack); |
| | | packList.Remove(deadPack); |
| | | } |
| | | deadPackList.Clear(); |
| | | } |
| | | |
| | | |
| | |
| | | otherSkillAction.ForceFinish(); |
| | | otherSkillAction = null; |
| | | } |
| | | HandleDead(); |
| | | isFinished = true; |
| | | moveFinished = true; |
| | | isPlay = true; |