Global

Members

(constant) Actions

Actions handled by game
Source:

Methods

accept_cookies()

Saves user acknowledgement of cookies
Source:

action_to_offset(action) → {}

Converts action to coordinate offset
Parameters:
Name Type Description
action number
Source:
Returns:
Type

add_finish_button_to_level_game_wrapper(game, game_saver, game_state, levels)

Adds 'finish game' button
Parameters:
Name Type Description
game Game
game_saver GameSaver
game_state GameState
levels
Source:

apply_action(handler, action)

Queues action to be handled and handles it as soon as it's possible
Parameters:
Name Type Description
handler function
action any
Source:

apply_edition(level, tile, mode, element)

Tries to change element at tile in given mode
Parameters:
Name Type Description
level Level
tile
mode number
element number
Source:

apply_game_action(action, level_data, logic) → {boolean}

Applies provided action using provided interface
Parameters:
Name Type Description
action number Action to apply, any of Actions member
level_data LevelData
logic GameLogic
Source:
Returns:
true if action was applied false otherwise
Type
boolean

arrays_equal(first, second) → {boolean}

Checks if arrays contain elements equal with == operator
Parameters:
Name Type Description
first
second
Source:
Returns:
Type
boolean

can_move_or_push(level, offset) → {boolean}

Checks whether player can move by offset
Parameters:
Name Type Description
level Level
offset number
Source:
Returns:
Type
boolean

can_push_box(level, box_position, offset) → {boolean}

Checks whether box can be pushed by offset
Parameters:
Name Type Description
level LeveL
box_position
offset
Source:
Returns:
Type
boolean

can_walk_into_without_pushing(level, position) → {boolean}

Checks if given position allows to be put on it. Position cannot be wall and cannot contain a box Does not consider player because only player can move elements around and there's only one player
Parameters:
Name Type Description
level Levels
position
Source:
Returns:
Type
boolean

check_cookies_accepted()

Displays a message if cookies weren't acknowledged
Source:

clone_game(game)

Creates independent clone of the game
Parameters:
Name Type Description
game Game
Source:

clone_level(level)

Creates an independent copy of the level
Parameters:
Name Type Description
level Level
Source:

create_level_ui()

Creates a basic level interface The interface consists of: - satisfaction counter - level display - information about controls - restart button
Source:

create_new_level(width, height)

Creates sample level to edit
Parameters:
Name Type Default Description
width number 5
height number 5
Source:

create_satisfaction_counter(level, element)

Initializes satisfaction counter
Parameters:
Name Type Description
level Level
element Element
Source:

deep_array_copy(array) → {}

Deeply copies an array
Parameters:
Name Type Description
array
Source:
Returns:
deep copy of the array
Type

draw_level(level, on_tile_click)

Draws level using HTML
Parameters:
Name Type Description
level Level
on_tile_click function
Source:

erase(level, tile, element)

Tries to erase element at tile
Parameters:
Name Type Description
level Level
tile
element number
Source:

get_box_index(level, box) → {number}

Returns index of box in the level
Parameters:
Name Type Description
level Level
box Position of the box
Source:
Returns:
Type
number
Parameters:
Name Type Description
name string Name of the cookie to get value of
Source:
Returns:
Type
string | undefined

get_target_index(level, target) → {number}

Returns index of target in the level
Parameters:
Name Type Description
level Level
target Position of the target
Source:
Returns:
Type
number

get_user_level_by_index(index, game_state)

Returns user level by given index. Level is presented in the state it was saved in editor. IOW, as it was never played on
Parameters:
Name Type Description
index number
game_state GameState
Source:

get_user_level_by_name(name, game_state)

Returns user level by given name Level is presented in the state it was saved in editor, IOW, as it was never played on
Parameters:
Name Type Description
name string
game_state GameState
Source:

insert_into_ranking(entry, ranking)

Inserts given entry into ranking
Parameters:
Name Type Description
entry RankingEntry
ranking
Source:

is_box_satisfied(level, box) → {boolean}

