{{tag>type:clone}} ====== Tyger ====== Tyger is a clone of ZZT and Super ZZT developed by Dr. Dos in the late 00s and early 10s using the Python programming language and Pygame library. ===== Extensions ===== ==== World format ==== Tyger repurposes the BoardTimeHsec field in the TWorldInfo structure as two bytes: ^ Offset ^ Type ^ Description ^ | 0x00 | byte | Tyger world selection game name color? (Unused) | | 0x01 | byte | Tyger world selection game name length? (Unused) | ==== Scripting ==== In general, Tyger is not constrained to the limits of 16-bit ZZT counters. Tyger adds the following OOP extensions: * Additional colors have defined names for use in OOP commands: * dblue - dark blue (color 1), * dgreen - dark green (color 2), * dcyan - dark cyan (color 3), * dred - dark red (color 4), * dpurple - dark purple (color 5) * dyellow - dark yellow/brown (color 6), * gray, grey, dwhite - light gray (color 7), * dgray, dgrey, dblack - dark gray (color 8), * black - black (color 0), * any - any (command-specific), * def - default (command-specific). * Additional elements have defined names for use in OOP commands: * edge - board edge, * messenger - message timer, * monitor - title screen monitor, * horizray - horizontal blink wall ray, * vertray - vertical blink wall ray, * element46 - element 46, * bluetext - blue text, * greentext - green text, * cyantext - cyan text, * redtext - red text, * purpletext - purple text, * yellowtext - yellow text, * whitetext - background-less text. * ''#become'', ''#change'' and ''#if any'' supports providing the background color as a second argument, as in ''#become fg bg element'' or ''#change fg bg element1 fg bg element2''. * ''#become'' and ''#change'' supports using ''any'' for a given color to re-use the tile's existing color as foreground, background, or both. * ''#become'' and ''#change'' supports using ''default'' for a given color to use the ZZT-defined default color as foreground, background, or both. * ''#char'' supports character 0. In addition, for out-of-range character values, it will resort to using character 32 instead of ignoring it (vanilla ZZT behaviour). * ''#cycle'' supports setting cycle 0. * ''#die'' creates a black-on-black instead of white-on-black empty. * ''#give'' and ''#take'' support giving and taking the following additional kinds: * ''seconds'' - the opposite of ''time'', * ''light'' - additional torch cycles, * ''invuln'' - additional energizer cycles (this also sends every object to the '':ENERGIZE'' label), * ''energizer'' - one energizer item's worth of cycles - use without an argument, as in ''#give energizer'', * ''key'' - a key - provide a key name as argument, as follows: * blue, darkblue - blue key, * green, darkgreen - green key, * cyan, darkcyan - cyan key, * red, darkred - red key, * purple, darkpurple - purple key, * yellow, darkyellow - yellow key, * white, gray - white key, * black, darkgray - black key. * In ''#if'', ''aligned'' can be used as a synonym for ''alligned''. ==== Cheats ==== Tyger adds a significant amount of additional cheats. ^ Cheat code ^ Vanilla? ^ Effect ^ | ammo | Yes | Adds 5 ammo. | | torches | Yes | Adds 3 torches. | | gems | Yes | Adds 5 gems. | | score | No | Adds 100 score. | | health | Yes | Adds 50 health. | | dark/-dark | Yes | Sets or clears board darkness. | | light | No | Synonymous with -dark, but does not edit the ''DARK'' OOP flag. | | keys | Yes | Grants the player all keys. | | time | Yes | Adds 30 seconds of time. | | zap | Yes | Removes tiles from player-neighboring squares. | | idspispopd, noclip | No | Toggles no-clip movement. | | iddqd, energized | No | Sets the player to be energized forever. | | idfa | No | Sets the player to 32767 ammo, 32767 torches, 32767 gems and 32767 health. | | idkfa | No | Sets the player to 32767 ammo, 32767 torches, 32767 gems, 32767 health, and all keys. | | %%^^vv<><>bastart%%, %%^^vv<><>baselectstart%% | No | Sets the player's health to 3000. | | count leaves | No | Sets the player to have 6 health, 9 ammo, 1 torch, 0 gems and 5 score. | | kill | No | Kills the player. | | explode | No | Blows up the player. | | +/- | Yes | Sets/clears flags. | | #, /, ? | No | Runs OOP code on the player's location. | ===== Links ===== * [[https://github.com/DrDos0016/tyger|Source code]]