All Classes and Interfaces
Class
Description
Lightweight AABB which only counts entities per cell
 Does not store entities
 Up to 127 entities per cell
     Abilities are temporary effects which are normally started by the player manually (for example,
     
FireballAbility or NukeAbility).Ability type factory is responsible for creation of abilities and provides some
 additional info for some particular type of ability (such as ability name and color).
Similar to BaseDrawable but has a smaller memory footprint and does not have a name
Actions attach to an 
Actor and perform some task, often over time.Static convenience methods for using pooled actions, intended for static import.
2D scene graph node.
Detects tap, long press, fling, pan, zoom, and pinch gestures on an actor.
Adds an action to an actor.
Buff is being added to an enemy.
Adds a listener to an actor.
ANSI escape codes for terminal
Executes an action only after all other actions on the actor at the time this action's target was set have finished.
Sets the alpha for an actor's color (or a specified color), from the current alpha to the new alpha.
A selection that supports range selection by knowing about the array of items being selected.
Ball lightning ability implementation.
Drawable that stores the size information but doesn't draw anything.
Subclass of 
LibFunction which implements the lua basic library functions.StatisticsSystem.getBestReplay()
Subclass of LibFunction that implements the Lua standard 
bit32 library.Blizzard ability implementation.
Issues GameplayMods as bonuses
String buffer for use in string library methods, optimized for production 
 of StrValue instances.
Placed on PlatformPiles
Bullet wall ability implementation.
The style for a button, see 
Button.Manages a group of buttons to enforce a minimum and maximum number of checked buttons.
Allows to define layers of static / cached graphics.
Can be stopped, can't be canceled
A cell for a 
Table.Listener for 
ChangeListener.ChangeEvent.Fired when something in an actor has changed.
A checkbox is a button that contains an image indicating the checked or unchecked state and a label.
The style for a select box, see 
CheckBox.Read-only LuaTable which stores a part of the class tree and allows to be properly serialized
 in case user stores a part of the tree in a separate variable
Detects mouse over, mouse or finger touch presses, and clicks on an actor.
Helper class to coerce values from Java to lua within the luajava library.
Helper class to coerce values from lua to Java within the luajava library.
Sets the actor's color (or a specified color), from the current to the new color.
Кнопка, содержащая
 - Изображение фона
 - Значок
 - Надпись
 Можно изменять цвет фона / значка с надписью
Constants used by the LuaC compiler and related classes.
A group with a single child that sizes and positions the child using constraints.
An EventAction that is complete once it receives X number of events.
Handles uncaught exceptions on threads and notifies ActionResolver about them
This class provides utility functions for CRC calculation using either canonical straight forward approach
 or using "fast" table-driven implementation.
