| | |
| | | |
| | | public int fromSkillId; |
| | | |
| | | public bool isPlay = false; |
| | | |
| | | public SkillBase(BattleObject _caster, SkillConfig _skillCfg, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> _packList, BattleField _battleField = null) |
| | | { |
| | | caster = _caster; |
| | |
| | | battleField = _battleField; |
| | | packList = _packList; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | public virtual void Run() |
| | | { |
| | | |
| | | if (null != skillEffect) |
| | | { |
| | | if (skillEffect.IsFinished()) |
| | |
| | | { |
| | | skillEffect.Run(); |
| | | } |
| | | return; |
| | | } |
| | | |
| | | if (otherSkillAction != null) |
| | |
| | | { |
| | | otherSkillAction.Run(); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | |
| | |
| | | // OnMiddleFrameEnd 中摇结束 |
| | | // OnFinalFrameStart 后摇开始 |
| | | // OnFinalFrameEnd 后摇结束 |
| | | |
| | | return caster.motionBase.PlaySkillAnimation(skillConfig, this, onComplete); |
| | | } |
| | | |
| | |
| | | ); |
| | | |
| | | skillEffect.Play(OnHitTargets); |
| | | isPlay = true; |
| | | |
| | | } |
| | | |
| | | // 技能前摇帧结束 |
| | |
| | | } |
| | | public virtual bool IsFinished() |
| | | { |
| | | if (!isPlay) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | if (skillEffect != null) |
| | | { |
| | | if (!skillEffect.IsFinished()) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | skillEffect = null; |
| | | OnSkillFinished(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | otherSkillAction = null; |
| | | OnSkillFinished(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (isFinished && moveFinished) |
| | | { |
| | |
| | | } |
| | | battleField.battleRootNode.skillMaskNode.SetActive(false); |
| | | |
| | | return true; |
| | | if (packList.Count > 0) |
| | | { |
| | | OnSkillFinished(); |
| | | return false; |
| | | } |
| | | |
| | | return packList.Count <= 0; |
| | | } |
| | | else |
| | | { |
| | |
| | | skillEffect?.ForceFinished(); |
| | | isFinished = true; |
| | | moveFinished = true; |
| | | isPlay = true; |
| | | |
| | | while (packList.Count > 0) |
| | | { |
| | |
| | | { |
| | | BattleDebug.LogError("other skill casting " + combinePack.startTag.Tag); |
| | | otherSkillAction = combinePack.CreateSkillAction(); |
| | | |
| | | otherSkillAction.fromSkillId = skillConfig.SkillID; |
| | | // 强制结束其他技能 |
| | | otherSkillAction.ForceFinish(); |
| | | return; |
| | |
| | | else if (pack is CustomB421ActionPack actionPack) |
| | | { |
| | | actionPack.Distribute(); |
| | | return; |
| | | } |
| | | PackageRegedit.Distribute(pack); |
| | | } |
| | |
| | | if (!skillEffect.IsFinished()) |
| | | { |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | skillEffect = null; |
| | | OnSkillFinished(); |
| | | } |
| | | |
| | | } |
| | | |
| | | if (otherSkillAction != null) |
| | | { |
| | | if (!otherSkillAction.IsFinished()) |
| | | { |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | otherSkillAction = null; |
| | | OnSkillFinished(); |
| | | } |
| | | } |
| | | |
| | |
| | | else if (pack is CustomB421ActionPack actionPack) |
| | | { |
| | | actionPack.Distribute(); |
| | | return; |
| | | } |
| | | |
| | | // Debug.LogError("Distribute pack " + pack.GetType().ToString()); |
| | | PackageRegedit.Distribute(pack); |
| | | } |
| | | |