Skip to content

VisualRound Widget v7

kecerit edited this page Nov 15, 2021 · 3 revisions
  • status : complete
  • version : 7.x

Illustration

Illustration of the VisualRound widget

Appearance of the VisualRound widget when configured to count up the rounds and stages to their respective totals.

Introduction

VisualRound is a widget to display information about the current round and stage as well as total number of rounds and stages in various ways.

Construction

VisualRound provides a constructor which accepts an options object.

Options

The options object can have the following attributes:

  • displayMode: Array of strings which determines the information displayed (see next section for details)

  • stageOffset: The value for current stage is reduced by stageOffset

  • totStageOffset: The value for total number of stages is reduced by totStageOffset (if not set, it is equal to stageOffset)

  • flexibleMode: Set true, if number of rounds and/or stages can change dynamically

  • curStage: When (re)starting in flexibleMode, sets the current stage

  • curRound: When (re)starting in flexibleMode, sets the current round

  • totStage: When (re)starting in flexibleMode, sets the total number of stages

  • totRound: When (re)starting in flexibleMode, sets the total number of rounds

  • oldStageId: When (re)starting in flexibleMode, sets the id of the current stage

  • preprocess (v7.1.1+): a function that alters information about steps, rounds and stages before they are displayed; its context of execution is the current widget and it receives the following object to modify:

    // Assuming we are in stage 1.1.1, and there are 5 stages in total,
    // and the current stage has 2 steps and 1 round.
    {
        totRound: 1,
        totStep: 2,
        totStage: 5,
        curStep: 1,
        curStage: 1,
        curRound: 1
    }

    For instance, to remove the second step of stage "tutorial" from the count:

    this.visualRound = node.widgets.append('VisualRound', header, {
            displayModeNames: [
                'COUNT_UP_STEPS_TO_TOTAL',
                'COUNT_UP_STAGES_TO_TOTAL'
            ],
            preprocess: function(info) {
                if (node.game.isStage('tutorial')) {
                    info.totStep--;
                    if (info.curStep > 1) {
                        info.curStep--;
                    }
                }
            }
        });

Display Modes

Available modes for the displayMode array:

  • COUNT_UP_STAGES: Displays only current stage number.
  • COUNT_UP_ROUNDS: Displays only current round number.
  • COUNT_UP_STAGES_TO_TOTAL: Displays current and total stage number.
  • COUNT_UP_ROUNDS_TO_TOTAL: Displays current and total round number.
  • COUNT_DOWN_STAGES: Displays number of stages left to play.
  • COUNT_DOWN_ROUNDS: Displays number of rounds left in this stage.
  • COUNT_UP_ROUNDS_IFNOT1: Displays current round number, only if the stage has more than one round.
  • COUNT_UP_ROUNDS_TO_TOTAL_IFNOT1: Displays current and total round number, only if the stage has more than one round.

In flexibleMode the total stage and round number is unknown wherefore it is represented by a question mark.

Setting the display mode

After construction of a VisualRounds object the display mode can be changed by using VisualRound.setDisplayMode which accepts an array of display mode names such as the displayModeNames option of the constructor.

Usecase

/*
 * Create and add a widget to the root which displays the 
 * current and total stage numbers minus one.
 */
var root = W.getElementById('myRoot');
var visualRound = node.widgets.append('VisualRound', root, {
    displayModeNames: ['COUNT_UP_STAGES_TO_TOTAL'], 
    stageOffset: 1
});

// ...

// Start displaying round information as well.
visualRound.setDisplayMode(['COUNT_UP_STAGES_TO_TOTAL',
                             'COUNT_UP_ROUNDS_TO_TOTAL']);

Links

Clone this wiki locally