Parameters represents set of parameters defining a particular CRC algorithm.
Allows a parent to set the area that is visible on a child actor to allow the child to cull when drawing itself.
Note: can be extended.
Should not be used in production (reflection access to a private field - its name will be changed by proguard)
Delays execution of an action or inserts a pause in a 
SequenceAction.Base class for an action that wraps another action.
Играет intro и Looping после OnCompletionListener - на десктопах нет задержки между песнями
Manages drag and drop operations through registered drag sources and drop targets.
The payload of a drag and drop operation.
A source where a payload can be dragged from.
A target where a payload can be dropped to.
Detects mouse or finger touch drags on an actor.
Causes a scroll pane to scroll when a drag goes outside the bounds of the scroll pane.
A drawable knows how to draw itself at a given rectangular size.
Class to dump a 
Prototype into an output stream, as part of compiling.Use this wrapper to store a reference to an enemy (always if there's a chance the enemy will become unregistered between the moment it is stored & stored reference is used in the code)
 No need to use as method argument / as local variable (if there's no chance for the enemy to become unregistered while it is being used locally)
A regular projectile which constantly follows the target enemy.
Enemy has reached its target (in most of the cases, the Base).
An enemy is being spawned on the map.
A post-event of a damage taken, can not be cancelled
 Important note: final damage is already calculated, use DamageRecord.getFactDamage() (regular
 damage represents only the initial damage)
Factories provide type-specific info and manage creation / destruction of entities
 Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc)
 Game state (single instance of one game) can also do that but can be modified with scripts
 - I don't like the fact Enums are used, they don't allow new types of entities
 - How do we handle global / local factories? We need 2 of them this way
 - Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modes
Not Affects Game State
 Kryo serialization will skip fields and classes annotated with it
Represents event type.
The base class for all events.
Adds a listener to the actor for a specific event type and does not complete until 
EventAction.handle(Event) returns true.Creates and manages instances of EventListeners on demand.
Low level interface for receiving events.
 Contains a list of listeners for a specific event type.
Entry inside of an EventListeners, contains some meta data and flags.
Extra info about the entry.
Manages XP received / lost by entities.
FFT stands for Fast Fourier Transform.
Bounty, exp и score x2 (по +x0.33 за каждого маленького)
Fireball ability implementation.
Firestorm ability implementation.
An InputStream that reads data from a byte array and optionally fills the byte array from another InputStream as needed.
An OutputStream that buffers data in a byte array and optionally flushes to another OutputStream.
An action that has a float, whose value is transitioned over time.
Usage:
   FloatSorter sorter = FloatSorter.getInstance();
   sorter.begin();
   sorter.add("Foo", 5f);
   sorter.add("Bar", -3.5f);
   ...
Listener for 
FocusListener.FocusEvent.Fired when an actor gains or loses keyboard or scroll focus.
A Fourier Transform is an algorithm that transforms a signal in the time domain, such as a sample buffer, into a signal in the
 frequency domain, often called the spectrum.
A "baked" or fixed prototype definition, stores immutable data and everything is final for performance.
Used on fields that accumulate frames and run some job once the field has reached some value (enough time passed).
Triggered when the app exits.
Old version of listeners, still used in some places
Triggered by GameStateSystem
Defines the order of rendering during the run
 Listeners with higher priority will be drawn first.
Triggered by GameStateSystem
Сериализирует все, кроме NotAffectsGameState
One frame of the game state has been processed.
IMPORTANT (for me):
   Do not define basic constructor (SystemName()) to avoid unnecessary actions on deserialization - put some arguments into it
Thread-local objects, stored in S.TSH
 Each GameSystemProvider has a single instance of this class and provides objects that were usually available as a regular static fields / singletons
 Since static fields can not be used in a multithreaded environment and ThreadLocal may get costly
Deprecated.
Manages UI elements for a regular game
Типы GameValues
 Конфиг game-values.json генерируется из этого файла путем запуска prepare.bat
   ENUM, // [стандартное значение] юниты | значок | флаги (не обязательно) | Комментарий (не обязательно)
(B) Triggered by EnemySystem.giveDamage() before the actual damage is calculated and any changes
 Some damage adjustments are made at this point (reduced damage from Abilities to bosses) and
 and the system has checked whether the tower can attack this enemy.
Read-only LuaTable which stores all aliases (shortcuts) to the classes
Global environment used by luaj.
Interface for module that converts lua source text into a prototype.
Interface for module that converts a Prototype into a LuaFunction with an environment.
Interface for module that loads lua binary chunk into a prototype.
2D scene graph node that may contain other actors.
A group that lays out its children side by side horizontally, with optional wrapping.
Формирует список всех алиасов для i18n
Method marked as an overload (meaning there are multiple methods in the same class) which I can
 do nothing about because overload is forced by some super class / interface, or I've decided
 to keep like that because Java code makes more sense with that name.
Displays a 
Drawable, scaled various way within the widgets bounds.A button with a child 
Image to display an image.The style for an image button, see 
ImageButton.The style for an image text button, see 
ImageTextButton.Event for actor input: touch, mouse, touch/mouse actor enter/exit, mouse scroll, and keyboard events.
Types of low-level input events supported by scene2d.
EventListener for low-level input events.
An action that has an int, whose value is transitioned over time.
Thread safe variant of GDX Intersector
Utility class which allows to use unsigned int type in Lua
 Lua uses double precision values (double) that can not be used to calculate regular hashes with
 primes (no overflows).
Abstract base class extending 
LibFunction which implements the
 core of the lua standard io library.S.mapEditor.getDraggingItem()
S.mapEditor.getDraggingItem()
LuaValue that represents a Java class.
A Java method as an object.
LuaValue that represents a particular public Java constructor.
LuaValue that represents a Java instance.
Java method or constructor.
LuaValue that represents a Java method.
Subclass of 
BaseLib and LibFunction which implements the lua basic library functions
 and provides a directory based ResourceFinder as the Globals.finder.Subclass of 
IoLib and therefore LibFunction which implements the lua standard io
 library for the JSE platform.Subclass of 
LibFunction which implements the lua standard math 
 library.Subclass of 
LibFunction which implements the standard lua os library.Analog of Process that pipes input and output to client-specified streams.
A text label, with optional word wrapping.
The style for a label, see 
Label.Кнопка, состоящая только из надписи
Provides methods for an actor to participate in layout and to provide a minimum, preferred, and maximum size.
Sets an actor's 
layout to enabled or disabled.Subclass of 
LuaFunction common to Java functions exposed to lua.ByteArrayOutputStream with size limit
 May corrupt strings at the beginning
A list (aka list box) displays textual items and highlights the currently selected item.
The style for a list, see 
List.Listens for a specific event type.
Class to undump compiled lua bytecode into a 
Prototype instances.Локаль
Data class to hold debug information relating to local variables for a 
Prototype- Writes logs to a log writer specified by the platform (normally it is a log.txt)
 - Makes sure to flush and close the log writer if app exits in a regular way
 - Rotates logs at the start of the game or if they get too big
Log levels used in TLog.
LOIC ability implementation.
Используется с началом игры
 Дает бонус +50% к кол-ву лута
Constants for lua limits and opcodes.
Extension of 
LuaValue which can hold a Java boolean as its value.Compiler for Lua.
RuntimeException that is thrown and caught in response to a lua error.
Base class for functions implemented in Java.
One invocation handler per object
 /|/ Called on different threads \|\
Class to encapsulate behavior of the singleton instance 
nilToken literal values and constants.
Token Manager.
Subclass of 
LuaValue for representing lua strings.Subclass of 
LuaValue for representing lua tables.A Slot whose value has been set to nil.
Entry class used with numeric values, but only when the key is not an integer.
Represents a slot in the hash table.
Varargs implemenation with no values.
Magnet ability implementation.
Use instanceof Tile.Pos / Gate.Pos
Experimental / work in progress
 No point in using it right now
Prepared math expressions in a simplified Lua environment.
Subclass of 
LibFunction which implements the lua standard math
 library.Called each time a miner mines an item, even if the item won't be added (in which case the event
 will be cancelled from the beginning)
 Listeners can call S.loot.getOrCreateSourceMinedItems() and modify the miner's inventory directly.
