Beispiel #1
0
    public void IsPlayerNextToMe(int tileX, int tileY)
    {
        for (int x = -1; x <= 1; x++)
        {
            for (int y = -1; y <= 1; y++)
            {
                if ((y + tileY) < 0 ||
                    (y + tileY) > mapConfig.tileMap.mapSizeY - 1 ||
                    (x + tileX) < 0 ||
                    (x + tileX) > mapConfig.tileMap.mapSizeX - 1)
                {
                    continue;
                }

                if (x == 0 || y == 0)
                {
                    if (tileX == (unitConfig.tileX + x) && tileY == (unitConfig.tileY + y))
                    {
                        foreach (var unit in mapConfig.turnSystem.playerUnits)
                        {
                            if (unit.tileX == tileX && unit.tileY == tileY)
                            {
                                TurnSystem.selectedTarget = unit;
                                break;
                            }
                        }
                        if (!isAttacking)
                        {
                            unitConfig.mapConfig.turnSystem.cameraControl.SetCameraTime(0);
                        }

                        unitConfig.mapConfig.turnSystem.cameraControl.MoveToTarget(unitConfig.transform.position, true);
                        unitConfig.MeleeAttack(TurnSystem.selectedUnit, TurnSystem.selectedTarget);
                        unitConfig.actionPoints.SubtractAllActions();
                        isAttacking = true;
                        unitConfig.Attack(); //Play attack animation
                    }
                }
            }
        }
    }