Checks if given box is satisfied (there's a target on its position)
Parameters:
Name Type Description
level Level
box
Source:
Returns:
Type
boolean

is_level_completed(level) → {boolean}

Checks if given level is completed (all box are satisfied)
Parameters:
Name Type Description
level Level
Source:
Returns:
true if level is completed, false otherwise
Type
boolean

is_level_valid()

Check whether the level is valid i.e. Is player specified and there are as many boxes as targets
Source:
Binds keyboard events to game actions, and calls provided handler on action
Parameters:
Name Type Description
handler function
Source:

load_game_state(deserializer, loader)

Loads game state using provided deserializer and loader
Parameters:
Name Type Description
deserializer Deserializer
loader Loader
Source:

move_box_from(box_index, offset, level_data, logic)

Removes box from a tile
Parameters:
Name Type Description
box_index number
offset
level_data LevelData
logic GameLogic
Source:

move_box_to(box_index, offset, level_data, logic)

Puts box on a tile
Parameters:
Name Type Description
box_index number
offset
level_data LevelData
logic GameLogic
Source:

move_game_to_ranking(game, game_state)

Removes game from saved and inserts score into ranking
Parameters:
Name Type Description
game Game
game_state GameState
Source:

next_queued_action(handler)

Processes actions. When there are no waiting actions, the next one can be applied immediately. Otherwise try to apply every action until the first success
Parameters:
Name Type Description
handler function
Source:

place(level, tile, element)

Tries to place element at tile
Parameters:
Name Type Description
level Level
tile
element number
Source:

play_edited_level(level, game_state)

Plays level without saving and upon completion goes back to editing
Parameters:
Name Type Description
level Level
game_state GameState
Source:

play_game(game, game_state, levels)

Play (continue) game - all levels sorted from easy to hard
Parameters:
Name Type Description
game Game
game_state GameState
levels
Source:

play_level_at(element, level_data, logic)

Parameters:
Name Type Description
element HTMLElement
level_data LevelData
logic GameLogic
Source:

play_level_on_default_game_wrapper()

Starts level on the #game-wrapper element set in HTML
Source:

play_single_level(element, level, original_level, level_saver, on_level_completed, after_level_completed)

Play single level
Parameters:
Name Type Description
element HTMLElement Element to put ui on
level Level Initial state of the level
original_level Level Default (reset) state of the level
level_saver LevelSaver Object that saves levels
on_level_completed function Callback immediately on level completed
after_level_completed function Callback after user presses 'continue'
Source:

push_box(box_index, offset, level_data, logic)

Pushes box by offset
Parameters:
Name Type Description
box_index number
offset
level_data LevelData
logic GameLogic
Source:

remove_box(level, box)

Removes a box from given position if there's any
Parameters:
Name Type Description
level Level
box number
Source:
Parameters:
Name Type Description
name string Name of the cookie to remove
Source:

remove_finish_button_from_game_wrapper()

Removes 'finish game' button
Source:

remove_from_ranking(entry, ranking)

Removes given entry from ranking
Parameters:
Name Type Description
entry RankingEntry
ranking
Source:

remove_paused_user_level(level, game_state)

Removes level from paused levels created by user
Parameters:
Name Type Description
level Level
game_state GameState
Source:

remove_saved_game(game, game_state)

Removes given game from game state if present
Parameters:
Name Type Description
game Game
game_state GameState
Source:

remove_target(level, target)

Removes a target from given position if there's any
Parameters:
Name Type Description
level Level
target number
Source:

remove_user_level(level, game_state)

Removes level from levels created by user and from paused levels
Parameters:
Name Type Description
level Level
game_state GameState
Source:

remove_wall(level, wall)

Removes a wall from given position if there's any
Parameters:
Name Type Description
level Level
wall number
Source:

reset_buttons_state(mode_buttons, element_buttons)

Resets level editor buttons to defautl state i.e. 'place floor'
Parameters:
Name Type Description
mode_buttons
element_buttons
Source:

reset_game_state()

Removes all cookies related to game state
Source:

resize_level(level, width, height)

Resizes level and removes elements that are no longer inside
Parameters:
Name Type Description
level Level
width number
height number
Source:

resize_level_or_show_error(level, width_text, height_text)

Try to resize level from provided text. If impossible show error
Parameters:
Name Type Description
level Level
width_text string
height_text string
Source:

satisfied_boxes_count(level) → {number}

Counts how many boxes are satisfied
Parameters:
Name Type Description
level Level
Source:
Returns:
Type
number

save_game(game, game_state)

Saves game into game_state
Parameters:
Name Type Description
game Game
game_state GameState
Source:

save_game_state(game_state, serializer, saver)

Saves game state using provided serializer and saver
Parameters:
Name Type Description
game_state GameState
serializer Serializer
saver Saver
Source:

save_new_user_level(level, game_state)

Creates new level in game_state Sets provided level index
Parameters:
Name Type Description
level Level
game_state GameState
Source:

save_paused_user_level(level, game_state)

Saves paused level created by user
Parameters:
Name Type Description
level Level
game_state GameState
Source:

save_user_level(level, game_state)

Saves level created by user and sets its paused state
Parameters:
Name Type Description
level Level
game_state GameState
Source:
Set's a cookie
Parameters:
Name Type Description
name string Cookie name
value string Cookie value
Source:

split_levels_by_difficulty(levels) → {LevelsByDiffcutly}

Splits level by set difficulty. If level's difficulty is undefined it's ignored
Parameters:
Name Type Description
levels Array of levels to split
Source:
Returns:
Type
LevelsByDiffcutly
Removes previously set binding of keyboard events
Source:

Type Definitions

LevelData

Type:
  • Object
Source: