public static void playerTurn() { switch (currentPhase) { case battlephase.choose: drawAttackArrow(enemyPosition); break; case battlephase.move: drawPath(playerPosition, targetPosition); break; case battlephase.drawknock: knockPlayer(); currentPhase = battlephase.knock; break; case battlephase.knock: knockPlayer(); break; default: break; } }
public static bool HandleKeys() { int key = Terminal.Read(); switch (currentPhase) { case battlephase.choose: if (key == Terminal.TK_LEFT) { arrowDir = arrowDirection.left; } if (key == Terminal.TK_RIGHT) { arrowDir = arrowDirection.right; } if (key == Terminal.TK_UP) { arrowDir = arrowDirection.up; } if (key == Terminal.TK_DOWN) { arrowDir = arrowDirection.down; } if (key == Terminal.TK_ENTER) { if (arrowDir != arrowDirection.none) { currentPhase = battlephase.move; } } break; case battlephase.move: // MOVE if (key == Terminal.TK_ENTER) { if (path.Count == 0) { currentPhase = battlephase.drawknock; } else { Vector2 vec = new Vector2(path[0].X, path[0].Y); playerPosition = vec; } } break; case battlephase.knock: if (key == Terminal.TK_ENTER) { if (knockPower == 0) { state++; knockPower = 2; currentPhase = battlephase.choose; } else { Vector2 vec = new Vector2(path[0].X, path[0].Y); enemyPosition = vec; knockPower--; } } break; default: break; } return(false); }