3ICE's Maze Designer

Changelog:

0.0.0.7: * Defined the Gameplay Constants * Designed and implemented a 'Game Interface' (See the colors below) * Wrote the terrain-changing functions * Player leaves trigger * Wrote GetCommand() for handling -commands 0.0.0.6: * Every brush will have the following buttons: . ._______________________________. . | R1_ | R2_ | Flag | Help! | . .-------------------------------. . | R3_ | R4_ | Size+ | S Max | . .-------------------------------. . | Snow | Hero | Size- | S Min | . .~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~. * Size+ and Size- increase/decrease the brush size (Min 1 max 5) (Dummy Unit) * S Max and S Min set the Brush Size to it's max/min value (Dummy unit) * Help! is just a tooltip for helping out new players (Dummy Ability) - ToDo: Click it to display a random hint! * R1_, R2_, R3_ and R4_ QS Relevant brushes (that are in the same row) - Example: You have Ice2 selected, your Relevant tiles are: Snow Ice1 Ice2 Ice3 - We don't have to use Dummy units here * Snow QS The Snow tile (Deleting is the most useful function, but it is underestimated by players) - However this forces us to create another dummy unit, because - original Snow is already used as a Relevant (Which puts it in the top left corner) - So we have to make a copy (Dummy) unit to be able to put it in the bottom left corner too * Hero QS our Demon Hunter (Also teleports the hero to the Flag!) - And check if the flag != null or else we can get weird results * The functions for these buttons will be written later * Improved the skins of Terrain Brushes (+200 kb map size...) 0.0.0.5: * Improved the sliding system: - Now it is inside a loop and doesn't call ForGroup() - Now it checks and skips not playing heroes (Leavers) - Now we call Death() instead of KillUnit() so we can handle all types of hero death the same way + (Death() is called by TriggerExecute(udg_K[i])) - Instead of the old value, '0.017453278', we now only use '0.01745' (So many digits are unimportant) - Fixed an infinite loop, it was building up lag over time now it doesn't * Selected the terrains we will work with (Limit is 16): . | JASS | Tileset | Name | Path: | . | ---- | ---------------- | ---------------- | ---------------------------------------------- | . | Nsnw | Northrend | Snow | TerrainArt\Northrend\North_Snow.blp | . | Glvc | Underground | Lava Cracks | TerrainArt\Dungeon2\GLavaCracks.blp | . | Glav | Underground | Lava | TerrainArt\Dungeon2\GLava.blp | . | Nice | Northrend | Ice | TerrainArt\Northrend\North_ice.blp | . | Bdsd | Barrens | Dark Desert | TerrainArt\Barrens\Barrens_DesertDark.blp | . | Vcbp | Village | Cobble Path | TerrainArt\Village\Village_CobblePath.blp | . | Dlav | Dungeon | Cave Lava | TerrainArt\Dungeon\Cave_Lava.blp | . | Dlvc | Dungeon | Cave Lava Cracks | TerrainArt\Dungeon\Cave_LavaCracks.blp | . | Lgrd | Lordaeron Summer | Dark Grass | TerrainArt\LordaeronSummer\Lords_GrassDark.blp | . | Ygsb | Cityscape | Grass | TerrainArt\Cityscape\City_Grass.blp | . | Xhdg | Dalaran | Grass Trim | TerrainArt\Dalaran\Dalaran_GrassTrim.blp | . | Vcrp | Village | Crops | TerrainArt\Village\Village_Crops.blp | . | Ybtl | Cityscape | Brick | TerrainArt\Cityscape\City_BrickTiles.blp | . | Ywmb | Cityscape | White Marble | TerrainArt\Cityscape\City_WhiteMarble.blp | . | Xrtl | Dalaran | Round Tiles | TerrainArt\Dalaran\Dalaran_RoundTiles.blp | . | Ndrt | Northrend | Dirt (Cliff) | TerrainArt\Northrend\North_dirt.blp | . | | | | | . | ---- | ---------------- | ---------------- | ---------------------------------------------- | * Brush: - Created 16 models for the brushes. They are cubes with animated skins, showing their terrain-type. - Selecting one will enlarge its size (function Select and function Deselect) - Created 16 custom units for the 16 brush types (Unit type = Structure!) - And finally, placed 144 units (9 players * 16 brushes = 144 units) - Coding the actual terrain changing will come later 0.0.0.4: * Changed Initialization to check whether the player was in game or not * Fixed an infinite loop to have a correct exitwhen statement * Created 9 I - triggers (Interaction range is 100) (Function not done) * Created 9 K - triggers (Kill range is 45) (Function not done) * Created 5+2 abilities: (The ones marked with an asterisk are not scripted yet) . | Name | Lvl | | Targ | Description | . | --------------- | --- | - | ---- | -------------------------------------------------------------------------------- | . | Wind Walk | 9 | W | Self | Gives 9-19--80% speed increase | . | Unholy aura | 5 | U | Aura | Gives 11-22--55% speed increase | . | Endurance aura | 5 | E | Aura | Gives 11-22--55% speed increase | . | Adrenaline rush | 1 | A | Self | Gives 200% speed increase for 5 seconds (Ultimate at level 15) | . | Fatality | 1 | F | Self | Invulnerability, fly, 500% speed, 999 dmg/sec Lasts until death (Ulti at 30) (*) | . | Blink | N/A | B | Self | Allows the hero to freely move around in his own map, for debugging purposes (*) | . | Teleport | N/A | T | Self | Brings up a dialog where you can select teleport destination (player's maze) (*) | . | | | | | | . | --------------- | --- | - | ---- | -------------------------------------------------------------------------------- | * Planned UI: - We only have space for 7 ability buttons - We can only have 5 hero abilities . ._______________________. . | Mov | Stp | Hol | (7) | . .-----------------------. . | Ptr | (5) | (6) | Hro | . .-----------------------. . | (1) | (2) | (3) | (4) | . .~~~~~~~~~~~~~~~~~~~~~~~. -1: Wind Walk -2: Endurance Aura -3: Unholy Aura -4: Blink (Only when at home) (Not a hero ability) -5: Adrenaline Rush (Ultimate @ 15) -6: Fatality (Ultimate @ 30) -7: Teleport (Not a hero ability) * Made the sliding trigger initially disabled (start after 5 seconds) * Fixed a sliding related bug: -Players were sliding perfectly toward East and West, but -Players were sliding very slow toward North and South. 0.0.0.3: * Added visibility * Implemented my sliding system * Put color codes into player names 0.0.0.2: * Wrote a few lines of JASS for initializing the map 0.0.0.1: * Set up everything in the Scenario menu * Created 9 regions under the player areas, purpose: - Trigger the 'Dead Zone' - Limit the area where players can build - Center of Region: + Respawn point + Teleport destination + Safespot (Players standing there cannot die from terrain) 0.0.0.0: * New map (Dimensions: 192x192) * Removed map boundary from everywhere * Divided map into 9 equal parts: - The map size is 48x48 LG - Every player's area will be 15x15 LG - Separated with 3 LG width of 'Dead Zone' * Placed start locations in a lowered 6x6 MG large area Legend: . | Abbr | Meaning | Small Note | Large Note | . | ----- | ------------------- | ---------- | ------------------------------------------- | . | SG | Small grid | (gray) | 1/16 of a whole unit | . | MG | Medium grid | (white) | 1/4 of a whole unit | . | LG | Large grid | (yellow) | 1 whole unit | . | udg | User-Defined Global | prefix | All variables created in the WE have this | . | WE | World Editor | | Used to make maps | . | rez | Revive, Resurrect | (rezzing) | When a hero comes back to life (from death) | . | DIS | Disabled | | | . | PAS | Passive | | | . | BTN | Button | | | . | Ice* | The Sliding Brushes | * = 1/2/3 | 1 = (Slow) 2 = (Medium) 3 = (Fast) | . | QS | Quick-Select | | ~or, ~s, ~ing, ~ed | . | Flag | Set Rally Point | | | . | Dummy | Dummy Unit | | Used for triggering special functions | . | [] | Array / Array Index | | | . | | | | | . | ----- | ------------------- | ---------- | ------------------------------------------- | ColorTable: . | |CFFrrggbb | Assigned to: | Note | . | ---------- | ------------------------- | ------------------------------- | . | |CFF000000 | Tooltip Background | Better black (b.tga) | . | |CFF00FF00 | Tooltip Text | Green | . | |CFF009900 | Tooltip Hotkey Highlight | Darker Green | . | |CFF999999 | Tooltip Note | Gray | . | |CFFFF0000 | Tooltop Warning | Red | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | |CFF | | | . | ---------- | ------------------------- | ------------------------------- | ButtonPositions: (x,y)) . ._______________________. . | 0,0 | 1,0 | 2,0 | 3,0 | . .-----------------------. . | 0,1 | 1,1 | 2,1 | 3,1 | . .-----------------------. . | 0,2 | 1,2 | 2,2 | 3,2 | . .~~~~~~~~~~~~~~~~~~~~~~~. Variables: . | Name | Type | [] | Info | . | -------- | ---------------- | -- | ------------------------------------------------- | . | udg_C | Point | 9 | Center of the player areas | . | udg_H | Unit | 9 | Heroes are stored in an array | . | udg_P | Player | 9 | Players are stored in a variable too | . | udg_i | Integer | No | Used as index (=counter) for the Sliding system | . | udg_K | Trigger | 9 | This is a trigger array for handling death | . | udg_I | Trigger | 9 | This is a trigger array for handling interaction | . | udg_B | Integer | 16 | Player specific SIZE setting (0,1,2,3,4,5) | . | udg_S | Integer | 16 | Player specific SHAPE setting (0Circle) (1Square) | . | udg_p | Point | No | Sliding system is faster if we don't use locals | . | udg_q | Point | No | Sliding system is faster if we don't use locals | . | udg_N | String | 9 | Store the names of players in an array | . | | | | | . | -------- | ---------------- | -- | ------------------------------------------------- | Commands: . | Command | Arguments | Description | . | ------- | --------- | -------------------------------------------------------------------------------- | . | -brush | i{1-5} | Sets brush size(udg_B) to x | . | -circle | | Sets brush shape(udg_S) to 0 (Circle) | . | -square | | Sets brush shape(udg_S) to 1 (Square) | . | -name | s{1-16} | Sets the player's name to s | . | - | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | | | | . | ------- | --------- | -------------------------------------------------------------------------------- |