public virtual void Initialize(GameFieldOrigin gameFieldOrigin) { gameField = new GameFieldPoint[gameFieldOrigin.rows, gameFieldOrigin.columns]; for (int i = 0; i < gameField.GetLength(0); i++) { for (int j = 0; j < gameField.GetLength(1); j++) { gameField[i, j] = gameFieldOrigin.fieldMatrix[i].elements[j]; } } currentPoint = gameField[currentPosition.y, currentPosition.x]; currentPoint.SetFigure(this); pointsForStep = new List <GameFieldPoint>(); moveToTarget = 0; lineRenderer = GetComponent <LineRenderer>(); lineRenderer.positionCount = 0; enemyLink.SetActive(false); shields.SetActive(false); OnClick += gameFieldOrigin.ClearAllAreas; OnClick += gameFieldOrigin.ClearAllAttackLinks; OnClickToFigureWithDraw += gameFieldOrigin.CheckFieldLinksForFigure; OnFigureMove += gameFieldOrigin.ClearBoardDrawing; OnFigureMove += gameFieldOrigin.FreezeFigures; OnFinalMove += gameFieldOrigin.CheckArmy; OnFinalMove += gameFieldOrigin.CheckDefeat; OnFinalMove += gameFieldOrigin.ComputerStep; OnDead += gameFieldOrigin.RemoveFigure; gameFieldOrigin.OnClickToFigure += InvokeClearAttackLinks; gameFieldOrigin.OnCheckDefeat += ChekFiguresUnderMyAttack; }
public virtual void StopMove() { currentPoint = gameField[currentPosition.y, currentPosition.x]; currentPoint.SetFigure(this); InvokeOnFinalMove(); }