예제 #1
0
 void SpawnEnemy(BaseTile baseTile)
 {
     if (baseTile != null)
     {
         EnemyCounter++;
         BaseEnemy Inst = Instantiate(RandomChosenEnemy(), baseTile.transform.position, Quaternion.identity);
         baseTile.AddUnitOnTile(Inst);
         Inst.onEnemyDestroy += DecreaseEnemies;
     }
 }
예제 #2
0
    void DeployUnit(ref BaseTile baseTile)
    {
        Vector2Int position = baseTile.PositionOnGrid;
        PaintType  type     = GetPaintType(position.x, position.y);

        if (glossary.GetPrefabUnit(type) == null)
        {
            return;
        }
        BaseUnit baseUnit = Instantiate(glossary.GetPrefabUnit(type), baseTile.transform.position, Quaternion.identity, gameObject.transform);

        baseTile.AddUnitOnTile(baseUnit);
        baseUnit.name = (baseUnit.GetType()).ToString() + " x: " + position.x + " y: " + position.y;
    }
예제 #3
0
    protected bool Move(int xDir, int yDir)
    {
        if (MoveProgressing == null)
        {
            BaseTile tempBaseTile = GetNeigbourInDirection(xDir, yDir);
            if (tempBaseTile == null)
            {
                return(false);
            }

            Vector3 TargetPosition = tempBaseTile.GetLocation();
            MoveProgressing = StartCoroutine(SmoothMovement(TargetPosition, MoveDuration));
            tile.RemovUnitOnTile(this);

            tile = tempBaseTile;
            tile.AddUnitOnTile(this);

            return(true);
        }
        return(false);
    }