106 lines
3.1 KiB
C#
106 lines
3.1 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Pawn : Character
|
|
{
|
|
public override bool[,] GetValidMoves(Cell[,] cells, Game game)
|
|
{
|
|
bool[,] result = new bool[8, 8];
|
|
|
|
Vector3 offsetDirection;
|
|
int yStartPos;
|
|
|
|
if (game.currentTeam == Teams.White)
|
|
{
|
|
offsetDirection = Vector3.up;
|
|
yStartPos = 5;
|
|
}
|
|
else
|
|
{
|
|
offsetDirection = Vector3.down;
|
|
yStartPos = 2;
|
|
}
|
|
|
|
Vector3 testPosition = transform.position + offsetDirection;
|
|
Cell testCell = game.GetCellOnPosition(testPosition);
|
|
|
|
if (testCell != null)
|
|
{
|
|
int x, y;
|
|
|
|
string nameX = testCell.gameObject.name.Substring(5, 1);
|
|
string nameY = testCell.gameObject.name.Substring(7, 1);
|
|
|
|
x = int.Parse(nameX);
|
|
y = int.Parse(nameY);
|
|
|
|
if (testCell.connected == null)
|
|
{
|
|
result[x, y] = true;
|
|
|
|
if (x == yStartPos)
|
|
{
|
|
testPosition = transform.position + offsetDirection * 2;
|
|
testCell = game.GetCellOnPosition(testPosition);
|
|
|
|
if (testCell != null)
|
|
{
|
|
nameX = testCell.gameObject.name.Substring(5, 1);
|
|
nameY = testCell.gameObject.name.Substring(7, 1);
|
|
|
|
x = int.Parse(nameX);
|
|
y = int.Parse(nameY);
|
|
|
|
if (testCell.connected == null)
|
|
{
|
|
result[x, y] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
testPosition = transform.position + offsetDirection + Vector3.left;
|
|
testCell = game.GetCellOnPosition(testPosition);
|
|
|
|
if (testCell != null)
|
|
{
|
|
nameX = testCell.gameObject.name.Substring(5, 1);
|
|
nameY = testCell.gameObject.name.Substring(7, 1);
|
|
|
|
x = int.Parse(nameX);
|
|
y = int.Parse(nameY);
|
|
|
|
if (testCell.connected != null)
|
|
{
|
|
if(testCell.connected.team != game.currentTeam)
|
|
{
|
|
result[x, y] = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
testPosition = transform.position + offsetDirection + Vector3.right;
|
|
testCell = game.GetCellOnPosition(testPosition);
|
|
|
|
if (testCell != null)
|
|
{
|
|
nameX = testCell.gameObject.name.Substring(5, 1);
|
|
nameY = testCell.gameObject.name.Substring(7, 1);
|
|
|
|
x = int.Parse(nameX);
|
|
y = int.Parse(nameY);
|
|
|
|
if (testCell.connected != null)
|
|
{
|
|
if(testCell.connected.team != game.currentTeam)
|
|
{
|
|
result[x, y] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
} |