fix: keep Kasen beast guide teleport visuals
This commit is contained in:
parent
ac6bc841a8
commit
0ebc3e5724
@ -2464,9 +2464,12 @@ namespace Logic.Action
|
|||||||
//TODO 这里有风险,movepath依赖一个在时序上完全无关的 movecostinfo的计算
|
//TODO 这里有风险,movepath依赖一个在时序上完全无关的 movecostinfo的计算
|
||||||
Main.UnitLogic.CalcUnitMoveInfo(actionParams.MapData, unit.Id);
|
Main.UnitLogic.CalcUnitMoveInfo(actionParams.MapData, unit.Id);
|
||||||
MoveAttackType moveAttackType = Main.UnitLogic.GetMovePath(actionParams.MapData, originGrid.Pos.V2(), targetGrid.Pos.V2(), out path1);
|
MoveAttackType moveAttackType = Main.UnitLogic.GetMovePath(actionParams.MapData, originGrid.Pos.V2(), targetGrid.Pos.V2(), out path1);
|
||||||
|
bool isKasenBeastGuideActiveMove = moveAttackType == MoveAttackType.MoveTeleport &&
|
||||||
|
Main.UnitLogic.IsKasenBeastGuideActiveMoveTarget(
|
||||||
|
targetGrid.Pos.X, targetGrid.Pos.Y);
|
||||||
MoveType moveType = moveAttackType switch
|
MoveType moveType = moveAttackType switch
|
||||||
{
|
{
|
||||||
MoveAttackType.MoveTeleport => MoveType.SkillMove,
|
MoveAttackType.MoveTeleport when !isKasenBeastGuideActiveMove => MoveType.SkillMove,
|
||||||
_ => MoveType.ActiveMove
|
_ => MoveType.ActiveMove
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -130,6 +130,13 @@ namespace Logic
|
|||||||
|
|
||||||
// 供外部查询FinalReachMap(需在CalcUnitMoveInfo之后调用)
|
// 供外部查询FinalReachMap(需在CalcUnitMoveInfo之后调用)
|
||||||
public bool IsFinalReachable(int x, int y) => FinalReachMap[x, y];
|
public bool IsFinalReachable(int x, int y) => FinalReachMap[x, y];
|
||||||
|
public bool IsKasenBeastGuideActiveMoveTarget(int x, int y)
|
||||||
|
{
|
||||||
|
return x >= 0 && y >= 0
|
||||||
|
&& x < Table.Instance.MaxMapSize
|
||||||
|
&& y < Table.Instance.MaxMapSize
|
||||||
|
&& KasenBeastGuideActiveMoveMap[x, y];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool[,] TransMap;//在常规移动之外,额外赋予的特殊可传送格子
|
bool[,] TransMap;//在常规移动之外,额外赋予的特殊可传送格子
|
||||||
@ -1759,7 +1766,7 @@ namespace Logic
|
|||||||
|
|
||||||
|
|
||||||
//如果是传送或者sanae,最优先判断
|
//如果是传送或者sanae,最优先判断
|
||||||
if (KasenBeastGuideActiveMoveMap[gridDataB.Pos.X, gridDataB.Pos.Y]) return MoveAttackType.Move;
|
if (KasenBeastGuideActiveMoveMap[gridDataB.Pos.X, gridDataB.Pos.Y]) return MoveAttackType.MoveTeleport;
|
||||||
if (TransMap[gridDataB.Pos.X, gridDataB.Pos.Y]) return MoveAttackType.MoveTeleport;
|
if (TransMap[gridDataB.Pos.X, gridDataB.Pos.Y]) return MoveAttackType.MoveTeleport;
|
||||||
if (SanaeMap[gridDataB.Pos.X, gridDataB.Pos.Y]) return MoveAttackType.Move;
|
if (SanaeMap[gridDataB.Pos.X, gridDataB.Pos.Y]) return MoveAttackType.Move;
|
||||||
|
|
||||||
@ -1985,7 +1992,7 @@ namespace Logic
|
|||||||
if (KasenBeastGuideActiveMoveMap[end.x, end.y])
|
if (KasenBeastGuideActiveMoveMap[end.x, end.y])
|
||||||
{
|
{
|
||||||
path = new List<Vector2Int> { start, end };
|
path = new List<Vector2Int> { start, end };
|
||||||
return MoveAttackType.Move;
|
return MoveAttackType.MoveTeleport;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TransMap[end.x, end.y])
|
if (TransMap[end.x, end.y])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user