~~NOTOC~~
===== Brick Hill Legacy =====
----
{{infobox>
name = Brick Hill Legacy
image = bhlegacy.png
Development lifespan = October 2017 - 2023
Initial release = October 2017
Game Engine = Gamemaker 8.1
Developer = Mooshimity Ltd.
}}
**This is an article of one [[:brickhill|Brick Hill]] Development era. If you want to take a look on other development era, please refer to [[:developmenteras|Development Eras]] article.**
FIXME **- Now the article is better. Needs more information on Released features.**
**Brick Hill Legacy** is a mainline client originally released in October 2017 by brick-luke as a result of the whole codebase rewrite. Alongside with the client release, the mainline release also had its new [[:workshop|Workshop]] (updates has ended in 2018) with the [[hosting:legacyhost|Host]] executables (was later replaced with [[hosting:node-hill|Node Hill]] in 2020), all written in GameMaker 8.1 (late legacy clients were updated via GameMaker 8.2 Project((Latest Brick Hill Legacy source code, was leaked unofficially as ''new_legacy''.))((GameMaker 8.2 is a GameMaker 8.1 modification project. Though this may be referred as a game engine, it's an [[https://gm82.cherry-treehouse.com/|''unofficial, unendorsed, open-source improvement patch for Game Maker 8.1'']].)) ).
==== Released Features ====
* Optimized Set loading (2021 (middle?) and later)
* Brick Physics (Late 2017 & 2021 and later)
* Health bar (2019 and later)
* Projectiles (2019? and later)
==== Unused or removed features ====
=== Figures ===
* (Late 2017, removed around 2018-2019)
Figures are simplified Roblox packages, originally meant to change your avatar fundamentally. The first and the last figure "Patient Zero" was released in the 2017 Brick Hill Halloween event. It is unknown about its implementation in the Brick Hill Legacy client.
{{patientzero2019.webp?128}}
=== Scripts ===
* (GML((GameMaker Language.)) compatibility has been removed with the release of [[hosting:node-hill|Node Hill]])
Scripting as a feature became a part of Brick Hill ever since [[roleblock|Role Block]]. Scripting support for GML has been abandoned (and got changed with JavaScript) due to technical difficulties supporting it on [[hosting:node-hill|Node Hill]].
=== Brick Stickers ===
* (?, found in [[:workshop|Legacy Workshop]] source code in ''load_file'' script)
Like in Roblox, Brick Stickers((''NSTICKER'', ''ESTICKER'', ''SSTICKER'' and ''WSTICKER''. Defined in ''new_brick'' script as ''brick.north'', ''brick.east'', ''brick.south'' and ''brick.west'', respectively.)) were supposed to work as Decals. Despite the ''obj_brick'' having such options with the possibility to assign the images via Brick Parameters the game's code will never get to draw the stickers, due to such code being cut off in ''draw_brick'' script of [[:workshop|Legacy Workshop]]. Possibly removed due to technical difficulties.
=== Set Images ===
{{wps.png?256}}
* (Appeared on October 2017 build of Legacy Workshop)
Before this feature removal, you could be able to upload your set screenshot via Legacy Workshop through "publish" button. The image below shows how it worked (in a superficially way):
{{wlip.png?512}}
==== Set structure changes ====
=== Before Brick Hill Legacy ===
Before the October 2017 Release, Brick Hill has used the pre-legacy format of defining sets, for example:
[environment]
ambient=ffffff
baseplate=100
ground=19d900
[bricks]
" brick1=" 0 0 0 100 100 0 2392627 1 1
" brick2=" 6 -2 0 1 1 4 0 1 1
" brick3=" 1 -2 4 12 3 0 7757887 1 1
Explaining on the first brick, ''brick1'':
''" brick1="'' is the brick name, the equal symbol is **necessary**.\\
''0 0 0'' are for X,Y,Z position.\\
''100 100 0'' are for X,Y,Z scale.\\
''2392627'' is GameMaker raw color. If you would like to convert a custom color over it, use the [[https://chrisanselmo.com/gmcolor/|GM Color Picker by Chris Anselmo]].\\
''1 1'' (at the end) are for transparency and shape.\\ \\
You may also add the Brick Model as an additional parameter which can be read by ''load_bricks'' script and can be even drawn in the pre-Legacy Workshop, though it requires URL patching because of Brick Hill Beta site (as of ''first11'' ) API connection.
=== After the rewrite ===
As it has been said earlier, clients, hosts and workshops (Legacy workshop still accepts the pre-legacy format in a form of convertation) made after October 2017 are accepting a new Set structure, for example (double slash comments must be removed):
B R I C K W O R K S H O P V0.2.0.0 // Workshop version
// Environment //
0 0 0 // Ambient color
0.14 0.51 0.20 1 // first three numbers are for Ground Color, the "1" at the end is for Ground transparency
0.49 0.70 0.90 // Sky color
100 // Baseplate size
400 // Sun intensity
// Bricks //
-12 3 -6 4 4 4 0.87 0 0.05 1 //X,Y,Z position; X,Y,Z scale; R,G,B color; Brick transparency
+NAME brick0 // Brick Attributes
+SCRIPT obj_item.Model = '566eb526'; // GML scripts were abandoned in favor of Node Hill release
+SCRIPT
+SCRIPT s = define("onClick");
+SCRIPT s.script = '
+SCRIPT var user,sword_length,sword_damage;
+SCRIPT user = arg[0];
+SCRIPT if user.Arm == user.tool[0] {
+SCRIPT sword_length = 4;
+SCRIPT sword_damage = 10;
+SCRIPT with obj_client {
+SCRIPT if(id != user) {
+SCRIPT if(alive) {
+SCRIPT if power(xPos-user.xPos,2)+power(yPos-user.yPos,2)+power((zPos+4*zScale)-(user.zPos+2.5*zScale),2) <= power(sword_length,2) {
+SCRIPT playerAddDamage(id,sword_damage);
+SCRIPT if playerGetHealth(id) <= 0 {
+SCRIPT playerKill(id);
+SCRIPT playerSetHealth(id,100);
+SCRIPT messageAll(user.name+" killed "+name);
+SCRIPT }
+SCRIPT }
+SCRIPT }
+SCRIPT }
+SCRIPT }
+SCRIPT }
+SCRIPT ';
+ROT 25 // Z rotation (SandPile accepts 3-axis rotation and Legacy Z rotation)
+SHAPE slope //Brick Shapes: slope, plate, wedge, spawnpoint, arch, corner, corner_inv, dome, bars, flag, pole, round, cylinder, round_slope, vent
+NSTICKER 1 // -
+ESTICKER 2 // |_ refer to Removed Features
+SSTICKER 3 // |
+WSTICKER 4 // -
+MODEL 412332 // Requires connection to Brick Hill API to work
+LIGHT 100 100 100 25 // Light: 100 100 100 - R,G,B Colors; 25 - Range
+COLOR 100 100 100 // Self-explanatory: R,G,B colors.
+NOCOLLISION // Disables brick collision
>TEAM brickrot // Creates a new team "brickrot" with red color.
+COLOR 0.37 0.51 0.40 // Gives the dark green color to the team
>SLOT Sword // Creates a new item slot
=== Notes ===