Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

This event is triggered once at the start of the a new game before the map is ready.

 

Overview

This event is only called when a game first starts, it is not called when a saved game is loaded.

When the event is fired, all your scripts have been loaded and basic game initialisation is complete:

  • You can retrieve basic information about the game, such as playerData and use most if not all of the enum functions (such as enumDroid() and enumStruct()
  • Do not issue any commands (such as production, research or droid orders) because the game hasn't properly started yet.
  • Avoid Any custom events (setTimer()queue() or bind() calls linked to functions that issue commands, because they might get triggered before the game properly starts.
To issue initial commands or set timers, etc., it's much safer to use eventStartLevel() instead

The eventGameInit() event is primarily aimed at script initialisation or, in the case of rules.js, player initialisation.

If you want to set custom events (timers, etc.), it is best practice to do that in eventStartLevel(). Furthermore, it is best practice to only issue orders (research, production, attacks, etc.) after eventStartLevel() – usually triggered by some other event or timer.

(warning) It is recommended that you read Environment Sequences to gain a fuller understanding of this event in context of the initialisation sequence of a new game.

Syntax

Code Block
themeRDark
languagejavascript
linenumberstrue
function eventGameInit() {
  // do stuff
}

Parameters

This event has no parameters.

Return value

Warzone does not process your event handler's return value.

Example

Code Block
themeRDark
languagejavascript
titleChoose a research path based on AI difficulty
linenumberstrue
var insaneResearchPath = [ /* research items here */ ];
var hardResearchPath = [ /* research items here */ ];
var mediumResearchPath = [ /* research items here */ ];
var easyResearchPath = [ /* research items here */ ];


function eventGameInit() {
  // choose a research path
  switch (difficulty) {
    case INSANE: {
      global.researchPath = insaneResearchPath;
      break;
    }
    case HARD: {
      global.researchPath = hardResearchPath;
      break;
    }
    case MEDIUM: {
      global.researchPath = mediumResearchPath;
      break;
    }
    case EASY: {
      global.researchPath = easyResearchPath;
      break;
    }
  }
  // but do not start any research yet...
  // research can only be started *after* eventStartLevel()
}
Div
classbox

Availability

Requires:

  • Warzone 3.1 Beta 1 and above.
Div
classbox

See also

Related articles:

  • Environment Sequences – recommended reading!
  • eventStartLevel() – triggered once the map has been initialised, you can now issue commands and set timers, etc.
  • Events – documentation for all other events in the JS API