(B) Triggered by MinerSystem before any changes to the amount of resources.
Moves an actor to a relative position.
Moves an actor from its current position to a specific position.
Acts as a regular boolean field / flag which can be affected by multiple sources.
Not Affects Game State
 Game will not compare annotated fields on sync checks
Visitor that resolves names to scopes.
Drawable for a 
NinePatch.Уведомление плавно выезжает сверху и становится непрозрачным
Nuke ability implementation.
Same as java.util.function Consumer (but it requires Android SDK 24+)
Abstract base class for Java function implementations that take one argument and 
 return one value.
Error sublcass that indicates a lua thread that is no
 longer referenced has been detected.Subclass of 
LibFunction which implements the standard lua os library.Overload ability implementation.
Subclass of 
LibFunction which implements the lua standard package and module
 library functions.Called second
 Calls _G.package.searchpath(name, _G.package.path) and then globals.loadfile() if found
Called first
 Searches in preloaded packages (_G.package.preload table)
require (modname)
 
 Loads the given module.
Прозрачная кнопка с изображением.
Executes a number of actions at the same time.
Implementation of Batch which does not draw anything.
This exception is thrown when parse errors are encountered.
ParticleEffectActor holds an 
ParticleEffect to use in Scene2d applications.Platform-specific log output, usually to some kind of a terminal.
Applied to towers
 Lists all the additional PWR sources (Power modifier / Basic ult)
