NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic06.cs

85 lines
2.8 KiB
C#

using Gameplay.Area;
using Gameplay.Common;
using Gameplay.Unit;
using Gameplay.Unit.Data;
namespace Gameplay.PlayerSkill.Logic
{
public class PlayerSkillLogic06 : BasePlayerSkillLogic
{
protected override void _OnInit()
{
base._OnInit();
var units = AreaManager.instance.GetUnitsByCellIndex(owner.selectedCellIndex);
GameUnit selectUnit = null;
for (int i = 0; i < units.Count; i++)
{
var unit = units[i];
if (unit.commonData.troopId == owner.playerUnit.commonData.troopId)
{
// 友军不生效
continue;
}
if (unit.gameunitType != EGameUnitType.Character
|| unit.gameunitType != EGameUnitType.Vehicle)
{
// 只对角色和载具生效
continue;
}
selectUnit = unit;
break;
}
if (selectUnit != null)
{
var allUnits = GameUnitManager.instance.infightUnits;
for (int i = 0; i < allUnits.count; i++)
{
var unit = allUnits.GetByIndex(i);
if (unit.commonData.troopId != owner.playerUnit.commonData.troopId)
{
// 只筛选友军
continue;
}
if (unit.gameunitType != EGameUnitType.Character
|| unit.gameunitType != EGameUnitType.Vehicle)
{
// 只对角色和载具生效
continue;
}
unit.MoveTo(selectUnit);
}
}
else
{
var allUnits = GameUnitManager.instance.infightUnits;
for (int i = 0; i < allUnits.count; i++)
{
var unit = allUnits.GetByIndex(i);
if (unit.commonData.troopId != owner.playerUnit.commonData.troopId)
{
// 只筛选友军
continue;
}
if (unit.gameunitType != EGameUnitType.Character)
{
// 只对角色生效
continue;
}
var charactor = unit as Character.Character;
if (charactor == null)
{
continue;
}
charactor.MoveTo(owner.selectedCellIndex, true);
}
}
isFinished = true;
}
}
}