修复技能封印失效问题
This commit is contained in:
parent
5a5b58a37d
commit
9125c44c99
@ -2207,7 +2207,12 @@ namespace RuntimeData
|
||||
//避免在遍历的时候,直接改到了skillsList
|
||||
using var skillHandle = THCollectionPool.GetListHandle<SkillBase>(out var copy);
|
||||
copy.AddRange(unit.Skills);
|
||||
foreach (var skill in copy) skill.BeforeUnitDamaged(unit, this, info);
|
||||
var isFrozen = unit.IsFrozen();
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (isFrozen && unit.IsSkillFrozenFilter(skill)) continue;
|
||||
skill.BeforeUnitDamaged(unit, this, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2221,7 +2226,12 @@ namespace RuntimeData
|
||||
//避免在遍历的时候,直接改到了skillsList
|
||||
using var skillHandle = THCollectionPool.GetListHandle<SkillBase>(out var copy);
|
||||
copy.AddRange(unit.Skills);
|
||||
foreach (var skill in copy) skill.OnUnitDamaged(unit, this, info);
|
||||
var isFrozen = unit.IsFrozen();
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (isFrozen && unit.IsSkillFrozenFilter(skill)) continue;
|
||||
skill.OnUnitDamaged(unit, this, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2234,7 +2244,12 @@ namespace RuntimeData
|
||||
{
|
||||
using var skillHandle = THCollectionPool.GetListHandle<SkillBase>(out var copy);
|
||||
copy.AddRange(unit.Skills);
|
||||
foreach (var skill in copy) skill.OnAnyUnitMove(map, unit, moveUnit, target, moveType);
|
||||
var isFrozen = unit.IsFrozen();
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (isFrozen && unit.IsSkillFrozenFilter(skill)) continue;
|
||||
skill.OnAnyUnitMove(map, unit, moveUnit, target, moveType);
|
||||
}
|
||||
}
|
||||
if (target?.Skills == null) return;
|
||||
using var gridSkillHandle = THCollectionPool.GetListHandle<SkillBase>(out var gridCopy);
|
||||
@ -2251,7 +2266,12 @@ namespace RuntimeData
|
||||
{
|
||||
using var skillHandle = THCollectionPool.GetListHandle<SkillBase>(out var copy);
|
||||
copy.AddRange(unit.Skills);
|
||||
foreach (var skill in copy) skill.OnActionExecuted(logic, param, unit);
|
||||
var isFrozen = unit.IsFrozen();
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (isFrozen && unit.IsSkillFrozenFilter(skill)) continue;
|
||||
skill.OnActionExecuted(logic, param, unit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2265,7 +2285,12 @@ namespace RuntimeData
|
||||
//避免在遍历的时候,直接改到了skillsList
|
||||
using var skillHandle = THCollectionPool.GetListHandle<SkillBase>(out var copy);
|
||||
copy.AddRange(unit.Skills);
|
||||
foreach (var skill in copy) skill.OnAnyUnitDie(map, unit, dieUnit);
|
||||
var isFrozen = unit.IsFrozen();
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (isFrozen && unit.IsSkillFrozenFilter(skill)) continue;
|
||||
skill.OnAnyUnitDie(map, unit, dieUnit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2279,7 +2304,12 @@ namespace RuntimeData
|
||||
//避免在遍历的时候,直接改到了skillsList
|
||||
using var skillHandle = THCollectionPool.GetListHandle<SkillBase>(out var copy);
|
||||
copy.AddRange(unit.Skills);
|
||||
foreach (var skill in copy) skill.OnAnyUnitCreate(map, unit, newUnit);
|
||||
var isFrozen = unit.IsFrozen();
|
||||
foreach (var skill in copy)
|
||||
{
|
||||
if (isFrozen && unit.IsSkillFrozenFilter(skill)) continue;
|
||||
skill.OnAnyUnitCreate(map, unit, newUnit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -713,7 +713,7 @@ namespace Logic.Action
|
||||
{
|
||||
//将unitActionType转化为skillType
|
||||
if (!Enum.TryParse(_actionId.UnitActionType.ToString(), out SkillType skillType)) return false;
|
||||
if (actionParam.UnitData == null || !actionParam.UnitData.GetSkill(skillType, out var _)) return false;
|
||||
if (actionParam.UnitData == null || !actionParam.UnitData.HasEffectiveSkill(skillType, out var _)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user