public void Attack(ActionStruct action, BoardController boardController) { if (action.type == ActionType.melee) { Debug.Log($"{_tokken.posOnBoardX}, {_tokken.posOnBoardY}, {action.direction}, {_tokken.faction}"); Tokken target = boardController.CheckForFirstTargetInLine(_tokken.posOnBoardX, _tokken.posOnBoardY, action.direction, 1, _tokken.faction); if (target != null) { Debug.Log($"Atakujo"); Debug.Log($"{target.name}"); target.GetComponent <IDamage>().TakeDamage(action.damage); } else { Debug.Log("Brak targetu"); } } if (action.type == ActionType.ranged) { Tokken target = boardController.CheckForFirstTargetInLine(_tokken.posOnBoardX, _tokken.posOnBoardY, action.direction, 5, _tokken.faction); if (target != null) { target.GetComponent <IDamage>().TakeDamage(action.damage); } } }
public Tokken CheckForFirstTargetInLine(int attackerPosX, int attackerPosY, int attackDirection, int attackDistance, Faction myFaction) { bool noTarget = true; Tokken target = null; Hex currenHex = hexBoard[attackerPosX][attackerPosY]; Debug.Log($"HEX:{hexBoard[1][1].GetNeighbour(5).name}"); while (noTarget) { if (currenHex.GetNeighbour(attackDirection) != null) { Hex neighbour = currenHex.GetNeighbour(attackDirection); Debug.Log(neighbour.name); currenHex = neighbour; if (neighbour.isOccupied) { if (neighbour.ReturnTokken().faction != myFaction) { target = neighbour.ReturnTokken(); noTarget = false; } } } else { break; } } return(target); }
public void Shuffle(ref Deck deck) { System.Random random = new System.Random(); Tokken[] _tokkens = deck.tokkens; for (int i = 0; i < _tokkens.Length; i++) { int j = random.Next(i, _tokkens.Length); Tokken temp = _tokkens[i]; _tokkens[i] = _tokkens[j]; _tokkens[j] = temp; } deck.tokkens = _tokkens; }
public List <Tokken> FindsTokkensWithHaste(int haste) { List <Tokken> tokkensWithHaste = new List <Tokken>(); for (int i = 0; i < board.Length; i++) { for (int j = 0; j < board[i].Length; j++) { Tokken tokken = board[i][j].ReturnTokken(); if (tokken != null) { for (int k = 0; k < tokken.initiative.Length; k++) { if (tokken.initiative[k] == haste) { tokkensWithHaste.Add(tokken); } } } } } return(tokkensWithHaste); }
public TokkenAction(Tokken tokken) { _tokken = tokken; actions = _tokken.action; }
private void Awake() { tokken = GetComponent <Tokken>(); }
private void Awake() { tokken = GetComponent <Tokken>(); camera = Camera.main; }