2023-09-12 14:46:57 +00:00
|
|
|
using Sirenix.OdinInspector;
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
|
|
namespace BlueWaterProject
|
|
|
|
{
|
|
|
|
public class PirateUnit : BaseUnit
|
|
|
|
{
|
|
|
|
#region Property and variable
|
|
|
|
|
|
|
|
[PropertyOrder(-10)]
|
|
|
|
public PirateUnitStat pirateUnitStat;
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region Custom function
|
|
|
|
|
|
|
|
public void MoveCommand(Vector3 targetPos)
|
|
|
|
{
|
|
|
|
var gridSize = 0;
|
|
|
|
|
|
|
|
switch (pirateUnitStat.SailorCount)
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
gridSize = 1;
|
|
|
|
break;
|
|
|
|
case <= 3:
|
|
|
|
gridSize = 2;
|
|
|
|
break;
|
|
|
|
case <= 8:
|
|
|
|
gridSize = 3;
|
|
|
|
break;
|
|
|
|
case <= 15:
|
|
|
|
gridSize = 4;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
print("유닛의 병사 숫자 설정 에러");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (var i = 0; i < gridSize; i++)
|
|
|
|
{
|
|
|
|
for (var j = 0; j < gridSize; j++)
|
|
|
|
{
|
|
|
|
var currentPos = i * gridSize + j;
|
|
|
|
|
|
|
|
if (currentPos > pirateUnitStat.SailorCount) break;
|
|
|
|
|
|
|
|
var zOffset = (i - (gridSize - 1) / 2.0f) * UnitManager.Inst.UnitSpacing;
|
|
|
|
var xOffset = (j - (gridSize - 1) / 2.0f) * UnitManager.Inst.UnitSpacing;
|
|
|
|
var movePos = targetPos + new Vector3(xOffset, 0, zOffset);
|
|
|
|
|
2023-09-13 07:05:21 +00:00
|
|
|
pirateUnitStat.PirateAiList[currentPos].CommandMove(movePos);
|
2023-09-12 14:46:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|