Main category of preferences (Progress or Settings)
Preferences are stored in different places:
 - Local preference files (default Preferences provided by LibGDX - XML file with key-value string pairs, stored as an encrypted base64)
   Method: getLegacyPropertiesInstance() (returns an instance for loading / saving data)
   Stored data: properties split into 4 different categories (ids are Config.PREFERENCES_NAMES), require migration
 - Cloud saves (base64 encoded string of the legacy properties, not encrypted)
   Method: saveSnapshotAsString(new Array<>(Config.PREFERENCES_NAMES)
   Method: loadFromCompactBase64(dataJson.asString(), true)
 - As backups on the server (same as Cloud saves - base64 string)
   Method: saveSnapshotAsString(new Array<>(Config.PREFERENCES_NAMES))
   Method: loadFromUrl(url) which basically uses loadFromCompactBase64(progressBase64)
 Game must be able to load previous versions of encoded data from any of the mentioned places.
Storage of individual preferences
Subcategory of main PrefCategory
 Stores data in a convenient for the game format and is responsible for setting / retrieving data
 from PrefMap on demand
Debug helper class to pretty-print lua bytecodes.
A progress bar is a widget that visually displays the progress of some activity or a value within given range.
The style for a progress bar, see 
ProgressBar.Отвечает за основной прогресс игры (достижения, деньги, ресурсы)
Contains progress data necessary for a proper replay validation.
Progression related data
A projectile has been registered in the system (ProjectileSystem.register())
Освобождает TrailMultiLine обратно в пул, если он не обновляется длительное время (уже не виден, isFinished() возвращает true)
Prototype representing compiled lua code.
Deprecated, use Quad as a regular Drawable for an Image
Deprecated, use Quad
Deprecated, use Quad
Действует определенное время
 Дает бонус +50% к редкости лута
Also acts as a fallback if no bonus is available - its provider always produces a bonus.
Label и QuadActor всегда занимают всю кнопку и по центру
A base class of things that store a reference to 
GameSystemProvider for its usage.Register for Serialization
 Kryo will register this class automatically at the start of the game
Binary representation:
 int: header (BYTE_FORMAT_HEADER)
 byte: version
 byte: preferencesType
 long: saveTimestamp (ms)
 int: fieldCount
 [for fieldCount:]
 string:key
 string:value
 [/for]
 Deflated
Base class for actions that transition over time using the percent complete since the last frame.
Removes an action from an actor.
Removes an actor from the stage.
(A) Triggered by BuffProcessor after the actual buff removal
Removes a listener from an actor.
Manages the order of rendering.
Repeats an action a number of times or forever.
Interface for opening application resource files such as scripts sources.
Sets the actor's rotation from its current value to a relative value.
Sets the actor's rotation from its current value to a specific value.
An action that runs a 
Runnable.Thread-safe version of GDX's Pools
 Why thread safe:
 - Some events (like LogEntryAdd) may be triggered on a different threads
 - Multiple gameStates can be simulated on a different threads at the same time
Scales an actor's scale to a relative size.
Sets the actor's scale from its current value to a specific value.
A stack of 
Rectangle objects to be used for clipping via GL20.glScissor(int, int, int, int).A group that scrolls a child actor using scrollbars and/or mouse or touch dragging.
The style for a scroll pane, see 
ScrollPane.A select box (aka a drop-down list) allows a user to choose one of a number of values from a list.
The scroll pane shown when a select box is open.
The style for a select box, see 
SelectBox.Manages selected objects.
Executes a number of actions one at a time.
Statistics and other not so important stuff
A sandboxed wrapper for com.badlogic.gdx.files.FileHandle.
Background is set manually (see GraphicsSystem)
Can't be canceled / stopped
An implementation of interface CharStream, where the stream is assumed to
 contain only ASCII characters (without unicode processing).
Для объектов, которые будут браться прямо из игры (не десериализироваться)
Moves an actor from its current size to a relative size.
Moves an actor from its current size to a specific size.
A slider is a horizontal indicator that allows a user to set a value.
The style for a slider, see 
Slider.Smoke bomb ability implementation.
От самых бесполезных до полезных (учитывается в сортировке тайлов)
A container that contains two widgets and is divided either horizontally or vertically.
The style for a splitpane, see 
SplitPane.May also act like a Batch but will store vertex data into cache.
Drawable for a 
Sprite.A stack is a container that sizes its children to its size and positions them at 0,0 on top of each other.
A 2D scene graph containing hierarchies of 
actors.Internal class for managing touch focus.
Can be stopped, can't be canceled
Subclass of 
LibFunction which implements the lua standard string
 library.string.byte (s [, i [, j]])
 
 Returns the internal numerical codes of the
 characters s[i], s[i+1], ..., s[j].
string.char (...)
 
 Receives zero or more integers.
string.dump (function[, stripDebug])
 
 Returns a string containing a binary representation of the given function,
 so that a later loadstring on this string returns a copy of the function.
string.find (s, pattern [, init [, plain]])
 
 Looks for the first match of pattern in the string s.
string.format (formatstring, ...)
 
 Returns a formatted version of its variable number of arguments following
 the description given in its first argument (which must be a string).
string.gmatch (s, pattern)
 
 Returns an iterator function that, each time it is called, returns the next captures
 from pattern over string s.
string.gsub (s, pattern, repl [, n])
 Returns a copy of s in which all (or the first n, if given) occurrences of the
 pattern have been replaced by a replacement string specified by repl, which
 may be a string, a table, or a function.
string.len (s)
 
 Receives a string and returns its length.
string.lower (s)
 
 Receives a string and returns a copy of this string with all uppercase letters
 changed to lowercase.
string.match (s, pattern [, init])
 
 Looks for the first match of pattern in the string s.
string.rep (s, n)
 
 Returns a string that is the concatenation of n copies of the string s.
string.reverse (s)
 
 Returns a string that is the string s reversed.
string.sub (s, i [, j])
 
 Returns the substring of s that starts at i and continues until j;
 i and j may be negative.
string.upper (s)
 
 Receives a string and returns a copy of this string with all lowercase letters
 changed to uppercase.
Base class for syntax elements of the parse tree that appear in source files.
A regular System.out logger, usually used by the Desktop and Headless backends.
A group that sizes and positions children using table constraints.
Subclass of 
LibFunction which implements the lua standard table
 library.Subclass of 
Varargs that represents a lua tail call 
 in a Java library function execution environment.Base class for actions that transition over time using the percent complete.
Can't be proxied
A text input field with multiple lines.
A button with a child 
Label to display text.The style for a text button, see 
TextButton.A single-line text input field.
The default 
TextField.OnscreenKeyboard used by all TextField instances.An interface for onscreen keyboards.
Interface for filtering characters entered into the text field.
Interface for listening to typed characters.
The style for a text field, see 
TextField.A tooltip that shows a label.
The style for a text tooltip, see 
TextTooltip.Drawable for a 
TextureRegion.Manages all of the (multi)threading stuff
 Also triggers the EngineCrash event if it catches an unhandled exception in any of the configured
 threads
 Stores crash report in a file and provides methods to get the previous crash report on the next
 game start.
Abstract base class for Java function implementations that take two arguments and 
 return one value.
Thunder ability implementation.
Draws a 
TextureRegion repeatedly to fill the area, instead of stretching it.Used on fields that accumulate deltaTime for gameplay purposes, not for performance.
Multiplies the delta of an action.
The proper way to log things.
Describes the input token stream.
Token Manager Error.
A listener that shows a tooltip actor when the mouse is over another actor.
Keeps track of an application's tooltips.
Determines how touch input events are distributed to an actor and any children.
Sets the actor's 
touchability.An on-screen joystick.
The style for a 
Touchpad.Must run a game with a full endless research tree
    CREATE TABLE IF NOT EXISTS `towers_benchmark` (
        `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
        `benchmarkName` varchar(50) NOT NULL,
        `waves` smallint(5) unsigned NOT NULL,
        `extraTowers` enum('BLAST','FREEZING','FREEZING_BLAST','NONE') NOT NULL,
        `tower` enum('BASIC','SNIPER','CANNON','FREEZING','AIR','SPLASH','BLAST','MULTISHOT','MINIGUN','VENOM','TESLA','MISSILE','FLAMETHROWER','LASER','GAUSS','CRUSHER') NOT NULL,
        `aimStrategy` enum('FIRST','LAST','WEAKEST','STRONGEST','NEAREST','RANDOM') NOT NULL,
        `abilities` enum('NONE','1','2','3','1/2','1/3','2/3','ULT','1/ULT','2/ULT','3/ULT','1/2/ULT','1/3/ULT','2/3/ULT','PWR','1/PWR','2/PWR','3/PWR','1/2/PWR','1/3/PWR','2/3/PWR') NOT NULL,
        `upgradeLevel` tinyint(3) unsigned NOT NULL,
        `xpLevel` tinyint(3) unsigned NOT NULL,
        `towerPrice` smallint(5) unsigned NOT NULL,
        `maxTowerDPS` int(10) unsigned NOT NULL DEFAULT '0',
        `avgTowerDPS` int(10) unsigned NOT NULL DEFAULT '0',
        `mdps` int(10) unsigned NOT NULL DEFAULT '0',
        `maxTowerKills` smallint(5) unsigned NOT NULL,
        `totalKills` smallint(5) unsigned NOT NULL,
        `ups` int(10) unsigned NOT NULL,
        `totalDamage` double unsigned NOT NULL DEFAULT '0',
        `dpsPerCoin` float unsigned NOT NULL DEFAULT '0',
        `killsPerCoin` float unsigned NOT NULL DEFAULT '0',
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(A) Triggered by TowerSystem after the actual change in tower's XP
Позиция определяется точкой x, y
 Размеры не имеют значения
A drawable that supports scale and rotation.
A tree widget where each node has an icon, actor, and child nodes.
A 
Tree node which has an actor and value.The style for a 
Tree.Abstract base class for Java function implementations that take two arguments and 
 return one value.
Слои, от нижнему к высшему.
Upvalue used with Closure formulation
Value placeholder, allowing the value to be computed on request.
A fixed value that is not computed each time it is used.
Abstract base class for Java function implementations that takes varaiable arguments and 
 returns multiple return values.
Class to encapsulate varargs values, either as part of a variable argument list, or multiple return values.
Varargs implemenation backed by an array of LuaValues
Variable is created lua name scopes, and is a named, lua variable that
 either refers to a lua local, global, or upvalue storage location.
A group that lays out its children top to bottom vertically, with optional wrapping.
Sets the actor's 
visibility.Шаблон волны
 Случайным образом генерирует группы врагов в соответствии с номером и типом волны
 Если enemyCount равен 0, все враги в волне заспавнились
Wave is the same as the current wave in WaveSystem.wave.
Волны врагов:
   Легко:
 - Обычные (нормально)
 - Обычные (редко)
 - Обычные (плотно)
 - Сильные (нормально)
 - Сильные (редко)
 - Быстрые (нормально)
 - Быстрые (плотно)
 - Быстрые (редко)
   Средне:
 - Воздушные (нормально)
 - Джет (нормально)
 - Бронированные (редко) +
 - Бронированные + обычные (нормально) +
 - Бронированные + сильные (редко) +
 - Лечащие + обычные (редко) +
 - Лечащие (медленные и редкие) +
 - Лечащие + сильные (редко) +
 - Лечащие + бронированные +
 - Джет + лечащие +
 - Токсичные (нормально) +
 - Токсичные (плотно) +
 - Токсичные + бронированные +
 - Ледяные (плотно) +
 - Ледяные (нормально) + токсические (нормально) +
 - Ледяные + лечащие +
 - Бойцы (редко) +
 - Бойцы (нормально) +
 - Бойцы + бронированные +
 - Легкие (нормально) +
 - Легкие (плотно) +
 - Легкие + быстрые +
Используется в BasicLevel для волн, которые прописаны заранее (без probability)
Динамическая конфигурация волны, используется при процедурной генерации волн (бесконечный режим)
Subclass of 
LuaTable that provides weak key and weak value semantics.Internal class to implement weak userdata values.
Internal class to implement weak values.
Whitelist:
 - Field (className$fieldName)
 - Method (className#methodName(paramTypes))
 - Constructor (className@paramTypes)
 - Interface proxy (className#)
 Blacklist:
 - Package
 - Class
 - Field
 - Method
 - Constructor
 - Interface proxy
An 
Actor that participates in layout and provides a minimum, preferred, and maximum size.A 
Group that participates in layout and provides a minimum, preferred, and maximum size.Windstorm ability implementation.
Abstract base class for Java function implementations that take no arguments and 
 return one value.