Пример #1
0
 private void Update()
 {
     if (isSelected && turnSystem.GetBattleStatus() == BattleStatus.Combat && turnSystem.currentTurn == cardSystem.Player.GetComponent <GetStats>())
     {
         gridGenerator.DestroyTiles(DestroyOption.rangeTiles, true, true);
         gridGenerator.GenerateSkillTiles(getCardInfo.card.ranges, getCardInfo.card.targetType, cardSystem.Player, TypesofValue.relative, true);
     }
 }
Пример #2
0
    void Update()
    {
        Rotate();

        if (turnSystem.GetBattleStatus() == BattleStatus.PlayerMove)
        {
            if (!tracked)
            {
                gridGenerator.GenerateSkillTiles(getStats.character.movementCard.ranges, getStats.character.movementCard.targetType, this.gameObject, TypesofValue.relative, true);
                tracked = true;
            }
            checkRayCast();
        }
    }
Пример #3
0
    private void EnemyMove()
    {
        alreadyWent = true;

        int rotation = (360 - (360 - (int)this.transform.localEulerAngles.y)) / 90;

        for (int i = 0; i < 4; i++)
        {
            gridGenerator.GenerateSkillTiles(getStats.character.movementCard.ranges, getStats.character.movementCard.targetType, gameObject, TypesofValue.relative, false);

            tempList.AddRange(gridGenerator.rangeTiles.ToArray());

            RemoveDuplictas(tempList);

            CheckRotation(gameObject);
        }
        gridGenerator.DestroyTiles(DestroyOption.rangeTiles, true, false);

        foreach (GameObject temptile in tempList)
        {
            for (int m = 0; m < 4; m++)
            {
                placeHolder.transform.position = temptile.transform.position;
                gridGenerator.GenerateSkillTiles(usedCard.ranges, usedCard.targetType, placeHolder, TypesofValue.relative, false);
                foreach (GameObject rangeTile in gridGenerator.rangeTiles)
                {
                    if (rangeTile.GetComponent <GetObjectonTile>().gameObjectOnTile != null)
                    {
                        if (rangeTile.GetComponent <GetObjectonTile>().gameObjectOnTile.GetComponent <GetStats>())
                        {
                            gridGenerator.selectedTiles.Add(temptile);
                        }
                    }
                }
                gridGenerator.DestroyTiles(DestroyOption.rangeTiles, true, false);
                CheckRotation(placeHolder);
            }
            placeHolder.transform.localEulerAngles = new Vector3(0, 270, 0);
        }

        playerPos = FindEnemyPos();

        int indexPlayerPos = Random.Range(0, playerPos.Count - 1);

        closestTile      = tempList[0];
        furthermostTile  = tempList[0];
        smallestDistance = Vector3.Distance(closestTile.transform.position, playerPos[indexPlayerPos]);
        largestDistance  = Vector3.Distance(furthermostTile.transform.position, playerPos[indexPlayerPos]);

        foreach (GameObject rangeTile in tempList)
        {
            if (Vector3.Distance(rangeTile.transform.position, playerPos[indexPlayerPos]) < smallestDistance)
            {
                smallestDistance = Vector3.Distance(rangeTile.transform.position, playerPos[indexPlayerPos]);
                closestTile      = rangeTile;
            }
            if (Vector3.Distance(rangeTile.transform.position, playerPos[indexPlayerPos]) > largestDistance)
            {
                largestDistance = Vector3.Distance(rangeTile.transform.position, playerPos[indexPlayerPos]);
                furthermostTile = rangeTile;
            }
        }

        if (limitHealthPercent != 0)
        {
            if (getStats.character.currentHealth < (getStats.character.health / 100) * limitHealthPercent)
            {
                tempList2.Add(furthermostTile);
            }
            else
            {
                if (gridGenerator.selectedTiles.Count == 0)
                {
                    tempList2.Add(closestTile);
                }

                tempList2.AddRange(gridGenerator.selectedTiles.ToArray());
            }
        }

        RemoveDuplictas(tempList2);
        gridGenerator.DestroyTiles(DestroyOption.allList, true, false);

        for (int i = 0; i < 4; i++)
        {
            int indexTempList2 = Random.Range(0, tempList2.Count - 1);

            gridGenerator.selectedTiles.Add(tempList2[indexTempList2]);
            gridGenerator.GenerateSkillTiles(getStats.character.movementCard.ranges, getStats.character.movementCard.targetType, gameObject, TypesofValue.relative, false);
            if (allSkills.cast(getStats.character.movementCard, gridGenerator, gameObject, BattleStatus.Move, getStats))
            {
                alreadyWent = false;
                break;
            }
            CheckRotation(gameObject);
        }
    }