All Classes and Interfaces

Class
Description
 
 
 
 
Lightweight AABB which only counts entities per cell Does not store entities Up to 127 entities per cell
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Similar to BaseDrawable but has a smaller memory footprint and does not have a name
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Buff is being added to an enemy.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Subclass of LibFunction which implements the lua basic library functions.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
StatisticsSystem.getBestReplay()
Subclass of LibFunction that implements the Lua standard bit32 library.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Issues GameplayMods as bonuses
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
String buffer for use in string library methods, optimized for production of StrValue instances.
 
 
 
 
 
 
 
 
 
Placed on PlatformPiles
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Allows to define layers of static / cached graphics.
 
 
 
 
 
 
 
 
 
Can be stopped, can't be canceled
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
Позиция меняется благодаря preRender(), колизии проверяются в scheduledUpdate()
 
Кнопка, содержащая - Изображение фона - Значок - Надпись Можно изменять цвет фона / значка с надписью
 
 
Constants used by the LuaC compiler and related classes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Subclass of LibFunction which implements the lua standard coroutine library.
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Subclass of LibFunction which implements the lua standard debug library.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Should not be used in production (reflection access to a private field - its name will be changed by proguard)
 
 
 
 
Играет intro и Looping после OnCompletionListener - на десктопах нет задержки между песнями
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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)
 
 
 
 
Обычный снаряд, который долетает до целевого врага
 
 
 
 
 
 
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.
 
Contains a list of listeners for a specific event type.
 
Extra info about the entry.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FFT stands for Fast Fourier Transform.
 
 
Bounty, exp и score x2 (по +x0.33 за каждого маленького)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
Usage: FloatSorter sorter = FloatSorter.getInstance(); sorter.begin(); sorter.add("Foo", 5f); sorter.add("Bar", -3.5f); ...
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
 
Используется для fingerprint Массив GameListener должен быть с определенным типом и отсортирован - Array<>(true, 1, SystemListener.class)
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
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.
 
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Формирует список всех алиасов для i18n
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
LuaValue that represents a particular public Java constructor.
LuaValue that represents an overloaded Java constructor.
LuaValue that represents a Java instance.
Java method or constructor.
LuaValue that represents a Java method.
LuaValue that represents an overloaded 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.
Кнопка, состоящая только из надписи
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Subclass of LuaFunction common to Java functions exposed to lua.
 
 
 
 
 
 
 
 
ByteArrayOutputStream with size limit May corrupt strings at the beginning
 
 
 
Listener<T extends Event>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Class to undump compiled lua bytecode into a Prototype instances.
 
 
Локаль
 
 
Data class to hold debug information relating to local variables for a Prototype
 
 
 
 
 
 
 
Используется с началом игры Дает бонус +50% к кол-ву лута
 
 
 
 
 
 
 
 
Constants for lua limits and opcodes.
Extension of LuaValue which can hold a Java boolean as its value.
 
Compiler for Lua.
 
 
1.
RuntimeException that is thrown and caught in response to a lua error.
Base class for functions implemented in Java.
 
 
 
Class to encapsulate behavior of the singleton instance nil
 
 
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.
Subclass of LuaValue that implements a lua coroutine thread using Java Threads.
 
 
 
 
 
Varargs implemenation with no values.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Use instanceof Tile.Pos / Gate.Pos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Уведомление плавно выезжает сверху и становится непрозрачным
 
 
 
 
 
 
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.
 
 
 
 
Subclass of LibFunction which implements the lua standard package and module library functions.
Called last Converts package name to class name and tries to create new instance of this class, casting it to LuaValue (will fail if not instance of LuaValue)
 
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.
 
Прозрачная кнопка с изображением.
 
Implementation of Batch which does not draw anything.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
Отвечает за основной прогресс игры (достижения, деньги, ресурсы)
 
 
 
 
 
Contains progress data necessary for a proper replay validation.
 
 
 
Progression related data
 
 
 
 
 
 
Освобождает TrailMultiLine обратно в пул, если он не обновляется длительное время (уже не виден, isFinished() возвращает true)
 
Prototype representing compiled lua code.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Действует определенное время Дает бонус +50% к редкости лута
 
 
 
 
 
 
 
 
 
Also acts as a fallback if no bonus is available - its provider always produces a bonus.
 
 
 
 
Label и QuadActor всегда занимают всю кнопку и по центру
 
 
 
 
 
 
 
 
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
 
 
(A) Triggered by BuffProcessor after the actual buff removal
 
 
 
 
Manages the order of rendering.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Interface for opening application resource files such as scripts sources.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Statistics and other not so important stuff
 
 
 
 
 
 
 
 
 
 
 
Background is set manually (see GraphicsSystem)
 
 
 
Can't be canceled / stopped
 
 
 
 
 
 
Для объектов, которые будут браться прямо из игры (не десериализироваться)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
От самых бесполезных до полезных (учитывается в сортировке тайлов)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
May also act like a Batch but will store vertex data into cache.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 Размеры не имеют значения
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Abstract base class for Java function implementations that take two arguments and return one value.
 
 
Слои, от нижнему к высшему.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Upvalue used with Closure formulation
 
 
 
 
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Шаблон волны Случайным образом генерирует группы врагов в соответствии с номером и типом волны Если 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
 
 
 
 
 
 
 
Abstract base class for Java function implementations that take no arguments and return one value.