修复攻击bug

This commit is contained in:
kawagiri 2025-10-23 20:33:44 +08:00
parent 6d4ac4c002
commit 2017dc70d5
16 changed files with 349 additions and 8 deletions

View File

@ -824,7 +824,7 @@ MonoBehaviour:
HasShowList: 0
SkillShowList: []
- SkillType: 71
SkillName: "\u8D24\u8005\u4E4B\u77F3"
SkillName: "\u82B1\u9634\u7684\u9B54\u5973"
SkillDesc: "\u6BCF\u79CD\u9B54\u529B\u77F3\u53EF\u5B58\u50A82\u9897\uFF0C\u751F\u6548\u65F6\u6548\u679C\u53E0\u52A0\u3002"
HasShowList: 0
SkillShowList: []

File diff suppressed because it is too large Load Diff

View File

@ -80,6 +80,7 @@ namespace TH1_Anim
{
foreach (var fragment in _fragments)
{
Debug.Log(fragment.State);
switch( fragment.State)
{
case FragmentState.Wrong:
@ -92,7 +93,7 @@ namespace TH1_Anim
break;
case FragmentState.Playing:
fragment.OnUpdate(Time.time - fragment.StartTime);
if (fragment.CheckDone(Time.time - fragment.StartTime))
if (fragment.CheckDone(Time.time - fragment.StartTime) || fragment.TimeOut(Time.time - fragment.StartTime))
{
fragment.OnFinished();
fragment.State = FragmentState.Finished;
@ -115,6 +116,7 @@ namespace TH1_Anim
{
case FragmentState.Wrong:
fragment.OnFinished();
Debug.Log($"Fragement State Wrong {fragment.GetType()}");
fragment.State = FragmentState.Finished;
break;
case FragmentState.Prepare:
@ -123,14 +125,15 @@ namespace TH1_Anim
break;
case FragmentState.Playing:
fragment.OnUpdate(Time.time - fragment.StartTime);
if (fragment.CheckDone(Time.time - fragment.StartTime))
if (fragment.CheckDone(Time.time - fragment.StartTime) || fragment.TimeOut(Time.time - fragment.StartTime))
{
fragment.OnFinished();
fragment.State = FragmentState.Finished;
fragment.OnFinishedCallback?.Invoke();
//fragment.OnFinishedCallback?.Invoke();
}
break;
case FragmentState.Finished:
Debug.Log("!!!");
fragment.OnFinishedCallback?.Invoke();
break;

View File

@ -12,6 +12,7 @@ using TH1_DataAssetsScript;
using TH1_Logic.Core;
using TH1_Renderer.UnitAtomAnim;
using TH1Renderer;
using UnityEngine;
namespace TH1_Anim.Fragments
{
@ -43,8 +44,15 @@ namespace TH1_Anim.Fragments
}
public override bool CheckDone(float progressTime)
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_attack || !_step2_attackmoveback)
return false;
if (progressTime <= Duration)
@ -55,6 +63,7 @@ namespace TH1_Anim.Fragments
public override void OnUpdate(float progressTime)
{
//Step #1执行第一步 -> 攻击
if (progressTime >= _step1_start && !_step1_attack)
{

View File

@ -64,6 +64,12 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_attack || !_step2_attackmoveback || !_step3_wait || !_step4_counter || !_step5_countermoveback || !_step6_updateunit)
return false;
if (progressTime <= Duration)

View File

@ -7,6 +7,7 @@
using System;
using UnityEngine;
namespace TH1_Anim.Fragments
{
@ -47,5 +48,14 @@ namespace TH1_Anim.Fragments
public abstract void OnUpdate(float progressTime);
public abstract bool CheckDone(float progressTime);
public virtual bool TimeOut(float progressTime)
{
if (progressTime > Duration * 2)
{
Debug.Log($"Fragment TimeOut for type {this.GetType()}");
}
return progressTime > Duration * 2;
}
}
}

View File

@ -45,6 +45,12 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_bounce) return false;
if (progressTime <= Duration)
return false;

View File

@ -47,6 +47,12 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_start || !_step2_bounce) return false;
if (progressTime <= Duration)
return false;

View File

@ -45,6 +45,12 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_bounce) return false;
if (progressTime <= Duration)
return false;

View File

@ -49,6 +49,13 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_levelup || !_step2_treasure) return false;
if (progressTime <= Duration)
return false;

View File

@ -35,6 +35,13 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_die)
return false;
if (progressTime <= Duration)

View File

@ -64,6 +64,12 @@ namespace TH1_Anim.Fragments
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_start || !_step2_end) return false;
if (progressTime <= Duration)
return false;

View File

@ -107,6 +107,7 @@ namespace TH1_Anim.Fragments
//Step #3执行第3步 -> 更新unit(比如说视野外)
if (progressTime >= _step3_start && !_step3_updateunit)
{
_step3_updateunit = true;
Data.OriginUnitRenderer.InstantUpdateUnit(true);
Data.TargetUnitRenderer.InstantUpdateUnit(true);
}

View File

@ -55,12 +55,12 @@ namespace TH1_Core.Managers
_currentTask = null;
return;
}
Debug.Log("Set Busy True");
//Debug.Log("Set Busy True");
_isBusy = true;
_currentTask = _taskQueue.Dequeue();
BusyType = _currentTask.GetDescString();
_currentTask.Execute(OnTaskCompleted);
Debug.Log("Set Busy False");
//Debug.Log($"Set Busy False {_isBusy}");
}

View File

@ -328,7 +328,8 @@ namespace TH1_Logic.Core
//TODO 应该完整区分当前是游戏还是非游戏从而让不同的VP来update
FragmentManager.Instance.Update();
//目前fragmentmanager没用全是走presentation的
//FragmentManager.Instance.Update();
MainEditor.Instance.Update();
GameLogic.Update();

View File

@ -284,6 +284,8 @@ namespace TH1Renderer
{
//生成单位图像
ROUnitMap[unitData.Id] = new UnitRenderer(_unitPrefab,_unitRenderMap,unitData.Id);
//立刻更新每个unit的视觉
ROUnitMap[unitData.Id].InstantUpdateUnit(true);
}
}