public void tick(double time) {
        if (activationTime <= time && alive) {
            setActive(true);

            for (GameAction currentAction : getGameActions()) {
                currentAction.tick(this);
            }

            moveEnemy(enemyPixelMovement(enemyPathing.getCurrentPixelGoal()));
            if (enemyPathing.getCurrentPixelGoal().equals(getPixelPosition())) {
                enemyPathing.updateGoal();
            }
        }

        if (getHitpoints() <= 0 && alive) {
            setToDead();
            return;
        }
        if (alive && board.isWithinCastlePixelPos(this)) { // if enemy is on castle
            board.getPlayer().subtractLives(dmgToBase);
            board.getPlayer().subtractGold(gold);
            setToDead();
        }
    }