void DoubleCloseStrike(List <Player> doubleList, Enemy thisEnemy) { if (thisEnemy.currentVigor == emptyVigor) { return; } if (_gameManager.doubleClose) { GameUtility.ShuffleList(doubleList); foreach (var player in doubleList) { if (_areaCheck.CanSee(player, thisEnemy)) { var playNearNode = _areaCheck.NearNode(player); var shortNode = ShortNode(GameUtility.Coordinate(thisEnemy.transform.position), playNearNode); if (shortNode != null) { StartCoroutine(AttackClose(player, thisEnemy, shortNode)); } thisEnemy.currentVigor = emptyVigor; break; } } } }
private bool MovingSkill(TileNode endNode, List <TileNode> allNodeList, AreaOrder areaOrder, WalkOrder walkOrder) { if (endNode == null) { print("EndNode : " + endNode); return(false); } var enemy = enemyAi.currentEnemy; if (enemy == null) { print("Enemy : " + enemy); return(false); } var startNode = allNodeList.Find(i => i.Coordinate == GameUtility.Coordinate(enemy.transform.position)); if (startNode == null) { print("StartNode : " + startNode); return(false); } var way = _board.PathFinding.GreedPathFinding(startNode, endNode, _board.NodeList); if (way == null) { return(false); } enemy.enemyMove.IndicateUnit(way, areaOrder, walkOrder); return(true); }
void Moving(bool skill) { if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()) { return; } if (_gameManager.currentPlayer == null) { return; } if (_board.startNode == null) { return; } if (_board.currentWay == null) { return; } var roundTile = _board.NodeList.Find(i => i.Coordinate == GameUtility.Coordinate(_gameManager.round.transform.position)); if (roundTile.tileStyle == TileStyle.OneArea || roundTile.tileStyle == TileStyle.TwoArea) { _gameManager.currentPlayer.MovingSkill(roundTile); _gameManager.currentPlayer.playerMove.IndicateUnit(_board.currentWay, skill); _board.currentWay = null; } }
void FindEnemyNode(Enemy enemy) { if (_gameManager.currentPlayer == null) { return; } startNode = NodeList.Find(i => i.Coordinate == GameUtility.Coordinate(enemy.transform.position)); }
void FindPlayerNode(Player player) { if (_gameManager.currentPlayer == null) { return; } startNode = NodeList.Find(i => i.Coordinate == GameUtility.Coordinate(player.transform.position)); }
public List <Enemy> RangeEnemyList(Player player, AreaCheckOption checkOption, Vector3 position) { var rangeEnemyList = new List <Enemy>(); var areaList = new List <TileNode>(); _board.ResetBoard(); if (checkOption == AreaCheckOption.Round) { player.rangeArea.transform.position = position; player.rangeArea.SetActive(true); } else if (checkOption == AreaCheckOption.Player) { player.rangeArea.transform.position = player.transform.position; player.rangeArea.SetActive(true); } foreach (var node in _board.NodeList) { if (Physics.CheckBox(node.transform.position, GameUtility.Box, Quaternion.identity, LayerMask.GetMask("RangeArea"))) { areaList.Add(node); } } if (checkOption == AreaCheckOption.Round) { player.rangeArea.transform.position = player.transform.position; player.rangeArea.SetActive(false); } else if (checkOption == AreaCheckOption.Player) { player.rangeArea.transform.position = player.transform.position; player.rangeArea.SetActive(false); } foreach (var node in areaList) { if (Physics.CheckBox(node.transform.position, GameUtility.Box, Quaternion.identity, LayerMask.GetMask("Enemy"))) { rangeEnemyList.Add(_gameManager.activeEnemyList.Find(enemy => GameUtility.Coordinate(enemy.transform.position) == GameUtility.Coordinate(node.transform.position))); } } return(rangeEnemyList); }
void DoByType() { if (_gameManager.currentPlayer.characterType == CharacterType.SwordMaster) { if (skillState == SkillState.BaseCloseAttack || CheckSign("Enemy", _sword)) { if (_gameManager.doubleClose) { if (_gameManager.currentPlayer.currentVigor > 0) { Moving(true); StartCoroutine(AfterMoving(true)); } } else { if (_gameManager.currentPlayer.currentVigor > 1) { Moving(true); StartCoroutine(AfterMoving(true)); } } } if (skillState == SkillState.Non) { Moving(false); StartCoroutine(AfterMoving(false)); } } else if (_gameManager.currentPlayer.characterType == CharacterType.Ranger) { var currentEnemy = _gameManager.activeEnemyList.Find(i => GameUtility.Coordinate(transform.position) == GameUtility.Coordinate(i.transform.position)); if (skillState == SkillState.Non) { Moving(false); StartCoroutine(AfterMoving(false)); } } }