From 7b5655e11b16e24701e8157424e2757cdc9b3e96 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Tue, 16 Jun 2026 23:13:33 +0300
Subject: [PATCH 01/50] "Add Imperial Guard auxilia and land-battle combatants
---
objects/obj_ini/Create_0.gml | 2 +
objects/obj_ncombat/Alarm_0.gml | 43 ++++++
scripts/scr_cheatcode/scr_cheatcode.gml | 19 +++
.../scr_ini_ship_cleanup.gml | 2 +
.../scr_player_ship_functions.gml | 129 ++++++++++++++++++
5 files changed, 195 insertions(+)
diff --git a/objects/obj_ini/Create_0.gml b/objects/obj_ini/Create_0.gml
index 1babe4f885..cda84a928b 100644
--- a/objects/obj_ini/Create_0.gml
+++ b/objects/obj_ini/Create_0.gml
@@ -94,6 +94,8 @@ ship_capacity = [];
ship_carrying = [];
ship_contents = [];
ship_turrets = [];
+ship_guardsmen = []; // Imperial Guard auxilia currently embarked on this ship
+ship_guardsmen_max = []; // Max Guard auxilia this ship hull can carry
ship_lost = [];
// Vehicle Init
diff --git a/objects/obj_ncombat/Alarm_0.gml b/objects/obj_ncombat/Alarm_0.gml
index 7657a4bc4f..09e541de93 100644
--- a/objects/obj_ncombat/Alarm_0.gml
+++ b/objects/obj_ncombat/Alarm_0.gml
@@ -3154,6 +3154,49 @@ try {
u.sprite_index = spr_weapon_blank;
}
+ // ===== Friendly Imperial Guard / PDF on the player's side =====
+ // Mirrors the enemy "Imperial Guard Force" spawn, but as obj_pnunit (player side).
+ // Fires only on an ordinary DEFENSIVE planetary battle where you are not at War
+ // with the Imperium and the attacker is not the Guard themselves. The model
+ // counts are read from the planet's p_guardsmen / p_pdf pools, which the deploy
+ // patch fills. "Imperial Guardsman" and "Leman Russ Battle Tank" are existing
+ // battlefield profiles, so no new unit content is needed.
+ if ((defending == true) && (enemy != 2) && (battle_special == "") && (battle_object != 0)
+ && (obj_controller.faction_status[eFACTION.IMPERIUM] != "War")) {
+
+ var _gd = battle_object.p_guardsmen[battle_id];
+ var _pdf = battle_object.p_pdf[battle_id];
+
+ // Friendly Guardsmen, plus armour if the garrison is large.
+ if (_gd > 0) {
+ var _guar = _gd / 10;
+ u = instance_create(-60, 240, obj_pnunit);
+ u.dudes[1] = "Imperial Guardsman";
+ u.dudes_num[1] = max(1, round(_guar / 5));
+ if (_gd > 20000) {
+ u.dudes[2] = "Leman Russ Battle Tank";
+ u.dudes_num[2] = max(1, round(_gd / 20000));
+ }
+ }
+
+ // Friendly PDF: a lighter levy. Reuses the Guardsman profile in fewer numbers.
+ if (_pdf > 0) {
+ u = instance_create(-70, 240, obj_pnunit);
+ u.dudes[1] = "Imperial Guardsman";
+ u.dudes_num[1] = max(1, round((_pdf / 10) / 8));
+ }
+
+ // Anti-farm: committing the garrison to a pitched battle costs lives, so a
+ // share is spent each fight. This drains the pool you would otherwise reuse
+ // for free. Tune the 0.2, or move to outcome-based attrition in Alarm_5.
+ if (_gd > 0) battle_object.p_guardsmen[battle_id] = max(0, _gd - round(_gd * 0.2));
+ if (_pdf > 0) battle_object.p_pdf[battle_id] = max(0, _pdf - round(_pdf * 0.2));
+
+ // The real units now stand in for that force, so clear the abstract allies
+ // bonus to avoid counting the same Guard twice.
+ allies = 0;
+ }
+
instance_activate_object(obj_enunit);
} catch (_exception) {
ERROR_HANDLER.handle_exception(_exception);
diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml
index 1fa8da2127..439289bf45 100644
--- a/scripts/scr_cheatcode/scr_cheatcode.gml
+++ b/scripts/scr_cheatcode/scr_cheatcode.gml
@@ -41,6 +41,25 @@ function scr_cheatcode(argument0) {
if (cheat_code != "") {
switch (cheat_code) {
+ case "embarkguard":
+ with (obj_controller) {
+ var _n = embark_guardsmen(obj_ini.home_name, obj_ini.home_planet);
+ show_message("Embarked " + string(_n) + " Guard from your homeworld.#Total embarked: " + string(player_guardsmen_embarked()));
+ }
+ break;
+ case "deployguard":
+ with (obj_controller) {
+ var _n = deploy_guardsmen(obj_ini.home_name, obj_ini.home_planet);
+ show_message("Deployed " + string(_n) + " Guard onto your homeworld.");
+ }
+ break;
+ case "titheguard":
+ with (obj_controller) {
+ var _amt = real(cheat_arguments[0]);
+ var _n = tithe_guardsmen(obj_ini.home_name, obj_ini.home_planet, _amt);
+ show_message("Raised " + string(_n) + " Guard from your homeworld's population.");
+ }
+ break;
case "finishforge":
with (obj_controller) {
specialist_point_handler.forge_points = 1000000;
diff --git a/scripts/scr_ini_ship_cleanup/scr_ini_ship_cleanup.gml b/scripts/scr_ini_ship_cleanup/scr_ini_ship_cleanup.gml
index b11957a0a6..e60b9dca76 100644
--- a/scripts/scr_ini_ship_cleanup/scr_ini_ship_cleanup.gml
+++ b/scripts/scr_ini_ship_cleanup/scr_ini_ship_cleanup.gml
@@ -99,6 +99,8 @@ function scr_kill_ship(index) {
array_delete(ship_carrying, index, 1);
array_delete(ship_contents, index, 1);
array_delete(ship_turrets, index, 1);
+ array_delete(ship_guardsmen, index, 1);
+ array_delete(ship_guardsmen_max, index, 1);
if (!in_warp) {
if (_nearest_star != "none") {
diff --git a/scripts/scr_player_ship_functions/scr_player_ship_functions.gml b/scripts/scr_player_ship_functions/scr_player_ship_functions.gml
index 7e34b63ed8..8964092127 100644
--- a/scripts/scr_player_ship_functions/scr_player_ship_functions.gml
+++ b/scripts/scr_player_ship_functions/scr_player_ship_functions.gml
@@ -143,6 +143,8 @@ function new_player_ship_defaults() {
array_push(ship_carrying, 0);
array_push(ship_contents, "");
array_push(ship_turrets, 0);
+ array_push(ship_guardsmen, 0);
+ array_push(ship_guardsmen_max, 0);
}
return array_length(obj_ini.ship) - 1;
}
@@ -286,6 +288,8 @@ function new_player_ship(type, start_loc = "home", new_name = "") {
obj_ini.ship_wep_facing[index][5] = "most";
obj_ini.ship_wep_condition[index][5] = "";
obj_ini.ship_capacity[index] = 600;
+ obj_ini.ship_guardsmen_max[index] = 500000; // Battle Barge: Guard auxilia capacity
+ obj_ini.ship_guardsmen[index] = 0;
obj_ini.ship_carrying[index] = 0;
obj_ini.ship_contents[index] = "";
obj_ini.ship_turrets[index] = 3;
@@ -315,6 +319,8 @@ function new_player_ship(type, start_loc = "home", new_name = "") {
obj_ini.ship_wep_facing[index][4] = "most";
obj_ini.ship_wep_condition[index][4] = "";
obj_ini.ship_capacity[index] = 250;
+ obj_ini.ship_guardsmen_max[index] = 150000; // Strike Cruiser: Guard auxilia capacity
+ obj_ini.ship_guardsmen[index] = 0;
obj_ini.ship_carrying[index] = 0;
obj_ini.ship_contents[index] = "";
obj_ini.ship_turrets[index] = 1;
@@ -334,6 +340,8 @@ function new_player_ship(type, start_loc = "home", new_name = "") {
obj_ini.ship_wep_facing[index][1] = "most";
obj_ini.ship_wep_condition[index][1] = "";
obj_ini.ship_capacity[index] = 30;
+ obj_ini.ship_guardsmen_max[index] = 0; // Gladius escort: no Guard capacity
+ obj_ini.ship_guardsmen[index] = 0;
obj_ini.ship_carrying[index] = 0;
obj_ini.ship_contents[index] = "";
obj_ini.ship_turrets[index] = 1;
@@ -356,6 +364,8 @@ function new_player_ship(type, start_loc = "home", new_name = "") {
obj_ini.ship_wep_facing[index][2] = "most";
obj_ini.ship_wep_condition[index][2] = "";
obj_ini.ship_capacity[index] = 25;
+ obj_ini.ship_guardsmen_max[index] = 0; // Hunter escort: no Guard capacity
+ obj_ini.ship_guardsmen[index] = 0;
obj_ini.ship_carrying[index] = 0;
obj_ini.ship_contents[index] = "";
obj_ini.ship_turrets[index] = 1;
@@ -391,6 +401,8 @@ function new_player_ship(type, start_loc = "home", new_name = "") {
obj_ini.ship_wep_facing[index][5] = "most";
obj_ini.ship_wep_condition[index][5] = "";
obj_ini.ship_capacity[index] = 800;
+ obj_ini.ship_guardsmen_max[index] = 1000000; // Gloriana: Guard auxilia capacity
+ obj_ini.ship_guardsmen[index] = 0;
obj_ini.ship_carrying[index] = 0;
obj_ini.ship_contents[index] = "";
obj_ini.ship_turrets[index] = 8;
@@ -455,3 +467,120 @@ function ship_bombard_score(ship_id) {
return _bomb_score;
}
+
+// =====================================================================
+// Imperial Guard Auxilia - player embark / deploy / raise
+// Added by mod. Uses the same p_guardsmen planetary force the Imperial
+// Navy uses, so deployed Guard plug straight into the ground-war AI.
+// =====================================================================
+
+/// @description Total Imperial Guard auxilia currently embarked across all player ships.
+/// @returns {real}
+function player_guardsmen_embarked() {
+ var _total = 0;
+ with (obj_ini) {
+ for (var i = 0; i < array_length(ship_guardsmen); i++) {
+ _total += ship_guardsmen[i];
+ }
+ }
+ return _total;
+}
+
+/// @description Embark Guard from a world you own onto your ships in that system.
+/// Pulls from the planet garrison (p_guardsmen) and fills each ship up
+/// to its ship_guardsmen_max. Returns the number actually loaded.
+/// @param {string} system_name Star system name (e.g. obj_ini.home_name)
+/// @param {real} planet Planet index in that system (e.g. obj_ini.home_planet)
+/// @returns {real}
+function embark_guardsmen(system_name, planet) {
+ var _star = find_star_by_name(system_name);
+ if (_star == "none") {
+ return 0;
+ }
+ if (_star.p_owner[planet] != eFACTION.PLAYER) {
+ return 0; // only from worlds you control
+ }
+
+ var _pdata = new PlanetData(planet, _star);
+ var _available = _pdata.guardsmen;
+ if (_available <= 0) {
+ return 0; // nothing garrisoned to pick up
+ }
+
+ var _loaded = 0;
+ with (obj_ini) {
+ for (var i = 0; i < array_length(ship); i++) {
+ if (ship[i] == "") continue; // empty roster slot
+ if (ship_location[i] != system_name) continue; // ship must be here
+ var _space = ship_guardsmen_max[i] - ship_guardsmen[i];
+ if (_space <= 0) continue; // no hull room (escorts = 0)
+ var _take = min(_space, _available - _loaded);
+ if (_take <= 0) break;
+ ship_guardsmen[i] += _take;
+ _loaded += _take;
+ if (_loaded >= _available) break;
+ }
+ }
+
+ _pdata.edit_guardsmen(-_loaded); // remove what we embarked from the planet
+ return _loaded;
+}
+
+/// @description Deploy all embarked Guard from your ships in a system onto a planet.
+/// Adds them to p_guardsmen so the ground-war AI fields them.
+/// @param {string} system_name Star system the fleet is in
+/// @param {real} planet Planet index to garrison
+/// @returns {real}
+function deploy_guardsmen(system_name, planet) {
+ var _star = find_star_by_name(system_name);
+ if (_star == "none") {
+ return 0;
+ }
+
+ var _unloaded = 0;
+ with (obj_ini) {
+ for (var i = 0; i < array_length(ship); i++) {
+ if (ship[i] == "") continue;
+ if (ship_location[i] != system_name) continue;
+ if (ship_guardsmen[i] <= 0) continue;
+ _unloaded += ship_guardsmen[i];
+ ship_guardsmen[i] = 0;
+ }
+ }
+ if (_unloaded <= 0) {
+ return 0;
+ }
+
+ var _pdata = new PlanetData(planet, _star);
+ _pdata.edit_guardsmen(_unloaded);
+ return _unloaded;
+}
+
+/// @description OPTIONAL: raise fresh Guard from a controlled world's population,
+/// adding them to that world's garrison so you can then embark them.
+/// Mirrors the Imperial Navy recruit idiom, so it is safe on both
+/// "small" and "large" population worlds.
+/// @param {string} system_name
+/// @param {real} planet
+/// @param {real} amount headcount of Guard to raise
+/// @returns {real}
+function tithe_guardsmen(system_name, planet, amount) {
+ var _star = find_star_by_name(system_name);
+ if (_star == "none") {
+ return 0;
+ }
+ if (_star.p_owner[planet] != eFACTION.PLAYER) {
+ return 0;
+ }
+
+ var _pdata = new PlanetData(planet, _star);
+ var _headcount = _pdata.population_as_small();
+ if (_headcount <= 0) {
+ return 0;
+ }
+
+ amount = min(amount, _headcount);
+ _pdata.edit_population(-_pdata.population_large_conversion(amount));
+ _pdata.edit_guardsmen(amount);
+ return amount;
+}
From 30f108f4ea84cde2b76fc7a4dc38efbf21b29f46 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Wed, 17 Jun 2026 19:48:54 +0300
Subject: [PATCH 02/50] Added imperial guardsmen
For now to recruit them you must be above your home system, press P and type "titheguard x" (x being the number of guardsmen you want (embark guard x). Then you can deploy the guard on the planet you choose via the menu option on the planet. Feel free to test them out. Guardsmen appear in the Fleet menu near the ship name to see if the embark worked.
---
ChapterMaster.yyp | 6 -
objects/obj_al_ship/Step_0.gml | 2 +-
objects/obj_controller/Alarm_1.gml | 2 +-
objects/obj_controller/Alarm_5.gml | 12 +-
objects/obj_controller/Create_0.gml | 10 +-
objects/obj_controller/Draw_64.gml | 2 +-
objects/obj_controller/Mouse_50.gml | 10 +-
objects/obj_controller/Step_0.gml | 27 +-
objects/obj_creation/Create_0.gml | 2 -
objects/obj_creation/Draw_0.gml | 36 +-
objects/obj_en_ship/Step_0.gml | 2 +-
objects/obj_enunit/Alarm_0.gml | 39 +-
objects/obj_fleet/Alarm_5.gml | 2 +-
objects/obj_fleet/Draw_64.gml | 2 +-
objects/obj_fleet/KeyPress_13.gml | 2 +-
objects/obj_fleet/Mouse_56.gml | 9 +-
objects/obj_ncombat/Alarm_0.gml | 99 ++-
objects/obj_ncombat/Create_0.gml | 2 +
objects/obj_pnunit/Alarm_3.gml | 6 +-
objects/obj_pnunit/Create_0.gml | 1 +
objects/obj_star_select/Draw_64.gml | 7 +
rooms/rm_testing_half/rm_testing_half.yy | 252 +-----
rooms/rm_testing_new/rm_testing_new.yy | 746 +-----------------
scripts/Armamentarium/Armamentarium.gml | 2 +
scripts/ErrorHandler/ErrorHandler.gml | 3 +
scripts/NameGenerator/NameGenerator.gml | 13 +-
scripts/scr_cheatcode/scr_cheatcode.gml | 14 +-
scripts/scr_clean/scr_clean.gml | 55 ++
.../scr_drop_select_function.gml | 18 +
scripts/scr_enemy_ai_d/scr_enemy_ai_d.gml | 4 +-
.../scr_fleet_advisor/scr_fleet_advisor.gml | 6 +-
scripts/scr_garrison/scr_garrison.gml | 81 +-
.../scr_player_combat_weapon_stacks.gml | 51 ++
.../scr_player_ship_functions.gml | 15 +
scripts/scr_ui_settings/scr_ui_settings.gml | 2 +-
scripts/scr_unit_traits/scr_unit_traits.gml | 4 +-
36 files changed, 348 insertions(+), 1198 deletions(-)
diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp
index 7452534f65..bdd1e3318e 100644
--- a/ChapterMaster.yyp
+++ b/ChapterMaster.yyp
@@ -22,7 +22,6 @@
{"$GMFolder":"","%Name":"Objects","folderPath":"folders/Objects.yy","name":"Objects","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Combat_Fleet","folderPath":"folders/Objects/Combat_Fleet.yy","name":"Combat_Fleet","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"New Combat","folderPath":"folders/Objects/New Combat.yy","name":"New Combat","resourceType":"GMFolder","resourceVersion":"2.0",},
- {"$GMFolder":"","%Name":"New Ground","folderPath":"folders/Objects/New Ground.yy","name":"New Ground","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"New UI","folderPath":"folders/Objects/New UI.yy","name":"New UI","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Temp","folderPath":"folders/Objects/Temp.yy","name":"Temp","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Paths","folderPath":"folders/Paths.yy","name":"Paths","resourceType":"GMFolder","resourceVersion":"2.0",},
@@ -657,7 +656,6 @@
{"id":{"name":"obj_en_pulse","path":"objects/obj_en_pulse/obj_en_pulse.yy",},},
{"id":{"name":"obj_en_round","path":"objects/obj_en_round/obj_en_round.yy",},},
{"id":{"name":"obj_en_ship","path":"objects/obj_en_ship/obj_en_ship.yy",},},
- {"id":{"name":"obj_enemy_leftest","path":"objects/obj_enemy_leftest/obj_enemy_leftest.yy",},},
{"id":{"name":"obj_enunit","path":"objects/obj_enunit/obj_enunit.yy",},},
{"id":{"name":"obj_event_log","path":"objects/obj_event_log/obj_event_log.yy",},},
{"id":{"name":"obj_event","path":"objects/obj_event/obj_event.yy",},},
@@ -677,12 +675,10 @@
{"id":{"name":"obj_main_menu_buttons","path":"objects/obj_main_menu_buttons/obj_main_menu_buttons.yy",},},
{"id":{"name":"obj_main_menu","path":"objects/obj_main_menu/obj_main_menu.yy",},},
{"id":{"name":"obj_managment_panel","path":"objects/obj_managment_panel/obj_managment_panel.yy",},},
- {"id":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},},
{"id":{"name":"obj_mass_equip","path":"objects/obj_mass_equip/obj_mass_equip.yy",},},
{"id":{"name":"obj_ncombat","path":"objects/obj_ncombat/obj_ncombat.yy",},},
{"id":{"name":"obj_new_button","path":"objects/obj_new_button/obj_new_button.yy",},},
{"id":{"name":"obj_nfort","path":"objects/obj_nfort/obj_nfort.yy",},},
- {"id":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},},
{"id":{"name":"obj_p_assra","path":"objects/obj_p_assra/obj_p_assra.yy",},},
{"id":{"name":"obj_p_capital","path":"objects/obj_p_capital/obj_p_capital.yy",},},
{"id":{"name":"obj_p_cruiser","path":"objects/obj_p_cruiser/obj_p_cruiser.yy",},},
@@ -692,8 +688,6 @@
{"id":{"name":"obj_p_ship","path":"objects/obj_p_ship/obj_p_ship.yy",},},
{"id":{"name":"obj_p_small","path":"objects/obj_p_small/obj_p_small.yy",},},
{"id":{"name":"obj_p_th","path":"objects/obj_p_th/obj_p_th.yy",},},
- {"id":{"name":"obj_p1_bullet_miss","path":"objects/obj_p1_bullet_miss/obj_p1_bullet_miss.yy",},},
- {"id":{"name":"obj_p1_bullet","path":"objects/obj_p1_bullet/obj_p1_bullet.yy",},},
{"id":{"name":"obj_persistent","path":"objects/obj_persistent/obj_persistent.yy",},},
{"id":{"name":"obj_planet_map","path":"objects/obj_planet_map/obj_planet_map.yy",},},
{"id":{"name":"obj_pnunit","path":"objects/obj_pnunit/obj_pnunit.yy",},},
diff --git a/objects/obj_al_ship/Step_0.gml b/objects/obj_al_ship/Step_0.gml
index 622e5d87f3..d175fa43de 100644
--- a/objects/obj_al_ship/Step_0.gml
+++ b/objects/obj_al_ship/Step_0.gml
@@ -75,7 +75,7 @@ if (owner != 6) {
}
}
if (owner == eFACTION.TYRANIDS) {
- effect_create_above(ef_firework, x, y, 1, c_purple);
+ effect_create_depth(depth - 1, ef_firework, x, y, 1, c_purple);
}
instance_destroy();
}
diff --git a/objects/obj_controller/Alarm_1.gml b/objects/obj_controller/Alarm_1.gml
index ff536028b9..0c5b7673d7 100644
--- a/objects/obj_controller/Alarm_1.gml
+++ b/objects/obj_controller/Alarm_1.gml
@@ -503,7 +503,7 @@ if (did != 0) {
// Eldar craftworld here
-var go = 0, xx = 0, yy = 0;
+var go = 0;
craftworld = 1;
diff --git a/objects/obj_controller/Alarm_5.gml b/objects/obj_controller/Alarm_5.gml
index 25717813e6..e68d7e6c36 100644
--- a/objects/obj_controller/Alarm_5.gml
+++ b/objects/obj_controller/Alarm_5.gml
@@ -8,13 +8,12 @@ try {
var marine_company = 0;
var warn = "", w5 = 0;
var g1 = 0, g2 = 0;
- var onceh = 0, stahp = 0;
+ var stahp = 0;
var disc = 0, droll = 0;
var rund = 0;
var spikky = 0;
var roll = 0;
var novice_type = "";
- var unit;
var times = max(1, round(turn / 150));
if ((known[eFACTION.CHAOS] == 2) && (faction_defeated[eFACTION.CHAOS] == 0)) {
@@ -88,10 +87,8 @@ try {
var recruits_finished = 0, recruit_first = "";
var total_recruits = 0;
- var i = 0;
- while (i < array_length(recruit_name)) {
+ for (var i = array_length(recruit_name) - 1; i >= 0; i--) {
if (recruit_name[i] == "") {
- i++;
continue;
}
if (recruit_distance[i] <= 0) {
@@ -113,7 +110,6 @@ try {
} else {
total_recruits++;
}
- i++;
}
with (obj_ini) {
scr_company_order(10);
@@ -299,11 +295,11 @@ try {
}
}
}
- var p = 0, penitorium = 0, unit;
+ var p = 0, penitorium = 0;
for (var c = 0; c < 11; c++) {
for (var e = 0; e < array_length(obj_ini.god[c]); e++) {
if (obj_ini.god[c][e] == 10) {
- unit = fetch_unit([c, e]);
+ var unit = fetch_unit([c, e]);
p += 1;
penit_co[p] = c;
penit_id[p] = e;
diff --git a/objects/obj_controller/Create_0.gml b/objects/obj_controller/Create_0.gml
index 9be954c467..245f81806a 100644
--- a/objects/obj_controller/Create_0.gml
+++ b/objects/obj_controller/Create_0.gml
@@ -359,8 +359,6 @@ y_slide = 0;
new_banner_x = 0;
hide_banner = 0;
// ui stuff
-var xx = camera_get_view_x(view_camera[0]);
-var yy = camera_get_view_y(view_camera[0]);
menu_lock = false;
menu_buttons = {
"chapter_manage": new MainMenuButton(spr_ui_but_1, spr_ui_hov_1,,, ord("M"), scr_toggle_manage),
@@ -1217,7 +1215,7 @@ if (global.load >= 0) {
///! ************************************************************ */
///! ************************************************************ */
-var xx, yy, me, dist, go, planet;
+var me, dist, go, planet;
global.custom = eCHAPTER_TYPE.RANDOM;
// ** Sets up base training level and trainees at game start **
@@ -1330,11 +1328,11 @@ if (is_test_map == true) {
planet = 20;
}
-var xx, yy, nearest_star, repeats;
+var nearest_star, repeats;
mask_index = spr_star;
while (instance_number(obj_star) < planet) {
- xx = irandom_range(200, room_width - 150); // dictates how far away from the edge stars spawn
- yy = irandom_range(130, room_height - 130);
+ var xx = irandom_range(200, room_width - 150); // dictates how far away from the edge stars spawn
+ var yy = irandom_range(130, room_height - 130);
nearest_star = instance_nearest(xx, yy, obj_star);
repeats = 0;
while (point_distance(xx, yy, nearest_star.x, nearest_star.y) < 130 && repeats < 100) {
diff --git a/objects/obj_controller/Draw_64.gml b/objects/obj_controller/Draw_64.gml
index acc7320b48..96f77dc779 100644
--- a/objects/obj_controller/Draw_64.gml
+++ b/objects/obj_controller/Draw_64.gml
@@ -248,7 +248,7 @@ function draw_line(x1, y1, y_slide, variable) {
l_why = min(variable - 96, 11);
}
- draw_line(view_xview[0] + variable + x1, view_yview[0] + 10 + 1 + l_why, view_xview[0] + variable + x1, view_yview[0] + 10 + 37 - l_why);
+ draw_line(view_xport[0] + variable + x1, view_yport[0] + 11 + l_why, view_xport[0] + variable + x1, view_yport[0] + 47 - l_why);
}
}
diff --git a/objects/obj_controller/Mouse_50.gml b/objects/obj_controller/Mouse_50.gml
index 3c2f274989..532aac4372 100644
--- a/objects/obj_controller/Mouse_50.gml
+++ b/objects/obj_controller/Mouse_50.gml
@@ -215,10 +215,9 @@ if ((zoomed == 0) && (cooldown <= 0) && (menu == eMENU.DIPLOMACY) && (diplomacy
// End Turn
scr_menu_clear_up(function() {
+ var xx = camera_get_view_x(view_camera[0]);
+ var yy = camera_get_view_y(view_camera[0]);
if ((zoomed == 0) && (menu == 40) && (cooldown <= 0)) {
- xx = xx + 0;
- yy = yy + 0;
-
if ((mouse_x >= xx + 73) && (mouse_y >= yy + 69) && (mouse_x < xx + 305) && (mouse_y < yy + 415)) {
menu = 41;
cooldown = 8000;
@@ -231,9 +230,6 @@ scr_menu_clear_up(function() {
// This is the back button at LOADING TO SHIPS
if ((zoomed == 0) && (menu == 30) && (managing > 0 || managing == -1) && (cooldown <= 0)) {
- xx = xx + 0;
- yy = yy + 0;
-
if ((mouse_x >= xx + 22) && (mouse_y >= yy + 84) && (mouse_x < xx + 98) && (mouse_y < yy + 126)) {
menu = eMENU.MANAGE;
cooldown = 8000;
@@ -243,8 +239,6 @@ scr_menu_clear_up(function() {
if ((menu == eMENU.MANAGE) && (managing > 0) || (managing < 0) && (!view_squad || !company_report)) {
var unit;
var eventing = false, bb = "";
- xx = camera_get_view_x(view_camera[0]);
- yy = camera_get_view_y(view_camera[0]);
var top = man_current, sel, temp1 = "", temp2 = "", temp3 = "", temp4 = "", temp5 = "", squad_sel = 0;
var stop = 0;
diff --git a/objects/obj_controller/Step_0.gml b/objects/obj_controller/Step_0.gml
index 82a792b30e..79ee3aacd4 100644
--- a/objects/obj_controller/Step_0.gml
+++ b/objects/obj_controller/Step_0.gml
@@ -372,26 +372,6 @@ try {
exit;
}
// Default view
- if (menu == 1 && (managing > 0 || managing < 0)) {
- if (!view_squad) {
- var c = 0, fx = "";
- var bb = "";
- var xx = camera_get_view_x(view_camera[0]);
- var yy = camera_get_view_y(view_camera[0]);
-
- if (managing <= 10) {
- c = managing;
- }
- if (managing > 20) {
- c = managing - 10;
- }
-
- var top, sel, temp1 = "", temp2 = "", temp3 = "", temp4 = "", temp5 = "", force_tool = 0;
- top = man_current;
- sel = top;
- yy += 77;
- }
- }
if (global.load >= 0) {
exit;
@@ -476,21 +456,20 @@ try {
cooldown = 8;
var b = selecting_ship;
- var unit, company, unit_id;
for (var q = 0; q < array_length(display_unit); q++) {
if ((man[q] == "man") && (ma_loc[q] == selecting_location) && (ma_wid[q] < 1) && (man_sel[q] != 0)) {
if (b == -1) {
b = ma_lid[q];
}
- unit = display_unit[q];
+ var unit = display_unit[q];
if (!is_struct(unit)) {
continue;
}
if (unit.name() == "") {
continue;
}
- unit_id = unit.marine_number;
- company = unit.company;
+ var unit_id = unit.marine_number;
+ var company = unit.company;
unit.location_string = obj_ini.ship_location[b];
unit.ship_location = -1;
unit.planet_location = unload;
diff --git a/objects/obj_creation/Create_0.gml b/objects/obj_creation/Create_0.gml
index 1e1f99ebfe..fa45f5d93f 100644
--- a/objects/obj_creation/Create_0.gml
+++ b/objects/obj_creation/Create_0.gml
@@ -150,8 +150,6 @@ cooperation = 5;
purity = 5;
stability = 90;
-var i = 9;
-
homeworld = "Temperate";
homeworld_name = global.name_generator.GenerateFromSet("star", false);
recruiting = "Death";
diff --git a/objects/obj_creation/Draw_0.gml b/objects/obj_creation/Draw_0.gml
index 373aff4b86..a8ecc0d4e8 100644
--- a/objects/obj_creation/Draw_0.gml
+++ b/objects/obj_creation/Draw_0.gml
@@ -4,9 +4,8 @@ try {
//read
// 850,860
- var xx, yy;
- xx = 375;
- yy = 10;
+ var xx = 375;
+ var yy = 10;
tooltip = "";
tooltip2 = "";
@@ -17,7 +16,7 @@ try {
// draw_sprite(spr_creation_slate,1,xx,yy);
scr_image("creation/slate", 2, xx, yy, 850, 860);
- draw_set_color(5998382);
+ draw_set_color(#5B872E);
if (slate2 > 0) {
if (slate2 <= 10) {
draw_set_alpha(slate2 / 10);
@@ -47,9 +46,6 @@ try {
}
}
- var yar;
- yar = 0;
-
if (slide >= 2) {
tooltip = "";
tooltip2 = "";
@@ -66,7 +62,7 @@ try {
draw_rectangle(0, 68, 374, 781, 1);
}
- draw_set_color(0);
+ draw_set_color(c_black);
var sprx = 436, spry = 74, sprw = 128, sprh = 128;
if (sprite_exists(global.chapter_icon.sprite)) {
@@ -419,8 +415,6 @@ try {
draw_set_font(fnt_40k_30b);
draw_set_halign(fa_center);
draw_set_alpha(1);
- var yar;
- yar = 0;
tooltip = "";
tooltip2 = "";
@@ -515,13 +509,7 @@ try {
if (melee_choice_order == 8) {
melee_choice_weapon = "Force Staff";
}
-
- yar = 0;
- if (chapter_master_melee == melee_choice_order) {
- yar = 1;
- }
- draw_sprite(spr_creation_check, yar, x6, y6);
- yar = 0;
+ draw_sprite(spr_creation_check, (chapter_master_melee == melee_choice_order), x6, y6);
if (point_and_click([x6, y6, x6 + 32, y6 + 32]) && (custom != eCHAPTER_TYPE.PREMADE) && (restarted == 0) && (!instance_exists(obj_creation_popup))) {
var onceh;
onceh = 0;
@@ -559,12 +547,7 @@ try {
}
repeat (7) {
ranged_choice_order += 1;
- yar = 0;
- if (chapter_master_ranged == ranged_choice_order) {
- yar = 1;
- }
- draw_sprite(spr_creation_check, yar, x6, y6);
- yar = 0;
+ draw_sprite(spr_creation_check, (chapter_master_ranged == ranged_choice_order), x6, y6);
if (point_and_click([x6, y6, x6 + 32, y6 + 32]) && (custom != eCHAPTER_TYPE.PREMADE) && (restarted == 0) && (!instance_exists(obj_creation_popup)) && (!array_contains([1, 2, 7], chapter_master_melee))) {
var onceh = 0;
if (chapter_master_ranged == ranged_choice_order) {
@@ -682,7 +665,6 @@ try {
// 850,860
- var xx, yy;
xx = 375;
yy = 10;
@@ -707,7 +689,7 @@ try {
draw_rectangle(518, 750, 1075, 820, 0);
}
- draw_set_color(5998382);
+ draw_set_color(#5B872E);
if (slate5 > 0) {
if (slate5 <= 30) {
draw_set_alpha(slate5 / 30);
@@ -729,7 +711,7 @@ try {
if (fade_in > 0) {
draw_set_alpha(fade_in / 50);
- draw_set_color(0);
+ draw_set_color(c_black);
draw_rectangle(0, 0, room_width, room_height, 0);
}
draw_set_alpha(1);
@@ -842,7 +824,7 @@ try {
if (tooltip != "" && tooltip2 != "" && change_slide <= 0) {
draw_set_alpha(1);
- draw_set_color(0);
+ draw_set_color(c_black);
draw_set_halign(fa_left);
draw_set_font(fnt_40k_14b);
var _width1 = string_width_ext(string_hash_to_newline(tooltip), -1, 500);
diff --git a/objects/obj_en_ship/Step_0.gml b/objects/obj_en_ship/Step_0.gml
index 1740f86e27..b5987450da 100644
--- a/objects/obj_en_ship/Step_0.gml
+++ b/objects/obj_en_ship/Step_0.gml
@@ -83,7 +83,7 @@ if (owner != 6) {
}
}
if (owner == eFACTION.TYRANIDS) {
- effect_create_above(ef_firework, x, y, 1, c_purple);
+ effect_create_depth(depth - 1, ef_firework, x, y, 1, c_purple);
}
instance_destroy();
}
diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml
index be08d7c742..96a4f17d48 100644
--- a/objects/obj_enunit/Alarm_0.gml
+++ b/objects/obj_enunit/Alarm_0.gml
@@ -94,22 +94,29 @@ if (!engaged) {
scr_shoot(i, enemy, target_unit_index, "arp", "ranged");
// LOGGER.debug($"I'm shooting at a vehicle! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
continue;
- } else if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
- var x2 = enemy.x;
- repeat (instance_number(obj_pnunit) - 1) {
- x2 += flank == 0 ? -10 : 10;
- var enemy2 = instance_nearest(x2, y, obj_pnunit);
- if (!target_block_is_valid(enemy2, obj_pnunit)) {
- continue;
- }
- if (range[i] < get_block_distance(enemy2)) {
- break;
- }
- if (block_has_armour(enemy2)) {
- scr_shoot(i, enemy2, target_unit_index, "arp", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle in another row! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- _shot = true;
- break;
+ } else {
+ // Front block has no armour. If there are other blocks behind,
+ // look for a vehicle to hit. If none is found anywhere (including
+ // a single men-only block, such as a lone Guard rank), fall back
+ // to shooting the men instead of idling. The original code gated
+ // this whole fallback behind a multi-block check, so a lone
+ // men-only block left every AP weapon firing zero shots.
+ if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
+ var x2 = enemy.x;
+ repeat (instance_number(obj_pnunit) - 1) {
+ x2 += flank == 0 ? -10 : 10;
+ var enemy2 = instance_nearest(x2, y, obj_pnunit);
+ if (!target_block_is_valid(enemy2, obj_pnunit)) {
+ continue;
+ }
+ if (range[i] < get_block_distance(enemy2)) {
+ break;
+ }
+ if (block_has_armour(enemy2)) {
+ scr_shoot(i, enemy2, target_unit_index, "arp", "ranged");
+ _shot = true;
+ break;
+ }
}
}
if (!_shot) {
diff --git a/objects/obj_fleet/Alarm_5.gml b/objects/obj_fleet/Alarm_5.gml
index aad308555b..afab278577 100644
--- a/objects/obj_fleet/Alarm_5.gml
+++ b/objects/obj_fleet/Alarm_5.gml
@@ -1,3 +1,3 @@
if (combat_end == 170) {
- room_speed = 30;
+ game_set_speed(30, gamespeed_fps);
}
diff --git a/objects/obj_fleet/Draw_64.gml b/objects/obj_fleet/Draw_64.gml
index 8b160d2e61..436410a156 100644
--- a/objects/obj_fleet/Draw_64.gml
+++ b/objects/obj_fleet/Draw_64.gml
@@ -50,7 +50,7 @@ if (start == 0) {
}
// fast forward icon
-if (room_speed != 90 && start == 5) {
+if (gamespeed_fps != 90 && start == 5) {
draw_set_alpha(1);
var _ff_h = sprite_get_height(spr_fast_forward);
draw_sprite(spr_fast_forward, 0, 12, (_surface_h / 2) - (_ff_h / 2));
diff --git a/objects/obj_fleet/KeyPress_13.gml b/objects/obj_fleet/KeyPress_13.gml
index a9a62a86db..81251612c9 100644
--- a/objects/obj_fleet/KeyPress_13.gml
+++ b/objects/obj_fleet/KeyPress_13.gml
@@ -6,7 +6,7 @@ if (obj_controller.cooldown <= 0) {
if (start == 7) {
// End battle crap here
instance_activate_all();
- room_speed = 30;
+ game_set_speed(30, gamespeed_fps);
alarm[7] = 1;
}
}
diff --git a/objects/obj_fleet/Mouse_56.gml b/objects/obj_fleet/Mouse_56.gml
index cb4d296f66..0765ef3893 100644
--- a/objects/obj_fleet/Mouse_56.gml
+++ b/objects/obj_fleet/Mouse_56.gml
@@ -40,13 +40,14 @@ if (instance_exists(obj_p_ship) && (control == 1)) {
}
}
+//Why is this here?
if ((start == 5) && (obj_controller.zoomed == 0)) {
- if ((mouse_x >= camera_get_view_x(view_camera[0]) + 12) && (mouse_y >= camera_get_view_y(view_camera[0]) + 436) && (mouse_x < camera_get_view_x(view_camera[0]) + 48) && (mouse_y < camera_get_view_y(view_camera[0]) + 480) && (room_speed < 90)) {
- room_speed += 30;
+ if ((mouse_x >= camera_get_view_x(view_camera[0]) + 12) && (mouse_y >= camera_get_view_y(view_camera[0]) + 436) && (mouse_x < camera_get_view_x(view_camera[0]) + 48) && (mouse_y < camera_get_view_y(view_camera[0]) + 480) && (gamespeed_fps < 90)) {
+ game_set_speed(game_get_speed(gamespeed_fps) + 30, gamespeed_fps);
}
}
if ((start == 5) && (obj_controller.zoomed == 1)) {
- if ((mouse_x > 24) && (mouse_y > 872) && (mouse_x < 90) && (mouse_y < 960) && (room_speed < 90)) {
- room_speed += 30;
+ if ((mouse_x > 24) && (mouse_y > 872) && (mouse_x < 90) && (mouse_y < 960) && (gamespeed_fps < 90)) {
+ game_set_speed(game_get_speed(gamespeed_fps) + 30, gamespeed_fps);
}
}
diff --git a/objects/obj_ncombat/Alarm_0.gml b/objects/obj_ncombat/Alarm_0.gml
index 09e541de93..ce0fced4fe 100644
--- a/objects/obj_ncombat/Alarm_0.gml
+++ b/objects/obj_ncombat/Alarm_0.gml
@@ -3154,47 +3154,66 @@ try {
u.sprite_index = spr_weapon_blank;
}
- // ===== Friendly Imperial Guard / PDF on the player's side =====
- // Mirrors the enemy "Imperial Guard Force" spawn, but as obj_pnunit (player side).
- // Fires only on an ordinary DEFENSIVE planetary battle where you are not at War
- // with the Imperium and the attacker is not the Guard themselves. The model
- // counts are read from the planet's p_guardsmen / p_pdf pools, which the deploy
- // patch fills. "Imperial Guardsman" and "Leman Russ Battle Tank" are existing
- // battlefield profiles, so no new unit content is needed.
- if ((defending == true) && (enemy != 2) && (battle_special == "") && (battle_object != 0)
- && (obj_controller.faction_status[eFACTION.IMPERIUM] != "War")) {
-
- var _gd = battle_object.p_guardsmen[battle_id];
- var _pdf = battle_object.p_pdf[battle_id];
-
- // Friendly Guardsmen, plus armour if the garrison is large.
- if (_gd > 0) {
- var _guar = _gd / 10;
- u = instance_create(-60, 240, obj_pnunit);
- u.dudes[1] = "Imperial Guardsman";
- u.dudes_num[1] = max(1, round(_guar / 5));
- if (_gd > 20000) {
- u.dudes[2] = "Leman Russ Battle Tank";
- u.dudes_num[2] = max(1, round(_gd / 20000));
+ // ** Set up friendly Imperial Guard auxilia **
+ // Bulk player force modelled on the defenses above. Reads the world's deployed
+ // garrison (p_guardsmen). It renders and is durable via veh blocks; its firepower
+ // is injected in scr_player_combat_weapon_stacks, scaled to player_guard. No roster
+ // coupling, so no per-model casualty writes.
+ player_guard = 0;
+ if ((battle_object != 0) && (battle_special == "")) {
+ player_guard = battle_object.p_guardsmen[battle_id];
+ }
+ if (player_guard > 0) {
+ // Place the Guard in the front column, matching the rightmost existing
+ // block. Stepping ahead of the line breaks the advance on an attack (they
+ // march out past the engagement), so they sit in the line and move with it.
+ var _frontx = -50;
+ with (obj_pnunit) {
+ if (x > _frontx) _frontx = x;
+ }
+ u = instance_create(_frontx, 240, obj_pnunit);
+ u.guard = 1;
+
+ // The mass of Guardsmen are men, so they render and take losses per man,
+ // the same way the enemy Guard do.
+ u.men = player_guard;
+ u.dudes[1] = "Imperial Guardsman";
+ u.dudes_num[1] = player_guard;
+ u.dudes_ac[1] = 40; // match the enemy Guardsman: flak armour value 40
+ u.dudes_hp[1] = 5;
+ u.dudes_vehicle[1] = 0;
+
+ // Leman Russ armour for a large garrison: real vehicles, like the enemy's.
+ var _tanks = min(30, round(player_guard / 5000));
+ if (_tanks > 0) {
+ for (var i = 1; i <= _tanks; i++) {
+ u.veh_co[i] = 0;
+ u.veh_id[i] = 0;
+ u.veh_type[i] = "Leman Russ Battle Tank";
+ u.veh_hp[i] = 250;
+ u.veh_ac[i] = 40;
+ u.veh_dead[i] = 0;
+ u.veh_hp_multiplier[i] = 1;
+ u.veh_wep1[i] = "Battle Cannon";
}
- }
-
- // Friendly PDF: a lighter levy. Reuses the Guardsman profile in fewer numbers.
- if (_pdf > 0) {
- u = instance_create(-70, 240, obj_pnunit);
- u.dudes[1] = "Imperial Guardsman";
- u.dudes_num[1] = max(1, round((_pdf / 10) / 8));
- }
-
- // Anti-farm: committing the garrison to a pitched battle costs lives, so a
- // share is spent each fight. This drains the pool you would otherwise reuse
- // for free. Tune the 0.2, or move to outcome-based attrition in Alarm_5.
- if (_gd > 0) battle_object.p_guardsmen[battle_id] = max(0, _gd - round(_gd * 0.2));
- if (_pdf > 0) battle_object.p_pdf[battle_id] = max(0, _pdf - round(_pdf * 0.2));
-
- // The real units now stand in for that force, so clear the abstract allies
- // bonus to avoid counting the same Guard twice.
- allies = 0;
+ u.veh = _tanks;
+ u.dudes[2] = "Leman Russ Battle Tank";
+ u.dudes_num[2] = _tanks;
+ u.dudes_ac[2] = 40;
+ u.dudes_hp[2] = 250;
+ u.dudes_vehicle[2] = 1;
+ }
+ // Keep the default obj_pnunit sprite (do not blank it): the block needs its
+ // collision mask, or the enemy advance walks straight through the Guard
+ // without stopping to fight, which is what sent the enemy off the screen.
+
+ // Count the Guard toward the battle's player forces. The normal accumulation
+ // only runs during setup and this block spawns too late for it, so the win/
+ // loss check never saw them and the battle ended when the Marines died. Add
+ // them here; obj_pnunit's Alarm_3 skips its auto-add for guard blocks so this
+ // is not double counted.
+ player_forces += u.men + u.veh;
+ player_max += u.men + u.veh;
}
instance_activate_object(obj_enunit);
diff --git a/objects/obj_ncombat/Create_0.gml b/objects/obj_ncombat/Create_0.gml
index 5f685215a1..c96307ee20 100644
--- a/objects/obj_ncombat/Create_0.gml
+++ b/objects/obj_ncombat/Create_0.gml
@@ -86,6 +86,7 @@ leader = 0;
thirsty = 0;
really_thirsty = 0;
allies = 0;
+player_attack_guard = 0; // embarked Guard committed to an assault from the attacking fleet
present_inquisitor = 0;
sorcery_seen = 0;
inquisitor_ship = 0;
@@ -129,6 +130,7 @@ player_forces = 0;
player_max = 0;
player_defenses = 0;
player_silos = 0;
+player_guard = 0;
enemy_forces = 0;
enemy_max = 0;
diff --git a/objects/obj_pnunit/Alarm_3.gml b/objects/obj_pnunit/Alarm_3.gml
index 488913264b..c14485ab3b 100644
--- a/objects/obj_pnunit/Alarm_3.gml
+++ b/objects/obj_pnunit/Alarm_3.gml
@@ -5,8 +5,10 @@ try {
instance_destroy();
}
// if (veh+dreads>0) then instance_destroy();
- obj_ncombat.player_forces += self.men + self.veh + self.dreads;
- obj_ncombat.player_max += self.men + self.veh + self.dreads;
+ if (guard == 0) {
+ obj_ncombat.player_forces += self.men + self.veh + self.dreads;
+ obj_ncombat.player_max += self.men + self.veh + self.dreads;
+ }
//TODO centralise a method for moving units between columns
/*if (men<=4) and (veh=0) and (dreads=0){// Squish leftt
diff --git a/objects/obj_pnunit/Create_0.gml b/objects/obj_pnunit/Create_0.gml
index af2c9fb260..92ad072a18 100644
--- a/objects/obj_pnunit/Create_0.gml
+++ b/objects/obj_pnunit/Create_0.gml
@@ -9,6 +9,7 @@ attacked_dudes = 0;
dreads = 0;
jetpack_destroy = 0;
defenses = 0;
+guard = 0;
unit_count = 0;
unit_count_old = 0;
diff --git a/objects/obj_star_select/Draw_64.gml b/objects/obj_star_select/Draw_64.gml
index 91208b743d..c7bdc3805e 100644
--- a/objects/obj_star_select/Draw_64.gml
+++ b/objects/obj_star_select/Draw_64.gml
@@ -306,6 +306,10 @@ try {
if (obj_controller.selecting_planet > 0) {
main_data_slate.draw(344, 160, slate_draw_scale, slate_draw_scale + 0.1);
}
+ // Deploy Guard auxilia: offer the 4th slot when guard-carrying ships orbit this world.
+ if ((button4 == "") && (obj_controller.selecting_planet > 0) && (player_guardsmen_at(target.name) > 0)) {
+ button4 = "Deploy Guard";
+ }
var current_button = "";
var shutter_x = main_data_slate.XX - 165;
var shutter_y = 296 + 165;
@@ -376,6 +380,9 @@ try {
}
}
}
+ } else if (current_button == "Deploy Guard") {
+ var _n = deploy_guardsmen(target.name, obj_controller.selecting_planet);
+ scr_popup("Imperial Guard", "Deployed " + string(_n) + " Guard onto " + planet_numeral_name(obj_controller.selecting_planet, target) + ".", "");
} else if (current_button == "+Recruiting") {
if (obj_controller.recruiting_worlds_bought > 0 && p_data.current_owner <= 5 && !p_data.at_war()) {
if (!p_data.has_feature(eP_FEATURES.RECRUITING_WORLD)) {
diff --git a/rooms/rm_testing_half/rm_testing_half.yy b/rooms/rm_testing_half/rm_testing_half.yy
index 9b4f3dbe49..92ff448b51 100644
--- a/rooms/rm_testing_half/rm_testing_half.yy
+++ b/rooms/rm_testing_half/rm_testing_half.yy
@@ -5,258 +5,10 @@
"inheritCode":false,
"inheritCreationOrder":false,
"inheritLayers":false,
- "instanceCreationOrder":[
- {"name":"inst_388035F1","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_D5E41057","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_BB1D114A","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_09923952","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_DF446DDF","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_34FEE099","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_2C87EFF8","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E02A4953","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_F8CF0E15","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_758D500A","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_5509A666","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_272EA924","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_688E87F2","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_FB07B8CC","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E150D3CB","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_B6347843","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_055C23CA","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_3FF12B84","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_9C0C3419","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_7853AEB1","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_A8EDEDEF","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_9DE5021D","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_773884FA","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_6F23121B","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_8559002F","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_C6F1A0C2","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_257B03D5","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_95E7C107","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_EB544B1E","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_10852472","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_366D8B6F","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_80F6E1D8","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_BDE0ECC5","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_8224F4CC","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_20DF1E0B","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_F238AB87","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_6697D0EC","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E223EB40","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_D91A343C","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_EE76140C","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_4D125B1C","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_78F308E8","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_5CDFA987","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_B9D13756","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_6A11A170","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_ECB34A19","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_1E3BD983","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_548EF074","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_09FA2609","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_6DA07E97","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_AB6FE04B","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_C3A5B2E4","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_FA0BA6CF","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_5105EE58","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_0EBA49F9","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_69D4CCEF","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_1576BC5E","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_D3700BC1","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_2A15F823","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E1BDC14D","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E3417EC1","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_454C3707","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_3A23E3C8","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_9A73FB61","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_C91C6FA0","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_BE4FE50E","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_1A3362DD","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_0875E5D6","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E33204DA","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_357D736B","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_553EEFDD","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_63F741EE","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_0A63F7E8","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_80ED5D9F","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_55B41B69","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_B1C6E50D","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_A3C90E04","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_12C4B857","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_53DE12EB","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_AF92DE37","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_CEB29A8E","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_D30FA4FB","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E0CCE0B8","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_6CE0B413","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_74157AE9","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_BECDE02E","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_16B3E5F0","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_80372912","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_1F53EF6B","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_F0034B9C","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_AF21A2C9","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_97E19425","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_CA7A3670","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_48ED570A","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_2FBE854A","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_EA0A23C0","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_27A10AB4","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_55533EF5","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_23D6570E","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_F5E4A9E2","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_3B7F594A","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_E18BAFD9","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_0FCAC0BE","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_1C7152BB","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_15ACEC8C","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_72BD1C47","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_9FB4C563","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_8B51DEA0","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_96F2BEA0","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_72612F45","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_074026D3","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_A94B0BD3","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_92AB3DF0","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_50511EB7","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_2442E6BE","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_00FF3F46","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_0D3D06EC","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_CE974969","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_09DD0B98","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_21204F1F","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_B6CFA351","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_3DC3B334","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- {"name":"inst_79E7CBAB","path":"rooms/rm_testing_half/rm_testing_half.yy",},
- ],
+ "instanceCreationOrder":[],
"isDnd":false,
"layers":[
- {"$GMRInstanceLayer":"","%Name":"Compatibility_Instances_Depth_0","depth":0,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[
- {"$GMRInstance":"v4","%Name":"inst_388035F1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_388035F1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":336.0,},
- {"$GMRInstance":"v4","%Name":"inst_D5E41057","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D5E41057","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_BB1D114A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BB1D114A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":496.0,},
- {"$GMRInstance":"v4","%Name":"inst_09923952","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09923952","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":176.0,},
- {"$GMRInstance":"v4","%Name":"inst_DF446DDF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_DF446DDF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_34FEE099","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_34FEE099","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":176.0,},
- {"$GMRInstance":"v4","%Name":"inst_2C87EFF8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2C87EFF8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":240.0,},
- {"$GMRInstance":"v4","%Name":"inst_E02A4953","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E02A4953","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_F8CF0E15","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F8CF0E15","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":528.0,},
- {"$GMRInstance":"v4","%Name":"inst_758D500A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_758D500A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_5509A666","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5509A666","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_272EA924","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_272EA924","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":304.0,},
- {"$GMRInstance":"v4","%Name":"inst_688E87F2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_688E87F2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_FB07B8CC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FB07B8CC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":208.0,},
- {"$GMRInstance":"v4","%Name":"inst_E150D3CB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E150D3CB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_B6347843","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B6347843","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_055C23CA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_055C23CA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_3FF12B84","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3FF12B84","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":400.0,},
- {"$GMRInstance":"v4","%Name":"inst_9C0C3419","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9C0C3419","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_7853AEB1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7853AEB1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_A8EDEDEF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A8EDEDEF","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_9DE5021D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9DE5021D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_773884FA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_773884FA","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_6F23121B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6F23121B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":864.0,},
- {"$GMRInstance":"v4","%Name":"inst_8559002F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8559002F","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_C6F1A0C2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C6F1A0C2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_257B03D5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_257B03D5","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_95E7C107","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_95E7C107","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_EB544B1E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EB544B1E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_10852472","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_10852472","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_366D8B6F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_366D8B6F","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_80F6E1D8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80F6E1D8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_BDE0ECC5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BDE0ECC5","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_8224F4CC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8224F4CC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_20DF1E0B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_20DF1E0B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_F238AB87","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F238AB87","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_6697D0EC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6697D0EC","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_E223EB40","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E223EB40","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_D91A343C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D91A343C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_EE76140C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EE76140C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_4D125B1C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4D125B1C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_78F308E8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_78F308E8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_5CDFA987","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5CDFA987","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_B9D13756","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B9D13756","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_6A11A170","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A11A170","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_ECB34A19","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_ECB34A19","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1152.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_1E3BD983","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1E3BD983","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_548EF074","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_548EF074","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_09FA2609","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09FA2609","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_6DA07E97","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6DA07E97","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_AB6FE04B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AB6FE04B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_C3A5B2E4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C3A5B2E4","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_FA0BA6CF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FA0BA6CF","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_5105EE58","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5105EE58","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_0EBA49F9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0EBA49F9","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_69D4CCEF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_69D4CCEF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_1576BC5E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1576BC5E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_D3700BC1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D3700BC1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_2A15F823","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2A15F823","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_E1BDC14D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E1BDC14D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":864.0,},
- {"$GMRInstance":"v4","%Name":"inst_E3417EC1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E3417EC1","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_454C3707","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_454C3707","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_3A23E3C8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3A23E3C8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_9A73FB61","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9A73FB61","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_C91C6FA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C91C6FA0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_BE4FE50E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BE4FE50E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_1A3362DD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1A3362DD","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_0875E5D6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0875E5D6","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_E33204DA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E33204DA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_357D736B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_357D736B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_553EEFDD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_553EEFDD","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_63F741EE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_63F741EE","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_0A63F7E8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0A63F7E8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_80ED5D9F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80ED5D9F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_55B41B69","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_55B41B69","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_B1C6E50D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B1C6E50D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_A3C90E04","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A3C90E04","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_12C4B857","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_12C4B857","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_53DE12EB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_53DE12EB","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_AF92DE37","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AF92DE37","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_CEB29A8E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CEB29A8E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_D30FA4FB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D30FA4FB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_E0CCE0B8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E0CCE0B8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_6CE0B413","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6CE0B413","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_74157AE9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_74157AE9","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_BECDE02E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BECDE02E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_16B3E5F0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_16B3E5F0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_80372912","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80372912","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_1F53EF6B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1F53EF6B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_F0034B9C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F0034B9C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_AF21A2C9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AF21A2C9","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_97E19425","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_97E19425","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_CA7A3670","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CA7A3670","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_48ED570A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_48ED570A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_2FBE854A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2FBE854A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_EA0A23C0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EA0A23C0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_27A10AB4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_27A10AB4","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_55533EF5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_55533EF5","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_23D6570E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_23D6570E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":96.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_F5E4A9E2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F5E4A9E2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_3B7F594A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3B7F594A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_E18BAFD9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E18BAFD9","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_0FCAC0BE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0FCAC0BE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_1C7152BB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1C7152BB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_15ACEC8C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_15ACEC8C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_72BD1C47","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_72BD1C47","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_9FB4C563","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9FB4C563","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_8B51DEA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8B51DEA0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_96F2BEA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_96F2BEA0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_72612F45","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_72612F45","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_074026D3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_074026D3","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_A94B0BD3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A94B0BD3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_92AB3DF0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_92AB3DF0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_50511EB7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_50511EB7","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_2442E6BE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2442E6BE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_00FF3F46","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_00FF3F46","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_0D3D06EC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0D3D06EC","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_CE974969","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CE974969","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_09DD0B98","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09DD0B98","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_21204F1F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_21204F1F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_B6CFA351","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B6CFA351","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_3DC3B334","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3DC3B334","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_79E7CBAB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_79E7CBAB","objectId":{"name":"obj_enemy_leftest","path":"objects/obj_enemy_leftest/obj_enemy_leftest.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":64.0,},
- ],"layers":[],"name":"Compatibility_Instances_Depth_0","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":true,"visible":true,},
+ {"$GMRInstanceLayer":"","%Name":"Compatibility_Instances_Depth_0","depth":0,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[],"layers":[],"name":"Compatibility_Instances_Depth_0","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":true,"visible":true,},
{"$GMRBackgroundLayer":"","%Name":"Compatibility_Colour","animationFPS":15.0,"animationSpeedType":0,"colour":4278222848,"depth":2147483600,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"hspeed":0.0,"htiled":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"layers":[],"name":"Compatibility_Colour","properties":[],"resourceType":"GMRBackgroundLayer","resourceVersion":"2.0","spriteId":null,"stretch":false,"userdefinedAnimFPS":false,"userdefinedDepth":true,"visible":true,"vspeed":0.0,"vtiled":false,"x":0,"y":0,},
],
"name":"rm_testing_half",
diff --git a/rooms/rm_testing_new/rm_testing_new.yy b/rooms/rm_testing_new/rm_testing_new.yy
index f9a173c932..b344f8e67b 100644
--- a/rooms/rm_testing_new/rm_testing_new.yy
+++ b/rooms/rm_testing_new/rm_testing_new.yy
@@ -5,752 +5,10 @@
"inheritCode":false,
"inheritCreationOrder":false,
"inheritLayers":false,
- "instanceCreationOrder":[
- {"name":"inst_388035F1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D5E41057","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BB1D114A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_09923952","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_DF446DDF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_34FEE099","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2C87EFF8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E02A4953","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F8CF0E15","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_758D500A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5509A666","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_272EA924","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_688E87F2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FB07B8CC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E150D3CB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B6347843","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_055C23CA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3FF12B84","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9C0C3419","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7853AEB1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A8EDEDEF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6EBD3C1C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_773884FA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_36A1F822","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8559002F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9F102D8B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_257B03D5","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BDFA2E0F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EB544B1E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B42FF6B3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_366D8B6F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_47294749","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BDE0ECC5","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1DD400FB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_20DF1E0B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_38E46998","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6697D0EC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_422015A7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D91A343C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A2C31987","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4D125B1C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CE4AA7DE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5CDFA987","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4D386697","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6A11A170","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E58708C6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1E3BD983","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_059F747C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_09FA2609","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1B91E8FA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AB6FE04B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D598AD85","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FA0BA6CF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AD3D1A06","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0EBA49F9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3B94C5D4","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1576BC5E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_09E5CF4A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2A15F823","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_876FFD18","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E3417EC1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_454C3707","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3A23E3C8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9A73FB61","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C91C6FA0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A1FE1A2D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D213BA1C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_55AF4196","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7C8100DE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_02D1525A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_553EEFDD","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8DF39DBA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0A63F7E8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_387CDFBD","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_55B41B69","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2A6DA71F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A3C90E04","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_69DB5D30","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_53DE12EB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E7A49E65","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CEB29A8E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8DDD2EA7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E0CCE0B8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3B0C87A8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_74157AE9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F8AF8DB6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_16B3E5F0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C33643AE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1F53EF6B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_46D965EA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AF21A2C9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_47A36C68","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CA7A3670","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_258A0CBC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2FBE854A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D59943CF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_27A10AB4","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6569A1F2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_23D6570E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_20903E71","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3B7F594A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8953EFE0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0FCAC0BE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D6166379","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_15ACEC8C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AD03219D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9FB4C563","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_00AF5EF0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_96F2BEA0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BDEB7D5C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_074026D3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EAE2CAF0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_92AB3DF0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_449E9A2B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2442E6BE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_99FC132E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0D3D06EC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3E162286","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_09DD0B98","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5B65D7D8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B6CFA351","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1609728A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_72BD1C47","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_75DA04D0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_72612F45","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3A719755","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3DC3B334","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F2A3E647","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8B51DEA0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9E808E37","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1C7152BB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E18BAFD9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A94B0BD3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_50511EB7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_00FF3F46","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CE974969","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_21204F1F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_357D736B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E33204DA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0875E5D6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1A3362DD","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BE4FE50E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_63F741EE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_80ED5D9F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B1C6E50D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_12C4B857","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AF92DE37","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D30FA4FB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6CE0B413","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BECDE02E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_80372912","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F0034B9C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_97E19425","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_48ED570A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EA0A23C0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_55533EF5","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F5E4A9E2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9DE5021D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_294B9A40","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C6F1A0C2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_95E7C107","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_10852472","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_80F6E1D8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8224F4CC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F238AB87","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E223EB40","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EE76140C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_78F308E8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B9D13756","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_ECB34A19","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_548EF074","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6DA07E97","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C3A5B2E4","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5105EE58","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_69D4CCEF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D3700BC1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3673D84E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C7706CDF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9AE2394D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0DB4551D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_93F8F9D1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F62CDA04","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BC1D4DD0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E8FB9DFB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F7F12BC3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_07A0A63F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AE132D74","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_27CF4E5F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_81F7B93F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5E26086D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BAEAB96E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A126FBB2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CD5F8840","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5A3D4E87","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_44C2FCE4","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BEEE1AAF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_621FE1EA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_262F9D6C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F16A14DB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_10ACBA49","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FBD00D1E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_59474C1E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_18F2D01C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AE939C59","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1B5CC0D8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_320DE7DE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A1A947A7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_62CB369D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6C4E2003","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7E6E13B4","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4380605B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_498365F0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4AE5CF42","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1A21A3F0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EBD07193","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_83510139","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_DE41F6CC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D8E4D02A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F2F466F6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_95BBF53D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A7A11173","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8EECC032","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1A5C1E88","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8BE37967","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7832DC16","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4A1DA0D0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_80E584A2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_686C20E6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8F68253E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4E6920FB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C20E4C65","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B50A32A3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_10642C17","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A3FC4DB0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_495136A1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9DE3581A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D11BA48C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A161BBBB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_81B3C107","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BEDDD4C3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4CD726A0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B2BEF198","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A37F6A79","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_60374050","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_167E625E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1B54F3C5","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_394A6756","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_93B6BABC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3954542D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_347F206B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FE311E3D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9AF09151","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_95B49484","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FDCBC1D1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_DE472767","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_57FF5F83","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8309A915","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D5EA3E02","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5BAB987E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3DDFB15B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C76749B3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_05D7BA4A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_640BD834","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0ADF5D22","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_23E780B5","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BAA3A7CE","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_4342BBC3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9D8344B3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2E6AFF62","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_347F4EB1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_18B3786A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1E558424","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_088F0628","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6A935031","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C5389FF3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7ABDE645","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6CFF83E1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_250DA1E4","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_35BDDB56","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_808D0D05","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_49C7CF9A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EB89405D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6615F3DA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C6D8CE37","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6A54B063","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5C28250A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B6E07888","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_60AFBAA0","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_486C806D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_F472B89D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CAAF0390","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CFFA423D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_66114EEF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6D716C3D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CBEAD4CF","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_273D6FF1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_573E9FB8","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6C0A2F06","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_EDFB0625","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7709446B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_880DB048","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0CB3D0B6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B6FFEF76","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_2E90CDC2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_065A560D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_6E321360","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B0258217","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B93B6C1A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_82CBF21E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_41CF7EA7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B19699B1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_AF0AF791","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_21715F1C","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E8DC446F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1AC4BC97","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BAD0240B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_398A2EE5","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5B5914C2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9C8C1C19","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9FB4C666","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_31B6BFA2","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_99AEC12D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CE659175","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_28E908D9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_73F6E1D3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_454D2360","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8B58BBCD","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5327609F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_555EADDB","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5D3AE2F7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7887F6C7","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9579B27E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_328C3604","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_471B0F57","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_610AA61E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_5705FF86","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E9B7FA95","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_BA6C786A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7E6E61A3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D0FDB51F","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_CA6E259B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_79B66B59","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_06C49427","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_94641A7D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_8CCEBC61","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9969588E","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FA2025A1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_55AEBA55","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_3EECDDD1","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0E6FA459","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_A3BF88B6","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_73F9FC32","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9113A661","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_FF9E47F9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_990D1F3D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9CC8B76B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_74D4C1DC","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_195CA91B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_9BBC48C3","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D2C50DD9","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E9838623","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_E1F1977A","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_7C23CB80","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_C9C94E86","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_1213068B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_0E355180","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_B36BD9FA","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_32543C97","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_D59F519D","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- {"name":"inst_14FA416B","path":"rooms/rm_testing_new/rm_testing_new.yy",},
- ],
+ "instanceCreationOrder":[],
"isDnd":false,
"layers":[
- {"$GMRInstanceLayer":"","%Name":"Compatibility_Instances_Depth_0","depth":0,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[
- {"$GMRInstance":"v4","%Name":"inst_388035F1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_388035F1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":336.0,},
- {"$GMRInstance":"v4","%Name":"inst_D5E41057","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D5E41057","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_BB1D114A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BB1D114A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":496.0,},
- {"$GMRInstance":"v4","%Name":"inst_09923952","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09923952","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":176.0,},
- {"$GMRInstance":"v4","%Name":"inst_DF446DDF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_DF446DDF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_34FEE099","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_34FEE099","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":176.0,},
- {"$GMRInstance":"v4","%Name":"inst_2C87EFF8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2C87EFF8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":240.0,},
- {"$GMRInstance":"v4","%Name":"inst_E02A4953","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E02A4953","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_F8CF0E15","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F8CF0E15","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":528.0,},
- {"$GMRInstance":"v4","%Name":"inst_758D500A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_758D500A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_5509A666","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5509A666","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_272EA924","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_272EA924","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":304.0,},
- {"$GMRInstance":"v4","%Name":"inst_688E87F2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_688E87F2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_FB07B8CC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FB07B8CC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":208.0,},
- {"$GMRInstance":"v4","%Name":"inst_E150D3CB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E150D3CB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_B6347843","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B6347843","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_055C23CA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_055C23CA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_3FF12B84","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3FF12B84","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":400.0,},
- {"$GMRInstance":"v4","%Name":"inst_9C0C3419","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9C0C3419","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_7853AEB1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7853AEB1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_A8EDEDEF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A8EDEDEF","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_6EBD3C1C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6EBD3C1C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_773884FA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_773884FA","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_36A1F822","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_36A1F822","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_8559002F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8559002F","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_9F102D8B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9F102D8B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_257B03D5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_257B03D5","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_BDFA2E0F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BDFA2E0F","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_EB544B1E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EB544B1E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_B42FF6B3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B42FF6B3","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_366D8B6F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_366D8B6F","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_47294749","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_47294749","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_BDE0ECC5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BDE0ECC5","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_1DD400FB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1DD400FB","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_20DF1E0B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_20DF1E0B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_38E46998","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_38E46998","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_6697D0EC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6697D0EC","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_422015A7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_422015A7","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_D91A343C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D91A343C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_A2C31987","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A2C31987","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_4D125B1C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4D125B1C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_CE4AA7DE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CE4AA7DE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_5CDFA987","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5CDFA987","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_4D386697","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4D386697","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_6A11A170","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A11A170","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_E58708C6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E58708C6","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_1E3BD983","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1E3BD983","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_059F747C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_059F747C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_09FA2609","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09FA2609","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_1B91E8FA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1B91E8FA","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_AB6FE04B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AB6FE04B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_D598AD85","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D598AD85","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_FA0BA6CF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FA0BA6CF","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_AD3D1A06","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AD3D1A06","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_0EBA49F9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0EBA49F9","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_3B94C5D4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3B94C5D4","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_1576BC5E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1576BC5E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_09E5CF4A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09E5CF4A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_2A15F823","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2A15F823","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":32.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_876FFD18","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_876FFD18","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":64.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_E3417EC1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E3417EC1","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_454C3707","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_454C3707","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_3A23E3C8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3A23E3C8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_9A73FB61","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9A73FB61","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_C91C6FA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C91C6FA0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_A1FE1A2D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A1FE1A2D","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_D213BA1C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D213BA1C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_55AF4196","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_55AF4196","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_7C8100DE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7C8100DE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_02D1525A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_02D1525A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_553EEFDD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_553EEFDD","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_8DF39DBA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8DF39DBA","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_0A63F7E8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0A63F7E8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_387CDFBD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_387CDFBD","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_55B41B69","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_55B41B69","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_2A6DA71F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2A6DA71F","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_A3C90E04","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A3C90E04","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_69DB5D30","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_69DB5D30","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_53DE12EB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_53DE12EB","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_E7A49E65","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E7A49E65","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_CEB29A8E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CEB29A8E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_8DDD2EA7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8DDD2EA7","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_E0CCE0B8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E0CCE0B8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_3B0C87A8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3B0C87A8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_74157AE9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_74157AE9","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_F8AF8DB6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F8AF8DB6","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_16B3E5F0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_16B3E5F0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_C33643AE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C33643AE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_1F53EF6B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1F53EF6B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_46D965EA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_46D965EA","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_AF21A2C9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AF21A2C9","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_47A36C68","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_47A36C68","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_CA7A3670","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CA7A3670","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_258A0CBC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_258A0CBC","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_2FBE854A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2FBE854A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_D59943CF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D59943CF","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_27A10AB4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_27A10AB4","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_6569A1F2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6569A1F2","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_23D6570E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_23D6570E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":128.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_20903E71","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_20903E71","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":160.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_3B7F594A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3B7F594A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_8953EFE0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8953EFE0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_0FCAC0BE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0FCAC0BE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_D6166379","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D6166379","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_15ACEC8C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_15ACEC8C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_AD03219D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AD03219D","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_9FB4C563","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9FB4C563","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_00AF5EF0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_00AF5EF0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_96F2BEA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_96F2BEA0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_BDEB7D5C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BDEB7D5C","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_074026D3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_074026D3","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_EAE2CAF0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EAE2CAF0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_92AB3DF0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_92AB3DF0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_449E9A2B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_449E9A2B","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_2442E6BE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2442E6BE","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_99FC132E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_99FC132E","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_0D3D06EC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0D3D06EC","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_3E162286","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3E162286","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_09DD0B98","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_09DD0B98","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_5B65D7D8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5B65D7D8","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_B6CFA351","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B6CFA351","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_1609728A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1609728A","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_72BD1C47","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_72BD1C47","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_75DA04D0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_75DA04D0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_72612F45","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_72612F45","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_3A719755","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3A719755","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_3DC3B334","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3DC3B334","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_F2A3E647","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F2A3E647","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_8B51DEA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8B51DEA0","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":224.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_9E808E37","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9E808E37","objectId":{"name":"obj_marine","path":"objects/obj_marine/obj_marine.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":256.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_1C7152BB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1C7152BB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_E18BAFD9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E18BAFD9","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_A94B0BD3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A94B0BD3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_50511EB7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_50511EB7","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_00FF3F46","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_00FF3F46","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_CE974969","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CE974969","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_21204F1F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_21204F1F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_357D736B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_357D736B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_E33204DA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E33204DA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_0875E5D6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0875E5D6","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_1A3362DD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1A3362DD","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":832.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_BE4FE50E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BE4FE50E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_63F741EE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_63F741EE","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_80ED5D9F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80ED5D9F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_B1C6E50D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B1C6E50D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_12C4B857","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_12C4B857","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_AF92DE37","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AF92DE37","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_D30FA4FB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D30FA4FB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_6CE0B413","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6CE0B413","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_BECDE02E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BECDE02E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_80372912","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80372912","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_F0034B9C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F0034B9C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_97E19425","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_97E19425","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_48ED570A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_48ED570A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_EA0A23C0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EA0A23C0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_55533EF5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_55533EF5","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_F5E4A9E2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F5E4A9E2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_9DE5021D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9DE5021D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_294B9A40","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_294B9A40","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_C6F1A0C2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C6F1A0C2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_95E7C107","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_95E7C107","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_10852472","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_10852472","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_80F6E1D8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80F6E1D8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_8224F4CC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8224F4CC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_F238AB87","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F238AB87","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_E223EB40","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E223EB40","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_EE76140C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EE76140C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_78F308E8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_78F308E8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_B9D13756","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B9D13756","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_ECB34A19","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_ECB34A19","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1152.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_548EF074","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_548EF074","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_6DA07E97","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6DA07E97","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":960.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_C3A5B2E4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C3A5B2E4","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_5105EE58","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5105EE58","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_69D4CCEF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_69D4CCEF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_D3700BC1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D3700BC1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_3673D84E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3673D84E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_C7706CDF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C7706CDF","objectId":{"name":"obj_enemy_leftest","path":"objects/obj_enemy_leftest/obj_enemy_leftest.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":0.0,},
- {"$GMRInstance":"v4","%Name":"inst_9AE2394D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9AE2394D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_0DB4551D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0DB4551D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_93F8F9D1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_93F8F9D1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1248.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_F62CDA04","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F62CDA04","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_BC1D4DD0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BC1D4DD0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1248.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_E8FB9DFB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E8FB9DFB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_F7F12BC3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F7F12BC3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_07A0A63F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_07A0A63F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_AE132D74","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AE132D74","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_27CF4E5F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_27CF4E5F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1152.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_81F7B93F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_81F7B93F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_5E26086D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5E26086D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_BAEAB96E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BAEAB96E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1248.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_A126FBB2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A126FBB2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_CD5F8840","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CD5F8840","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_5A3D4E87","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5A3D4E87","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1152.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_44C2FCE4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_44C2FCE4","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_BEEE1AAF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BEEE1AAF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1280.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_621FE1EA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_621FE1EA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_262F9D6C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_262F9D6C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_F16A14DB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F16A14DB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_10ACBA49","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_10ACBA49","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_FBD00D1E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FBD00D1E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_59474C1E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_59474C1E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_18F2D01C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_18F2D01C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_AE939C59","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AE939C59","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_1B5CC0D8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1B5CC0D8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1280.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_320DE7DE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_320DE7DE","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_A1A947A7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A1A947A7","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_62CB369D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_62CB369D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1216.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_6C4E2003","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6C4E2003","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1408.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_7E6E13B4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7E6E13B4","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_4380605B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4380605B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1248.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_498365F0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_498365F0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_4AE5CF42","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4AE5CF42","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1408.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_1A21A3F0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1A21A3F0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1280.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_EBD07193","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EBD07193","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_83510139","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_83510139","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1376.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_DE41F6CC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_DE41F6CC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1376.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_D8E4D02A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D8E4D02A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_F2F466F6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F2F466F6","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_95BBF53D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_95BBF53D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_A7A11173","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A7A11173","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1376.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_8EECC032","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8EECC032","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_1A5C1E88","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1A5C1E88","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_8BE37967","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8BE37967","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_7832DC16","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7832DC16","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_4A1DA0D0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4A1DA0D0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_80E584A2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_80E584A2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_686C20E6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_686C20E6","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1408.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_8F68253E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8F68253E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1472.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_4E6920FB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4E6920FB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1408.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_C20E4C65","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C20E4C65","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_B50A32A3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B50A32A3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_10642C17","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_10642C17","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_A3FC4DB0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A3FC4DB0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1536.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_495136A1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_495136A1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1472.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_9DE3581A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9DE3581A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1536.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_D11BA48C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D11BA48C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_A161BBBB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A161BBBB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_81B3C107","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_81B3C107","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_BEDDD4C3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BEDDD4C3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1536.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_4CD726A0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4CD726A0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_B2BEF198","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B2BEF198","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_A37F6A79","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A37F6A79","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1536.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_60374050","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_60374050","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_167E625E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_167E625E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_1B54F3C5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1B54F3C5","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1472.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_394A6756","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_394A6756","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_93B6BABC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_93B6BABC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_3954542D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3954542D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1408.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_347F206B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_347F206B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_FE311E3D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FE311E3D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1376.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_9AF09151","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9AF09151","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1248.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_95B49484","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_95B49484","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_FDCBC1D1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FDCBC1D1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":864.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_DE472767","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_DE472767","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":928.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_57FF5F83","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_57FF5F83","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1024.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_8309A915","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8309A915","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1088.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_D5EA3E02","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D5EA3E02","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1056.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_5BAB987E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5BAB987E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1184.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_3DDFB15B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3DDFB15B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1120.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_C76749B3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C76749B3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_05D7BA4A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_05D7BA4A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1280.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_640BD834","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_640BD834","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1440.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_0ADF5D22","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0ADF5D22","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_23E780B5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_23E780B5","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_BAA3A7CE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BAA3A7CE","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1312.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_4342BBC3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4342BBC3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1376.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_9D8344B3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9D8344B3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1248.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_2E6AFF62","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2E6AFF62","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1568.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_347F4EB1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_347F4EB1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_18B3786A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_18B3786A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_1E558424","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1E558424","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1728.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_088F0628","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_088F0628","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1664.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_6A935031","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A935031","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_C5389FF3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C5389FF3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1728.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_7ABDE645","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7ABDE645","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1824.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_6CFF83E1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6CFF83E1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_250DA1E4","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_250DA1E4","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_35BDDB56","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_35BDDB56","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1824.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_808D0D05","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_808D0D05","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1920.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_49C7CF9A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_49C7CF9A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_EB89405D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EB89405D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_6615F3DA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6615F3DA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1920.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_C6D8CE37","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C6D8CE37","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2048.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_6A54B063","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A54B063","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_5C28250A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5C28250A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1824.0,"y":512.0,},
- {"$GMRInstance":"v4","%Name":"inst_B6E07888","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B6E07888","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_60AFBAA0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_60AFBAA0","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1664.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_486C806D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_486C806D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_F472B89D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_F472B89D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_CAAF0390","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CAAF0390","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_CFFA423D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CFFA423D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_66114EEF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_66114EEF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_6D716C3D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6D716C3D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_CBEAD4CF","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CBEAD4CF","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_273D6FF1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_273D6FF1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_573E9FB8","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_573E9FB8","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_6C0A2F06","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6C0A2F06","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_EDFB0625","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_EDFB0625","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_7709446B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7709446B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_880DB048","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_880DB048","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1728.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_0CB3D0B6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0CB3D0B6","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_B6FFEF76","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B6FFEF76","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1824.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_2E90CDC2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2E90CDC2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_065A560D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_065A560D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1728.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_6E321360","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6E321360","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_B0258217","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B0258217","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_B93B6C1A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B93B6C1A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1600.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_82CBF21E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_82CBF21E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_41CF7EA7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_41CF7EA7","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_B19699B1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B19699B1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_AF0AF791","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_AF0AF791","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_21715F1C","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_21715F1C","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_E8DC446F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E8DC446F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_1AC4BC97","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1AC4BC97","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1920.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_BAD0240B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BAD0240B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_398A2EE5","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_398A2EE5","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1728.0,"y":544.0,},
- {"$GMRInstance":"v4","%Name":"inst_5B5914C2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5B5914C2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1600.0,"y":576.0,},
- {"$GMRInstance":"v4","%Name":"inst_9C8C1C19","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9C8C1C19","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_9FB4C666","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9FB4C666","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1664.0,"y":448.0,},
- {"$GMRInstance":"v4","%Name":"inst_31B6BFA2","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_31B6BFA2","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1600.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_99AEC12D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_99AEC12D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1600.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_CE659175","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CE659175","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1664.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_28E908D9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_28E908D9","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_73F6E1D3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_73F6E1D3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1728.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_454D2360","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_454D2360","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1664.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_8B58BBCD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8B58BBCD","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":768.0,},
- {"$GMRInstance":"v4","%Name":"inst_5327609F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5327609F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_555EADDB","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_555EADDB","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1664.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_5D3AE2F7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5D3AE2F7","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1760.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_7887F6C7","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7887F6C7","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_9579B27E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9579B27E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_328C3604","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_328C3604","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":800.0,},
- {"$GMRInstance":"v4","%Name":"inst_471B0F57","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_471B0F57","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1920.0,"y":832.0,},
- {"$GMRInstance":"v4","%Name":"inst_610AA61E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_610AA61E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":704.0,},
- {"$GMRInstance":"v4","%Name":"inst_5705FF86","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5705FF86","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":640.0,},
- {"$GMRInstance":"v4","%Name":"inst_E9B7FA95","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E9B7FA95","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":736.0,},
- {"$GMRInstance":"v4","%Name":"inst_BA6C786A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_BA6C786A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_7E6E61A3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7E6E61A3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1824.0,"y":608.0,},
- {"$GMRInstance":"v4","%Name":"inst_D0FDB51F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D0FDB51F","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":672.0,},
- {"$GMRInstance":"v4","%Name":"inst_CA6E259B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_CA6E259B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_79B66B59","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_79B66B59","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_06C49427","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_06C49427","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_94641A7D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_94641A7D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_8CCEBC61","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_8CCEBC61","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_9969588E","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9969588E","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_FA2025A1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FA2025A1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_55AEBA55","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_55AEBA55","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1504.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_3EECDDD1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3EECDDD1","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_0E6FA459","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0E6FA459","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_A3BF88B6","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_A3BF88B6","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_73F9FC32","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_73F9FC32","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":224.0,},
- {"$GMRInstance":"v4","%Name":"inst_9113A661","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9113A661","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1920.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_FF9E47F9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_FF9E47F9","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":288.0,},
- {"$GMRInstance":"v4","%Name":"inst_990D1F3D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_990D1F3D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_9CC8B76B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9CC8B76B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2016.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_74D4C1DC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_74D4C1DC","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2016.0,"y":384.0,},
- {"$GMRInstance":"v4","%Name":"inst_195CA91B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_195CA91B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2016.0,"y":256.0,},
- {"$GMRInstance":"v4","%Name":"inst_9BBC48C3","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_9BBC48C3","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":320.0,},
- {"$GMRInstance":"v4","%Name":"inst_D2C50DD9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D2C50DD9","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1856.0,"y":352.0,},
- {"$GMRInstance":"v4","%Name":"inst_E9838623","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E9838623","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":416.0,},
- {"$GMRInstance":"v4","%Name":"inst_E1F1977A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E1F1977A","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1984.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_7C23CB80","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_7C23CB80","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2016.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_C9C94E86","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_C9C94E86","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1952.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_1213068B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1213068B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2016.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_0E355180","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_0E355180","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1888.0,"y":128.0,},
- {"$GMRInstance":"v4","%Name":"inst_B36BD9FA","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_B36BD9FA","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1792.0,"y":160.0,},
- {"$GMRInstance":"v4","%Name":"inst_32543C97","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_32543C97","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1824.0,"y":192.0,},
- {"$GMRInstance":"v4","%Name":"inst_D59F519D","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_D59F519D","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1696.0,"y":480.0,},
- {"$GMRInstance":"v4","%Name":"inst_14FA416B","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_14FA416B","objectId":{"name":"obj_ork","path":"objects/obj_ork/obj_ork.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1632.0,"y":352.0,},
- ],"layers":[],"name":"Compatibility_Instances_Depth_0","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":true,"visible":true,},
+ {"$GMRInstanceLayer":"","%Name":"Compatibility_Instances_Depth_0","depth":0,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[],"layers":[],"name":"Compatibility_Instances_Depth_0","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":true,"visible":true,},
{"$GMRBackgroundLayer":"","%Name":"Compatibility_Colour","animationFPS":15.0,"animationSpeedType":0,"colour":4278222848,"depth":2147483600,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"hspeed":0.0,"htiled":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"layers":[],"name":"Compatibility_Colour","properties":[],"resourceType":"GMRBackgroundLayer","resourceVersion":"2.0","spriteId":null,"stretch":false,"userdefinedAnimFPS":false,"userdefinedDepth":true,"visible":true,"vspeed":0.0,"vtiled":false,"x":0,"y":0,},
],
"name":"rm_testing_new",
diff --git a/scripts/Armamentarium/Armamentarium.gml b/scripts/Armamentarium/Armamentarium.gml
index 5935906ac6..241dd8215c 100644
--- a/scripts/Armamentarium/Armamentarium.gml
+++ b/scripts/Armamentarium/Armamentarium.gml
@@ -445,8 +445,10 @@ function Armamentarium(_controller) constructor {
// --- Components ---
slate_panel = new DataSlate();
+ // feather ignore once GM2043
slate_panel.inside_method = method(self, _draw_slate_contents);
+ // feather ignore once GM2043
stc_panel = new STCResearchPanel(controller, method(self, refresh_catalog));
enter_forge_button = new ShutterButton();
diff --git a/scripts/ErrorHandler/ErrorHandler.gml b/scripts/ErrorHandler/ErrorHandler.gml
index f44c9e0c1e..b211b22d70 100644
--- a/scripts/ErrorHandler/ErrorHandler.gml
+++ b/scripts/ErrorHandler/ErrorHandler.gml
@@ -22,8 +22,11 @@ function GameError(_header, _message, _stacktrace = "", _critical = false, _repo
commit_hash = global.commit_hash;
username = global.settings.username ?? "";
+ // feather ignore once GM2043
full_log = build_full_log();
+ // feather ignore once GM2043
error_file_text = build_error_file_text();
+ // feather ignore once GM2043
player_message = build_player_message();
/// @description Builds the full log content
diff --git a/scripts/NameGenerator/NameGenerator.gml b/scripts/NameGenerator/NameGenerator.gml
index 4c994d856d..c1449e0873 100644
--- a/scripts/NameGenerator/NameGenerator.gml
+++ b/scripts/NameGenerator/NameGenerator.gml
@@ -189,7 +189,7 @@ function NameGenerator() constructor {
var _simple_names = json_to_gamemaker(working_directory + $"main\\name_loader.json", json_parse);
if (_simple_names == "") {
- var _simple_names = [
+ _simple_names = [
"sector",
"star",
{
@@ -257,13 +257,14 @@ function NameGenerator() constructor {
var _load_name = _name;
var _load_as_composite = false;
var _preffered = "simple";
+ var _composites = {};
if (is_struct(_name)) {
var _struc = _name;
_name = _struc.load_as;
_load_name = _struc.load_set;
if (struct_exists(_struc, "composites")) {
_load_as_composite = true;
- var _composites = _struc.composites;
+ _composites = _struc.composites;
}
if (struct_exists(_struc, "preffered_method")) {
_preffered = _struc.preffered_method;
@@ -307,12 +308,10 @@ function NameGenerator() constructor {
_styles = array_shuffle(_styles);
- while (array_length(_styles)) {
- var _style = array_pop(_styles);
- var _set = get_name_set(_style);
+ for (var i = 0; i < array_length(_styles); i++) {
+ var _set = get_name_set(_styles[i]);
if (is_struct(_set)) {
- var _name = _set.UsePreffered();
- break;
+ _name = _set.UsePreffered();
}
}
diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml
index 439289bf45..ef2ab729be 100644
--- a/scripts/scr_cheatcode/scr_cheatcode.gml
+++ b/scripts/scr_cheatcode/scr_cheatcode.gml
@@ -44,20 +44,26 @@ function scr_cheatcode(argument0) {
case "embarkguard":
with (obj_controller) {
var _n = embark_guardsmen(obj_ini.home_name, obj_ini.home_planet);
- show_message("Embarked " + string(_n) + " Guard from your homeworld.#Total embarked: " + string(player_guardsmen_embarked()));
+ scr_popup("Imperial Guard", "Embarked " + string(_n) + " Guard from your homeworld. Total embarked: " + string(player_guardsmen_embarked()), "");
}
break;
case "deployguard":
with (obj_controller) {
- var _n = deploy_guardsmen(obj_ini.home_name, obj_ini.home_planet);
- show_message("Deployed " + string(_n) + " Guard onto your homeworld.");
+ if (instance_exists(obj_star_select) && (selecting_planet > 0)) {
+ var _star = obj_star_select.target;
+ var _n = deploy_guardsmen(_star.name, selecting_planet);
+ scr_popup("Imperial Guard", "Deployed " + string(_n) + " Guard onto " + string(_star.name) + " " + string(selecting_planet) + ". (Unloads from your ships orbiting that world.)", "");
+ } else {
+ var _n = deploy_guardsmen(obj_ini.home_name, obj_ini.home_planet);
+ scr_popup("Imperial Guard", "No world selected, so deployed " + string(_n) + " Guard at your homeworld. Open a system and click a planet first to target another world.", "");
+ }
}
break;
case "titheguard":
with (obj_controller) {
var _amt = real(cheat_arguments[0]);
var _n = tithe_guardsmen(obj_ini.home_name, obj_ini.home_planet, _amt);
- show_message("Raised " + string(_n) + " Guard from your homeworld's population.");
+ scr_popup("Imperial Guard", "Raised " + string(_n) + " Guard from your homeworld's population.", "");
}
break;
case "finishforge":
diff --git a/scripts/scr_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml
index e1b6a2e10a..5996d5e392 100644
--- a/scripts/scr_clean/scr_clean.gml
+++ b/scripts/scr_clean/scr_clean.gml
@@ -211,6 +211,61 @@ function damage_infantry(_damage_data, _shots, _damage, _weapon_index) {
}
}
+ // Bulk man-block with no individual model structs (Guard auxilia): take losses
+ // straight off the men count, the way the enemy's ranks do, since there are no
+ // marine structs for the normal path to kill. Scoped to guard blocks only.
+ if (guard == 1 && array_length(valid_marines) == 0 && men > 0) {
+ // Identical to the enemy Guardsman casualty math in scr_shoot. Reduce each
+ // shot by armour, pool the survivable damage across all shots, convert it to
+ // dead men at dudes_hp each, and cap the kills at the shot count. With
+ // dudes_ac 40 the rank shrugs off low-AP fire (basic Choppaz, Shootas) the
+ // same way the enemy Guardsmen you fight do, and only armour-piercing weapons
+ // cut them down in numbers. Armour is what gives them their staying power, so
+ // there is no separate cohesion cap here.
+ var _g_ac = (array_length(dudes_ac) > 1) ? dudes_ac[1] : 40;
+ var _g_hp = (array_length(dudes_hp) > 1) ? dudes_hp[1] : 5;
+ if (_g_hp <= 0) {
+ _g_hp = 5;
+ }
+ var _g_after = _damage - (_g_ac * _armour_mod);
+ if (_g_after < 0) {
+ _g_after = 0;
+ }
+ var _g_pool = _shots * _g_after;
+ var _g_total = min(floor(_g_pool / _g_hp), _shots);
+ _g_total = min(_g_total, men);
+ if (_g_total < 0) {
+ _g_total = 0;
+ }
+ _damage_data.hits += _shots;
+ // Always name the block, even on a zero-casualty hit, or the enemy attack
+ // flavor prints "fire at ." with a blank target whenever armour soaks the shot.
+ _damage_data.unit_type = "Imperial Guardsman";
+ if (_g_total > 0) {
+ men -= _g_total;
+ if (array_length(dudes_num) > 1) {
+ dudes_num[1] = max(0, dudes_num[1] - _g_total);
+ }
+ // Report through the same lost/lost_num summary the marines use.
+ _damage_data.units_lost += _g_total;
+ _damage_data.unit_type = "Imperial Guardsman";
+ var _g_idx = -1;
+ for (var gk = 0, gl = array_length(lost); gk < gl; gk++) {
+ if (lost[gk] == "Imperial Guardsman") {
+ _g_idx = gk;
+ break;
+ }
+ }
+ if (_g_idx >= 0) {
+ lost_num[_g_idx] += _g_total;
+ } else {
+ array_push(lost, "Imperial Guardsman");
+ array_push(lost_num, _g_total);
+ }
+ }
+ return;
+ }
+
// Apply damage for each shot
for (var shot = 0; shot < _shots; shot++) {
if (array_length(valid_marines) == 0) {
diff --git a/scripts/scr_drop_select_function/scr_drop_select_function.gml b/scripts/scr_drop_select_function/scr_drop_select_function.gml
index 408a8b0032..5f03c9e2a8 100644
--- a/scripts/scr_drop_select_function/scr_drop_select_function.gml
+++ b/scripts/scr_drop_select_function/scr_drop_select_function.gml
@@ -238,6 +238,24 @@ function drop_select_unit_selection() {
obj_ncombat.defending = false;
obj_ncombat.local_forces = roster.local_button.active;
+ // Bring embarked Imperial Guard from the attacking fleet into the assault.
+ // They disembark for the battle, so they are spent from the ships here.
+ obj_ncombat.player_attack_guard = 0;
+ if (attack == 1) {
+ var _sysname = p_target.name;
+ var _ig = player_guardsmen_at(_sysname);
+ if (_ig > 0) {
+ obj_ncombat.player_attack_guard = _ig;
+ with (obj_ini) {
+ for (var _gi = 0; _gi < array_length(ship); _gi++) {
+ if (ship_location[_gi] == _sysname) {
+ ship_guardsmen[_gi] = 0;
+ }
+ }
+ }
+ }
+ }
+
var _planet = obj_ncombat.battle_object.p_feature[obj_ncombat.battle_id];
if (obj_ncombat.battle_object.space_hulk == 1) {
obj_ncombat.battle_special = "space_hulk";
diff --git a/scripts/scr_enemy_ai_d/scr_enemy_ai_d.gml b/scripts/scr_enemy_ai_d/scr_enemy_ai_d.gml
index 80c94f298a..817f2f20c6 100644
--- a/scripts/scr_enemy_ai_d/scr_enemy_ai_d.gml
+++ b/scripts/scr_enemy_ai_d/scr_enemy_ai_d.gml
@@ -538,7 +538,9 @@ function scr_enemy_ai_d() {
for (var i = 1; i <= planets; i++) {
if (i < array_length(system_garrison)) {
var garrison = get_garrison(i);
- garrison.garrison_disposition_change();
+ if (garrison.garrison_force){
+ garrison.garrison_disposition_change();
+ }
}
}
}
diff --git a/scripts/scr_fleet_advisor/scr_fleet_advisor.gml b/scripts/scr_fleet_advisor/scr_fleet_advisor.gml
index ead8f667f8..0696818b72 100644
--- a/scripts/scr_fleet_advisor/scr_fleet_advisor.gml
+++ b/scripts/scr_fleet_advisor/scr_fleet_advisor.gml
@@ -183,6 +183,9 @@ function scr_fleet_advisor() {
location.contents = obj_ini.ship_location[i];
hp.contents = $"{round(obj_ini.ship_hp[i] / obj_ini.ship_maxhp[i] * 100)}%";
carrying.contents = $"{obj_ini.ship_carrying[i]}/{obj_ini.ship_capacity[i]}";
+ if (obj_ini.ship_guardsmen[i] > 0) {
+ carrying.contents += $" +{scr_display_number(obj_ini.ship_guardsmen[i])} IG";
+ }
}
for (var g = 0; g < array_length(_columns_array); g++) {
@@ -234,7 +237,8 @@ function scr_fleet_advisor() {
cn.temp[119] = scr_ship_occupants(i);
}
}
- tooltip_draw($"Carrying ({cn.temp[118]}): {cn.temp[119]}");
+ var _ig_line = (obj_ini.ship_guardsmen[i] > 0) ? $" | Imperial Guard embarked: {scr_display_number(obj_ini.ship_guardsmen[i])}" : "";
+ tooltip_draw($"Carrying ({cn.temp[118]}): {cn.temp[119]}{_ig_line}");
if (_goto_button.click()) {
with (obj_p_fleet) {
var _fleet_ships = fleet_full_ship_array();
diff --git a/scripts/scr_garrison/scr_garrison.gml b/scripts/scr_garrison/scr_garrison.gml
index 511cdcab88..a5b285cd9c 100644
--- a/scripts/scr_garrison/scr_garrison.gml
+++ b/scripts/scr_garrison/scr_garrison.gml
@@ -102,31 +102,31 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
}
static garrison_sustain_damages = function(win_or_loss) {
- var unit;
+ var _unit;
var member_count = array_length(members);
var members_lost = 0;
for (var i = member_count - 1; i >= 0; i--) {
- unit = members[i];
- if (unit.hp() <= 0) {
+ _unit = members[i];
+ if (_unit.hp() <= 0) {
continue;
}
if (win_or_loss == "win") {
if (irandom(1) == 0) {
- unit.add_or_sub_health(-40);
+ _unit.add_or_sub_health(-40);
}
- if (unit.hp() < 0) {
- if (unit.calculate_death()) {
- kill_and_recover(unit.company, unit.marine_number);
+ if (_unit.hp() < 0) {
+ if (_unit.calculate_death()) {
+ kill_and_recover(_unit.company, _unit.marine_number);
members_lost++;
array_delete(members, i, 1);
}
}
} else if (win_or_loss == "loose") {
- unit.add_or_sub_health(-50);
- if (unit.hp() < 0) {
- if (unit.calculate_death()) {
- kill_and_recover(unit.company, unit.marine_number);
+ _unit.add_or_sub_health(-50);
+ if (_unit.hp() < 0) {
+ if (_unit.calculate_death()) {
+ kill_and_recover(_unit.company, _unit.marine_number);
array_delete(members, i, 1);
members_lost++;
}
@@ -142,27 +142,27 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
garrison_leader = false;
var hierarchy = role_hierarchy();
var leader_hier_pos = array_length(hierarchy);
- var unit;
+ var _unit;
for (var _squad = 0; _squad < array_length(garrison_squads); _squad++) {
var _leader = garrison_squads[_squad].determine_leader();
- unit = fetch_unit(_leader);
+ _unit = fetch_unit(_leader);
if (garrison_leader == false) {
- garrison_leader = unit;
+ garrison_leader = _unit;
for (var r = 0; r < array_length(hierarchy); r++) {
- if (hierarchy[r] == unit.role()) {
+ if (hierarchy[r] == _unit.role()) {
leader_hier_pos = r;
break;
}
}
- } else if (hierarchy[leader_hier_pos] == unit.role()) {
- if (garrison_leader.experience < unit.experience) {
- garrison_leader = unit;
+ } else if (hierarchy[leader_hier_pos] == _unit.role()) {
+ if (garrison_leader.experience < _unit.experience) {
+ garrison_leader = _unit;
}
} else {
for (var r = 0; r < leader_hier_pos; r++) {
- if (hierarchy[r] == unit.role()) {
+ if (hierarchy[r] == _unit.role()) {
leader_hier_pos = r;
- garrison_leader = unit;
+ garrison_leader = _unit;
break;
}
}
@@ -172,11 +172,11 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
static exp_rewards = function() {
var m;
- var unit;
+ var _unit;
for (var s = 0; s < array_length(garrison_squads); s++) {
_squad = garrison_squads[s];
for (m = 0; m < array_length(_squad.members); m++) {
- unit = fetch_unit(_squad.members[m]);
+ _unit = fetch_unit(_squad.members[m]);
}
}
};
@@ -225,7 +225,7 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
var _time_modifier = max(time_on_planet / 2.5, 10);
- if (!garrison_leader) {
+ if (!is_struct(garrison_leader)) {
find_leader();
}
var _diplomatic_leader = false;
@@ -246,8 +246,14 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
dispo_change = 50;
}
} else {
- var charisma_test = global.character_tester.standard_test(garrison_leader, "charisma", final_modifier);
- if (!charisma_test[0]) {
+ var _charisma_test;
+ if (is_struct(garrison_leader)){
+ _charisma_test = global.character_tester.standard_test(garrison_leader, "charisma", final_modifier);
+ } else {
+ _charisma_test = [bool(irandom(1)), irandom_range(0, 25)];
+ }
+ var dispo_change = _charisma_test[1] / 10;
+ if (!_charisma_test[0]) {
if (_diplomatic_leader) {
dispo_change = "none";
} else {
@@ -258,7 +264,6 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
}
}
} else {
- dispo_change = charisma_test[1] / 10;
_pdata.add_disposition(dispo_change);
}
}
@@ -276,7 +281,7 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
//var squad_positions;
var _leader;
var m;
- var unit;
+ var _unit;
var effort = "failed";
switch (enemy) {
case eFACTION.ORK: //trying to come up with how we might auto evaluate a squads fate in a battle
@@ -295,30 +300,30 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
case 1:
for (m = 0; m < array_length(_squad.members); m++) {
//see how _squad members faired in their circumstances
- unit = _squad.fetch_member(m);
- if (irandom(unit.weapon_skill) > margin) {
- //if unit "wins" in combat test against weapon skill as this is a cc enagement
- if (irandom(4999) < sqr(unit.weapon_skill - 35) + unit.luck) {
- //chance unit does something heroic
+ _unit = _squad.fetch_member(m);
+ if (irandom(_unit.weapon_skill) > margin) {
+ //if _unit "wins" in combat test against weapon skill as this is a cc enagement
+ if (irandom(4999) < sqr(_unit.weapon_skill - 35) + _unit.luck) {
+ //chance _unit does something heroic
//wonder if luck should be renamed to fate ??
var alligience = "imperial";
switch (choose("still_standing", "slay_champion", "hold_breach")) {
//feats and traits are stored seperatly but use very similar mechanics
- //this is because i am not linking feats to indepth mecanics theyre just logs of unit deeps
- //however a unit that collects a couple of slay_champion feats may earn the warlord_slayer trait with built in mechanics
+ //this is because i am not linking feats to indepth mecanics theyre just logs of _unit deeps
+ //however a _unit that collects a couple of slay_champion feats may earn the warlord_slayer trait with built in mechanics
//think of it as a more story lead skill tree
//equally a feat does not be stored anywhere you can just makeem up on the fly where as a trait has to be stored in teh global trait list
//this may all be subject to change but in my head it's coming together
case "hold_breach":
- unit.add_feat({ident: "hold_breach", title: "Held breach", planet: planet, grade: 5, location: "location", text: $"Single Handedly held a breach in the {alligience} during the {effort} {attack_defend} of {location} {scr_roman_numeral[planet - 1]} from the Orks"});
+ _unit.add_feat({ident: "hold_breach", title: "Held breach", planet: planet, grade: 5, location: "location", text: $"Single Handedly held a breach in the {alligience} during the {effort} {attack_defend} of {location} {scr_roman_numeral[planet - 1]} from the Orks"});
break;
case "still_standing":
- unit.add_feat({ident: "still_standing", planet: planet, location: "location", text: $"Was pullled from beneath the carcesses of his slain {alligience} during the {effort} {attack_defend} of {location} {scr_roman_numeral[planet - 1]} from the Orks"});
+ _unit.add_feat({ident: "still_standing", planet: planet, location: "location", text: $"Was pullled from beneath the carcesses of his slain {alligience} during the {effort} {attack_defend} of {location} {scr_roman_numeral[planet - 1]} from the Orks"});
}
}
} else {
- //unit "looses combat"
- var toughness_check = irandom(99) - (floor(unit.constitution) / 8); //we can build some static test functions for these sorts of things
+ //_unit "looses combat"
+ var toughness_check = irandom(99) - (floor(_unit.constitution) / 8); //we can build some static test functions for these sorts of things
//now we need some sort of toughness to chart to check against
//then take a roll against a seperate injury chart or some such thing
//roll against piett??? chance or a miracle ??
diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
index 2c8e1cd5da..466be83725 100644
--- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
+++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
@@ -130,6 +130,57 @@ function scr_player_combat_weapon_stacks() {
exit;
}
+ if (guard == 1) {
+ var _gi = 0;
+ var _pg = men; // current Guardsmen in this block
+ var _tk = veh; // current Leman Russ tanks in this block
+
+ // Massed lasguns, identical to the enemy Guardsman profile in scr_en_weapon:
+ // one Lasgun per man, attack 60, armour pierce 1, range 6, 30 rounds.
+ _gi += 1;
+ wep[_gi] = "Lasgun";
+ wep_num[_gi] = max(1, _pg);
+ range[_gi] = 6;
+ att[_gi] = 60 * wep_num[_gi];
+ apa[_gi] = 1;
+ ammo[_gi] = 30;
+ splash[_gi] = 0;
+
+ // Heavy weapons teams. Real Heavy Bolter profile: attack 120, range 16.
+ _gi += 1;
+ wep[_gi] = "Heavy Bolter";
+ wep_num[_gi] = max(1, round(_pg / 200));
+ range[_gi] = 16;
+ att[_gi] = 120 * wep_num[_gi];
+ apa[_gi] = 0;
+ ammo[_gi] = -1;
+ splash[_gi] = 0;
+
+ // Leman Russ guns, scaled to the tanks still alive: Battle Cannon 300 (AP)
+ // and Lascannon 200 (AP).
+ if (_tk > 0) {
+ _gi += 1;
+ wep[_gi] = "Battle Cannon";
+ wep_num[_gi] = _tk;
+ range[_gi] = 12;
+ att[_gi] = 300 * wep_num[_gi];
+ apa[_gi] = round(att[_gi] * 0.6);
+ ammo[_gi] = -1;
+ splash[_gi] = 0;
+
+ _gi += 1;
+ wep[_gi] = "Lascannon";
+ wep_num[_gi] = _tk;
+ range[_gi] = 20;
+ att[_gi] = 200 * wep_num[_gi];
+ apa[_gi] = round(att[_gi] * 0.8);
+ ammo[_gi] = -1;
+ splash[_gi] = 0;
+ }
+
+ exit;
+ }
+
var i, g = 0;
veh = 0;
men = 0;
diff --git a/scripts/scr_player_ship_functions/scr_player_ship_functions.gml b/scripts/scr_player_ship_functions/scr_player_ship_functions.gml
index 8964092127..beee217c42 100644
--- a/scripts/scr_player_ship_functions/scr_player_ship_functions.gml
+++ b/scripts/scr_player_ship_functions/scr_player_ship_functions.gml
@@ -584,3 +584,18 @@ function tithe_guardsmen(system_name, planet, amount) {
_pdata.edit_guardsmen(amount);
return amount;
}
+
+/// @description Total embarked Guard on player ships currently at a given system.
+/// @param {string} system_name
+/// @returns {real}
+function player_guardsmen_at(system_name) {
+ var _total = 0;
+ with (obj_ini) {
+ for (var i = 0; i < array_length(ship); i++) {
+ if (ship[i] == "") continue;
+ if (ship_location[i] != system_name) continue;
+ _total += ship_guardsmen[i];
+ }
+ }
+ return _total;
+}
diff --git a/scripts/scr_ui_settings/scr_ui_settings.gml b/scripts/scr_ui_settings/scr_ui_settings.gml
index de7de8a8b4..3239d36915 100644
--- a/scripts/scr_ui_settings/scr_ui_settings.gml
+++ b/scripts/scr_ui_settings/scr_ui_settings.gml
@@ -694,7 +694,7 @@ function scr_draw_mass_equip_gui(){
if (mouse_button_clicked() && (good1 + good2 + good3 + good4 + good5 == 5)) {
engage = true;
refresh = true;
- effect_create_above(ef_firework, 800, 400, 5, c_yellow);
+ effect_create_depth(depth - 1, ef_firework, 800, 400, 5, c_yellow);
}
}
draw_set_alpha(1);
diff --git a/scripts/scr_unit_traits/scr_unit_traits.gml b/scripts/scr_unit_traits/scr_unit_traits.gml
index bebec11f65..f901bf4817 100644
--- a/scripts/scr_unit_traits/scr_unit_traits.gml
+++ b/scripts/scr_unit_traits/scr_unit_traits.gml
@@ -1098,8 +1098,8 @@ function scr_marine_trait_spawning(distribution_set) {
}
if (struct_exists(dist_modifiers, "trial_type")) {
if (struct_exists(dist_modifiers, "recruit_trial")) {
- trial_data = dist_modifiers.recruit_trial;
- for (var t = 0; t < array_length(trial_data); t++) {
+ var type_data = dist_modifiers.recruit_trial;
+ for (var t = 0; t < array_length(type_data); t++) {
if (type_data[t][0] == recruit_world_data.aspirant_trial) {
dist_rate[1] += type_data[t][1];
}
From e088871a4f547877dde2eac8c6f0a2348daab46e Mon Sep 17 00:00:00 2001
From: KestasV
Date: Wed, 17 Jun 2026 20:01:20 +0300
Subject: [PATCH 03/50] Delete Alarm_0.gml
---
objects/obj_enunit/Alarm_0.gml | 413 ---------------------------------
1 file changed, 413 deletions(-)
delete mode 100644 objects/obj_enunit/Alarm_0.gml
diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml
deleted file mode 100644
index 96a4f17d48..0000000000
--- a/objects/obj_enunit/Alarm_0.gml
+++ /dev/null
@@ -1,413 +0,0 @@
-//* This alarm is responsible for the enemy target column selection;
-
-if (!instance_exists(obj_pnunit)) {
- exit;
-}
-
-enemy = flank ? get_leftmost() : get_rightmost();
-if (enemy == "none") {
- exit;
-}
-
-var target_unit_index = 0;
-var enemy2 = enemy;
-
-//In melee check
-engaged = collision_point(x - 10, y, obj_pnunit, 0, 1) || collision_point(x + 10, y, obj_pnunit, 0, 1);
-
-if (!engaged) {
- // Shooting
- for (var i = 0; i < array_length(wep); i++) {
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
-
- if (wep[i] == "" || wep_num[i] == 0) {
- continue;
- }
-
- if ((range[i] == 1) || (ammo[i] == 0)) {
- // LOGGER.debug($"A melee or no ammo weapon was found! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}; Ammo: {ammo[i]}");
- continue;
- }
-
- if (range[i] == 0) {
- LOGGER.error($"{wep[i]} has broken range! This shouldn't happen! Range: {range[i]}; Ammo: {ammo[i]}; Owner: {wep_owner[i]}");
- // LOGGER.debug($"A broken weapon was found! i:{i}; Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}; Ammo: {ammo[i]}");
- continue;
- }
-
- if (!target_block_is_valid(enemy, obj_pnunit)) {
- enemy = flank == 0 ? get_rightmost() : get_leftmost();
- if (!target_block_is_valid(enemy, obj_pnunit)) {
- exit;
- }
- }
-
- if (instance_exists(obj_nfort) && !flank) {
- enemy = instance_nearest(x, y, obj_nfort);
- dist = 2;
- } else {
- dist = get_block_distance(enemy);
- }
-
- target_unit_index = 0;
-
- if (range[i] >= dist) {
- // The weapon is in range;
- var _target_vehicles = apa[i] > 0 ? true : false; // AP weapons target vehicles
-
- // if (string_count("Gauss",wep[i])>0) then _target_vehicles=true;
- // if (wep[i]="Missile Launcher") or (wep[i]="Rokkit Launcha") or (wep[i]="Kannon") then _target_vehicles=true;
- // if (wep[i]="Big Shoota") then _target_vehicles=false;
- // if (wep[i]="Devourer") then _target_vehicles=false;
- // if (wep[i]="Gauss Particle Cannon") or (wep[i]="Overcharged Gauss Cannon") or (wep[i]="Particle Whip") then _target_vehicles=true;
-
- // Weird alpha strike mechanic, that changes target unit index to CM;
- if (((wep[i] == "Power Fist") || (wep[i] == "Bolter")) && (obj_ncombat.alpha_strike > 0) && (wep_num[i] > 5)) {
- obj_ncombat.alpha_strike -= 0.5;
-
- var cm_present = false;
- var cm_index = -1;
- var cm_block = false;
- with (obj_pnunit) {
- for (var u = 0; u < array_length(unit_struct); u++) {
- if (marine_type[u] == obj_ini.role[100][eROLE.CHAPTERMASTER]) {
- cm_present = true;
- cm_index = u;
- cm_block = id;
- }
- }
- }
- if (cm_present) {
- enemy = cm_block;
- target_unit_index = cm_index;
- }
- }
-
- // AP weapons attacking vehicles and forts;
- var _no_vehicles_present = false;
- if (_target_vehicles) {
- var _shot = false;
- if ((!instance_exists(obj_nfort)) || flank) {
- if (block_has_armour(enemy) || (enemy.veh_type[1] == "Defenses")) {
- scr_shoot(i, enemy, target_unit_index, "arp", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- continue;
- } else {
- // Front block has no armour. If there are other blocks behind,
- // look for a vehicle to hit. If none is found anywhere (including
- // a single men-only block, such as a lone Guard rank), fall back
- // to shooting the men instead of idling. The original code gated
- // this whole fallback behind a multi-block check, so a lone
- // men-only block left every AP weapon firing zero shots.
- if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
- var x2 = enemy.x;
- repeat (instance_number(obj_pnunit) - 1) {
- x2 += flank == 0 ? -10 : 10;
- var enemy2 = instance_nearest(x2, y, obj_pnunit);
- if (!target_block_is_valid(enemy2, obj_pnunit)) {
- continue;
- }
- if (range[i] < get_block_distance(enemy2)) {
- break;
- }
- if (block_has_armour(enemy2)) {
- scr_shoot(i, enemy2, target_unit_index, "arp", "ranged");
- _shot = true;
- break;
- }
- }
- }
- if (!_shot) {
- _no_vehicles_present = true;
- _target_vehicles = false;
- }
- }
- } else {
- enemy = instance_nearest(x, y, obj_nfort);
- scr_shoot(i, enemy, 1, "arp", "wall");
- // LOGGER.debug($"I'm shooting at the fort! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- continue;
- }
- }
-
- // Non-AP weapons attacking normal units;
- if ((!_target_vehicles) && ((!instance_exists(obj_nfort)) || flank)) {
- var _shot = false;
- if (enemy.men > 0) {
- // There are marines in the first column;
- scr_shoot(i, enemy, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- continue;
- } else if (instance_number(obj_pnunit) > 1) {
- // There were no marines in the first column, looking behind;
- var _column_size_value = enemy.column_size;
- var x2 = enemy.x;
-
- repeat (instance_number(obj_pnunit) - 1) {
- x2 += !flank ? 10 : -10;
- var enemy2 = instance_nearest(x2, y, obj_pnunit);
- if (!target_block_is_valid(enemy2, obj_pnunit)) {
- // LOGGER.debug($"The block is invalid!");
- continue;
- }
-
- if (range[i] < get_block_distance(enemy2)) {
- // LOGGER.debug($"The range is bad!");
- break;
- }
-
- var _back_column_size_value = enemy2.column_size;
- if (_back_column_size_value < _column_size_value) {
- // LOGGER.debug($"Protection value is too big!");
- continue;
- } else {
- // Calculate chance of shots passing through to back row
- // Higher ratio of back column size to front column size increases pass-through chance
- // Maximum chance capped at 40% to ensure some protection remains
- var _pass_chance = ((_back_column_size_value / _column_size_value) - 1) * 100;
- if (irandom_range(1, 100) < min(_pass_chance, 80)) {
- // LOGGER.debug($"I failed the protection check!");
- continue;
- }
- }
- scr_shoot(i, enemy2, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a normal unit in another row! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- _shot = true;
- break;
- }
- }
-
- // We failed to find normal units to attack, attacking vehicles with a non-AP weapon;
- //TODO: All of these code blocks should be functions instead;
- if (!_shot && !_no_vehicles_present) {
- if ((!instance_exists(obj_nfort)) || flank) {
- if (block_has_armour(enemy) || (enemy.veh_type[1] == "Defenses")) {
- scr_shoot(i, enemy, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- continue;
- } else if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
- var x2 = enemy.x;
- repeat (instance_number(obj_pnunit) - 1) {
- x2 += flank == 0 ? -10 : 10;
- var enemy2 = instance_nearest(x2, y, obj_pnunit);
- if (!target_block_is_valid(enemy2, obj_pnunit)) {
- continue;
- }
- if (range[i] < get_block_distance(enemy2)) {
- break;
- }
- if (block_has_armour(enemy2)) {
- scr_shoot(i, enemy2, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle in another row, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- break;
- }
- }
- }
- } else {
- enemy = instance_nearest(x, y, obj_nfort);
- scr_shoot(i, enemy, 1, "att", "wall");
- // LOGGER.debug($"I'm shooting at a fort, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- continue;
- }
- }
- }
- } else {
- // LOGGER.debug($"I can't shoot, my range is too small! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}");
- continue;
- }
- LOGGER.error($"{wep[i]} didn't find a valid target! This shouldn't happen!");
- // LOGGER.debug($"We didn't find a valid target! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
- }
-} else if ((engaged || enemy.engaged) && target_block_is_valid(enemy, obj_pnunit)) {
- //TODO: The melee code was not refactored;
- // Melee
- engaged = 1;
- var i = 0, dist = 999, no_ap = 1;
- // dist=point_distance(x,y,enemy.x,enemy.y)/10;
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
- for (var i = 0; i < array_length(wep); i++) {
- if (wep[i] == "" || wep_num[i] == 0) {
- continue;
- }
- var _armour_piercing = 0;
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
- if (!flank) {
- enemy = get_rightmost();
- enemy2 = enemy;
- if (enemy == "none") {
- exit;
- }
- dist = get_block_distance(enemy);
- } else if (flank) {
- enemy = get_leftmost();
- enemy2 = enemy;
- if (enemy == "none") {
- exit;
- }
- dist = get_block_distance(enemy);
- }
-
- if ((apa[i] == 0) || (apa[i] < att[i])) {
- no_ap += 1;
- }
- //LOGGER.debug($"{range[i]},{att[i]},{apa[i]},{wep[i]},{enemy}")
- if ((range[i] <= 2) || (floor(range[i]) != range[i])) {
- // Weapon meets preliminary checks
- if (apa[i] > 0) {
- _armour_piercing = 1;
- } // Determines if it is _armour_piercing or not
- if (_armour_piercing && instance_exists(obj_nfort) && (!flank)) {
- // Huff and puff and blow the wall down
- enemy = instance_nearest(x, y, obj_nfort);
- scr_shoot(i, enemy, 1, "arp", "wall");
- continue;
- }
- if (_armour_piercing) {
- // Check for vehicles
- var g = 0, good = 0, enemy2;
-
- if (block_has_armour(enemy)) {
- // good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell
- scr_shoot(i, enemy, 1, "arp", "melee");
- good = true;
- }
- if (!good) {
- _armour_piercing = 0;
- } // Fuck it, shoot at infantry
- }
-
- if ((!_armour_piercing) && target_block_is_valid(enemy, obj_pnunit)) {
- // Check for men
- // show_message(string(wep[i]));
- var enemy2, g = 0, good = 0;
- if (enemy.men) {
- // good=scr_target(enemy,"men");// First target has vehicles, blow it to hell
- scr_shoot(i, enemy, 1, "att", "melee");
- } else if (block_has_armour(enemy)) {
- scr_shoot(i, enemy, 1, "arp", "melee"); // Swing anyways, maybe they'll get lucky
- }
- }
- }
- }
-
- // if (no_ap=30) and (enemy.men=0) and (flank=0){// Next turn?
-
- // }
-}
-
-instance_activate_object(obj_pnunit);
-
-//TODO: Everything bellow has to be scrapped and reworked;
-//! Commented out stuff bellow, until I understand why it exists;
-/*if (image_index == -500) {
- var leftest, charge = 0,
- enemy2 = 0;
-
- with(obj_pnunit) {
- if (x < -4000) {
- instance_deactivate_object(id);
- }
- }
-
- if (flank == 0) {
- move_unit_block("west");
- // instance_activate_object(obj_cursor);
- }
- if (flank == 1) {
- enemy = instance_nearest(x, y, obj_pnunit); // Right most enemy
- enemy2 = enemy;
- // if (collision_point(x+10,y,obj_pnunit,0,1)) then engaged=1;
- // if (!collision_point(x+10,y,obj_pnunit,0,1)) then engaged=0;
- move_unit_block();
-
- if (!position_empty(x + 10, y)) {
- engaged = 1;
- } // Quick smash
- // instance_activate_object(obj_cursor);
- }
-
-if (!collision_point(x+10,y,obj_pnunit,0,1)) and (!collision_point(x-10,y,obj_pnunit,0,1)) then engaged=0;
-if (collision_point(x+10,y,obj_pnunit,0,1)) or (collision_point(x-10,y,obj_pnunit,0,1)) then engaged=1;
-
-
-
-var range_shooti;
-
- i=0;
-
-
- repeat(30){i+=1;
-
-
-
- dist=floor(point_distance(enemy2.x,enemy2.y,x,y)/10);
-
-
-
-
-
- range_shoot="";
-
- if (wep[i]!="") and (range[i]>=dist) and (ammo[i]!=0){
- if (range[i]!=1) and (engaged=0) then range_shoot="ranged";
- if ((range[i]!=floor(range[i])) or (range[i]=1)) and (engaged=1) then range_shoot="melee";
- }
-
-
-
-
-
-
-
- if (wep[i]!="") and (range_shoot="ranged") and (range[i]>=dist){// Weapon meets preliminary checks
- var _armour_piercing;_armour_piercing=0;if (apa[i]>att[i]) then _armour_piercing=1;// Determines if it is _armour_piercing or not
-
- // if (wep[i]="Missile Launcher") then _armour_piercing=1;
-
- if (string_count("Gauss",wep[i])>0) then _armour_piercing=1;
-
- if (wep[i]="Missile Launcher") or (wep[i]="Rokkit Launcha") or (wep[i]="Kannon") then _armour_piercing=1;
- if (wep[i]="Big Shoota") then _armour_piercing=0;if (wep[i]="Devourer") then _armour_piercing=0;
- if (wep[i]="Gauss Particle Cannon") or (wep[i]="Overcharged Gauss Cannon") or (wep[i]="Particle Whip") then _armour_piercing=1;
-
-
- if (instance_exists(enemy2)){
- if (enemy2.veh+enemy2.dreads>0) and (enemy2.men=0) and (apa[i]>10) then _armour_piercing=1;
-
- if (_armour_piercing=1) and (once_only=0){// Check for vehicles
- var g,good;g=0;good=0;
-
- if (enemy.veh>0){
- // good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell
- scr_shoot(i,enemy2,good,"arp","ranged");
- }
- if (good=0) and (instance_number(obj_pnunit)>1){// First target does not have vehicles, cycle through objects to find one that has vehicles
- var x2;x2=enemy2.x;
- repeat(instance_number(obj_enunit)-1){
- if (good=0){
- x2+=10;enemy2=instance_nearest(x2,y,obj_pnunit);
- if (enemy2.veh+enemy2.dreads>0) and (good=0){
- good=scr_target(enemy2,"veh");// This target has vehicles, blow it to hell
- scr_shoot(i,enemy2,good,"arp","ranged");once_only=1;
- }
- }
- }
- }
- if (good=0) then _armour_piercing=0;// Fuck it, shoot at infantry
- }
- }
-
- }
-
-
-
-}
-
- instance_activate_object(obj_pnunit);
-} */
From 503a7a99a854bf4b672870a6da2d668f008d3adb Mon Sep 17 00:00:00 2001
From: KestasV
Date: Wed, 17 Jun 2026 20:01:56 +0300
Subject: [PATCH 04/50] Revert "Delete Alarm_0.gml"
This reverts commit e088871a4f547877dde2eac8c6f0a2348daab46e.
---
objects/obj_enunit/Alarm_0.gml | 413 +++++++++++++++++++++++++++++++++
1 file changed, 413 insertions(+)
create mode 100644 objects/obj_enunit/Alarm_0.gml
diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml
new file mode 100644
index 0000000000..96a4f17d48
--- /dev/null
+++ b/objects/obj_enunit/Alarm_0.gml
@@ -0,0 +1,413 @@
+//* This alarm is responsible for the enemy target column selection;
+
+if (!instance_exists(obj_pnunit)) {
+ exit;
+}
+
+enemy = flank ? get_leftmost() : get_rightmost();
+if (enemy == "none") {
+ exit;
+}
+
+var target_unit_index = 0;
+var enemy2 = enemy;
+
+//In melee check
+engaged = collision_point(x - 10, y, obj_pnunit, 0, 1) || collision_point(x + 10, y, obj_pnunit, 0, 1);
+
+if (!engaged) {
+ // Shooting
+ for (var i = 0; i < array_length(wep); i++) {
+ if (!instance_exists(obj_pnunit)) {
+ exit;
+ }
+
+ if (wep[i] == "" || wep_num[i] == 0) {
+ continue;
+ }
+
+ if ((range[i] == 1) || (ammo[i] == 0)) {
+ // LOGGER.debug($"A melee or no ammo weapon was found! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}; Ammo: {ammo[i]}");
+ continue;
+ }
+
+ if (range[i] == 0) {
+ LOGGER.error($"{wep[i]} has broken range! This shouldn't happen! Range: {range[i]}; Ammo: {ammo[i]}; Owner: {wep_owner[i]}");
+ // LOGGER.debug($"A broken weapon was found! i:{i}; Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}; Ammo: {ammo[i]}");
+ continue;
+ }
+
+ if (!target_block_is_valid(enemy, obj_pnunit)) {
+ enemy = flank == 0 ? get_rightmost() : get_leftmost();
+ if (!target_block_is_valid(enemy, obj_pnunit)) {
+ exit;
+ }
+ }
+
+ if (instance_exists(obj_nfort) && !flank) {
+ enemy = instance_nearest(x, y, obj_nfort);
+ dist = 2;
+ } else {
+ dist = get_block_distance(enemy);
+ }
+
+ target_unit_index = 0;
+
+ if (range[i] >= dist) {
+ // The weapon is in range;
+ var _target_vehicles = apa[i] > 0 ? true : false; // AP weapons target vehicles
+
+ // if (string_count("Gauss",wep[i])>0) then _target_vehicles=true;
+ // if (wep[i]="Missile Launcher") or (wep[i]="Rokkit Launcha") or (wep[i]="Kannon") then _target_vehicles=true;
+ // if (wep[i]="Big Shoota") then _target_vehicles=false;
+ // if (wep[i]="Devourer") then _target_vehicles=false;
+ // if (wep[i]="Gauss Particle Cannon") or (wep[i]="Overcharged Gauss Cannon") or (wep[i]="Particle Whip") then _target_vehicles=true;
+
+ // Weird alpha strike mechanic, that changes target unit index to CM;
+ if (((wep[i] == "Power Fist") || (wep[i] == "Bolter")) && (obj_ncombat.alpha_strike > 0) && (wep_num[i] > 5)) {
+ obj_ncombat.alpha_strike -= 0.5;
+
+ var cm_present = false;
+ var cm_index = -1;
+ var cm_block = false;
+ with (obj_pnunit) {
+ for (var u = 0; u < array_length(unit_struct); u++) {
+ if (marine_type[u] == obj_ini.role[100][eROLE.CHAPTERMASTER]) {
+ cm_present = true;
+ cm_index = u;
+ cm_block = id;
+ }
+ }
+ }
+ if (cm_present) {
+ enemy = cm_block;
+ target_unit_index = cm_index;
+ }
+ }
+
+ // AP weapons attacking vehicles and forts;
+ var _no_vehicles_present = false;
+ if (_target_vehicles) {
+ var _shot = false;
+ if ((!instance_exists(obj_nfort)) || flank) {
+ if (block_has_armour(enemy) || (enemy.veh_type[1] == "Defenses")) {
+ scr_shoot(i, enemy, target_unit_index, "arp", "ranged");
+ // LOGGER.debug($"I'm shooting at a vehicle! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ continue;
+ } else {
+ // Front block has no armour. If there are other blocks behind,
+ // look for a vehicle to hit. If none is found anywhere (including
+ // a single men-only block, such as a lone Guard rank), fall back
+ // to shooting the men instead of idling. The original code gated
+ // this whole fallback behind a multi-block check, so a lone
+ // men-only block left every AP weapon firing zero shots.
+ if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
+ var x2 = enemy.x;
+ repeat (instance_number(obj_pnunit) - 1) {
+ x2 += flank == 0 ? -10 : 10;
+ var enemy2 = instance_nearest(x2, y, obj_pnunit);
+ if (!target_block_is_valid(enemy2, obj_pnunit)) {
+ continue;
+ }
+ if (range[i] < get_block_distance(enemy2)) {
+ break;
+ }
+ if (block_has_armour(enemy2)) {
+ scr_shoot(i, enemy2, target_unit_index, "arp", "ranged");
+ _shot = true;
+ break;
+ }
+ }
+ }
+ if (!_shot) {
+ _no_vehicles_present = true;
+ _target_vehicles = false;
+ }
+ }
+ } else {
+ enemy = instance_nearest(x, y, obj_nfort);
+ scr_shoot(i, enemy, 1, "arp", "wall");
+ // LOGGER.debug($"I'm shooting at the fort! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ continue;
+ }
+ }
+
+ // Non-AP weapons attacking normal units;
+ if ((!_target_vehicles) && ((!instance_exists(obj_nfort)) || flank)) {
+ var _shot = false;
+ if (enemy.men > 0) {
+ // There are marines in the first column;
+ scr_shoot(i, enemy, target_unit_index, "att", "ranged");
+ // LOGGER.debug($"I'm shooting at a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ continue;
+ } else if (instance_number(obj_pnunit) > 1) {
+ // There were no marines in the first column, looking behind;
+ var _column_size_value = enemy.column_size;
+ var x2 = enemy.x;
+
+ repeat (instance_number(obj_pnunit) - 1) {
+ x2 += !flank ? 10 : -10;
+ var enemy2 = instance_nearest(x2, y, obj_pnunit);
+ if (!target_block_is_valid(enemy2, obj_pnunit)) {
+ // LOGGER.debug($"The block is invalid!");
+ continue;
+ }
+
+ if (range[i] < get_block_distance(enemy2)) {
+ // LOGGER.debug($"The range is bad!");
+ break;
+ }
+
+ var _back_column_size_value = enemy2.column_size;
+ if (_back_column_size_value < _column_size_value) {
+ // LOGGER.debug($"Protection value is too big!");
+ continue;
+ } else {
+ // Calculate chance of shots passing through to back row
+ // Higher ratio of back column size to front column size increases pass-through chance
+ // Maximum chance capped at 40% to ensure some protection remains
+ var _pass_chance = ((_back_column_size_value / _column_size_value) - 1) * 100;
+ if (irandom_range(1, 100) < min(_pass_chance, 80)) {
+ // LOGGER.debug($"I failed the protection check!");
+ continue;
+ }
+ }
+ scr_shoot(i, enemy2, target_unit_index, "att", "ranged");
+ // LOGGER.debug($"I'm shooting at a normal unit in another row! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ _shot = true;
+ break;
+ }
+ }
+
+ // We failed to find normal units to attack, attacking vehicles with a non-AP weapon;
+ //TODO: All of these code blocks should be functions instead;
+ if (!_shot && !_no_vehicles_present) {
+ if ((!instance_exists(obj_nfort)) || flank) {
+ if (block_has_armour(enemy) || (enemy.veh_type[1] == "Defenses")) {
+ scr_shoot(i, enemy, target_unit_index, "att", "ranged");
+ // LOGGER.debug($"I'm shooting at a vehicle, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ continue;
+ } else if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
+ var x2 = enemy.x;
+ repeat (instance_number(obj_pnunit) - 1) {
+ x2 += flank == 0 ? -10 : 10;
+ var enemy2 = instance_nearest(x2, y, obj_pnunit);
+ if (!target_block_is_valid(enemy2, obj_pnunit)) {
+ continue;
+ }
+ if (range[i] < get_block_distance(enemy2)) {
+ break;
+ }
+ if (block_has_armour(enemy2)) {
+ scr_shoot(i, enemy2, target_unit_index, "att", "ranged");
+ // LOGGER.debug($"I'm shooting at a vehicle in another row, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ break;
+ }
+ }
+ }
+ } else {
+ enemy = instance_nearest(x, y, obj_nfort);
+ scr_shoot(i, enemy, 1, "att", "wall");
+ // LOGGER.debug($"I'm shooting at a fort, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ continue;
+ }
+ }
+ }
+ } else {
+ // LOGGER.debug($"I can't shoot, my range is too small! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}");
+ continue;
+ }
+ LOGGER.error($"{wep[i]} didn't find a valid target! This shouldn't happen!");
+ // LOGGER.debug($"We didn't find a valid target! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
+ }
+} else if ((engaged || enemy.engaged) && target_block_is_valid(enemy, obj_pnunit)) {
+ //TODO: The melee code was not refactored;
+ // Melee
+ engaged = 1;
+ var i = 0, dist = 999, no_ap = 1;
+ // dist=point_distance(x,y,enemy.x,enemy.y)/10;
+ if (!instance_exists(obj_pnunit)) {
+ exit;
+ }
+ for (var i = 0; i < array_length(wep); i++) {
+ if (wep[i] == "" || wep_num[i] == 0) {
+ continue;
+ }
+ var _armour_piercing = 0;
+ if (!instance_exists(obj_pnunit)) {
+ exit;
+ }
+ if (!flank) {
+ enemy = get_rightmost();
+ enemy2 = enemy;
+ if (enemy == "none") {
+ exit;
+ }
+ dist = get_block_distance(enemy);
+ } else if (flank) {
+ enemy = get_leftmost();
+ enemy2 = enemy;
+ if (enemy == "none") {
+ exit;
+ }
+ dist = get_block_distance(enemy);
+ }
+
+ if ((apa[i] == 0) || (apa[i] < att[i])) {
+ no_ap += 1;
+ }
+ //LOGGER.debug($"{range[i]},{att[i]},{apa[i]},{wep[i]},{enemy}")
+ if ((range[i] <= 2) || (floor(range[i]) != range[i])) {
+ // Weapon meets preliminary checks
+ if (apa[i] > 0) {
+ _armour_piercing = 1;
+ } // Determines if it is _armour_piercing or not
+ if (_armour_piercing && instance_exists(obj_nfort) && (!flank)) {
+ // Huff and puff and blow the wall down
+ enemy = instance_nearest(x, y, obj_nfort);
+ scr_shoot(i, enemy, 1, "arp", "wall");
+ continue;
+ }
+ if (_armour_piercing) {
+ // Check for vehicles
+ var g = 0, good = 0, enemy2;
+
+ if (block_has_armour(enemy)) {
+ // good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell
+ scr_shoot(i, enemy, 1, "arp", "melee");
+ good = true;
+ }
+ if (!good) {
+ _armour_piercing = 0;
+ } // Fuck it, shoot at infantry
+ }
+
+ if ((!_armour_piercing) && target_block_is_valid(enemy, obj_pnunit)) {
+ // Check for men
+ // show_message(string(wep[i]));
+ var enemy2, g = 0, good = 0;
+ if (enemy.men) {
+ // good=scr_target(enemy,"men");// First target has vehicles, blow it to hell
+ scr_shoot(i, enemy, 1, "att", "melee");
+ } else if (block_has_armour(enemy)) {
+ scr_shoot(i, enemy, 1, "arp", "melee"); // Swing anyways, maybe they'll get lucky
+ }
+ }
+ }
+ }
+
+ // if (no_ap=30) and (enemy.men=0) and (flank=0){// Next turn?
+
+ // }
+}
+
+instance_activate_object(obj_pnunit);
+
+//TODO: Everything bellow has to be scrapped and reworked;
+//! Commented out stuff bellow, until I understand why it exists;
+/*if (image_index == -500) {
+ var leftest, charge = 0,
+ enemy2 = 0;
+
+ with(obj_pnunit) {
+ if (x < -4000) {
+ instance_deactivate_object(id);
+ }
+ }
+
+ if (flank == 0) {
+ move_unit_block("west");
+ // instance_activate_object(obj_cursor);
+ }
+ if (flank == 1) {
+ enemy = instance_nearest(x, y, obj_pnunit); // Right most enemy
+ enemy2 = enemy;
+ // if (collision_point(x+10,y,obj_pnunit,0,1)) then engaged=1;
+ // if (!collision_point(x+10,y,obj_pnunit,0,1)) then engaged=0;
+ move_unit_block();
+
+ if (!position_empty(x + 10, y)) {
+ engaged = 1;
+ } // Quick smash
+ // instance_activate_object(obj_cursor);
+ }
+
+if (!collision_point(x+10,y,obj_pnunit,0,1)) and (!collision_point(x-10,y,obj_pnunit,0,1)) then engaged=0;
+if (collision_point(x+10,y,obj_pnunit,0,1)) or (collision_point(x-10,y,obj_pnunit,0,1)) then engaged=1;
+
+
+
+var range_shooti;
+
+ i=0;
+
+
+ repeat(30){i+=1;
+
+
+
+ dist=floor(point_distance(enemy2.x,enemy2.y,x,y)/10);
+
+
+
+
+
+ range_shoot="";
+
+ if (wep[i]!="") and (range[i]>=dist) and (ammo[i]!=0){
+ if (range[i]!=1) and (engaged=0) then range_shoot="ranged";
+ if ((range[i]!=floor(range[i])) or (range[i]=1)) and (engaged=1) then range_shoot="melee";
+ }
+
+
+
+
+
+
+
+ if (wep[i]!="") and (range_shoot="ranged") and (range[i]>=dist){// Weapon meets preliminary checks
+ var _armour_piercing;_armour_piercing=0;if (apa[i]>att[i]) then _armour_piercing=1;// Determines if it is _armour_piercing or not
+
+ // if (wep[i]="Missile Launcher") then _armour_piercing=1;
+
+ if (string_count("Gauss",wep[i])>0) then _armour_piercing=1;
+
+ if (wep[i]="Missile Launcher") or (wep[i]="Rokkit Launcha") or (wep[i]="Kannon") then _armour_piercing=1;
+ if (wep[i]="Big Shoota") then _armour_piercing=0;if (wep[i]="Devourer") then _armour_piercing=0;
+ if (wep[i]="Gauss Particle Cannon") or (wep[i]="Overcharged Gauss Cannon") or (wep[i]="Particle Whip") then _armour_piercing=1;
+
+
+ if (instance_exists(enemy2)){
+ if (enemy2.veh+enemy2.dreads>0) and (enemy2.men=0) and (apa[i]>10) then _armour_piercing=1;
+
+ if (_armour_piercing=1) and (once_only=0){// Check for vehicles
+ var g,good;g=0;good=0;
+
+ if (enemy.veh>0){
+ // good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell
+ scr_shoot(i,enemy2,good,"arp","ranged");
+ }
+ if (good=0) and (instance_number(obj_pnunit)>1){// First target does not have vehicles, cycle through objects to find one that has vehicles
+ var x2;x2=enemy2.x;
+ repeat(instance_number(obj_enunit)-1){
+ if (good=0){
+ x2+=10;enemy2=instance_nearest(x2,y,obj_pnunit);
+ if (enemy2.veh+enemy2.dreads>0) and (good=0){
+ good=scr_target(enemy2,"veh");// This target has vehicles, blow it to hell
+ scr_shoot(i,enemy2,good,"arp","ranged");once_only=1;
+ }
+ }
+ }
+ }
+ if (good=0) then _armour_piercing=0;// Fuck it, shoot at infantry
+ }
+ }
+
+ }
+
+
+
+}
+
+ instance_activate_object(obj_pnunit);
+} */
From 0e615765a83d99a4f0975c0e693c625709a08ec5 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Thu, 18 Jun 2026 00:40:01 +0300
Subject: [PATCH 05/50] Guardsmen moving fix
he Guard not moving on attack. move_unit_block("east") won't move a block if another block sits directly ahead of it, so Guard spawned at the rear were permanently pinned behind the Marines, who then advanced off without them. I changed the placement so the Guard are the front rank on attack as well as defense. Now they have open ground ahead, lead the charge, and reach the enemy. Lore-wise it makes them the screening first wave, which fits expendable infantry.
---
objects/obj_enunit/Alarm_0.gml | 27 +++++++
.../scr_player_combat_weapon_stacks.gml | 70 ++++++++++++-------
2 files changed, 72 insertions(+), 25 deletions(-)
diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml
index 96a4f17d48..bb888ecba5 100644
--- a/objects/obj_enunit/Alarm_0.gml
+++ b/objects/obj_enunit/Alarm_0.gml
@@ -299,6 +299,33 @@ if (!engaged) {
// if (no_ap=30) and (enemy.men=0) and (flank=0){// Next turn?
// }
+} else {
+ // Engaged in melee. The original code skipped every attack once an enemy was
+ // collision-locked against a player block, so a unit pinned against a line it
+ // could not shoot through (for example Meganobs against a Guard rank whose
+ // bayonets cannot pierce mega-armour) just stood there and the round stalled at a
+ // fixed enemy percentage. Run the melee weapons here so a fully engaged enemy
+ // still fights in close combat. engaged is computed once per turn, so this never
+ // double-attacks alongside the not-engaged branch above.
+ for (var i = 0; i < array_length(wep); i++) {
+ if (!instance_exists(obj_pnunit)) {
+ exit;
+ }
+ var melee_target = flank ? get_leftmost() : get_rightmost();
+ if ((melee_target == "none") || (!target_block_is_valid(melee_target, obj_pnunit))) {
+ continue;
+ }
+ // Melee weapons only: range 1, 2, or fractional.
+ if ((range[i] <= 2) || (floor(range[i]) != range[i])) {
+ if ((apa[i] > 0) && block_has_armour(melee_target)) {
+ scr_shoot(i, melee_target, 1, "arp", "melee");
+ } else if (melee_target.men > 0) {
+ scr_shoot(i, melee_target, 1, "att", "melee");
+ } else if (block_has_armour(melee_target)) {
+ scr_shoot(i, melee_target, 1, "arp", "melee");
+ }
+ }
+ }
}
instance_activate_object(obj_pnunit);
diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
index 466be83725..de330d2afd 100644
--- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
+++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
@@ -133,10 +133,8 @@ function scr_player_combat_weapon_stacks() {
if (guard == 1) {
var _gi = 0;
var _pg = men; // current Guardsmen in this block
- var _tk = veh; // current Leman Russ tanks in this block
- // Massed lasguns, identical to the enemy Guardsman profile in scr_en_weapon:
- // one Lasgun per man, attack 60, armour pierce 1, range 6, 30 rounds.
+ // Massed lasguns: one per man, attack 60, armour pierce 1, range 6, 30 rounds.
_gi += 1;
wep[_gi] = "Lasgun";
wep_num[_gi] = max(1, _pg);
@@ -146,7 +144,22 @@ function scr_player_combat_weapon_stacks() {
ammo[_gi] = 30;
splash[_gi] = 0;
- // Heavy weapons teams. Real Heavy Bolter profile: attack 120, range 16.
+ // Bayonets (melee, range 1). Required or the block locks up in melee: once an
+ // enemy is adjacent the fire logic disables every ranged weapon, and with no
+ // melee weapon the Guard can neither shoot nor swing. Guardsmen are poor in
+ // melee, so this is a weak profile.
+ _gi += 1;
+ wep[_gi] = "Bayonet";
+ wep_num[_gi] = max(1, _pg);
+ range[_gi] = 1;
+ att[_gi] = 12 * wep_num[_gi];
+ apa[_gi] = 0;
+ ammo[_gi] = -1;
+ splash[_gi] = 0;
+
+ // Heavy bolters: attack 120, range 16. Anti-infantry support only. The Guard
+ // carry no anti-tank weapon by design, so a pure-infantry force cannot crack
+ // armour; they bleed against vehicles unless a Leman Russ tank line is present.
_gi += 1;
wep[_gi] = "Heavy Bolter";
wep_num[_gi] = max(1, round(_pg / 200));
@@ -156,27 +169,34 @@ function scr_player_combat_weapon_stacks() {
ammo[_gi] = -1;
splash[_gi] = 0;
- // Leman Russ guns, scaled to the tanks still alive: Battle Cannon 300 (AP)
- // and Lascannon 200 (AP).
- if (_tk > 0) {
- _gi += 1;
- wep[_gi] = "Battle Cannon";
- wep_num[_gi] = _tk;
- range[_gi] = 12;
- att[_gi] = 300 * wep_num[_gi];
- apa[_gi] = round(att[_gi] * 0.6);
- ammo[_gi] = -1;
- splash[_gi] = 0;
-
- _gi += 1;
- wep[_gi] = "Lascannon";
- wep_num[_gi] = _tk;
- range[_gi] = 20;
- att[_gi] = 200 * wep_num[_gi];
- apa[_gi] = round(att[_gi] * 0.8);
- ammo[_gi] = -1;
- splash[_gi] = 0;
- }
+ exit;
+ }
+
+ if (guard == 2) {
+ // Leman Russ tank line, fielded as its own block separate from the infantry,
+ // the way the enemy Imperial Guard keep tanks out of their soldier lines.
+ // Battle Cannon 300 and Lascannon 200, both armour-piercing, scaled to the
+ // tanks still alive. This is the Guard's only anti-armour.
+ var _gi = 0;
+ var _tk = veh;
+
+ _gi += 1;
+ wep[_gi] = "Battle Cannon";
+ wep_num[_gi] = max(1, _tk);
+ range[_gi] = 12;
+ att[_gi] = 300 * wep_num[_gi];
+ apa[_gi] = round(att[_gi] * 0.6);
+ ammo[_gi] = -1;
+ splash[_gi] = 0;
+
+ _gi += 1;
+ wep[_gi] = "Lascannon";
+ wep_num[_gi] = max(1, _tk);
+ range[_gi] = 20;
+ att[_gi] = 200 * wep_num[_gi];
+ apa[_gi] = round(att[_gi] * 0.8);
+ ammo[_gi] = -1;
+ splash[_gi] = 0;
exit;
}
From 13ba261cdc9ae8b97cda778dbeb4a0fdff7c15a2 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Thu, 18 Jun 2026 00:54:19 +0300
Subject: [PATCH 06/50] Update Alarm_0.gml
---
objects/obj_pnunit/Alarm_0.gml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/objects/obj_pnunit/Alarm_0.gml b/objects/obj_pnunit/Alarm_0.gml
index 822996c62f..ae9ee205e3 100644
--- a/objects/obj_pnunit/Alarm_0.gml
+++ b/objects/obj_pnunit/Alarm_0.gml
@@ -75,7 +75,13 @@ try {
}
if ((range[i] >= dist) && (ammo[i] != 0 || range[i] == 1)) {
- if ((range[i] != 1) && (engaged == 0)) {
+ // Guard blocks (guard > 0) keep firing their ranged weapons even when
+ // engaged: Guardsmen empty lasguns and heavy bolters into the enemy at
+ // point-blank, and the tank line keeps its main guns firing once a unit
+ // reaches it instead of standing mute. Marines keep the vanilla rule of
+ // ranged only while not engaged. The bayonet (range 1) still resolves on
+ // the melee line below, so engaged Guard both shoot and stab.
+ if ((range[i] != 1) && ((engaged == 0) || (guard > 0))) {
range_shoot = "ranged";
}
if ((range[i] != floor(range[i]) || floor(range[i]) == 1) && engaged == 1) {
From 3aae05fba852abe4762e11067cd349122a93fcaa Mon Sep 17 00:00:00 2001
From: KestasV <37342061+KestasV@users.noreply.github.com>
Date: Thu, 18 Jun 2026 02:41:59 +0300
Subject: [PATCH 07/50] Update README.md
---
docs/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/README.md b/docs/README.md
index b885377a6d..19008739a0 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -2,7 +2,8 @@
-# Chapter Master - Adeptus Dominus
+# Chapter Master - Adeptus Dominus - Imperial Guard mod
+**NOTE:**in this version, to get guard you need to press P then "titheguard X" (x being the number), "embarkguard" and then you can deploy them via the menu selection on the planet screen. That's it for now until further implementation arrives. Fixing basic stuff with the guardsmen first.
[](https://github.com/Adeptus-Dominus/ChapterMaster/actions/workflows/release_dev.yml)
[](https://discord.gg/zAGpqHzsXQ)
From 061eee1738ac1cce2ef34e97b2288ed9c4a42ef0 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Thu, 18 Jun 2026 02:59:44 +0300
Subject: [PATCH 08/50] Updated to latest main version
Updated to latest main version
---
.gitignore | 9 +-
docs/CONTRIBUTING.md | 51 +
docs/README.md | 39 +-
objects/obj_enunit/Alarm_0.gml | 99 +-
objects/obj_enunit/Alarm_1.gml | 875 +++++++-----------
objects/obj_enunit/Create_0.gml | 2 -
objects/obj_enunit/Draw_0.gml | 13 +-
objects/obj_event/Alarm_0.gml | 3 +-
objects/obj_event/Create_0.gml | 25 +-
objects/obj_event/Draw_0.gml | 23 +-
objects/obj_event/Step_0.gml | 195 +---
objects/obj_event_log/Create_0.gml | 4 +-
objects/obj_event_log/Draw_0.gml | 2 +-
objects/obj_ini/Create_0.gml | 2 +-
objects/obj_ncombat/Alarm_0.gml | 88 +-
objects/obj_star/Alarm_3.gml | 3 +-
objects/obj_star/Create_0.gml | 27 +-
objects/obj_star_select/Draw_64.gml | 28 +-
scripts/ErrorHandler/ErrorHandler.gml | 4 +-
scripts/NameGenerator/NameGenerator.gml | 6 +-
scripts/__init/__init.gml | 35 +-
.../scr_ChapterTraits/scr_ChapterTraits.gml | 4 +-
scripts/scr_PlanetData/scr_PlanetData.gml | 28 +-
scripts/scr_chapter_new/scr_chapter_new.gml | 2 +-
.../scr_culture_visuals.gml | 36 +-
scripts/scr_dialogue/scr_dialogue.gml | 2 +-
.../scr_drop_select_function.gml | 19 +-
scripts/scr_garrison/scr_garrison.gml | 92 +-
scripts/scr_image/scr_image.gml | 100 +-
.../scr_initialize_custom.gml | 10 +-
scripts/scr_powers/scr_powers.gml | 4 +-
.../scr_punit_combat_heplers.gml | 47 +-
scripts/scr_ruins_reward/scr_ruins_reward.gml | 2 +-
scripts/scr_start_load/scr_start_load.gml | 58 +-
scripts/scr_ui_manage/scr_ui_manage.gml | 12 +-
scripts/scr_unit_traits/scr_unit_traits.gml | 2 +-
36 files changed, 820 insertions(+), 1131 deletions(-)
create mode 100644 docs/CONTRIBUTING.md
diff --git a/.gitignore b/.gitignore
index ef827bf98b..2101b9e333 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,4 +26,11 @@ sprites.import.json
# This is a cache file for speeding up subsequent pipeline operations. It should not be tracked in git.
sprites.info.json
-Build/
\ No newline at end of file
+# Gamemaker GMRT cache
+Build/
+
+# AI folders
+.gemini/
+.claude/
+.cline/
+.kilo/
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
new file mode 100644
index 0000000000..ecc93a705f
--- /dev/null
+++ b/docs/CONTRIBUTING.md
@@ -0,0 +1,51 @@
+# Contributing
+
+WIP.
+
+## GameMaker vs VSCode+Stitch
+
+There are generally two main ways of working with a **GameMaker** project: through **Visual Studio Code** or through **GameMaker IDE**.
+
+- Working with the code through **GameMaker IDE** is not recommended for people used to normal IDEs. Use if you have to or like it.
+- The preferred alternative is to use [Visual Studio Code](https://code.visualstudio.com/) with the [Stitch](https://github.com/bscotch/stitch) extension, that is available via the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=bscotch.bscotch-stitch-vscode).
+- You can also use any other IDE to work with the code, but you'll have to use one of the above apps to build, as no other building method is available at the moment.
+- Other IDEs have no extended support for **GML** and as such typically are not recommended, unless you know what you're doing.
+
+Nonetheless, some things will have to be done through **GameMaker IDE**, even if you use other IDEs, including VSCode, such as:
+
+- Most of the sprite management.
+- Debugging with breakpoints, function steps and real-time debugging.
+- Profiling.
+- Room management.
+
+Here we'll only look at the VSCode. If you're interested in using the GameMaker IDE instead, see [this](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/Compiling) and just skip the 1st step in that instruction.
+
+## Preparations
+
+1. Learn what Git, source control, and GitHub are, how to use them. There is no way around it.
+ - If you are new to Git, then it's recommended to read the [Pro Git](https://git-scm.com/book/en/v2) book. You only need to read the first 3 chapters to comfortably work with Git, optionally chapter 6 to get more info on GitHub.
+ - If you prefer a more comfortable, graphical user interface based approach to Git, instead of command line, then it's recommended to use one of the options below, both are free and popular:
+ - [GitKraken](https://www.gitkraken.com/) + [Tutorials](https://www.gitkraken.com/learn/git/tutorials)
+ - [SourceTree](https://www.sourcetreeapp.com/) + [Tutorials](https://confluence.atlassian.com/get-started-with-sourcetree)
+2. Fork the repository.
+3. Clone your fork locally through Git CLI or any other GUI wrapper you've chosen.
+
+## Setting up the Visual Studio Code
+
+1. Get the Visual Studio Code (VSCode) installed, if not already.
+ - (Optional) It's recommended to get the Insider version, as it's the most frequently updated one and gets all new features first.
+ - (Optional) Get a hang of VSCode by reading some guides on the internet, installing some useful QoL extensions, configuring various settings, etc.
+2. Add the project's folder that you've cloned to the workspace, wait for it to load.
+3. Get the Stitch extension installed.
+ - (Optional) Watch [this guide video](https://youtu.be/N0wnHauUQjA?si=GPQ22a_LyZq3Y9LP) that covers basic features of **Stitch**, made by its creator.
+ - (Optional) Edit various **Stitch** specific settings, to improve your QoL.
+ - (Optional) It's recommended to disable "Run in Terminal" **Stitch** option. This allows you to goto error lines that come up in the output window and custom color output lines. The explanation is in the "Stitch Runner Panel" section on [this page](https://marketplace.visualstudio.com/items?itemName=bscotch.bscotch-stitch-vscode).
+4. Run the game by pressing F5 or finding the run button on the **Stitch** panel, wait for it to download the **GameMaker** version and build the game.
+5. Ensure that the game launches and works, exit.
+
+## Working with the code
+
+- Read the code, modify it, test, repeat.
+- Check some general [GML hints](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/General-GML-hints-from-@sinthorion).
+- Get accustomed to some [basic styling guidelines](https://github.com/Adeptus-Dominus/ChapterMaster/blob/main/docs/CODE_STYLE.md).
+- Check the list of some [useful resources](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/Useful-resources).
diff --git a/docs/README.md b/docs/README.md
index 4b17ddc55b..b885377a6d 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -3,44 +3,57 @@
# Chapter Master - Adeptus Dominus
+
[](https://github.com/Adeptus-Dominus/ChapterMaster/actions/workflows/release_dev.yml)
[](https://discord.gg/zAGpqHzsXQ)
-[](https://coderabbit.ai/)
[](https://github.com/Adeptus-Dominus/ChapterMaster)
**Chapter Master** (aka CM) is a strategy/simulation game, written in **Game Maker Language**, originally designed and developed by Duke.\
This project aims to continue development on the game, fix any bugs, expand and add features.
-**Adeptus Dominus** is just how the team of primordial collaborators decided to call themselves.
+**Adeptus Dominus** is just how the team of primordial collaborators decided to call themselves and the new version of the game.
+
+## Links
-- Our discord server: [Chapter Master Discord](https://discord.gg/zAGpqHzsXQ)
+Our discord server: [Chapter Master Discord](https://discord.gg/zAGpqHzsXQ)
- Where most of the development talk, feature suggestion and bug-reporting takes place.
- GitHub issues are not used at the moment, as such we use #bug-report-forum in this server to handle bug reports.
- If you can code, draw, design, help with the GitHub stuff or just want to help in any way possible - you'll be welcomed with open arms.
- If you just love WH40K and want to chat - you'll have a great time in the server as well.
-- 1d6Chan Wiki: [Chapter Master: Adeptus Dominus](https://1d6chan.miraheze.org/wiki/Chapter_Master:_Adeptus_Dominus)
+1d6Chan Wiki: [Chapter Master: Adeptus Dominus](https://1d6chan.miraheze.org/wiki/Chapter_Master:_Adeptus_Dominus)
- With some helpful pages that explain some of the new systems added in the Adeptus Dominus version.
- Help with expanding it will be welcomed.
-- Don't forget about the [GitHub Wiki (WIP)](https://github.com/Adeptus-Dominus/ChapterMaster/wiki)
- - Help with expanding this one will be welcomed as well.
-
-- Main repository: [Adeptus-Dominus/ChapterMaster](https://github.com/Adeptus-Dominus/ChapterMaster)
+Main repository: [Adeptus-Dominus/ChapterMaster](https://github.com/Adeptus-Dominus/ChapterMaster)
## Playing
-Just download the [latest release](https://github.com/Adeptus-Dominus/ChapterMaster/releases/latest) or a [development pre-release](https://github.com/Adeptus-Dominus/ChapterMaster/releases), unzip it and launch the .exe.
-## Compiling
+### Windows
+
+Download the [latest release](https://github.com/Adeptus-Dominus/ChapterMaster/releases/latest) or a [development pre-release](https://github.com/Adeptus-Dominus/ChapterMaster/releases), unzip it and launch the .exe.
+
+### Linux
-See [Compiling](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/Compiling) wiki page or the [GameMaker tutorial](https://help.gamemaker.io/hc/en-us/articles/235186048-Setting-Up-For-Windows).
+Pre-compiled Linux binaries are not currently supported. However, you can run the game on Linux by downloading the Windows release `.exe` and running it using **WINE** (or **Proton** / **Steam Play**). This has been reported to work well. Alternatively, you can compile from source.
-Creating packages (i.e., creating an .exe with the game) and exporting them is allowed by YoYo Games for non-commercial use.\
-Everything else **must** be covered by [paid **GameMaker** subscriptions](https://gamemaker.io/en/get).
+### macOS
+
+Same as with Linux.
+
+## Compiling from source
+
+1. Install the **GameMaker** IDE matching your system (available on the [GameMaker website](https://releases.gamemaker.io/release-notes/2026/0) or [Steam](https://store.steampowered.com/app/1670460/GameMaker/)).
+2. Clone or download the repository (find the green **<>Code** button and select **Download ZIP**).
+3. Find **ChapterMaster.yyp** in the downloaded folder and open it with **GameMaker**.
+4. Select the target platform in the IDE: **Windows, macOS, Ubuntu**.
+5. Select the output: **GMS2 VM** (no requirements; fast to compile; worse performance) or **GMS2 YYC** (requires a dedicated compiler; slow to compile; better performance).
+6. Press **Run** (F5) to play the game or **Debug** (F6) to use debugger features.
## Contributing
Best bet is to ask about everything in our Discord, because things bellow are probably not very helpful at the moment.
+
- [Working with GameMaker projects](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/Working-with-GameMaker-projects)
- [Useful Tools/Resources](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/Useful-resources)
- [Contributing](https://github.com/Adeptus-Dominus/ChapterMaster/wiki/Contributing) wiki page (not filled properly)
diff --git a/objects/obj_enunit/Alarm_0.gml b/objects/obj_enunit/Alarm_0.gml
index bb888ecba5..7155642f0c 100644
--- a/objects/obj_enunit/Alarm_0.gml
+++ b/objects/obj_enunit/Alarm_0.gml
@@ -1,39 +1,30 @@
-//* This alarm is responsible for the enemy target column selection;
+/// @description This alarm is responsible for the enemy target column selection
if (!instance_exists(obj_pnunit)) {
exit;
}
enemy = flank ? get_leftmost() : get_rightmost();
-if (enemy == "none") {
+if (enemy == noone) {
exit;
}
-var target_unit_index = 0;
-var enemy2 = enemy;
-
//In melee check
engaged = collision_point(x - 10, y, obj_pnunit, 0, 1) || collision_point(x + 10, y, obj_pnunit, 0, 1);
if (!engaged) {
// Shooting
for (var i = 0; i < array_length(wep); i++) {
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
-
if (wep[i] == "" || wep_num[i] == 0) {
continue;
}
if ((range[i] == 1) || (ammo[i] == 0)) {
- // LOGGER.debug($"A melee or no ammo weapon was found! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}; Ammo: {ammo[i]}");
continue;
}
if (range[i] == 0) {
LOGGER.error($"{wep[i]} has broken range! This shouldn't happen! Range: {range[i]}; Ammo: {ammo[i]}; Owner: {wep_owner[i]}");
- // LOGGER.debug($"A broken weapon was found! i:{i}; Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}; Ammo: {ammo[i]}");
continue;
}
@@ -44,6 +35,8 @@ if (!engaged) {
}
}
+ var dist = 0;
+
if (instance_exists(obj_nfort) && !flank) {
enemy = instance_nearest(x, y, obj_nfort);
dist = 2;
@@ -51,18 +44,12 @@ if (!engaged) {
dist = get_block_distance(enemy);
}
- target_unit_index = 0;
+ var target_unit_index = 0;
if (range[i] >= dist) {
// The weapon is in range;
var _target_vehicles = apa[i] > 0 ? true : false; // AP weapons target vehicles
- // if (string_count("Gauss",wep[i])>0) then _target_vehicles=true;
- // if (wep[i]="Missile Launcher") or (wep[i]="Rokkit Launcha") or (wep[i]="Kannon") then _target_vehicles=true;
- // if (wep[i]="Big Shoota") then _target_vehicles=false;
- // if (wep[i]="Devourer") then _target_vehicles=false;
- // if (wep[i]="Gauss Particle Cannon") or (wep[i]="Overcharged Gauss Cannon") or (wep[i]="Particle Whip") then _target_vehicles=true;
-
// Weird alpha strike mechanic, that changes target unit index to CM;
if (((wep[i] == "Power Fist") || (wep[i] == "Bolter")) && (obj_ncombat.alpha_strike > 0) && (wep_num[i] > 5)) {
obj_ncombat.alpha_strike -= 0.5;
@@ -92,7 +79,6 @@ if (!engaged) {
if ((!instance_exists(obj_nfort)) || flank) {
if (block_has_armour(enemy) || (enemy.veh_type[1] == "Defenses")) {
scr_shoot(i, enemy, target_unit_index, "arp", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
continue;
} else {
// Front block has no armour. If there are other blocks behind,
@@ -127,7 +113,6 @@ if (!engaged) {
} else {
enemy = instance_nearest(x, y, obj_nfort);
scr_shoot(i, enemy, 1, "arp", "wall");
- // LOGGER.debug($"I'm shooting at the fort! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
continue;
}
}
@@ -138,7 +123,6 @@ if (!engaged) {
if (enemy.men > 0) {
// There are marines in the first column;
scr_shoot(i, enemy, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
continue;
} else if (instance_number(obj_pnunit) > 1) {
// There were no marines in the first column, looking behind;
@@ -149,18 +133,15 @@ if (!engaged) {
x2 += !flank ? 10 : -10;
var enemy2 = instance_nearest(x2, y, obj_pnunit);
if (!target_block_is_valid(enemy2, obj_pnunit)) {
- // LOGGER.debug($"The block is invalid!");
continue;
}
if (range[i] < get_block_distance(enemy2)) {
- // LOGGER.debug($"The range is bad!");
break;
}
var _back_column_size_value = enemy2.column_size;
if (_back_column_size_value < _column_size_value) {
- // LOGGER.debug($"Protection value is too big!");
continue;
} else {
// Calculate chance of shots passing through to back row
@@ -168,12 +149,10 @@ if (!engaged) {
// Maximum chance capped at 40% to ensure some protection remains
var _pass_chance = ((_back_column_size_value / _column_size_value) - 1) * 100;
if (irandom_range(1, 100) < min(_pass_chance, 80)) {
- // LOGGER.debug($"I failed the protection check!");
continue;
}
}
scr_shoot(i, enemy2, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a normal unit in another row! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
_shot = true;
break;
}
@@ -185,7 +164,6 @@ if (!engaged) {
if ((!instance_exists(obj_nfort)) || flank) {
if (block_has_armour(enemy) || (enemy.veh_type[1] == "Defenses")) {
scr_shoot(i, enemy, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
continue;
} else if ((instance_number(obj_pnunit) > 1) && (obj_ncombat.enemy != 7)) {
var x2 = enemy.x;
@@ -200,7 +178,6 @@ if (!engaged) {
}
if (block_has_armour(enemy2)) {
scr_shoot(i, enemy2, target_unit_index, "att", "ranged");
- // LOGGER.debug($"I'm shooting at a vehicle in another row, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
break;
}
}
@@ -208,59 +185,40 @@ if (!engaged) {
} else {
enemy = instance_nearest(x, y, obj_nfort);
scr_shoot(i, enemy, 1, "att", "wall");
- // LOGGER.debug($"I'm shooting at a fort, because I can't find a normal unit! {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
continue;
}
}
}
} else {
- // LOGGER.debug($"I can't shoot, my range is too small! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}; Range: {range[i]}");
continue;
}
LOGGER.error($"{wep[i]} didn't find a valid target! This shouldn't happen!");
- // LOGGER.debug($"We didn't find a valid target! Weapon: {wep[i]}; Column ID: {id}; Enemy Unit: {wep_owner[i]}");
}
} else if ((engaged || enemy.engaged) && target_block_is_valid(enemy, obj_pnunit)) {
//TODO: The melee code was not refactored;
// Melee
engaged = 1;
- var i = 0, dist = 999, no_ap = 1;
- // dist=point_distance(x,y,enemy.x,enemy.y)/10;
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
for (var i = 0; i < array_length(wep); i++) {
if (wep[i] == "" || wep_num[i] == 0) {
continue;
}
- var _armour_piercing = 0;
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
+ var _armour_piercing = false;
if (!flank) {
enemy = get_rightmost();
- enemy2 = enemy;
- if (enemy == "none") {
+ if (enemy == noone) {
exit;
}
- dist = get_block_distance(enemy);
} else if (flank) {
enemy = get_leftmost();
- enemy2 = enemy;
- if (enemy == "none") {
+ if (enemy == noone) {
exit;
}
- dist = get_block_distance(enemy);
}
- if ((apa[i] == 0) || (apa[i] < att[i])) {
- no_ap += 1;
- }
- //LOGGER.debug($"{range[i]},{att[i]},{apa[i]},{wep[i]},{enemy}")
if ((range[i] <= 2) || (floor(range[i]) != range[i])) {
// Weapon meets preliminary checks
if (apa[i] > 0) {
- _armour_piercing = 1;
+ _armour_piercing = true;
} // Determines if it is _armour_piercing or not
if (_armour_piercing && instance_exists(obj_nfort) && (!flank)) {
// Huff and puff and blow the wall down
@@ -270,24 +228,20 @@ if (!engaged) {
}
if (_armour_piercing) {
// Check for vehicles
- var g = 0, good = 0, enemy2;
+ var good = false;
if (block_has_armour(enemy)) {
- // good=scr_target(enemy,"veh");// First target has vehicles, blow it to hell
scr_shoot(i, enemy, 1, "arp", "melee");
good = true;
}
if (!good) {
- _armour_piercing = 0;
+ _armour_piercing = false;
} // Fuck it, shoot at infantry
}
if ((!_armour_piercing) && target_block_is_valid(enemy, obj_pnunit)) {
// Check for men
- // show_message(string(wep[i]));
- var enemy2, g = 0, good = 0;
if (enemy.men) {
- // good=scr_target(enemy,"men");// First target has vehicles, blow it to hell
scr_shoot(i, enemy, 1, "att", "melee");
} else if (block_has_armour(enemy)) {
scr_shoot(i, enemy, 1, "arp", "melee"); // Swing anyways, maybe they'll get lucky
@@ -295,37 +249,6 @@ if (!engaged) {
}
}
}
-
- // if (no_ap=30) and (enemy.men=0) and (flank=0){// Next turn?
-
- // }
-} else {
- // Engaged in melee. The original code skipped every attack once an enemy was
- // collision-locked against a player block, so a unit pinned against a line it
- // could not shoot through (for example Meganobs against a Guard rank whose
- // bayonets cannot pierce mega-armour) just stood there and the round stalled at a
- // fixed enemy percentage. Run the melee weapons here so a fully engaged enemy
- // still fights in close combat. engaged is computed once per turn, so this never
- // double-attacks alongside the not-engaged branch above.
- for (var i = 0; i < array_length(wep); i++) {
- if (!instance_exists(obj_pnunit)) {
- exit;
- }
- var melee_target = flank ? get_leftmost() : get_rightmost();
- if ((melee_target == "none") || (!target_block_is_valid(melee_target, obj_pnunit))) {
- continue;
- }
- // Melee weapons only: range 1, 2, or fractional.
- if ((range[i] <= 2) || (floor(range[i]) != range[i])) {
- if ((apa[i] > 0) && block_has_armour(melee_target)) {
- scr_shoot(i, melee_target, 1, "arp", "melee");
- } else if (melee_target.men > 0) {
- scr_shoot(i, melee_target, 1, "att", "melee");
- } else if (block_has_armour(melee_target)) {
- scr_shoot(i, melee_target, 1, "arp", "melee");
- }
- }
- }
}
instance_activate_object(obj_pnunit);
diff --git a/objects/obj_enunit/Alarm_1.gml b/objects/obj_enunit/Alarm_1.gml
index d61a74bd60..ccd334b738 100644
--- a/objects/obj_enunit/Alarm_1.gml
+++ b/objects/obj_enunit/Alarm_1.gml
@@ -1,11 +1,7 @@
-var i, g;
-i = 0;
-g = 0;
men = 0;
veh = 0;
medi = 0;
-repeat (20) {
- i += 1;
+for (var i = 1; i <= 20; i++) {
att[i] = 0;
apa[i] = 0;
wep_num[i] = 0;
@@ -13,15 +9,8 @@ repeat (20) {
// if (wep_owner[i]!="") and (wep_num[i]>1) then wep_owner[i]="";// What if they are using two ranged weapons? Hmmmmm?
}
-i = 0;
-// men=0;veh=0;
-j = 0;
-good = 0;
-open = 0;
-
-repeat (700) {
- j += 1;
+for (var j = 1; j <= 700; j++) {
if (dudes_num[j] <= 0) {
dudes[j] = "";
dudes_special[j] = "";
@@ -54,24 +43,12 @@ repeat (700) {
dudes_vehicle[j + 1] = 0;
dudes_damage[j + 1] = 0;
dudes_ranged[j + 1] = 1;
- dudges_defense[j + 1] = 1;
+ dudes_defense[j + 1] = 1;
dudes_attack[j + 1] = 1;
}
}
-j = 0;
-
-/*var no_ap;no_ap=0;
-
-repeat(18){j+=1;
- if (apa[j]=0) then no_ap+=1;
-}
-if (no_ap=18){
- if (dudes_veh
-}*/
-
-repeat (20) {
- j += 1;
+for (var j = 1; j <= 20; j++) {
if (obj_ncombat.started == 0) {
if (dudes[j] == "Malcadon Spyrer") {
dudes_ac[j] = 25;
@@ -194,34 +171,22 @@ repeat (20) {
dudes_dr[j] = 0.6;
}
}
-j = 0;
neww = 0;
-if ((men + veh == 1) && (instance_number(obj_enunit) == 1)) {
- if ((men == 1) && (veh == 0)) {
- var i, h;
- i = 0;
- h = 0;
- repeat (20) {
- if (h == 0) {
- i += 1;
- if (dudes_num[i] == 1) {
- h = dudes_hp[i];
- obj_ncombat.display_p2 = h;
- obj_ncombat.display_p2n = string(dudes[i]);
- }
- }
+if ((men == 1) && (veh == 0) && (instance_number(obj_enunit) == 1)) {
+ for (var i = 1; i <= 20; i++) {
+ if (dudes_num[i] == 1) {
+ obj_ncombat.display_p2 = dudes_hp[i];
+ obj_ncombat.display_p2n = string(dudes[i]);
+ break;
}
}
}
if (obj_ncombat.enemy == 1) {
- var j;
- j = 0;
men = 0;
- repeat (100) {
- j += 1;
+ for (var j = 1; j <= 100; j++) {
veh = 0;
dreads = 0;
if ((dudes[j] != "") && (dudes_vehicle[j] == 0)) {
@@ -229,43 +194,20 @@ if (obj_ncombat.enemy == 1) {
}
}
- // show_message("dudes1:"+string(dudes[1])+", men:"+string(men));
-
- var i, g;
- i = 0;
- g = 0;
- repeat (100) {
- i += 1;
+ for (var i = 1; i <= 100; i++) {
att[i] = 0;
apa[i] = 0;
wep_num[i] = 0;
wep_rnum[i] = 0;
}
- i = 0;
-
- var dreaded;
- dreaded = false;
- repeat (700) {
- g += 1;
+ for (var g = 1; g <= 700; g++) {
// Why was this here? And why was it later checked, if it always would be false?;
// marine_casting[g] = false;
if (((dudes[g] != "") && (dudes_num[g] > 0)) && (dudes_hp[g] > 0)) {
- // if (marine_hp[g]>0) then men+=1;
-
- /*
- scr_en_weapon
- argument0: name
- argument1: man?
- argument2: number
- argument3: owner
- argument4: dudes number
- */
-
if ((dudes[g] == obj_ini.role[100][6]) || (dudes[g] == "Venerable " + obj_ini.role[100][6]) && (dudes_hp[g] > 0)) {
dreads += 1;
- dreaded = true;
}
if (dudes_mobi[g] == "Bike") {
scr_en_weapon("Twin Linked Bolters", false, 1, dudes[g], g);
@@ -285,12 +227,8 @@ if (obj_ncombat.enemy == 1) {
scr_en_weapon("Plasma Cutter", false, 1, dudes[g], g);
}
- var j, good, open;
- j = 0;
- good = 0;
- open = 0; // Counts the number and types of marines within this object
- repeat (20) {
- j += 1;
+ var open = 0; // Counts the number and types of marines within this object
+ for (var j = 1; j <= 20; j++) {
if ((dudes[j] == "") && (open == 0)) {
open = j; // Determine if vehicle here
@@ -301,8 +239,6 @@ if (obj_ncombat.enemy == 1) {
dudes_vehicle[j] = 1;
}
}
- // if (dudes[g]=dudes[j]){good=1;dudes_num[j]+=1;}
- // if (good=0) and (open!=0){dudes[open]=marine_type[g];dudes_num[open]=1;}
}
if ((dudes_wep1[g] != "") && (marine_casting[g] == false)) {
@@ -341,23 +277,15 @@ if (obj_ncombat.enemy == 1) {
// Right here should be retreat- if important units are exposed they should try to hop left
- /*if (dudes_num[1]=0) and (obj_ncombat.started=0){
- instance_destroy();
- exit;
- }*/
-
if ((men > 0) && (alarm[5] > 0)) {
alarm[5] = -1;
}
instance_activate_object(obj_enunit);
exit;
-
- /* */
}
-if (obj_ncombat.enemy == 2) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.IMPERIUM) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Imperial Guardsman") {
dudes_ac[j] = 40;
dudes_hp[j] = 5;
@@ -436,12 +364,9 @@ if (obj_ncombat.enemy == 2) {
// Leman Russ Battle Tank = min.1, max = /40000
// Leman Russ Demolisher = min.1, max = /60000
// Chimera = min.1, max = /60000
-
- /* */
}
-if (obj_ncombat.enemy == 3) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.MECHANICUS) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Thallax") {
scr_en_weapon("Lightning Gun", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Thallax Melee", true, dudes_num[j], dudes[j], j);
@@ -458,15 +383,9 @@ if (obj_ncombat.enemy == 3) {
medi += dudes_num[j];
}
}
-
- //
- //
-
- /* */
}
-if (obj_ncombat.enemy == 5) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.ECCLESIARCHY) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Leader") {
scr_en_weapon("Blessed Weapon", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Laser Mace", true, dudes_num[j], dudes[j], j);
@@ -493,7 +412,6 @@ if (obj_ncombat.enemy == 5) {
men += dudes_num[j];
dudes_dr[j] = 0.65;
}
-
if (dudes[j] == "Arco-Flagellent") {
scr_en_weapon("Electro-Flail", true, dudes_num[j], dudes[j], j);
dudes_ac[j] = 5;
@@ -501,7 +419,6 @@ if (obj_ncombat.enemy == 5) {
men += dudes_num[j];
dudes_dr[j] = 0.7;
}
-
if (dudes[j] == "Celestian") {
scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
@@ -524,7 +441,6 @@ if (obj_ncombat.enemy == 5) {
men += dudes_num[j];
dudes_dr[j] = 0.75;
}
-
if (dudes[j] == "Battle Sister") {
if (dudes_num[j] <= 4) {
scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
@@ -573,7 +489,6 @@ if (obj_ncombat.enemy == 5) {
men += dudes_num[j];
dudes_dr[j] = 0.85;
}
-
if (dudes[j] == "Follower") {
//Frateris Militia
scr_en_weapon("Laspistol", true, dudes_num[j], dudes[j], j);
@@ -582,7 +497,6 @@ if (obj_ncombat.enemy == 5) {
dudes_hp[j] = 30;
men += dudes_num[j];
}
-
if (dudes[j] == "Rhino") {
scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j);
dudes_ac[j] = 30;
@@ -591,7 +505,6 @@ if (obj_ncombat.enemy == 5) {
veh += dudes_num[j];
dudes_vehicle[j] = 1;
}
-
if (dudes[j] == "Chimera") {
scr_en_weapon("Heavy Flamer", false, dudes_num[j] * 2, dudes[j], j);
dudes_ac[j] = 30;
@@ -600,7 +513,6 @@ if (obj_ncombat.enemy == 5) {
veh += dudes_num[j];
dudes_vehicle[j] = 1;
}
-
if (dudes[j] == "Immolator") {
scr_en_weapon("Twin Linked Heavy Flamers", false, dudes_num[j], dudes[j], j);
dudes_ac[j] = 40;
@@ -620,7 +532,6 @@ if (obj_ncombat.enemy == 5) {
veh += dudes_num[j];
dudes_vehicle[j] = 1;
}
-
if (dudes[j] == "Penitent Engine") {
scr_en_weapon("Close Combat Weapon", false, dudes_num[j] * 2, dudes[j], j);
scr_en_weapon("Heavy Flamer", false, dudes_num[j], dudes[j], j);
@@ -630,11 +541,6 @@ if (obj_ncombat.enemy == 5) {
veh += dudes_num[j];
dudes_vehicle[j] = 1;
}
-
- // if (obj_ncombat.enemy=11) and (dudes_vehicle[j]=0) and (dudes[j]!="Cultist"){dudes_dr[j]=0.8;}
- // if (obj_ncombat.enemy=11) and (dudes_vehicle[j]=1){dudes_dr[j]=0.75;}
-
- // if (dudes[j]!="") and (dudes_num[j]=0){dudes[j]="";dudes_num[j]=0;}
if ((dudes[j] != "") && (dudes_hp[j] == 0)) {
dudes[j] = "";
dudes_num[j] = 0;
@@ -646,12 +552,9 @@ if (obj_ncombat.enemy == 5) {
dudes_dr[j] = max(0.65, dudes_dr[j] + 0.15);
}
}
-
- /* */
}
-if (obj_ncombat.enemy == 6) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.ELDAR) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Leader") {
scr_en_weapon("Singing Spear", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Singing Spear Throw", true, dudes_num[j], dudes[j], j);
@@ -918,12 +821,9 @@ if (obj_ncombat.enemy == 6) {
dudes_vehicle[j] = 1;
}
}
-
- /* */
}
-if (obj_ncombat.enemy == 7) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.ORK) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Leader") {
scr_en_weapon("Power Klaw", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Rokkit Launcha", true, dudes_num[j], dudes[j], j);
@@ -1083,12 +983,9 @@ if (obj_ncombat.enemy == 7) {
dudes_vehicle[j] = 1;
}
}
-
- /* */
}
-if (obj_ncombat.enemy == 8) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.TAU) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "XV8 Commander") {
scr_en_weapon("Plasma Rifle", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Fusion Blaster", true, dudes_num[j], dudes[j], j);
@@ -1188,12 +1085,9 @@ if (obj_ncombat.enemy == 8) {
dudes_vehicle[j] = 1;
}
}
-
- /* */
}
-if (obj_ncombat.enemy == 9) {
- repeat (20) {
- j += 1;
+if (obj_ncombat.enemy == eFACTION.TYRANIDS || obj_ncombat.enemy == eFACTION.GENESTEALER) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Hive Tyrant") {
scr_en_weapon("Bonesword", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Lashwhip", true, dudes_num[j], dudes[j], j);
@@ -1286,373 +1180,336 @@ if (obj_ncombat.enemy == 9) {
men += dudes_num[j];
}
}
-
- /* */
}
-if (obj_ncombat.enemy >= 10) {
-if (obj_ncombat.enemy < 12) {
- repeat (20) {
- j += 1;
- if ((dudes[j] == "Leader") && (obj_controller.faction_gender[10] == 1)) {
- // Terminator Chaos Lord
- scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 35;
- if ((obj_ncombat.started == 0) || (dudes_num[j] > 1)) {
- dudes_hp[j] = 300;
- }
- men += dudes_num[j];
- dudes_dr[j] = 0.5;
- }
- if ((dudes[j] == "Leader") && (obj_controller.faction_gender[10] == 2)) {
- // World Eater Lord
- scr_en_weapon("Khorne Demon Melee", true, dudes_num[j] * 2, dudes[j], j);
- dudes_ac[j] = 25;
- if ((obj_ncombat.started == 0) || (dudes_num[j] > 1)) {
- dudes_hp[j] = 300;
- }
- men += dudes_num[j];
- dudes_dr[j] = 0.6;
- }
-
- if (dudes[j] == "Fallen") {
- scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 25;
- dudes_hp[j] = 150;
- men += dudes_num[j];
- dudes_dr[j] = 0.5;
- }
-
- if (dudes[j] == "Chaos Lord") {
- scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 25;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.5;
- men += dudes_num[j];
- }
- if (dudes[j] == "Chaos Sorcerer") {
- scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 25;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.5;
- men += dudes_num[j];
- }
- if (dudes[j] == "Warpsmith") {
- scr_en_weapon("Chainfist", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Flamer", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 25;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.5;
- men += dudes_num[j];
- }
-
- if (dudes[j] == "Chaos Terminator") {
- scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 35;
- dudes_hp[j] = 125;
- men += dudes_num[j];
- dudes_dr[j] = 0.5;
- }
- if (dudes[j] == "Venerable Chaos Terminator") {
- scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 35;
- dudes_hp[j] = 150;
- men += dudes_num[j];
- dudes_dr[j] = 0.5;
- }
- if (dudes[j] == "World Eaters Terminator") {
- scr_en_weapon("Power Fist", true, dudes_num[j] * 2, dudes[j], j);
- scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 35;
- dudes_hp[j] = 150;
- men += dudes_num[j];
- dudes_dr[j] = 0.5;
- }
- if (dudes[j] == "Obliterator") {
- scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Obliterator Weapon", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 25;
- dudes_hp[j] = 300;
- dudes_dr[j] = 0.5;
- men += dudes_num[j];
- }
- if (dudes[j] == "Chaos Chosen") {
- scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 125;
- dudes_dr[j] = 0.85;
- men += dudes_num[j];
- }
- if (dudes[j] == "Venerable Chaos Chosen") {
- scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 150;
- men += dudes_num[j];
- dudes_dr[j] = 0.75;
- }
-
- if (dudes[j] == "Possessed") {
- scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.6;
- men += dudes_num[j];
- }
- if (dudes[j] == "Chaos Space Marine") {
- scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 100;
- dudes_dr[j] = 0.9;
- men += dudes_num[j];
- }
- if (dudes[j] == "Havoc") {
- scr_en_weapon("Missile Launcher", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 100;
- dudes_dr[j] = 0.9;
- men += dudes_num[j];
- }
- if (dudes[j] == "Raptor") {
- scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 100;
- dudes_dr[j] = 0.75;
- dudes_special[j] = "Jump Pack";
- men += dudes_num[j];
- }
-
- if (dudes[j] == "World Eater") {
- scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 100;
- dudes_dr[j] = 0.75;
- men += dudes_num[j];
- }
- if (dudes[j] == "World Eaters Veteran") {
- scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 125;
- dudes_dr[j] = 0.7;
- men += dudes_num[j];
- }
-
- if (dudes[j] == "Khorne Berzerker") {
- scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 200;
- dudes_dr[j] = 0.65;
- men += dudes_num[j];
- }
- if (dudes[j] == "Plague Marine") {
- scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Poison Chainsword", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 180;
- dudes_dr[j] = 0.65;
- men += dudes_num[j];
- }
- if (dudes[j] == "Noise Marine") {
- scr_en_weapon("Sonic Blaster", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 125;
- dudes_dr[j] = 0.75;
- men += dudes_num[j];
- }
- if (dudes[j] == "Rubric Marine") {
- scr_en_weapon("Rubric Bolter", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.75;
- men += dudes_num[j];
- }
- if (dudes[j] == "Rubric Sorcerer") {
- scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.5;
- men += dudes_num[j];
- }
- if (dudes[j] == "Cultist") {
- scr_en_weapon("Autogun", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Melee Weapon", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 5;
- dudes_hp[j] = 35;
- men += dudes_num[j];
- }
- if (dudes[j] == "Hellbrute") {
- scr_en_weapon("Power Fist", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Meltagun", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 40;
- dudes_hp[j] = 300;
- dudes_dr[j] = 0.6;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
- if (dudes[j] == "Rhino") {
- scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j);
- dudes_ac[j] = 30;
- dudes_hp[j] = 200;
- dudes_dr[j] = 0.75;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
- if (dudes[j] == "Predator") {
- scr_en_weapon("Lascannon", false, dudes_num[j] * 2, dudes[j], j);
- scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 40;
- dudes_hp[j] = 350;
- dudes_dr[j] = 0.65;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
- if (dudes[j] == "Vindicator") {
- scr_en_weapon("Demolisher Cannon", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Havoc Launcher", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 40;
+if (obj_ncombat.enemy == eFACTION.CHAOS || obj_ncombat.enemy == eFACTION.HERETICS) {
+ for (var j = 1; j <= 20; j++) {
+ if ((dudes[j] == "Leader") && (obj_controller.faction_gender[10] == 1)) {
+ // Terminator Chaos Lord
+ scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 35;
+ if ((obj_ncombat.started == 0) || (dudes_num[j] > 1)) {
dudes_hp[j] = 300;
- dudes_dr[j] = 0.65;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
- if (dudes[j] == "Land Raider") {
- scr_en_weapon("Twin Linked Heavy Bolters", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j] * 2, dudes[j], j);
- dudes_ac[j] = 50;
- dudes_hp[j] = 400;
- dudes_dr[j] = 0.5;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
- if (dudes[j] == "Heldrake") {
- scr_en_weapon("Baleflame", false, dudes_num[j] * 5, dudes[j], j);
- dudes_ac[j] = 40;
- dudes_hp[j] = 400;
- dudes_dr[j] = 0.5;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
}
- if (dudes[j] == "Defiler") {
- scr_en_weapon("Defiler Claws", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Reaper Autocannon", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Flamer", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 40;
+ men += dudes_num[j];
+ dudes_dr[j] = 0.5;
+ }
+ if ((dudes[j] == "Leader") && (obj_controller.faction_gender[10] == 2)) {
+ // World Eater Lord
+ scr_en_weapon("Khorne Demon Melee", true, dudes_num[j] * 2, dudes[j], j);
+ dudes_ac[j] = 25;
+ if ((obj_ncombat.started == 0) || (dudes_num[j] > 1)) {
dudes_hp[j] = 300;
- dudes_dr[j] = 0.65;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
-
- if (dudes[j] == "Arch Heretic") {
- scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 40;
- dudes_dr[j] = 0.85;
- men += dudes_num[j];
- }
- if (dudes[j] == "Cultist Elite") {
- scr_en_weapon("Lasgun", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 10;
- dudes_hp[j] = 40;
- dudes_dr[j] = 0.9;
- men += dudes_num[j];
- }
- if (dudes[j] == "Mutant") {
- scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 5;
- dudes_hp[j] = 50;
- men += dudes_num[j];
- }
- if (dudes[j] == "Daemonhost") {
- scr_en_weapon("Daemonhost Claws", true, dudes_num[j], dudes[j], j);
- scr_en_weapon("Daemonhost_Powers", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 15;
- dudes_hp[j] = 200;
- dudes_dr[j] = 0.7;
- medi += dudes_num[j];
- }
- if (dudes[j] == "Possessed") {
- scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 10;
- dudes_hp[j] = 100;
- dudes_dr[j] = 0.75;
- men += dudes_num[j];
- }
-
- /*
- if (dudes[j]="Greater Daemon of Khorne"){scr_en_weapon("Khorne Demon Melee",true,dudes_num[j],dudes[j],j);dudes_ac[j]=10;dudes_hp[j]=300;dudes_dr[j]=0.25;medi+=dudes_num[j];}
- if (dudes[j]="Greater Daemon of Slaanesh"){scr_en_weapon("Demon Melee",true,dudes_num[j],dudes[j],j);scr_en_weapon("Lash Whip",true,dudes_num[j],dudes[j],j);dudes_ac[j]=10;dudes_hp[j]=250;dudes_dr[j]=0.35;medi+=dudes_num[j];}
- if (dudes[j]="Greater Daemon of Nurgle"){scr_en_weapon("Demon Melee",true,dudes_num[j],dudes[j],j);scr_en_weapon("Nurgle Vomit",true,dudes_num[j],dudes[j],j);dudes_ac[j]=15;dudes_hp[j]=400;dudes_dr[j]=0.25;medi+=dudes_num[j];}
- if (dudes[j]="Greater Daemon of Tzeentch"){scr_en_weapon("Demon Melee",true,dudes_num[j],dudes[j],j);scr_en_weapon("Witchfire",true,dudes_num[j],dudes[j],j);dudes_ac[j]=10;dudes_hp[j]=250;dudes_dr[j]=0.35;medi+=dudes_num[j];}
- */
-
- if (dudes[j] == "Technical") {
- scr_en_weapon("Autogun", false, dudes_num[j] * 2, dudes[j], j);
- scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 20;
- dudes_hp[j] = 100;
- dudes_dr[j] = 0.75;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
-
- if (dudes[j] == "Chaos Leman Russ") {
- scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 40;
- dudes_hp[j] = 250;
- dudes_dr[j] = 0.5;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
- if (dudes[j] == "Chaos Basilisk") {
- scr_en_weapon("Earthshaker Cannon", false, dudes_num[j], dudes[j], j);
- scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j);
- dudes_ac[j] = 30;
- dudes_hp[j] = 150;
- dudes_dr[j] = 0.75;
- veh += dudes_num[j];
- dudes_vehicle[j] = 1;
- }
-
- // if (obj_ncombat.enemy=11) and (dudes_vehicle[j]=0) and (dudes[j]!="Cultist"){dudes_dr[j]=0.8;}
- // if (obj_ncombat.enemy=11) and (dudes_vehicle[j]=1){dudes_dr[j]=0.75;}
-
- // if (dudes[j]!="") and (dudes_num[j]=0){dudes[j]="";dudes_num[j]=0;}
- if ((dudes[j] != "") && (dudes_hp[j] == 0)) {
- dudes[j] = "";
- dudes_num[j] = 0;
}
+ men += dudes_num[j];
+ dudes_dr[j] = 0.6;
+ }
+ if (dudes[j] == "Fallen") {
+ scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 25;
+ dudes_hp[j] = 150;
+ men += dudes_num[j];
+ dudes_dr[j] = 0.5;
+ }
+ if (dudes[j] == "Chaos Lord") {
+ scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 25;
+ dudes_hp[j] = 150;
+ dudes_dr[j] = 0.5;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Chaos Sorcerer") {
+ scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 25;
+ dudes_hp[j] = 150;
+ dudes_dr[j] = 0.5;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Warpsmith") {
+ scr_en_weapon("Chainfist", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Flamer", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 25;
+ dudes_hp[j] = 150;
+ dudes_dr[j] = 0.5;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Chaos Terminator") {
+ scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 35;
+ dudes_hp[j] = 125;
+ men += dudes_num[j];
+ dudes_dr[j] = 0.5;
+ }
+ if (dudes[j] == "Venerable Chaos Terminator") {
+ scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 35;
+ dudes_hp[j] = 150;
+ men += dudes_num[j];
+ dudes_dr[j] = 0.5;
+ }
+ if (dudes[j] == "World Eaters Terminator") {
+ scr_en_weapon("Power Fist", true, dudes_num[j] * 2, dudes[j], j);
+ scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 35;
+ dudes_hp[j] = 150;
+ men += dudes_num[j];
+ dudes_dr[j] = 0.5;
+ }
+ if (dudes[j] == "Obliterator") {
+ scr_en_weapon("Power Fist", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Obliterator Weapon", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 25;
+ dudes_hp[j] = 300;
+ dudes_dr[j] = 0.5;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Chaos Chosen") {
+ scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 125;
+ dudes_dr[j] = 0.85;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Venerable Chaos Chosen") {
+ scr_en_weapon("Meltagun", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 150;
+ men += dudes_num[j];
+ dudes_dr[j] = 0.75;
+ }
+ if (dudes[j] == "Chaos Space Marine") {
+ scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 100;
+ dudes_dr[j] = 0.9;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Havoc") {
+ scr_en_weapon("Missile Launcher", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 100;
+ dudes_dr[j] = 0.9;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Raptor") {
+ scr_en_weapon("Chainsword", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 100;
+ dudes_dr[j] = 0.75;
+ dudes_special[j] = "Jump Pack";
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "World Eater") {
+ scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 100;
+ dudes_dr[j] = 0.75;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "World Eaters Veteran") {
+ scr_en_weapon("Combi-Flamer", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 125;
+ dudes_dr[j] = 0.7;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Khorne Berzerker") {
+ scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Bolt Pistol", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 200;
+ dudes_dr[j] = 0.65;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Plague Marine") {
+ scr_en_weapon("Bolter", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Poison Chainsword", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 180;
+ dudes_dr[j] = 0.65;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Noise Marine") {
+ scr_en_weapon("Sonic Blaster", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 125;
+ dudes_dr[j] = 0.75;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Rubric Marine") {
+ scr_en_weapon("Rubric Bolter", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Melee1", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 150;
+ dudes_dr[j] = 0.75;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Rubric Sorcerer") {
+ scr_en_weapon("Witchfire", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Force Staff", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 150;
+ dudes_dr[j] = 0.5;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Cultist") {
+ scr_en_weapon("Autogun", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Melee Weapon", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 5;
+ dudes_hp[j] = 35;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Hellbrute") {
+ scr_en_weapon("Power Fist", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Meltagun", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 40;
+ dudes_hp[j] = 300;
+ dudes_dr[j] = 0.6;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Rhino") {
+ scr_en_weapon("Storm Bolter", false, dudes_num[j] * 2, dudes[j], j);
+ dudes_ac[j] = 30;
+ dudes_hp[j] = 200;
+ dudes_dr[j] = 0.75;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Predator") {
+ scr_en_weapon("Lascannon", false, dudes_num[j] * 2, dudes[j], j);
+ scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 40;
+ dudes_hp[j] = 350;
+ dudes_dr[j] = 0.65;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Vindicator") {
+ scr_en_weapon("Demolisher Cannon", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Havoc Launcher", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 40;
+ dudes_hp[j] = 300;
+ dudes_dr[j] = 0.65;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Land Raider") {
+ scr_en_weapon("Twin Linked Heavy Bolters", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Twin Linked Lascannon", false, dudes_num[j] * 2, dudes[j], j);
+ dudes_ac[j] = 50;
+ dudes_hp[j] = 400;
+ dudes_dr[j] = 0.5;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Heldrake") {
+ scr_en_weapon("Baleflame", false, dudes_num[j] * 5, dudes[j], j);
+ dudes_ac[j] = 40;
+ dudes_hp[j] = 400;
+ dudes_dr[j] = 0.5;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Defiler") {
+ scr_en_weapon("Defiler Claws", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Reaper Autocannon", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Flamer", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 40;
+ dudes_hp[j] = 300;
+ dudes_dr[j] = 0.65;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Arch Heretic") {
+ scr_en_weapon("Power Weapon", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Plasma Pistol", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 40;
+ dudes_dr[j] = 0.85;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Cultist Elite") {
+ scr_en_weapon("Lasgun", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Chainaxe", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 10;
+ dudes_hp[j] = 40;
+ dudes_dr[j] = 0.9;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Mutant") {
+ scr_en_weapon("Flesh Hooks", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 5;
+ dudes_hp[j] = 50;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Daemonhost") {
+ scr_en_weapon("Daemonhost Claws", true, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Daemonhost_Powers", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 15;
+ dudes_hp[j] = 200;
+ dudes_dr[j] = 0.7;
+ medi += dudes_num[j];
+ }
+ if (dudes[j] == "Possessed") {
+ scr_en_weapon("Possessed Claws", true, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 10;
+ dudes_hp[j] = 100;
+ dudes_dr[j] = 0.75;
+ men += dudes_num[j];
+ }
+ if (dudes[j] == "Technical") {
+ scr_en_weapon("Autogun", false, dudes_num[j] * 2, dudes[j], j);
+ scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 20;
+ dudes_hp[j] = 100;
+ dudes_dr[j] = 0.75;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Chaos Leman Russ") {
+ scr_en_weapon("Battle Cannon", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 40;
+ dudes_hp[j] = 250;
+ dudes_dr[j] = 0.5;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if (dudes[j] == "Chaos Basilisk") {
+ scr_en_weapon("Earthshaker Cannon", false, dudes_num[j], dudes[j], j);
+ scr_en_weapon("Heavy Bolter", false, dudes_num[j], dudes[j], j);
+ dudes_ac[j] = 30;
+ dudes_hp[j] = 150;
+ dudes_dr[j] = 0.75;
+ veh += dudes_num[j];
+ dudes_vehicle[j] = 1;
+ }
+ if ((dudes[j] != "") && (dudes_hp[j] == 0)) {
+ dudes[j] = "";
+ dudes_num[j] = 0;
}
-
- /* */
}
}
-if (obj_ncombat.enemy == 13) {
- repeat (20) {
- j += 1;
-
+if (obj_ncombat.enemy == eFACTION.NECRONS) {
+ for (var j = 1; j <= 20; j++) {
if (dudes[j] == "Necron Overlord") {
scr_en_weapon("Staff of Light", true, dudes_num[j], dudes[j], j);
scr_en_weapon("Staff of Light Shooting", true, dudes_num[j], dudes[j], j);
@@ -1670,7 +1527,6 @@ if (obj_ncombat.enemy == 13) {
dudes_dr[j] = 0.75;
men += dudes_num[j];
}
-
if (dudes[j] == "Flayed One") {
scr_en_weapon("Melee Weapon", true, dudes_num[j], dudes[j], j);
dudes_ac[j] = 10;
@@ -1694,7 +1550,6 @@ if (obj_ncombat.enemy == 13) {
dudes_dr[j] = 0.85;
men += dudes_num[j];
}
-
if (dudes[j] == "Necron Wraith") {
scr_en_weapon("Wraith Claws", true, dudes_num[j], dudes[j], j);
if ((obj_ncombat.started == 0) || (dudes_num[j] > 1)) {
@@ -1712,7 +1567,6 @@ if (obj_ncombat.enemy == 13) {
dudes_dr[j] = 0.75;
men += dudes_num[j];
}
-
if (dudes[j] == "Tomb Stalker") {
scr_en_weapon("Gauss Particle Cannon", false, dudes_num[j] * 1, dudes[j], j);
scr_en_weapon("Overcharged Gauss Cannon", false, dudes_num[j] * 2, dudes[j], j);
@@ -1761,32 +1615,8 @@ if (obj_ncombat.enemy == 13) {
veh += dudes_num[j];
dudes_vehicle[j] = 1;
}
-
- // if (dudes_dr[j]>0.8) then dudes_dr[j]=0.8;
}
-
- /* */
-}
-/*
-if (obj_ncombat.battle_special = "ruins") or(obj_ncombat.battle_special = "ruins_eldar") {
- var i;
- i = 0;
- repeat(20) {
- i += 1;
- if (dudes_vehicle[i] > 0) and(dudes_num[i] > 0) {
- obj_ncombat.enemy_forces -= dudes_num[i];
- obj_ncombat.enemy_max -= dudes_num[i];
- dudes[i] = "";
- dudes_special[i] = "";
- dudes_num[i] = 0;
- dudes_ac[i] = 0;
- dudes_hp[i] = 0;
- dudes_dr[i] = 1;
- dudes_vehicle[i] = 0;
- }
- }
}
-*/
if (men + veh + medi <= 0) {
instance_destroy(id);
@@ -1801,6 +1631,3 @@ engaged = collision_point(x + 12, y, obj_pnunit, 0, 1) || collision_point(x - 12
if (neww == 1) {
neww = 0;
}
-
-/* */
-/* */
diff --git a/objects/obj_enunit/Create_0.gml b/objects/obj_enunit/Create_0.gml
index e5b63b9c75..51a9373e1c 100644
--- a/objects/obj_enunit/Create_0.gml
+++ b/objects/obj_enunit/Create_0.gml
@@ -81,8 +81,6 @@ if (obj_ncombat.enemy == 1) {
alarm[6] = 10;
}
-// if (obj_ncombat.enemy=1){alarm[1]=8;alarm[5]=10;}
-
hit = function() {
return scr_hit(x1, y1, x2, y2) && obj_ncombat.fadein <= 0;
};
diff --git a/objects/obj_enunit/Draw_0.gml b/objects/obj_enunit/Draw_0.gml
index 8c1447084a..0006f1603e 100644
--- a/objects/obj_enunit/Draw_0.gml
+++ b/objects/obj_enunit/Draw_0.gml
@@ -25,11 +25,10 @@ if (draw_size > 0) {
if (obj_ncombat.enemy != 1) {
composition_string = block_composition_string();
} else {
- var variety, variety_num, sofar, compl;
- variety = [];
- variety_num = [];
- sofar = 0;
- compl = "";
+ var variety = [];
+ var variety_num = [];
+ var sofar = 0;
+ var compl = "";
var variety_len = array_length(variety);
for (var q = 0; q < variety_len; q++) {
@@ -47,10 +46,10 @@ if (draw_size > 0) {
}
}
- var dudes_len = array_length(dudes);
+ dudes_len = array_length(dudes);
for (var q = 0; q < dudes_len; q++) {
if (dudes[q] != "") {
- var variety_len = array_length(variety);
+ variety_len = array_length(variety);
for (var i = 0; i < variety_len; i++) {
if (dudes[q] == variety[i]) {
variety_num[i] += dudes_num[q];
diff --git a/objects/obj_event/Alarm_0.gml b/objects/obj_event/Alarm_0.gml
index 7d6d07e34d..aa4bf2ed4f 100644
--- a/objects/obj_event/Alarm_0.gml
+++ b/objects/obj_event/Alarm_0.gml
@@ -1,5 +1,4 @@
-var intro;
-intro = "";
+var intro = "";
if (obj_controller.fest_type == "Great Feast") {
if (obj_controller.fest_feasts == 0) {
diff --git a/objects/obj_event/Create_0.gml b/objects/obj_event/Create_0.gml
index 80cc3c704a..1c69075a04 100644
--- a/objects/obj_event/Create_0.gml
+++ b/objects/obj_event/Create_0.gml
@@ -14,10 +14,7 @@ closing = false;
attendants = 0;
avatars = 0;
-var i;
-i = -1;
-repeat (2501) {
- i += 1;
+for (var i = 0; i <= 2500; i++) {
attend_co[i] = 0;
attend_id[i] = 0;
attend_mood[i] = "";
@@ -64,23 +61,13 @@ scr_colors_initialize();
scr_shader_initialize();
if (obj_controller.fest_display > 0) {
- var q, yep;
- q = 0;
- yep = 0;
if (obj_ini.artifact_tags[obj_controller.fest_display] != obj_controller.fest_display_tags) {
- repeat (20) {
- q += 1;
- if (yep == 0) {
- if (obj_ini.artifact_tags[q] == obj_controller.fest_display_tags) {
- yep = q;
- }
+ obj_controller.fest_display = 0;
+ for (var q = 1; q <= 20; q++) {
+ if (obj_ini.artifact_tags[q] == obj_controller.fest_display_tags) {
+ obj_controller.fest_display = q;
+ break;
}
}
- if (yep > 0) {
- obj_controller.fest_display = q;
- }
- if (yep == 0) {
- obj_controller.fest_display = 0;
- }
}
}
diff --git a/objects/obj_event/Draw_0.gml b/objects/obj_event/Draw_0.gml
index 5c6e7f5820..5aad0920b6 100644
--- a/objects/obj_event/Draw_0.gml
+++ b/objects/obj_event/Draw_0.gml
@@ -1,6 +1,5 @@
var xx = camera_get_view_x(view_camera[0]) + 317;
var yy = camera_get_view_y(view_camera[0]) + 144;
-var ii = 0;
draw_set_alpha(fade_alpha);
@@ -41,14 +40,11 @@ if (avatars > 0) {
draw_set_halign(fa_center);
draw_set_color(c_black);
- repeat (8) {
- ii += 1;
+ for (var i = 1; i <= 8; i++) {
x5 += 120;
- if (avatar_name[ii] != "") {
- // draw_sprite(spr_popup_event_avatar,avatar_image[ii],x5,y5);
- scr_image("event", avatar_image[ii], x5, y5, 97, 95);
- draw_text_transformed(x5 + 47, y5 + 99, string_hash_to_newline(string(avatar_name[ii])), 0.75, 1, 0);
- // draw_text(x5+45,y5+100,string(avatar_name[ii])+"#"+string(avatar_rank[ii]));
+ if (avatar_name[i] != "") {
+ scr_image("event", avatar_image[i], x5, y5, 97, 95);
+ draw_text_transformed(x5 + 47, y5 + 99, string_hash_to_newline(string(avatar_name[i])), 0.75, 1, 0);
}
}
@@ -64,8 +60,7 @@ draw_set_halign(fa_left);
draw_set_font(fnt_40k_14);
if (exit_fade >= 0) {
- var ealpha;
- ealpha = exit_fade / 30;
+ var ealpha = exit_fade / 30;
draw_set_alpha(min(fade_alpha, ealpha));
if (exit_fade < 30) {
@@ -89,11 +84,9 @@ if (exit_fade >= 0) {
draw_set_color(c_gray);
draw_set_alpha(fade_alpha);
-ii = 0;
-y5 = yy + 120 - 21;
-repeat (17) {
+y5 = yy + 99;
+for (var i = 1; i <= 17; i++) {
y5 += 21;
- ii += 1;
- draw_text_ext(xx + 25, y5, string_hash_to_newline(string(line[ii])), -1, 916);
+ draw_text_ext(xx + 25, y5, string_hash_to_newline(string(line[i])), -1, 916);
}
draw_set_alpha(1);
diff --git a/objects/obj_event/Step_0.gml b/objects/obj_event/Step_0.gml
index ee6992643f..702943e59f 100644
--- a/objects/obj_event/Step_0.gml
+++ b/objects/obj_event/Step_0.gml
@@ -25,10 +25,8 @@ if ((closing == true) && (fading == -1) && (fade_alpha <= 0)) {
}
}
- var ide = 0, unit;
- repeat (700) {
- ide += 1;
- unit = obj_ini.TTRPG[attend_co[ide]][attend_id[ide]];
+ for (var ide = 1; ide <= 700; ide++) {
+ var unit = obj_ini.TTRPG[attend_co[ide]][attend_id[ide]];
if ((attend_corrupted[ide] == 0) && (attend_id[ide] > 0)) {
if (array_contains(obj_ini.artifact_tags[obj_controller.fest_display], "chaos")) {
unit.corruption += choose(1, 2, 3, 4);
@@ -44,17 +42,9 @@ if ((closing == true) && (fading == -1) && (fade_alpha <= 0)) {
if (obj_controller.fest_repeats <= 0) {
obj_controller.fest_scheduled = 0;
- var p1, p2, p3;
- p1 = obj_controller.fest_type;
- p3 = "";
- p2 = obj_controller.fest_planet;
-
- if (p2 > 0) {
- p3 = string(obj_controller.fest_star) + " " + scr_roman(obj_controller.fest_wid);
- }
- if (p2 <= 0) {
- p3 = +" the vessel '" + string(obj_ini.ship[obj_controller.fest_sid]) + "'";
- }
+ var p1 = obj_controller.fest_type;
+ var p2 = obj_controller.fest_planet;
+ var p3 = (p2 > 0) ? string(obj_controller.fest_star) + " " + scr_roman(obj_controller.fest_wid) : " the vessel '" + string(obj_ini.ship[obj_controller.fest_sid]) + "'";
scr_alert("green", "event", string(p1) + " on " + string(p3) + " ends.", 0, 0);
scr_event_log("green", string(p1) + " on " + string(p3) + " ends.", p3);
@@ -85,6 +75,7 @@ if (ticked == 1) {
}
if ((lines_acted == 18) && (part2 != "")) {
+ var textt = "";
if (part2 == "fish") {
if (attendants <= 30) {
textt = "Chapter Serfs ferry out several large, covered dishes, the scent of seafood filling the air. Once they are set front and center the silver cloches are removed, revealing a banquet of exotic fish. Raw rolls of meat with rice, pufferfish, and even a massive broadbill are contained within.";
@@ -102,10 +93,10 @@ if (ticked == 1) {
ticks = -120;
ticked = 0;
stage = 6;
- textt = "";
exit;
}
if ((lines_acted == 36) && (part3 != "")) {
+ var textt = "";
if (part3 == "lobster") {
textt = "A small army of Chapter Serfs and servitors enter the room, carrying with them a truly massive silver plate. Bore much like a palanquin, the massive dish is covered by an equally large and decorated cloche. As the main course inches across the room it gathers quite the number of looks. After struggling a bit the dish is set front and center in the room, the lid removed. Contained within is a giant, boiled Deathcoleri from Zeriah II. The once spikey carapace is now a healthily cooked red, the crustacean smelling absolutely delicious.";
}
@@ -115,81 +106,49 @@ if (ticked == 1) {
ticks = -210;
ticked = 0;
stage = 7;
- textt = "";
exit;
}
- var ide, good, dire, orig, dice1, dice2, dice3, dice4, txtt, rando, doso, activity;
- good = false;
- doso = false;
- activity = "";
- dire = 0;
- orig = 0;
- rando = choose(1, 2);
- dice1 = floor(random(100)) + 1;
- dice2 = floor(random(100)) + 1;
- dice3 = floor(random(100)) + 1;
+ var ide = floor(random(attendants)) + 1;
var unit = obj_ini.TTRPG[attend_co[ide]][attend_id[ide]];
-
- repeat (20) {
- if (good == false) {
- good = true;
- ide = floor(random(attendants)) + 1;
- if (unit.IsSpecialist(SPECIALISTS_HEADS)) {
- good = false;
- }
- }
- }
- if (good == false) {
- good = true;
- }
+ var textt = "";
+ var doso = false;
+ var activity = "";
+ var dire = 0;
+ var orig = 0;
+ var rando = choose(1, 2);
+ var dice1 = floor(random(100)) + 1;
+ var dice2 = floor(random(100)) + 1;
+ var dice3 = floor(random(100)) + 1;
+ var dice4 = floor(random(100)) + 1;
+ var good = true;
// If this marine has already acted then look for a nearby marine that has yet to act
if (attend_displayed[ide] > 0) {
- if (attend_displayed[ide] <= attendants / 2) {
- dire = -1;
- }
- if (attend_displayed[ide] > attendants / 2) {
- dire = 1;
- }
+ dire = (attend_displayed[ide] <= attendants / 2) ? -1 : 1;
orig = ide;
}
// Cycle downward
if (dire == -1) {
good = false;
- var resp;
- resp = ide;
-
- repeat (resp) {
- if (good == false) {
- ide -= 1;
- if (attend_displayed[ide] == 0) {
- good = true;
- }
+ for (var resp = ide - 1; resp >= 0; resp--) {
+ if (attend_displayed[resp] == 0) {
+ good = true;
+ break;
}
}
- if (good == false) {
- dire = 1;
- }
- if (good == true) {
- dire = 0;
- }
+ dire = (good) ? 0 : 1;
}
// Cycle upward
if (dire == 1) {
good = false;
- var resp;
- resp = attendants;
-
- repeat (resp) {
- if (good == false) {
- ide += 1;
- if (attend_displayed[ide] == 0) {
- good = true;
- }
+ for (var resp = 0; resp < attendants; resp++) {
+ if (attend_displayed[resp] == 0) {
+ good = true;
+ break;
}
}
}
@@ -213,7 +172,6 @@ if (ticked == 1) {
if ((attend_confused[ide] <= 0) && (activity == "")) {
doso = true;
}
- var unit = obj_ini.TTRPG[attend_co[ide]][attend_id[ide]];
if (doso == true) {
dice1 = floor(random(100)) + 1;
dice2 = floor(random(100)) + 1;
@@ -222,21 +180,16 @@ if (ticked == 1) {
if (obj_controller.fest_type == "Great Feast") {
// Get chances of random crap when in a Great Feast
- var mod1, mod2, mod3, rep1, rep2, rep3;
- mod1 = 0;
- mod2 = 0;
- mod3 = 0;
+ var mod1 = 0;
+ var mod2 = unit.corruption / 5;
+ var mod3 = unit.corruption / 10;
- rep1 = 1; // attend_feasted[ide]+1;
- rep2 = attend_drunk[ide] + 1;
- rep3 = attend_high[ide] + 1;
-
- mod2 = unit.corruption / 5;
- mod3 = unit.corruption / 10;
+ var rep1 = 1;
+ var rep2 = attend_drunk[ide] + 1;
+ var rep3 = attend_high[ide] + 1;
activity = "talk";
- // show_message("roll needed for eating: >="+string((((obj_controller.fest_feasts*30)-10)+mod1)/rep1)+", rolled:"+string(dice1));
if ((dice3 <= min(75, (((obj_controller.fest_drugses * 10) - 10) + mod3) / rep3)) && (obj_controller.fest_feature3 > 0)) {
activity = "drugs";
}
@@ -368,8 +321,7 @@ if (ticked == 1) {
attend_feasted[ide] += 1;
}
if (activity == "drink") {
- var eater_type;
- eater_type = 1;
+ var eater_type = 1;
if (global.chapter_name == "Space Wolves" || obj_ini.progenitor == ePROGENITOR.SPACE_WOLVES) {
eater_type = 2;
}
@@ -386,8 +338,6 @@ if (ticked == 1) {
}
}
if (eater_type == 2) {
- // if (attend_drunk[ide]<=0) then textt=unit.name_role()+" hails a serf and has "+choose("him","her")+" bring him a tankard of Mjod.";
- // if (attend_drunk[ide]>0){
rando = choose(1, 2, 3);
if (rando == 1) {
textt = unit.name_role() + " pounds down Mjod, the concoction already beginning to inebriate the astartes.";
@@ -398,7 +348,6 @@ if (ticked == 1) {
if (rando == 3) {
textt = unit.name_role() + " begins to drink down Mjod, a large frothing glass of the substance in each hand. He alternates between the two.";
}
- // }
}
if (eater_type == 3) {
if (attend_drunk[ide] <= 0) {
@@ -422,8 +371,6 @@ if (ticked == 1) {
}
}
- // show_message("activity:"+string(activity)+", text:"+string(textt));
-
if (activity == "talk") {
textt = scr_event_gossip(ide);
}
@@ -431,14 +378,7 @@ if (ticked == 1) {
if (activity == "artifact") {
var spesh = "";
var woa = string(obj_ini.artifact[obj_controller.fest_display]);
- var nerves_spesh = [
- "GOAT",
- "CHE",
- "THI",
- "TENTACLES",
- "JUM",
- "PRE"
- ];
+ var nerves_spesh = ["GOAT", "CHE", "THI", "TENTACLES", "JUM", "PRE"];
for (var sp = 0; sp < array_length(nerves_spesh); sp++) {
if (array_contains(obj_ini.artifact_tags[obj_controller.fest_display], nerves_spesh[sp])) {
spesh = "nerves";
@@ -453,8 +393,7 @@ if (ticked == 1) {
if (array_contains(obj_ini.artifact_tags[obj_controller.fest_display], "MNR")) {
spesh = "minor";
}
- var unit = obj_ini.TTRPG[attend_co[ide]][attend_id[ide]];
- var textt = unit.name_role();
+ textt = unit.name_role();
if (spesh == "") {
rando = choose(1, 2, 3, 4, 5);
@@ -508,54 +447,6 @@ if (ticked == 1) {
}
attend_corrupted[ide] = 1;
}
-
- /*
-
-
-
- if (t1="Weapon"){
- // gold, glowing, underslung bolter, underslung flamer
- t5=choose("GOLD","GLOW","UBOLT","UFL");
- // Runes, scope, adamantium, void
- t4=choose("RUN","SCO","ADAMANTINE","VOI");
- if ((t2="Power Sword") or (t2="Power Axe") or (t2="Power Spear")) and (t4="SCO") then t4="CHB";// chainblade
- if ((t2="Power Fist") or (t2="Power Claw")) and (t4="SCO") then t4="DUB";// doubled up
- if (t2="Relic Blade") and (t4="SCO") then t4="UFL";// underslung flamer
- }
- if (t1="Armour"){
- // golden filigree, glowing optics, purity seals
- t5=choose("GOLD","GLOW","PUR");
- // articulated plates, spikes, runes, drake scales
- t4=choose("ART","SPIKES","RUN","DRA");
- }
- if (t1="Gear"){
- // supreme construction, adamantium, gold
- t4=choose("SUP","ADAMANTINE","GOLD");// bur = ever burning
- if (t2="Rosarius") then t5=choose("GOLD","GLOW","BIG","BUR");
- if (t2="Bionics") then t5=choose("GOLD","GLOW","RUN","SOO");// Soothing appearance
- if (t2="Psychic Hood") then t5=choose("FIN","GOLD","BUR","MASK");// fine cloth, gold, ever burning, mask
- if (t2="Jump Pack") then t5=choose("SPIKES","SKRE","WHI","SILENT");// spikes, screaming, white flame, silent
- if (t2="Servo-arm") then t5=choose("GOLD","TENTACLES","GOR","SOO");// gold, tentacles, gorilla build, soothing appearance
- }
- if (t1="Device") and (t2!="Robot"){
- t4=choose("GOLD","CRU","GLOW","ADAMANTINE");// skulls, falling angel, thin, tentacle, mindfuck
- if (t2!="Statue") then t5=choose("SKU","FAL","THI","TENTACLES","MIN");
- // goat, speechless, dying angel, jumping into magma, cheshire grunx
- if (t2="Statue") then t5=choose("GOAT","SPE","DYI","JUM","CHE");
- // Gold, glowing, preserved flesh, adamantium
- if (t2="Tome") then t4=choose("GOLD","GLOW","PRE","ADAMANTINE","SAL","BUR");
- if (t4="PRE") and (t3="") then t3=choose("","Chaos","Daemonic");
- }
- if (t1="Device") and (t2="Robot"){// human/robutt/shivarah
- t4=choose("HU","RO","SHI");
- t5=choose("ADAMANTINE","JAD","BRO","RUNE");
- }
-
-
- if (string_count("Chaos",obj_ini.artifact_tags[obj_controller.fest_display])>0) then spesh="chaos";
- if (string_count("Daem",obj_ini.artifact_tags[obj_controller.fest_display])>0) then spesh="daemonic";
-
- */
}
if (textt != "") {
@@ -576,14 +467,6 @@ if (ticked == 1) {
}
if (liness > (attendants / 2)) {
- var i;
- i = -1;
- repeat (1501) {
- i += 1;
- attend_displayed[i] = 0;
- }
+ attend_displayed = array_create(1500, 0);
liness = 0;
}
-
-/* */
-/* */
diff --git a/objects/obj_event_log/Create_0.gml b/objects/obj_event_log/Create_0.gml
index 6f51017e91..d9c01930f4 100644
--- a/objects/obj_event_log/Create_0.gml
+++ b/objects/obj_event_log/Create_0.gml
@@ -23,8 +23,8 @@ repeat (101) {
e += 1;
topics[e] = "";
}
-if (file_exists("main\\help.ini")) {
- ini_open("main\\help.ini");
+if (file_exists(PATH_HELP_INI)) {
+ ini_open(PATH_HELP_INI);
var ch;
ch = 0;
repeat (100) {
diff --git a/objects/obj_event_log/Draw_0.gml b/objects/obj_event_log/Draw_0.gml
index 59b244d9e6..e3acdc8111 100644
--- a/objects/obj_event_log/Draw_0.gml
+++ b/objects/obj_event_log/Draw_0.gml
@@ -116,7 +116,7 @@ if (help == 1) {
draw_set_alpha(1);
if (mouse_button_clicked()) {
topic = topics[t];
- ini_open("main\\help.ini");
+ ini_open(PATH_HELP_INI);
info = ini_read_string(string(t), "info", "");
strategy = ini_read_string(string(t), "strategy", "");
main_info = ini_read_string(string(t), "main_info", "");
diff --git a/objects/obj_ini/Create_0.gml b/objects/obj_ini/Create_0.gml
index cda84a928b..c926a76407 100644
--- a/objects/obj_ini/Create_0.gml
+++ b/objects/obj_ini/Create_0.gml
@@ -273,7 +273,7 @@ deserialize = function(save_data) {
var all_names = struct_get_names(save_data);
if (!array_contains(all_names, "chapter_squad_arrangement")) {
- obj_ini.chapter_squad_arrangement = json_to_gamemaker(working_directory + $"main\\squads\\company_squad_builds.json", json_parse);
+ obj_ini.chapter_squad_arrangement = json_to_gamemaker(working_directory + $"main/squads/company_squad_builds.json", json_parse);
}
var _len = array_length(all_names);
diff --git a/objects/obj_ncombat/Alarm_0.gml b/objects/obj_ncombat/Alarm_0.gml
index ce0fced4fe..f1bc5f961a 100644
--- a/objects/obj_ncombat/Alarm_0.gml
+++ b/objects/obj_ncombat/Alarm_0.gml
@@ -3164,18 +3164,34 @@ try {
player_guard = battle_object.p_guardsmen[battle_id];
}
if (player_guard > 0) {
- // Place the Guard in the front column, matching the rightmost existing
- // block. Stepping ahead of the line breaks the advance on an attack (they
- // march out past the engagement), so they sit in the line and move with it.
- var _frontx = -50;
+ // Place the Guard as the front rank in both attack and defence. They must be
+ // the leading block, never a rear one: the player advance (move_unit_block
+ // "east") refuses to move a block when another block sits directly ahead of it,
+ // so Guard placed behind the Marines on attack can never step forward, and the
+ // Marines simply advance off and leave them standing at the rear (the Marines
+ // "pass them by"). As the front rank the Guard have open ground ahead, so they
+ // lead the charge on attack and hold the line on defence, and either way they
+ // reach the enemy and fight. Front rank is just east of the Marines and still
+ // west of the enemy spawn (rightmost block + 10).
+ var _maxx = -50;
+ var _minx = 1000000;
with (obj_pnunit) {
- if (x > _frontx) _frontx = x;
+ if (x > _maxx) _maxx = x;
+ if (x < _minx) _minx = x;
+ }
+ var _frontx;
+ if (_maxx < 0) {
+ _frontx = 100; // no other player blocks: stand-alone Guard force
+ } else {
+ _frontx = _maxx + 5; // front rank, attack and defence alike
}
u = instance_create(_frontx, 240, obj_pnunit);
u.guard = 1;
- // The mass of Guardsmen are men, so they render and take losses per man,
- // the same way the enemy Guard do.
+ // Guardsmen line: pure infantry, no tanks, the way the enemy Imperial Guard
+ // keep their soldier lines tank-free. They render and take losses per man like
+ // the enemy Guard. They have no anti-tank weapon, so against armour they can
+ // only bleed and die unless a Leman Russ line is present.
u.men = player_guard;
u.dudes[1] = "Imperial Guardsman";
u.dudes_num[1] = player_guard;
@@ -3183,37 +3199,43 @@ try {
u.dudes_hp[1] = 5;
u.dudes_vehicle[1] = 0;
- // Leman Russ armour for a large garrison: real vehicles, like the enemy's.
+ // Keep the default obj_pnunit sprite (do not blank it): the block needs its
+ // collision mask, or the enemy advance walks straight through the Guard.
+
+ // Count the infantry toward player forces. The normal accumulation only runs
+ // during setup and this block spawns too late for it; obj_pnunit's Alarm_3
+ // skips its auto-add for guard blocks so this is not double counted.
+ player_forces += u.men;
+ player_max += u.men;
+
+ // Leman Russ tanks form their own separate block (guard == 2), placed just
+ // behind the infantry line so the Guardsmen screen them. Tanks are the only
+ // anti-armour the Guard field, kept out of the soldier line like the enemy's.
var _tanks = min(30, round(player_guard / 5000));
if (_tanks > 0) {
+ var _tankx = max(5, _frontx - 10);
+ var t = instance_create(_tankx, 240, obj_pnunit);
+ t.guard = 2;
+ t.men = 0;
for (var i = 1; i <= _tanks; i++) {
- u.veh_co[i] = 0;
- u.veh_id[i] = 0;
- u.veh_type[i] = "Leman Russ Battle Tank";
- u.veh_hp[i] = 250;
- u.veh_ac[i] = 40;
- u.veh_dead[i] = 0;
- u.veh_hp_multiplier[i] = 1;
- u.veh_wep1[i] = "Battle Cannon";
+ t.veh_co[i] = 0;
+ t.veh_id[i] = 0;
+ t.veh_type[i] = "Leman Russ Battle Tank";
+ t.veh_hp[i] = 250;
+ t.veh_ac[i] = 40;
+ t.veh_dead[i] = 0;
+ t.veh_hp_multiplier[i] = 1;
+ t.veh_wep1[i] = "Battle Cannon";
}
- u.veh = _tanks;
- u.dudes[2] = "Leman Russ Battle Tank";
- u.dudes_num[2] = _tanks;
- u.dudes_ac[2] = 40;
- u.dudes_hp[2] = 250;
- u.dudes_vehicle[2] = 1;
+ t.veh = _tanks;
+ t.dudes[1] = "Leman Russ Battle Tank";
+ t.dudes_num[1] = _tanks;
+ t.dudes_ac[1] = 40;
+ t.dudes_hp[1] = 250;
+ t.dudes_vehicle[1] = 1;
+ player_forces += t.veh;
+ player_max += t.veh;
}
- // Keep the default obj_pnunit sprite (do not blank it): the block needs its
- // collision mask, or the enemy advance walks straight through the Guard
- // without stopping to fight, which is what sent the enemy off the screen.
-
- // Count the Guard toward the battle's player forces. The normal accumulation
- // only runs during setup and this block spawns too late for it, so the win/
- // loss check never saw them and the battle ended when the Marines died. Add
- // them here; obj_pnunit's Alarm_3 skips its auto-add for guard blocks so this
- // is not double counted.
- player_forces += u.men + u.veh;
- player_max += u.men + u.veh;
}
instance_activate_object(obj_enunit);
diff --git a/objects/obj_star/Alarm_3.gml b/objects/obj_star/Alarm_3.gml
index 905bd864f5..b9e503f956 100644
--- a/objects/obj_star/Alarm_3.gml
+++ b/objects/obj_star/Alarm_3.gml
@@ -54,7 +54,8 @@ try {
if (struct_exists(_data, "planet")) {
obj_controller.selecting_planet = _data.planet;
if (obj_controller.selecting_planet > 0 && obj_controller.selecting_planet < 5) {
- obj_star_select.garrison = get_garrison(obj_controller.selecting_planet);
+ var _pdata = get_planet_data(obj_controller.selecting_planet);
+ _pdata.set_star_select_planet();
}
}
obj_controller.selection_data = false;
diff --git a/objects/obj_star/Create_0.gml b/objects/obj_star/Create_0.gml
index 854716dcdb..4d6d88dc95 100644
--- a/objects/obj_star/Create_0.gml
+++ b/objects/obj_star/Create_0.gml
@@ -85,7 +85,16 @@ get_garrison = function(planet){
_gar.star = self;
_gar.planet = planet;
} else {
- _gar.update();
+ try {
+ _gar.update();
+ } catch (_garrison_reload_error) {
+ // A garrison restored from a save keeps its data but loses its struct
+ // methods, so rebuild it from the planet's operatives, which persist.
+ system_garrison[planet] = new GarrisonForce(self, planet);
+ _gar = system_garrison[planet];
+ _gar.star = self;
+ _gar.planet = planet;
+ }
}
return _gar;
}
@@ -98,7 +107,14 @@ get_sabatours = function(planet){
_gar.star = self;
_gar.planet = planet;
} else {
- _gar.update();
+ try {
+ _gar.update();
+ } catch (_sabotage_reload_error) {
+ system_sabatours[planet] = new GarrisonForce(self, planet, "sabotage");
+ _gar = system_sabatours[planet];
+ _gar.star = self;
+ _gar.planet = planet;
+ }
}
return _gar;
}
@@ -109,7 +125,12 @@ get_planet_data = function(planet){
system_datas[planet] = new PlanetData(planet, self);
_gar = system_datas[planet];
} else {
- _gar.refresh_data();
+ try {
+ _gar.refresh_data();
+ } catch (_planetdata_reload_error) {
+ system_datas[planet] = new PlanetData(planet, self);
+ _gar = system_datas[planet];
+ }
}
return _gar;
}
diff --git a/objects/obj_star_select/Draw_64.gml b/objects/obj_star_select/Draw_64.gml
index c7bdc3805e..54a834d72b 100644
--- a/objects/obj_star_select/Draw_64.gml
+++ b/objects/obj_star_select/Draw_64.gml
@@ -260,15 +260,13 @@ try {
exit;
}
}
- } else if (garrison != "" && !population) {
+ } else if (garrison != "" && !population && garrison.planet == obj_controller.selecting_planet) {
if (garrison.garrison_force) {
draw_set_font(fnt_40k_14);
- if (!garrison.garrison_leader) {
- garrison.find_leader();
- garrison.garrison_disposition_change(true);
- garrison_data_slate.sub_title = $"Garrison Leader {garrison.garrison_leader.name_role()}";
- garrison_data_slate.body_text = garrison.garrison_report();
- }
+
+ garrison_data_slate.sub_title = $"Garrison Leader {garrison.garrison_leader.name_role()}";
+ garrison_data_slate.body_text = garrison.garrison_report();
+
garrison_data_slate.inside_method = function() {
garrison_data_slate.title = "Garrison Report";
draw_set_color(c_gray);
@@ -284,15 +282,15 @@ try {
if (scr_hit(xx + 20, half_way + 10, xx + 20 + string_width(defence_string), half_way + 10 + 20)) {
tooltip_draw(defence_data[1], 400);
}
- if (garrison.dispo_change != "none") {
- if (garrison.dispo_change > 55) {
- draw_text(xx + 20, half_way + 30, $"Garrison Disposition Effect : Positive");
- } else if (garrison.dispo_change > 44) {
- draw_text(xx + 20, half_way + 30, $"Garrison Disposition Effect : Neutral");
- } else {
- draw_text(xx + 20, half_way + 30, $"Garrison Disposition Effect : Negative");
- }
+
+ if (garrison.dispo_change > 55) {
+ draw_text(xx + 20, half_way + 30, $"Garrison Disposition Effect : Positive");
+ } else if (garrison.dispo_change > 44 || garrison.dispo_change == 0) {
+ draw_text(xx + 20, half_way + 30, $"Garrison Disposition Effect : Neutral");
+ } else {
+ draw_text(xx + 20, half_way + 30, $"Garrison Disposition Effect : Negative");
}
+
};
garrison_data_slate.draw(340 + main_data_slate.width, 160, 0.6, 0.6);
}
diff --git a/scripts/ErrorHandler/ErrorHandler.gml b/scripts/ErrorHandler/ErrorHandler.gml
index b211b22d70..c905e3ae83 100644
--- a/scripts/ErrorHandler/ErrorHandler.gml
+++ b/scripts/ErrorHandler/ErrorHandler.gml
@@ -73,10 +73,10 @@ function GameError(_header, _message, _stacktrace = "", _critical = false, _repo
/// @description Builds player-facing error message
static build_player_message = function() {
- var _path_hint = string_replace_all(game_save_id, "/", "\\");
+ var _path_hint = (os_type == os_windows) ? string_replace_all(game_save_id, "/", "\\") : game_save_id;
var _msg = $"{header}\n\n{message}\n\n";
- _msg += $"The error log was saved at:\n{_path_hint}Logs\\\n\n";
+ _msg += (os_type == os_windows) ? $"The error log was saved at:\n{_path_hint}Logs\\\n\n" : $"The error log was saved at:\n{_path_hint}Logs/\n\n";
if (UPDATE_CHECKER.compiled) {
_msg += "You are using a debug build. Automated bug reports disabled.\n\n";
diff --git a/scripts/NameGenerator/NameGenerator.gml b/scripts/NameGenerator/NameGenerator.gml
index c1449e0873..07ce8bf667 100644
--- a/scripts/NameGenerator/NameGenerator.gml
+++ b/scripts/NameGenerator/NameGenerator.gml
@@ -17,7 +17,7 @@ function NameTracker(set_name) constructor {
var file_loader = new JsonFileListLoader();
- var load_result = file_loader.load_list_from_json_file($"main\\names\\{file_name}.json", [json_names_property_name]);
+ var load_result = file_loader.load_list_from_json_file($"main/names/{file_name}.json", [json_names_property_name]);
if (load_result.is_success) {
names = load_result.values[$ json_names_property_name];
@@ -48,7 +48,7 @@ function NameTracker(set_name) constructor {
var file_loader = new JsonFileListLoader();
- var load_result = file_loader.load_list_from_json_file($"main\\names\\{file_name}.json", json_names_property_names);
+ var load_result = file_loader.load_list_from_json_file($"main/names/{file_name}.json", json_names_property_names);
var result = {};
@@ -186,7 +186,7 @@ function NameTracker(set_name) constructor {
function NameGenerator() constructor {
// TODO after save rework is finished, check if these static can be converted to instance version
- var _simple_names = json_to_gamemaker(working_directory + $"main\\name_loader.json", json_parse);
+ var _simple_names = json_to_gamemaker(working_directory + $"main/name_loader.json", json_parse);
if (_simple_names == "") {
_simple_names = [
diff --git a/scripts/__init/__init.gml b/scripts/__init/__init.gml
index ba184e5459..ba0c460a8f 100644
--- a/scripts/__init/__init.gml
+++ b/scripts/__init/__init.gml
@@ -1,11 +1,12 @@
-#macro PATH_SAVE_FILES "Save Files\\save{0}.json"
-#macro PATH_AUTOSAVE_FILE "Save Files\\save0.json"
-#macro PATH_CUSTOM_ICONS "Custom Files\\Custom Icons\\"
-#macro PATH_CHAPTER_ICONS working_directory + "\\images\\creation\\chapters\\icons\\"
-#macro PATH_INCLUDED_ICONS working_directory + "\\images\\creation\\customicons\\"
+#macro PATH_SAVE_FILES "Save Files/save{0}.json"
+#macro PATH_AUTOSAVE_FILE "Save Files/save0.json"
+#macro PATH_CUSTOM_ICONS "Custom Files/Custom Icons/"
+#macro PATH_CHAPTER_ICONS working_directory + "/images/creation/chapters/icons/"
+#macro PATH_INCLUDED_ICONS working_directory + "/images/creation/customicons/"
#macro PATH_LOG_DIRECTORY "Logs/"
#macro LAST_MESSAGES_LOG "last_messages.log"
#macro PATH_LAST_MESSAGES PATH_LOG_DIRECTORY + LAST_MESSAGES_LOG
+#macro PATH_HELP_INI "main/help.ini"
/// @desc Called via gml_pragma("global") at startup, before any room.
function __init() {
@@ -33,8 +34,8 @@ function __init() {
if (!directory_exists("Logs")) {
directory_create("Logs");
}
- if (!directory_exists("Custom Files\\Custom Icons")) {
- directory_create("Custom Files\\Custom Icons");
+ if (!directory_exists("Custom Files/Custom Icons")) {
+ directory_create("Custom Files/Custom Icons");
}
if (!directory_exists("Save Files")) {
directory_create("Save Files");
@@ -82,7 +83,7 @@ function __init() {
global.game_version = "unknown version";
global.commit_hash = "unknown hash";
- var _version_file_path = working_directory + "\\main\\version.json";
+ var _version_file_path = working_directory + "/main/version.json";
var _parsed_json = json_to_gamemaker(_version_file_path, json_parse);
if (_parsed_json != undefined) {
@@ -112,18 +113,18 @@ function __init() {
global.update_checker.compiled = true;
}
- global.weapons = json_to_gamemaker(working_directory + "\\data\\weapons.json", json_parse);
+ global.weapons = json_to_gamemaker(working_directory + "/data/weapons.json", json_parse);
global.gear = {
- "armour": json_to_gamemaker(working_directory + "\\data\\armour.json", json_parse),
- "gear": json_to_gamemaker(working_directory + "\\data\\gear.json", json_parse),
- "mobility": json_to_gamemaker(working_directory + "\\data\\mobility.json", json_parse),
+ "armour": json_to_gamemaker(working_directory + "/data/armour.json", json_parse),
+ "gear": json_to_gamemaker(working_directory + "/data/gear.json", json_parse),
+ "mobility": json_to_gamemaker(working_directory + "/data/mobility.json", json_parse),
};
- global.vehicles = json_to_gamemaker(working_directory + "\\data\\vehicles.json", json_parse);
- global.vehicle_gear = json_to_gamemaker(working_directory + "\\data\\vehicle_gear.json", json_parse);
- global.ships = json_to_gamemaker(working_directory + "\\data\\ships.json", json_parse);
- global.technologies = json_to_gamemaker(working_directory + "\\data\\technologies.json", json_parse);
+ global.vehicles = json_to_gamemaker(working_directory + "/data/vehicles.json", json_parse);
+ global.vehicle_gear = json_to_gamemaker(working_directory + "/data/vehicle_gear.json", json_parse);
+ global.ships = json_to_gamemaker(working_directory + "/data/ships.json", json_parse);
+ global.technologies = json_to_gamemaker(working_directory + "/data/technologies.json", json_parse);
- global.base_stats = json_to_gamemaker(working_directory + "\\data\\unit_stats.json", json_parse);
+ global.base_stats = json_to_gamemaker(working_directory + "/data/unit_stats.json", json_parse);
layer_force_draw_depth(true, 0); // force all layers to draw at depth 0
draw_set_colour(c_black);
diff --git a/scripts/scr_ChapterTraits/scr_ChapterTraits.gml b/scripts/scr_ChapterTraits/scr_ChapterTraits.gml
index 60bee65601..ef930d94aa 100644
--- a/scripts/scr_ChapterTraits/scr_ChapterTraits.gml
+++ b/scripts/scr_ChapterTraits/scr_ChapterTraits.gml
@@ -275,11 +275,11 @@ function Disadvantage(trait) : ChapterTrait(trait) constructor {
// TODO all the chapter start data should be ramed in here as well rather than being hardcoded
function generate_disadvantages() {
- return json_to_gamemaker(working_directory + $"main\\chapter_disadvantages.json", json_parse);
+ return json_to_gamemaker(working_directory + $"main/chapter_disadvantages.json", json_parse);
}
function generate_advantages() {
- return json_to_gamemaker(working_directory + $"main\\chapter_advantages.json", json_parse);
+ return json_to_gamemaker(working_directory + $"main/chapter_advantages.json", json_parse);
}
function setup_chapter_traits() {
diff --git a/scripts/scr_PlanetData/scr_PlanetData.gml b/scripts/scr_PlanetData/scr_PlanetData.gml
index 48d026d24b..fa77bd094f 100644
--- a/scripts/scr_PlanetData/scr_PlanetData.gml
+++ b/scripts/scr_PlanetData/scr_PlanetData.gml
@@ -106,7 +106,13 @@ function PlanetData(planet, system) constructor {
}
garrisons = system.system_garrison[planet];
+ if (garrisons == 0){
+ garrisons = system.get_garrison(planet)
+ }
sabatours = system.system_sabatours[planet];
+ if (sabatours == 0){
+ sabatours = system.get_sabatours(planet)
+ }
system.system_datas[planet] = self;
// current planet heresy
@@ -253,6 +259,11 @@ function PlanetData(planet, system) constructor {
guardsmen = system.p_guardsmen[planet];
};
+ static edit_pdf = function(edit_val){
+ system.p_pdf[planet] = max(0, system.p_pdf[planet] + edit_val);
+ pdf = system.p_pdf[planet]
+ }
+
pdf = system.p_pdf[planet];
fortification_level = system.p_fortified[planet];
@@ -1581,6 +1592,18 @@ function PlanetData(planet, system) constructor {
instance_destroy(obj_star_select);
};
+ static set_star_select_planet = function(){
+ obj_star_select.garrison = garrisons;
+ system.garrison = garrisons.garrison_force;
+ obj_star_select.feature = "";
+ buttons_selected = false;
+ garrisons.update();
+ if (garrisons.garrison_force){
+ garrisons.find_leader();
+ garrisons.garrison_disposition_change(true);
+ }
+ }
+
static planet_selection_logic = function() {
var planet_is_allies = scr_is_planet_owned_by_allies(system, planet);
var garrison_issue = !planet_is_allies || pdf <= 0;
@@ -1602,10 +1625,7 @@ function PlanetData(planet, system) constructor {
exit;
}
} else if (!_loading) {
- obj_star_select.garrison = system.get_garrison(planet);
- system.garrison = obj_star_select.garrison.garrison_force;
- obj_star_select.feature = "";
- buttons_selected = false;
+ set_star_select_planet();
} else if (_loading && planet > 0) {
obj_controller.unload = planet;
obj_controller.return_object = system;
diff --git a/scripts/scr_chapter_new/scr_chapter_new.gml b/scripts/scr_chapter_new/scr_chapter_new.gml
index 78dffe1d46..320f32742d 100644
--- a/scripts/scr_chapter_new/scr_chapter_new.gml
+++ b/scripts/scr_chapter_new/scr_chapter_new.gml
@@ -156,7 +156,7 @@ function ChapterData() constructor {
if (use_app_data) {
load_result = file_loader.load_struct_from_json_file($"chaptersave#{chapter_id}.json", "chapter", true);
} else {
- load_result = file_loader.load_struct_from_json_file($"main\\chapters\\{chapter_id}.json", "chapter", false);
+ load_result = file_loader.load_struct_from_json_file($"main/chapters/{chapter_id}.json", "chapter", false);
}
if (!load_result.is_success) {
// LOGGER.error($"No chapter json exits for chapter_id {chapter_id}");
diff --git a/scripts/scr_culture_visuals/scr_culture_visuals.gml b/scripts/scr_culture_visuals/scr_culture_visuals.gml
index 78e8c2c658..d151b148dd 100644
--- a/scripts/scr_culture_visuals/scr_culture_visuals.gml
+++ b/scripts/scr_culture_visuals/scr_culture_visuals.gml
@@ -1,7 +1,7 @@
function load_visual_sets() {
- var _vis_set_directory = working_directory + "\\main\\visual_sets";
+ var _vis_set_directory = working_directory + "/main/visual_sets";
if (directory_exists(_vis_set_directory)) {
- var _file_buffer = buffer_load($"{_vis_set_directory}\\use_sets.json");
+ var _file_buffer = buffer_load($"{_vis_set_directory}/use_sets.json");
if (_file_buffer == -1) {
throw "Could not open file";
}
@@ -12,11 +12,11 @@ function load_visual_sets() {
throw "use_sets.json File Wrong Format";
}
for (var i = 0; i < array_length(_raw_data); i++) {
- var _sepcific_vis_set = $"{_vis_set_directory}\\{_raw_data[i]}";
+ var _sepcific_vis_set = $"{_vis_set_directory}/{_raw_data[i]}";
// LOGGER.debug(_raw_data[i]);
if (directory_exists(_sepcific_vis_set)) {
// LOGGER.debug(_raw_data[i]);
- var _data_buffer = buffer_load($"{_sepcific_vis_set}\\data.json");
+ var _data_buffer = buffer_load($"{_sepcific_vis_set}/data.json");
if (_data_buffer == -1) {
buffer_delete(_data_buffer);
continue;
@@ -37,10 +37,10 @@ function load_visual_sets() {
}
function load_symbol_sets(global_area, main_key, sub_sets) {
- var _cons_directory = working_directory + $"\\main\\{main_key}";
+ var _cons_directory = working_directory + $"/main/{main_key}";
if (directory_exists(_cons_directory)) {
// LOGGER.debug($"{_cons_directory}")
- var _file_buffer = buffer_load($"{_cons_directory}\\load_sets.json");
+ var _file_buffer = buffer_load($"{_cons_directory}/load_sets.json");
if (_file_buffer == -1) {
throw false;
}
@@ -52,11 +52,11 @@ function load_symbol_sets(global_area, main_key, sub_sets) {
}
var _sprite_double_surface = surface_create(200, 200);
for (var i = 0; i < array_length(_raw_data); i++) {
- var _sepcific_vis_set = $"{_cons_directory}\\{_raw_data[i]}";
+ var _sepcific_vis_set = $"{_cons_directory}/{_raw_data[i]}";
if (directory_exists(_sepcific_vis_set)) {
for (var s = 0; s < array_length(sub_sets); s++) {
var _sub = sub_sets[s];
- var sub_direct = $"{_sepcific_vis_set}\\{_sub}.png";
+ var sub_direct = $"{_sepcific_vis_set}/{_sub}.png";
load_new_icon(_sprite_double_surface, sub_direct, global_area[$ _sub], _raw_data[i]);
}
}
@@ -105,15 +105,15 @@ function load_vis_set_to_global(directory, data) {
var _sprite_item = data[i];
// LOGGER.debug(_sprite_item);
- if (directory_exists(directory + $"\\{_sprite_item.name}")) {
- var _sprite_direct = directory + $"\\{_sprite_item.name}";
+ if (directory_exists(directory + $"/{_sprite_item.name}")) {
+ var _sprite_direct = directory + $"/{_sprite_item.name}";
// --- MAIN SPRITE LOADING ---
- if (file_exists($"{_sprite_direct}\\1.png")) {
- var _new_sprite = sprite_add(_sprite_direct + "\\1.png", 1, 0, 0, 0, 0);
+ if (file_exists($"{_sprite_direct}/1.png")) {
+ var _new_sprite = sprite_add(_sprite_direct + "/1.png", 1, 0, 0, 0, 0);
var s = 2;
- while (file_exists(_sprite_direct + $"\\{s}.png")) {
- var _merge_sprite = sprite_add(_sprite_direct + $"\\{s}.png", 1, 0, 0, 0, 0);
+ while (file_exists(_sprite_direct + $"/{s}.png")) {
+ var _merge_sprite = sprite_add(_sprite_direct + $"/{s}.png", 1, 0, 0, 0, 0);
if (_merge_sprite == -1) {
sprite_delete(_new_sprite);
continue;
@@ -126,11 +126,11 @@ function load_vis_set_to_global(directory, data) {
// --- SHADOW SPRITE LOADING ---
var _new_shadow = -1;
- if (file_exists($"{_sprite_direct}\\shadow1.png")) {
- _new_shadow = sprite_add(_sprite_direct + "\\shadow1.png", 1, 0, 0, 0, 0);
+ if (file_exists($"{_sprite_direct}/shadow1.png")) {
+ _new_shadow = sprite_add(_sprite_direct + "/shadow1.png", 1, 0, 0, 0, 0);
var sh = 2;
- while (file_exists(_sprite_direct + $"\\shadow{sh}.png")) {
- var _merge_shadow = sprite_add(_sprite_direct + $"\\shadow{sh}.png", 1, 0, 0, 0, 0);
+ while (file_exists(_sprite_direct + $"/shadow{sh}.png")) {
+ var _merge_shadow = sprite_add(_sprite_direct + $"/shadow{sh}.png", 1, 0, 0, 0, 0);
if (_merge_shadow == -1) {
sprite_delete(_new_shadow);
continue;
diff --git a/scripts/scr_dialogue/scr_dialogue.gml b/scripts/scr_dialogue/scr_dialogue.gml
index 5f9ef20221..fb971c6088 100644
--- a/scripts/scr_dialogue/scr_dialogue.gml
+++ b/scripts/scr_dialogue/scr_dialogue.gml
@@ -1,6 +1,6 @@
function initialize_dialogue() {
global.dialogue = {};
- global.dialogue.sisters = json_to_gamemaker(working_directory + "\\data\\dialogue\\sisters.json", json_parse);
+ global.dialogue.sisters = json_to_gamemaker(working_directory + "/data/dialogue/sisters.json", json_parse);
}
function interpret_diag_string(string_data, data) {
diff --git a/scripts/scr_drop_select_function/scr_drop_select_function.gml b/scripts/scr_drop_select_function/scr_drop_select_function.gml
index 5f03c9e2a8..814f5b3266 100644
--- a/scripts/scr_drop_select_function/scr_drop_select_function.gml
+++ b/scripts/scr_drop_select_function/scr_drop_select_function.gml
@@ -238,23 +238,10 @@ function drop_select_unit_selection() {
obj_ncombat.defending = false;
obj_ncombat.local_forces = roster.local_button.active;
- // Bring embarked Imperial Guard from the attacking fleet into the assault.
- // They disembark for the battle, so they are spent from the ships here.
+ // (Imperial Guard assault bring-along disabled for now: the player-side
+ // battlefield unit needs real per-model data, so this is being rebuilt.
+ // Until then we do not touch the embarked Guard, so attacks cost nothing.)
obj_ncombat.player_attack_guard = 0;
- if (attack == 1) {
- var _sysname = p_target.name;
- var _ig = player_guardsmen_at(_sysname);
- if (_ig > 0) {
- obj_ncombat.player_attack_guard = _ig;
- with (obj_ini) {
- for (var _gi = 0; _gi < array_length(ship); _gi++) {
- if (ship_location[_gi] == _sysname) {
- ship_guardsmen[_gi] = 0;
- }
- }
- }
- }
- }
var _planet = obj_ncombat.battle_object.p_feature[obj_ncombat.battle_id];
if (obj_ncombat.battle_object.space_hulk == 1) {
diff --git a/scripts/scr_garrison/scr_garrison.gml b/scripts/scr_garrison/scr_garrison.gml
index a5b285cd9c..41e7e665e1 100644
--- a/scripts/scr_garrison/scr_garrison.gml
+++ b/scripts/scr_garrison/scr_garrison.gml
@@ -36,6 +36,7 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
members = [];
time_on_planet = 0;
viable_garrison = 0;
+ dispo_change = 0;
self.type = type;
self.system = system;
self.planet = planet;
@@ -213,63 +214,64 @@ function GarrisonForce(system, planet, type = "garrison") constructor {
static garrison_disposition_change = function(up_or_down = false) {
dispo_change = 0;
var _pdata = system.get_planet_data(planet);
- if (array_contains(obj_controller.imperial_factions, _pdata.current_owner)) {
- var _planet_disposition = _pdata.player_disposition;
+ if (!array_contains(obj_controller.imperial_factions, _pdata.current_owner)) {
+ return dispo_change;
+ }
+
+ var _planet_disposition = _pdata.player_disposition;
- var _main_faction_disp = _pdata.owner_faction_disposition();
+ var _main_faction_disp = _pdata.owner_faction_disposition();
- //basivally it is easier to increase dispositioon the nearer you are to 50 but becomminig greatly hated or greaty liked is much harder
- var _disposition_modifier = _planet_disposition <= 50 ? (_planet_disposition / 10) : ((_planet_disposition - 50) / 10) % 5;
+ //basivally it is easier to increase dispositioon the nearer you are to 50 but becomminig greatly hated or greaty liked is much harder
+ var _disposition_modifier = _planet_disposition <= 50 ? (_planet_disposition / 10) : ((_planet_disposition - 50) / 10) % 5;
- _disposition_modifier /= 10;
+ _disposition_modifier /= 10;
- var _time_modifier = max(time_on_planet / 2.5, 10);
+ var _time_modifier = max(time_on_planet / 2.5, 10);
- if (!is_struct(garrison_leader)) {
- find_leader();
- }
- var _diplomatic_leader = false;
- if (is_struct(garrison_leader)) {
- _diplomatic_leader = garrison_leader.has_trait("honorable");
- } else {
- scr_alert("yellow", "DEBUG", $"DEBUG: Garrison _Leader on {_pdata.name()} couldn't be found!", 0, 0);
- scr_event_log("yellow", $"DEBUG: Garrison _Leader on {_pdata.name()} couldn't be found!");
- LOGGER.error($"DEBUG: Garrison _Leader on {_pdata.name()} couldn't be found!");
- }
- var _garrison_size_mod = total_garrison / 10;
+ if (!is_struct(garrison_leader)) {
+ find_leader();
+ }
+ var _diplomatic_leader = false;
+ if (is_struct(garrison_leader)) {
+ _diplomatic_leader = garrison_leader.has_trait("honorable");
+ } else {
+ scr_alert("yellow", "DEBUG", $"DEBUG: Garrison _Leader on {_pdata.name()} couldn't be found!", 0, 0);
+ scr_event_log("yellow", $"DEBUG: Garrison _Leader on {_pdata.name()} couldn't be found!");
+ LOGGER.error($"DEBUG: Garrison _Leader on {_pdata.name()} couldn't be found!");
+ }
+ var _garrison_size_mod = total_garrison / 10;
- var final_modifier = 5 + _garrison_size_mod - _disposition_modifier + _time_modifier;
+ var final_modifier = 5 + _garrison_size_mod - _disposition_modifier + _time_modifier;
- if (up_or_down) {
- dispo_change = garrison_leader.charisma + final_modifier;
- if (dispo_change < 50 && ((_planet_disposition < _main_faction_disp) || _diplomatic_leader)) {
- dispo_change = 50;
- }
- } else {
- var _charisma_test;
- if (is_struct(garrison_leader)){
- _charisma_test = global.character_tester.standard_test(garrison_leader, "charisma", final_modifier);
- } else {
- _charisma_test = [bool(irandom(1)), irandom_range(0, 25)];
- }
- var dispo_change = _charisma_test[1] / 10;
- if (!_charisma_test[0]) {
- if (_diplomatic_leader) {
- dispo_change = "none";
+ if (up_or_down) {
+ dispo_change = garrison_leader.charisma + final_modifier;
+ if (dispo_change < 50 && ((_planet_disposition < _main_faction_disp) || _diplomatic_leader)) {
+ dispo_change = 50;
+ }
+ } else {
+ var _charisma_test;
+ if (is_struct(garrison_leader)){
+ _charisma_test = global.character_tester.standard_test(garrison_leader, "charisma", final_modifier);
+ } else {
+ _charisma_test = [bool(irandom(1)), irandom_range(0, 25)];
+ }
+ var dispo_change = _charisma_test[1] / 10;
+ if (!_charisma_test[0]) {
+ if (_diplomatic_leader) {
+ dispo_change = 0;
+ } else {
+ if (_planet_disposition > _main_faction_disp) {
+ _pdata.add_disposition(dispo_change);
} else {
- if (_planet_disposition > _main_faction_disp) {
- _pdata.add_disposition(dispo_change);
- } else {
- dispo_change = 0;
- }
+ dispo_change = 0;
}
- } else {
- _pdata.add_disposition(dispo_change);
}
+ } else {
+ _pdata.add_disposition(dispo_change);
}
- } else {
- dispo_change = "none";
}
+
return dispo_change;
};
diff --git a/scripts/scr_image/scr_image.gml b/scripts/scr_image/scr_image.gml
index 7143aa04e0..80842ab002 100644
--- a/scripts/scr_image/scr_image.gml
+++ b/scripts/scr_image/scr_image.gml
@@ -484,23 +484,23 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (single_image == true) {
- if ((path == "creation") && file_exists(working_directory + "\\images\\creation\\creation_icons.png")) {
- creation[1] = sprite_add(working_directory + "\\images\\creation\\creation_icons.png", 24, false, false, 0, 0);
+ if ((path == "creation") && file_exists(working_directory + "/images/creation/creation_icons.png")) {
+ creation[1] = sprite_add(working_directory + "/images/creation/creation_icons.png", 24, false, false, 0, 0);
creation_exists[1] = true;
creation_good = true;
}
- if ((path == "diplomacy_icon") && file_exists(working_directory + "\\images\\diplomacy\\diplomacy_icons.png")) {
- diplomacy_icon[1] = sprite_add(working_directory + "\\images\\diplomacy\\diplomacy_icons.png", 28, false, false, 0, 0);
+ if ((path == "diplomacy_icon") && file_exists(working_directory + "/images/diplomacy/diplomacy_icons.png")) {
+ diplomacy_icon[1] = sprite_add(working_directory + "/images/diplomacy/diplomacy_icons.png", 28, false, false, 0, 0);
diplomacy_icon_exists[1] = true;
diplomacy_icon_good = true;
}
- if ((path == "menu") && file_exists(working_directory + "\\images\\ui\\ingame_menu.png")) {
- menu[1] = sprite_add(working_directory + "\\images\\ui\\ingame_menu.png", 2, false, false, 0, 0);
+ if ((path == "menu") && file_exists(working_directory + "/images/ui/ingame_menu.png")) {
+ menu[1] = sprite_add(working_directory + "/images/ui/ingame_menu.png", 2, false, false, 0, 0);
menu_exists[1] = true;
menu_good = true;
}
- if ((path == "title_splash") && file_exists(working_directory + "\\images\\title_splash.png")) {
- title_splash[1] = sprite_add(working_directory + "\\images\\title_splash.png", 1, false, false, 0, 0);
+ if ((path == "title_splash") && file_exists(working_directory + "/images/title_splash.png")) {
+ title_splash[1] = sprite_add(working_directory + "/images/title_splash.png", 1, false, false, 0, 0);
title_splash_exists[1] = true;
title_splash_good = true;
}
@@ -514,8 +514,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
repeat (40) {
i += 1;
if (path == "main_splash") {
- if (file_exists(working_directory + "\\images\\creation\\main" + string(i) + ".png")) {
- main[i - 1] = sprite_add(working_directory + "\\images\\creation\\main" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/creation/main" + string(i) + ".png")) {
+ main[i - 1] = sprite_add(working_directory + "/images/creation/main" + string(i) + ".png", 1, false, false, 0, 0);
main_exists[i - 1] = 1;
w += 1;
}
@@ -524,8 +524,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
}
if (path == "existing_splash") {
- if (file_exists(working_directory + "\\images\\creation\\existing" + string(i) + ".png")) {
- existing[i - 1] = sprite_add(working_directory + "\\images\\creation\\existing" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/creation/existing" + string(i) + ".png")) {
+ existing[i - 1] = sprite_add(working_directory + "/images/creation/existing" + string(i) + ".png", 1, false, false, 0, 0);
existing_exists[i - 1] = 1;
w += 1;
}
@@ -534,8 +534,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
}
if (path == "other_splash") {
- if (file_exists(working_directory + "\\images\\creation\\other" + string(i) + ".png")) {
- others[i - 1] = sprite_add(working_directory + "\\images\\creation\\other" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/creation/other" + string(i) + ".png")) {
+ others[i - 1] = sprite_add(working_directory + "/images/creation/other" + string(i) + ".png", 1, false, false, 0, 0);
others_exists[i - 1] = 1;
w += 1;
}
@@ -545,8 +545,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "advisor") {
- if (file_exists(working_directory + "\\images\\diplomacy\\advisor" + string(i) + ".png")) {
- advisor[i - 1] = sprite_add(working_directory + "\\images\\diplomacy\\advisor" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/diplomacy/advisor" + string(i) + ".png")) {
+ advisor[i - 1] = sprite_add(working_directory + "/images/diplomacy/advisor" + string(i) + ".png", 1, false, false, 0, 0);
advisor_exists[i - 1] = 1;
w += 1;
}
@@ -556,8 +556,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "diplomacy_splash") {
- if (file_exists(working_directory + "\\images\\diplomacy\\diplomacy" + string(i) + ".png")) {
- diplomacy_splash[i - 1] = sprite_add(working_directory + "\\images\\diplomacy\\diplomacy" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/diplomacy/diplomacy" + string(i) + ".png")) {
+ diplomacy_splash[i - 1] = sprite_add(working_directory + "/images/diplomacy/diplomacy" + string(i) + ".png", 1, false, false, 0, 0);
diplomacy_splash_exists[i - 1] = 1;
w += 1;
}
@@ -567,8 +567,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "diplomacy_daemon") {
- if (file_exists(working_directory + "\\images\\diplomacy\\daemon" + string(i) + ".png")) {
- diplomacy_daemon[i - 1] = sprite_add(working_directory + "\\images\\diplomacy\\daemon" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/diplomacy/daemon" + string(i) + ".png")) {
+ diplomacy_daemon[i - 1] = sprite_add(working_directory + "/images/diplomacy/daemon" + string(i) + ".png", 1, false, false, 0, 0);
diplomacy_daemon_exists[i - 1] = 1;
w += 1;
}
@@ -578,8 +578,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
// loading screen error arg
if (path == "loading") {
- if (file_exists(working_directory + "\\images\\loading\\loading" + string(i) + ".png")) {
- loading[i - 1] = sprite_add(working_directory + "\\images\\loading\\loading" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/loading/loading" + string(i) + ".png")) {
+ loading[i - 1] = sprite_add(working_directory + "/images/loading/loading" + string(i) + ".png", 1, false, false, 0, 0);
loading_exists[i - 1] = 1;
w += 1;
}
@@ -589,8 +589,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "postbattle") {
- if (file_exists(working_directory + "\\images\\ui\\postbattle" + string(i) + ".png")) {
- postbattle[i - 1] = sprite_add(working_directory + "\\images\\ui\\postbattle" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/postbattle" + string(i) + ".png")) {
+ postbattle[i - 1] = sprite_add(working_directory + "/images/ui/postbattle" + string(i) + ".png", 1, false, false, 0, 0);
postbattle_exists[i - 1] = 1;
w += 1;
}
@@ -600,8 +600,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "postspace") {
- if (file_exists(working_directory + "\\images\\ui\\postspace" + string(i) + ".png")) {
- postspace[i - 1] = sprite_add(working_directory + "\\images\\ui\\postspace" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/postspace" + string(i) + ".png")) {
+ postspace[i - 1] = sprite_add(working_directory + "/images/ui/postspace" + string(i) + ".png", 1, false, false, 0, 0);
postspace_exists[i - 1] = 1;
w += 1;
}
@@ -611,8 +611,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "formation") {
- if (file_exists(working_directory + "\\images\\ui\\formation" + string(i) + ".png")) {
- formation[i - 1] = sprite_add(working_directory + "\\images\\ui\\formation" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/formation" + string(i) + ".png")) {
+ formation[i - 1] = sprite_add(working_directory + "/images/ui/formation" + string(i) + ".png", 1, false, false, 0, 0);
formation_exists[i - 1] = 1;
w += 1;
}
@@ -622,8 +622,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "popup") {
- if (file_exists(working_directory + "\\images\\popup\\popup" + string(i) + ".png")) {
- popup[i - 1] = sprite_add(working_directory + "\\images\\popup\\popup" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/popup/popup" + string(i) + ".png")) {
+ popup[i - 1] = sprite_add(working_directory + "/images/popup/popup" + string(i) + ".png", 1, false, false, 0, 0);
popup_exists[i - 1] = 1;
w += 1;
}
@@ -633,8 +633,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "commander") {
- if (file_exists(working_directory + "\\images\\ui\\commander" + string(i) + ".png")) {
- commander[i - 1] = sprite_add(working_directory + "\\images\\ui\\commander" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/commander" + string(i) + ".png")) {
+ commander[i - 1] = sprite_add(working_directory + "/images/ui/commander" + string(i) + ".png", 1, false, false, 0, 0);
commander_exists[i - 1] = 1;
w += 1;
}
@@ -644,8 +644,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "planet") {
- if (file_exists(working_directory + "\\images\\ui\\planet" + string(i) + ".png")) {
- planet[i - 1] = sprite_add(working_directory + "\\images\\ui\\planet" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/planet" + string(i) + ".png")) {
+ planet[i - 1] = sprite_add(working_directory + "/images/ui/planet" + string(i) + ".png", 1, false, false, 0, 0);
planet_exists[i - 1] = 1;
w += 1;
}
@@ -655,8 +655,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "attacked") {
- if (file_exists(working_directory + "\\images\\ui\\attacked" + string(i) + ".png")) {
- attacked[i - 1] = sprite_add(working_directory + "\\images\\ui\\attacked" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/attacked" + string(i) + ".png")) {
+ attacked[i - 1] = sprite_add(working_directory + "/images/ui/attacked" + string(i) + ".png", 1, false, false, 0, 0);
attacked_exists[i - 1] = 1;
w += 1;
}
@@ -666,8 +666,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "force") {
- if (file_exists(working_directory + "\\images\\ui\\force" + string(i) + ".png")) {
- force[i - 1] = sprite_add(working_directory + "\\images\\ui\\force" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/force" + string(i) + ".png")) {
+ force[i - 1] = sprite_add(working_directory + "/images/ui/force" + string(i) + ".png", 1, false, false, 0, 0);
force_exists[i - 1] = 1;
w += 1;
}
@@ -677,8 +677,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "purge") {
- if (file_exists(working_directory + "\\images\\ui\\purge" + string(i) + ".png")) {
- purge[i - 1] = sprite_add(working_directory + "\\images\\ui\\purge" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/purge" + string(i) + ".png")) {
+ purge[i - 1] = sprite_add(working_directory + "/images/ui/purge" + string(i) + ".png", 1, false, false, 0, 0);
purge_exists[i - 1] = 1;
w += 1;
}
@@ -688,8 +688,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "event") {
- if (file_exists(working_directory + "\\images\\ui\\event" + string(i) + ".png")) {
- event[i - 1] = sprite_add(working_directory + "\\images\\ui\\event" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/event" + string(i) + ".png")) {
+ event[i - 1] = sprite_add(working_directory + "/images/ui/event" + string(i) + ".png", 1, false, false, 0, 0);
event_exists[i - 1] = 1;
w += 1;
}
@@ -699,8 +699,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "symbol") {
- if (file_exists(working_directory + "\\images\\diplomacy\\symbol" + string(i) + ".png")) {
- symbol[i - 1] = sprite_add(working_directory + "\\images\\diplomacy\\symbol" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/diplomacy/symbol" + string(i) + ".png")) {
+ symbol[i - 1] = sprite_add(working_directory + "/images/diplomacy/symbol" + string(i) + ".png", 1, false, false, 0, 0);
symbol_exists[i - 1] = 1;
w += 1;
}
@@ -710,8 +710,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "defeat") {
- if (file_exists(working_directory + "\\images\\ui\\defeat" + string(i) + ".png")) {
- defeat[i - 1] = sprite_add(working_directory + "\\images\\ui\\defeat" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/ui/defeat" + string(i) + ".png")) {
+ defeat[i - 1] = sprite_add(working_directory + "/images/ui/defeat" + string(i) + ".png", 1, false, false, 0, 0);
defeat_exists[i - 1] = 1;
w += 1;
}
@@ -721,8 +721,8 @@ function scr_image(path, image_id, x1, y1, width, height) {
}
if (path == "slate") {
- if (file_exists(working_directory + "\\images\\creation\\slate" + string(i) + ".png")) {
- slate[i - 1] = sprite_add(working_directory + "\\images\\creation\\slate" + string(i) + ".png", 1, false, false, 0, 0);
+ if (file_exists(working_directory + "/images/creation/slate" + string(i) + ".png")) {
+ slate[i - 1] = sprite_add(working_directory + "/images/creation/slate" + string(i) + ".png", 1, false, false, 0, 0);
slate_exists[i - 1] = 1;
w += 1;
}
@@ -953,12 +953,12 @@ function scr_image_cache(path, image_id, use_app_data = false) {
if (sprite_exists(existing_sprite)) {
drawing_sprite = existing_sprite;
} else if (image_id > -1) {
- var folders = string_replace_all(path, "/", "\\");
+ var folders = string_replace_all(path, "\\", "/");
var dir;
if (use_app_data) {
dir = $"{folders}{string(image_id)}.png";
} else {
- dir = $"{working_directory}\\images\\{folders}\\{string(image_id)}.png";
+ dir = $"{working_directory}/images/{folders}/{string(image_id)}.png";
}
if (file_exists(dir)) {
drawing_sprite = sprite_add(dir, 1, false, false, 0, 0);
diff --git a/scripts/scr_initialize_custom/scr_initialize_custom.gml b/scripts/scr_initialize_custom/scr_initialize_custom.gml
index 628695f9c3..77e52c4c19 100644
--- a/scripts/scr_initialize_custom/scr_initialize_custom.gml
+++ b/scripts/scr_initialize_custom/scr_initialize_custom.gml
@@ -1662,19 +1662,19 @@ function scr_initialize_custom() {
switch (obj_creation.squad_distribution) {
case 1: // equal specialists only
obj_ini.chapter_squad_arrangement = json_to_gamemaker(
- working_directory + $"main\\squads\\equal_specialists.json", json_parse);
+ working_directory + $"main/squads/equal_specialists.json", json_parse);
break;
case 2: // equal scouts only
obj_ini.chapter_squad_arrangement = json_to_gamemaker(
- working_directory + $"main\\squads\\equal_scouts.json", json_parse);
+ working_directory + $"main/squads/equal_scouts.json", json_parse);
break;
case 3: // equal specialists and equal scouts
obj_ini.chapter_squad_arrangement = json_to_gamemaker(
- working_directory + $"main\\squads\\equal_spescout.json", json_parse);
+ working_directory + $"main/squads/equal_spescout.json", json_parse);
break;
default: // 0 = standard
obj_ini.chapter_squad_arrangement = json_to_gamemaker(
- working_directory + $"main\\squads\\company_squad_builds.json", json_parse);
+ working_directory + $"main/squads/company_squad_builds.json", json_parse);
break;
}
@@ -1691,7 +1691,7 @@ function scr_initialize_custom() {
_squad_name = obj_creation.squad_name;
}
- squad_types = json_to_gamemaker(working_directory + $"main\\squads\\base_squads.json", json_parse);
+ squad_types = json_to_gamemaker(working_directory + $"main/squads/base_squads.json", json_parse);
var _swaps = [
// ── Heavy Ranged ──────────────────────────────────────────────
{
diff --git a/scripts/scr_powers/scr_powers.gml b/scripts/scr_powers/scr_powers.gml
index 85a32c857e..3185b2f11b 100644
--- a/scripts/scr_powers/scr_powers.gml
+++ b/scripts/scr_powers/scr_powers.gml
@@ -20,8 +20,8 @@ global.psy_disciplines_starting = [
#macro PSY_CAST_DIFFICULTY_MIN 1
#macro PSY_CAST_DIFFICULTY_BASE 40
-global.disciplines_data = json_to_gamemaker(working_directory + "\\data\\psychic_disciplines.json", json_parse);
-global.powers_data = json_to_gamemaker(working_directory + "\\data\\psychic_powers.json", json_parse);
+global.disciplines_data = json_to_gamemaker(working_directory + "/data/psychic_disciplines.json", json_parse);
+global.powers_data = json_to_gamemaker(working_directory + "/data/psychic_powers.json", json_parse);
/// @param {Struct.TTRPG_stats} unit
function generate_marine_powers_description_string(unit) {
diff --git a/scripts/scr_punit_combat_heplers/scr_punit_combat_heplers.gml b/scripts/scr_punit_combat_heplers/scr_punit_combat_heplers.gml
index 012393f1c4..0364003fcc 100644
--- a/scripts/scr_punit_combat_heplers/scr_punit_combat_heplers.gml
+++ b/scripts/scr_punit_combat_heplers/scr_punit_combat_heplers.gml
@@ -1,39 +1,20 @@
-// Script assets have changed for v2.3.0 see
-// https://help.yoyogames.com/hc/en-us/articles/360005277377 for more information
-
function squeeze_map_forces() {
try {
var _player_front_row = get_rightmost();
var _enemy_front = get_leftmost(obj_enunit, false);
- if (_player_front_row != "none" && _enemy_front != "none") {
+ if (_player_front_row != noone && _enemy_front != noone) {
if (!collision_point(_player_front_row.x + 10, _player_front_row.y, obj_enunit, 0, 1)) {
- var _enemy_front = get_leftmost(obj_enunit, false);
- if (_enemy_front != "none") {
- var _move_distance = calculate_block_distances(_player_front_row, _enemy_front) - 2;
- with (obj_pnunit) {
- move_unit_block("east", _move_distance, true);
- }
+ var _move_distance = calculate_block_distances(_player_front_row, _enemy_front) - 2;
+ with (obj_pnunit) {
+ move_unit_block("east", _move_distance, true);
}
}
}
- /* var _enemy_front = get_leftmost(obj_enunit, false);
- if (_enemy_front!="none"){
- var _player_front_row=get_rightmost();
- if (_player_front_row!="none"){
- var _move_distance = calculate_block_distances(_player_front_row, _enemy_front) -1;
- with (obj_enunit){
- if (!flank && _player_front_row.x 0 && target.object_index == desired_type) {
@@ -73,7 +54,7 @@ function target_block_is_valid(target, desired_type) {
function get_rightmost(block_type = obj_pnunit, include_flanking = true, include_main_force = true) {
try {
- var rightmost = "none";
+ var rightmost = noone;
if (instance_exists(block_type)) {
with (block_type) {
if (!include_flanking && flank) {
@@ -92,7 +73,7 @@ function get_rightmost(block_type = obj_pnunit, include_flanking = true, include
continue;
}
}
- if (rightmost == "none" && x > 0) {
+ if (rightmost == noone && x > 0) {
rightmost = block_type.id;
} else {
if (x > rightmost.x) {
@@ -117,7 +98,7 @@ function block_has_armour(target) {
function get_leftmost(block_type = obj_pnunit, include_flanking = true) {
try {
- var left_most = "none";
+ var left_most = noone;
if (instance_exists(block_type)) {
with (block_type) {
if (!include_flanking && flank) {
@@ -133,7 +114,7 @@ function get_leftmost(block_type = obj_pnunit, include_flanking = true) {
continue;
}
}
- if (left_most == "none" && x > 0) {
+ if (left_most == noone && x > 0) {
left_most = block_type.id;
} else {
if (x < left_most.x && x > 0) {
@@ -241,9 +222,7 @@ function move_enemy_blocks() {
/// @self Asset.GMObject.obj_enunit|Asset.GMObject.obj_pnunit
function block_composition_string() {
- var _composition_string = "";
-
- _composition_string = $"{unit_count}x Total; ";
+ var _composition_string = $"{unit_count}x Total; ";
if (men > 0) {
_composition_string += $"{string_plural_count("Normal Unit", men)}; ";
}
diff --git a/scripts/scr_ruins_reward/scr_ruins_reward.gml b/scripts/scr_ruins_reward/scr_ruins_reward.gml
index c2969ef8e8..e0e8dd5461 100644
--- a/scripts/scr_ruins_reward/scr_ruins_reward.gml
+++ b/scripts/scr_ruins_reward/scr_ruins_reward.gml
@@ -54,7 +54,7 @@ function scr_ruins_reward(_star_system, _pid_idx, _ruins) {
// Lazy-load JSON from disk once
if (_loot_registry == undefined) {
_loot_registry = {};
- var _path = working_directory + "\\data\\ruins_loot.json";
+ var _path = working_directory + "/data/ruins_loot.json";
var _raw_json = json_to_gamemaker(_path, json_parse);
var _keys = struct_get_names(_raw_json);
diff --git a/scripts/scr_start_load/scr_start_load.gml b/scripts/scr_start_load/scr_start_load.gml
index e6a8585bd5..3a0712144a 100644
--- a/scripts/scr_start_load/scr_start_load.gml
+++ b/scripts/scr_start_load/scr_start_load.gml
@@ -4,17 +4,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
// this distributes the marines and vehicles to the correct ships if the chapter is fleet-based or a home-based chapter
- var _unit, _comp, _marine, total_vehic_size;
- var total_distribute_squads = [
- [],
- [],
- [],
- [],
- [],
- [],
- [],
- []
- ];
+ var total_distribute_squads = [[], [], [], [], [], [], [], []];
var escort_load = load_options[0];
var split_scouts = load_options[1];
@@ -26,9 +16,9 @@ function scr_start_load(fleet, load_from_star, load_options) {
escort_load = 1;
}
var comp_has_units = [];
- for (_comp = 0; _comp < 10; _comp++) {
+ for (var _comp = 0; _comp < 10; _comp++) {
comp_has_units[_comp] = false;
- for (_unit = 0; _unit < 20; _unit++) {
+ for (var _unit = 0; _unit < 20; _unit++) {
if (obj_ini.name[_comp][_unit] != "") {
comp_has_units[_comp] = true;
break;
@@ -65,44 +55,31 @@ function scr_start_load(fleet, load_from_star, load_options) {
}
}
// i feel like there definatly is or should be a generic function for this????
- var _vehicles = [
- "Rhino",
- "Predator",
- "Land Speeder",
- "Land Raider",
- "Whirlwind"
- ];
+ var _vehicles = ["Rhino", "Predator", "Land Speeder", "Land Raider", "Whirlwind"];
function load_vehicles(_companies, _equip, _ship, size) {
obj_ini.veh_wid[_companies][_equip] = 0;
obj_ini.veh_lid[_companies][_equip] = _ship;
obj_ini.veh_loc[_companies][_equip] = obj_ini.ship_location[_ship];
obj_ini.ship_carrying[_ship] += size;
}
- var ship_size, _companies_loaded;
- _company_size = 0;
- var ship = 0;
- //ship_size = obj_ini.ship_size[ship];
- _companies_loaded = 1;
- var ship_return = 1;
- var ship_has_space = true;
//loop through companies. try and load whole company onto single ship else spread company across largest ships with remaining space
var ship_loop_start = 0;
- for (_comp = 0; _comp < 10; _comp++) {
+ for (var _comp = 0; _comp < 10; _comp++) {
if ((split_vets == 1 && _comp == 1) || (!comp_has_units[_comp])) {
continue;
}
if (ship_loop_start >= array_length(obj_ini.ship_carrying)) {
ship_loop_start = array_length(obj_ini.ship_carrying);
}
- total_vehic_size = 0;
+ var total_vehic_size = 0;
var _company_size = 0;
var company_loader = []; //array of companies marines
var company_vehicle = []; //array of companies vehicles
var ship_fit = true;
- for (_unit = 0; _unit < (array_length(obj_ini.role[_comp]) - 1); _unit++) {
- _marine = fetch_unit([_comp, _unit]);
+ for (var _unit = 0; _unit < (array_length(obj_ini.role[_comp]) - 1); _unit++) {
+ var _marine = fetch_unit([_comp, _unit]);
// check if marine exists
if (_marine.name() != "") {
//calculate marine space
@@ -119,7 +96,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
var _members = _squad.members;
for (var squad_member = 0; squad_member < array_length(_members); squad_member++) {
squaddy = _members[squad_member];
- _marine = fetch_unit(squaddy);
+ var _marine = fetch_unit(squaddy);
var marine_size = _marine.get_unit_size();
_company_size += marine_size;
array_push(company_loader, _marine);
@@ -128,7 +105,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
}
//fetch company vehicles
- for (_unit = 1; _unit < array_length(obj_ini.veh_role[_comp]); _unit++) {
+ for (var _unit = 1; _unit < array_length(obj_ini.veh_role[_comp]); _unit++) {
if (array_contains(_vehicles, obj_ini.veh_role[_comp][_unit])) {
var _vehic_size = scr_unit_size(false, obj_ini.veh_role[_comp][_unit], false, false);
total_vehic_size += _vehic_size;
@@ -142,7 +119,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
}
//if entire company won't fit on ship test to see if there is any ship in the fleet the company will fit on;
if (ship_fit == false) {
- for (ship_loop = ship_loop_start; ship_loop < array_length(obj_ini.ship_carrying); ship_loop++) {
+ for (var ship_loop = ship_loop_start; ship_loop < array_length(obj_ini.ship_carrying); ship_loop++) {
if ((escort_load == 2) && (obj_ini.ship_capacity[ship_loop] < 250)) {
continue;
}
@@ -161,7 +138,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
}
}
if (!ship_fit) {
- for (ship_loop = 1; ship_loop < ship_loop_start; ship_loop++) {
+ for (var ship_loop = 1; ship_loop < ship_loop_start; ship_loop++) {
if ((escort_load == 2) && (obj_ini.ship_capacity[ship_loop] < 250)) {
continue;
}
@@ -181,7 +158,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
}
if (!ship_fit) {
//see if all troops can be grouped together
- for (ship_loop = ship_loop_start; ship_loop < array_length(obj_ini.ship_carrying); ship_loop++) {
+ for (var ship_loop = ship_loop_start; ship_loop < array_length(obj_ini.ship_carrying); ship_loop++) {
if ((escort_load == 2) && (obj_ini.ship_capacity[ship_loop] < 250)) {
continue;
}
@@ -196,7 +173,7 @@ function scr_start_load(fleet, load_from_star, load_options) {
}
}
if (!ship_fit) {
- for (ship_loop = 1; ship_loop < ship_loop_start; ship_loop++) {
+ for (var ship_loop = 1; ship_loop < ship_loop_start; ship_loop++) {
if ((escort_load == 2) && (obj_ini.ship_capacity[ship_loop] < 250)) {
continue;
}
@@ -218,7 +195,6 @@ function scr_start_load(fleet, load_from_star, load_options) {
continue;
}
if (obj_ini.ship_carrying[ship_loop] < obj_ini.ship_capacity[ship_loop]) {
- ship_has_space = true;
// new arrays that will contain troops that didn't get loaded
var comp_edit = [];
var veh_edit = [];
@@ -230,9 +206,6 @@ function scr_start_load(fleet, load_from_star, load_options) {
} else {
array_push(comp_edit, company_loader[m]);
}
- if (obj_ini.ship_carrying[ship_loop] == obj_ini.ship_capacity[ship_loop]) {
- ship_has_space = false;
- }
}
}
for (var m = 0; m < array_length(company_vehicle); m++) {
@@ -241,9 +214,6 @@ function scr_start_load(fleet, load_from_star, load_options) {
} else {
array_push(veh_edit, company_vehicle[m]);
}
- if (obj_ini.ship_carrying[ship_loop] == obj_ini.ship_capacity[ship_loop]) {
- ship_has_space = false;
- }
}
company_loader = comp_edit;
company_vehicle = veh_edit;
diff --git a/scripts/scr_ui_manage/scr_ui_manage.gml b/scripts/scr_ui_manage/scr_ui_manage.gml
index c5a1d7d7ae..0502eb063a 100644
--- a/scripts/scr_ui_manage/scr_ui_manage.gml
+++ b/scripts/scr_ui_manage/scr_ui_manage.gml
@@ -574,7 +574,11 @@ function alternative_manage_views(x1, y1) {
surface_reset_target();
// save to local game folder
- var base_name = working_directory + $"\\main\\marine_capture_{_unit.name()}_{_unit.marine_number}{_unit.company}";
+ var main_dir = working_directory + "/main";
+ if (!directory_exists(main_dir)) {
+ directory_create(main_dir);
+ }
+ var base_name = main_dir + $"/marine_capture_{_unit.name()}_{_unit.marine_number}{_unit.company}";
var extension = ".png";
var index = 0;
var path;
@@ -592,7 +596,11 @@ function alternative_manage_views(x1, y1) {
// cleanup
surface_free(surf);
- LOGGER.debug("Marine image saved to: " + path);
+ if (file_exists(path)) {
+ LOGGER.debug("Marine image saved to: " + path);
+ } else {
+ LOGGER.error("Failed to save marine image to: " + path);
+ }
}
}
}
diff --git a/scripts/scr_unit_traits/scr_unit_traits.gml b/scripts/scr_unit_traits/scr_unit_traits.gml
index f901bf4817..ef52f1774c 100644
--- a/scripts/scr_unit_traits/scr_unit_traits.gml
+++ b/scripts/scr_unit_traits/scr_unit_traits.gml
@@ -1,5 +1,5 @@
function initialize_marine_traits() {
- global.trait_list = json_to_gamemaker(working_directory + "\\data\\traits.json", json_parse);
+ global.trait_list = json_to_gamemaker(working_directory + "/data/traits.json", json_parse);
}
function marine_has_trait(wanted_trait) {
From 4c9c92c2bf2afa25a4219c705f0cf611560702d6 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Thu, 18 Jun 2026 03:33:07 +0300
Subject: [PATCH 09/50] Update Alarm_3.gml
---
objects/obj_pnunit/Alarm_3.gml | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/objects/obj_pnunit/Alarm_3.gml b/objects/obj_pnunit/Alarm_3.gml
index c14485ab3b..a1f7f38b1b 100644
--- a/objects/obj_pnunit/Alarm_3.gml
+++ b/objects/obj_pnunit/Alarm_3.gml
@@ -121,7 +121,15 @@ try {
}
}
- if (norun == 0) {
+ // Guard blocks never retreat. The vanilla rule backs a block away from a
+ // pure-vehicle enemy it cannot hurt, but for the Guard that walks the
+ // whole rank out of the line and off to the rear, where the enemy ignores
+ // it (the Marines are now the front block) and turns on the Marines it was
+ // meant to screen. This is why the Guard only behaved when they were the
+ // last force left: alone there is nothing to fall back behind and no
+ // Marine front for the enemy to switch to. The Guard are meant to hold and
+ // die in place, so only non-guard blocks fall back here.
+ if (norun == 0 && guard == 0) {
x -= 10;
engaged = 0;
}
From e003911ef378534a89437c40ab48de78d58745c9 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Thu, 18 Jun 2026 14:14:57 +0300
Subject: [PATCH 10/50] Added Imperial Guard rercruitment button
Added imperial guard recruitment button option in the planet population screen under the Colonists. Guardsmen now take from the Planet PDF instead of population, cost 50 req for 1000 guardsmen.
---
objects/obj_controller/Alarm_8.gml | 22 ++++++----------------
objects/obj_star_select/Create_0.gml | 14 ++++++++++++++
scripts/scr_PlanetData/scr_PlanetData.gml | 11 +++++++++++
3 files changed, 31 insertions(+), 16 deletions(-)
diff --git a/objects/obj_controller/Alarm_8.gml b/objects/obj_controller/Alarm_8.gml
index 53a8aa9f8c..446741deec 100644
--- a/objects/obj_controller/Alarm_8.gml
+++ b/objects/obj_controller/Alarm_8.gml
@@ -20,22 +20,12 @@ with (obj_star) {
heh.show = false;
heh.placing = false;
heh.alarm[1] = -1;
- if (p_owner[1] == 1) {
- p_pdf[1] += p_guardsmen[1];
- p_guardsmen[1] = 0;
- }
- if (p_owner[2] == 1) {
- p_pdf[2] += p_guardsmen[2];
- p_guardsmen[2] = 0;
- }
- if (p_owner[3] == 1) {
- p_pdf[3] += p_guardsmen[3];
- p_guardsmen[3] = 0;
- }
- if (p_owner[4] == 1) {
- p_pdf[4] += p_guardsmen[4];
- p_guardsmen[4] = 0;
- }
+ // The Guard-into-PDF fold was removed here. It used to run, every turn, for
+ // each player world: p_pdf += p_guardsmen; p_guardsmen = 0. That quietly ate the
+ // Imperial Guard you raise and deploy, folding them back into the abstract PDF and
+ // zeroing the deployable pool. Recruited Guard now persist as their own pool until
+ // you embark them, and recruitment pulls bodies the other way (PDF into Guard), so
+ // folding them back would undo it.
}
}
diff --git a/objects/obj_star_select/Create_0.gml b/objects/obj_star_select/Create_0.gml
index 7464f52338..a9499ca01a 100644
--- a/objects/obj_star_select/Create_0.gml
+++ b/objects/obj_star_select/Create_0.gml
@@ -44,6 +44,20 @@ colonist_button.bind_method = function() {
new_colony_fleet(doner[0], doner[1], target.id, obj_controller.selecting_planet, "bolster_population");
};
+// Recruit Guard: raise Imperial Guard from this world's Defense Force (PDF) in fixed
+// elements of 1000, so it cannot be spammed off civilians and is bounded by the PDF on
+// hand. Costs a small 50 requisition per 1000. Recruited Guard go into the deployable
+// pool (p_guardsmen) to embark and deploy.
+guard_recruit_button = new PurchaseButton(50);
+guard_recruit_button.update({tooltip: "Raise 1000 Imperial Guard from this world's Defense Force (PDF). They join the deployable Guard pool, ready to embark and deploy. Drawn in fixed elements of 1000. /n Costs 50 requisition, requires at least 1000 PDF", label: "Recruit Guard", target: target});
+guard_recruit_button.bind_method = function() {
+ var _p = obj_controller.selecting_planet;
+ if (target.p_pdf[_p] >= 1000) {
+ target.p_pdf[_p] -= 1000;
+ target.p_guardsmen[_p] += 1000;
+ }
+};
+
recruiting_button = new PurchaseButton(0);
recruiting_button.update({tooltip: "Enable recruiting", label: "Recruiting", target: target});
recruiting_button.bind_method = function() {
diff --git a/scripts/scr_PlanetData/scr_PlanetData.gml b/scripts/scr_PlanetData/scr_PlanetData.gml
index fa77bd094f..d3e7cdd75a 100644
--- a/scripts/scr_PlanetData/scr_PlanetData.gml
+++ b/scripts/scr_PlanetData/scr_PlanetData.gml
@@ -1685,6 +1685,17 @@ function PlanetData(planet, system) constructor {
_col_button.draw(array_length(obj_star_select.potential_donors));
+ // Recruit Guard sits directly below Request Colonists (same column, one
+ // row down). Player worlds only, since you can only mobilise your own PDF.
+ // Clicking is gated on the PDF holding at least 1000 (here) and on having
+ // the 50 requisition (the PurchaseButton's own check), so a click can never
+ // spend the 50 without actually raising the 1000.
+ if (current_owner == eFACTION.PLAYER) {
+ var _guard_button = obj_star_select.guard_recruit_button;
+ _guard_button.update({x1: xx + 35, y1: _half_way + spacing_y, allow_click: true});
+ _guard_button.draw(pdf >= 1000);
+ }
+
var _recruit_button = obj_star_select.recruiting_button;
_recruit_button.update({x1: xx + (spacing_x * 2) + 15, y1: _half_way, allow_click: true});
From 165cc1a663bf338fb73688162d7eeee25f1d8a0d Mon Sep 17 00:00:00 2001
From: KestasV
Date: Fri, 19 Jun 2026 01:25:59 +0300
Subject: [PATCH 11/50] Made a differnet pipeline for guardsmen
Guardsmen are now hierlins you can take from your planet. To spawn them in type P and "guardsman X" with the number you want. Bigger numbers crash the game, but you can spawn 50 as many times as you like.
---
datafiles/data/armour.json | 31 +++++++++++++++
datafiles/data/unit_stats.json | 53 +++++++++++++++++++++++++
datafiles/data/weapons.json | 19 +++++++++
scripts/scr_add_man/scr_add_man.gml | 12 +++++-
scripts/scr_cheatcode/scr_cheatcode.gml | 30 +++-----------
5 files changed, 119 insertions(+), 26 deletions(-)
diff --git a/datafiles/data/armour.json b/datafiles/data/armour.json
index b591e3cbd4..6f1cea803f 100644
--- a/datafiles/data/armour.json
+++ b/datafiles/data/armour.json
@@ -172,6 +172,37 @@
},
"description": "This armour is used by T'au fire warriors."
},
+ "Flak Armour": {
+ "abbreviation": "FlkArm",
+ "armour_value": {
+ "artifact": 7,
+ "master_crafted": 6,
+ "standard": 5
+ },
+ "damage_resistance_mod": {
+ "artifact": 0,
+ "master_crafted": 0,
+ "standard": 0
+ },
+ "description": "A simple flak jacket of ablative plates and ballistic weave, the standard protection of the Astra Militarum rank and file. It turns aside shrapnel and glancing hits but offers little against a determined blow.",
+ "hp_mod": {
+ "artifact": 0,
+ "master_crafted": 0,
+ "standard": 0
+ },
+ "melee_mod": {
+ "artifact": 0,
+ "master_crafted": 0,
+ "standard": 0
+ },
+ "ranged_mod": {
+ "artifact": 10,
+ "master_crafted": 8,
+ "standard": 5
+ },
+ "renegade_buy": true,
+ "value": 2
+ },
"Light Power Armour": {
"abbreviation": "LPwrArm",
"armour_value": {
diff --git a/datafiles/data/unit_stats.json b/datafiles/data/unit_stats.json
index a8ad115cf7..4773c6ca38 100644
--- a/datafiles/data/unit_stats.json
+++ b/datafiles/data/unit_stats.json
@@ -581,6 +581,59 @@
1
]
},
+ "guardsman": {
+ "ballistic_skill": [
+ 25,
+ 1
+ ],
+ "base_group": "human",
+ "charisma": [
+ 15,
+ 1
+ ],
+ "constitution": [
+ 20,
+ 1
+ ],
+ "dexterity": [
+ 20,
+ 1
+ ],
+ "intelligence": [
+ 15,
+ 1
+ ],
+ "luck": 5,
+ "piety": [
+ 25,
+ 1
+ ],
+ "religion": "imperial_cult",
+ "start_gear": {
+ "armour": "Flak Armour",
+ "gear": "",
+ "mobi": "",
+ "wep1": "Lasgun",
+ "wep2": ""
+ },
+ "strength": [
+ 20,
+ 1
+ ],
+ "technology": [
+ 10,
+ 1
+ ],
+ "title": "Guardsman",
+ "weapon_skill": [
+ 15,
+ 1
+ ],
+ "wisdom": [
+ 15,
+ 1
+ ]
+ },
"skitarii": {
"ballistic_skill": [
20,
diff --git a/datafiles/data/weapons.json b/datafiles/data/weapons.json
index a570b6efeb..e779bbc2aa 100644
--- a/datafiles/data/weapons.json
+++ b/datafiles/data/weapons.json
@@ -1610,6 +1610,25 @@
],
"value": 15
},
+ "Lasgun": {
+ "abbreviation": "Lasgun",
+ "ammo": 40,
+ "arp": 1,
+ "attack": {
+ "artifact": 26,
+ "master_crafted": 22,
+ "standard": 18
+ },
+ "description": "The standard-issue weapon of the Astra Militarum. A rugged two-handed las weapon firing coherent energy beams, prized for its reliability and the ease of recharging its power packs in the field. Common, dependable, and unremarkable on its own.",
+ "melee_hands": 0,
+ "range": 12,
+ "ranged_hands": 1,
+ "spli": 2,
+ "tags": [
+ "las"
+ ],
+ "value": 2
+ },
"Laspistol": {
"abbreviation": "Lpstl",
"ammo": 30,
diff --git a/scripts/scr_add_man/scr_add_man.gml b/scripts/scr_add_man/scr_add_man.gml
index d8281e1c6f..a80b3b0371 100644
--- a/scripts/scr_add_man/scr_add_man.gml
+++ b/scripts/scr_add_man/scr_add_man.gml
@@ -10,7 +10,8 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
"Sister Hospitaler",
"Ranger",
"Ork Sniper",
- "Flash Git"
+ "Flash Git",
+ "Guardsman"
];
var _gear = {};
var _company_slot = 0;
@@ -26,6 +27,11 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
// TODO: Implement logic for Auxiliary Soldier (Race 2.5, Renegade stats)
switch (man_role) {
+ case "Guardsman":
+ spawn_exp = 10;
+ obj_ini.race[target_company][_company_slot] = eFACTION.IMPERIUM;
+ _unit = new TTRPG_stats("imperial_guard", target_company, _company_slot, "guardsman");
+ break;
case "Skitarii":
spawn_exp = 10;
obj_ini.race[target_company][_company_slot] = 3;
@@ -101,6 +107,10 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
case "Sister Hospitaler":
obj_ini.name[target_company][_company_slot] = global.name_generator.GenerateFromSet("imperial_female");
break;
+
+ case "Guardsman":
+ obj_ini.name[target_company][_company_slot] = global.name_generator.GenerateFromSet("imperial_male");
+ break;
}
if (!array_contains(non_marine_roles, man_role)) {
diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml
index ef2ab729be..1eb84817b5 100644
--- a/scripts/scr_cheatcode/scr_cheatcode.gml
+++ b/scripts/scr_cheatcode/scr_cheatcode.gml
@@ -41,31 +41,6 @@ function scr_cheatcode(argument0) {
if (cheat_code != "") {
switch (cheat_code) {
- case "embarkguard":
- with (obj_controller) {
- var _n = embark_guardsmen(obj_ini.home_name, obj_ini.home_planet);
- scr_popup("Imperial Guard", "Embarked " + string(_n) + " Guard from your homeworld. Total embarked: " + string(player_guardsmen_embarked()), "");
- }
- break;
- case "deployguard":
- with (obj_controller) {
- if (instance_exists(obj_star_select) && (selecting_planet > 0)) {
- var _star = obj_star_select.target;
- var _n = deploy_guardsmen(_star.name, selecting_planet);
- scr_popup("Imperial Guard", "Deployed " + string(_n) + " Guard onto " + string(_star.name) + " " + string(selecting_planet) + ". (Unloads from your ships orbiting that world.)", "");
- } else {
- var _n = deploy_guardsmen(obj_ini.home_name, obj_ini.home_planet);
- scr_popup("Imperial Guard", "No world selected, so deployed " + string(_n) + " Guard at your homeworld. Open a system and click a planet first to target another world.", "");
- }
- }
- break;
- case "titheguard":
- with (obj_controller) {
- var _amt = real(cheat_arguments[0]);
- var _n = tithe_guardsmen(obj_ini.home_name, obj_ini.home_planet, _amt);
- scr_popup("Imperial Guard", "Raised " + string(_n) + " Guard from your homeworld's population.", "");
- }
- break;
case "finishforge":
with (obj_controller) {
specialist_point_handler.forge_points = 1000000;
@@ -128,6 +103,11 @@ function scr_cheatcode(argument0) {
scr_add_man("Flash Git", 0, "", "", 0, true, "default");
}
break;
+ case "guardsman":
+ repeat (real(cheat_arguments[0])) {
+ scr_add_man("Guardsman", 0, "", "", 0, true, "default");
+ }
+ break;
case "chaosfleetspawn":
spawn_chaos_warlord();
break;
From 1c1fb019468c4a73b4c6ada1dfd8895859f31870 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Fri, 19 Jun 2026 18:11:51 +0300
Subject: [PATCH 12/50] Fixed the health issue to guardsmen, added bolt on for
guardsmen spawning in battle
Basically fixed the Gaussian stat roll so the guardsmen ALWAYS spawn with positive health, making them a bit stronger, but definitely not too strong. They're still incredibly weak when compared to the original p_guardsman implementation
---
datafiles/data/unit_stats.json | 5 +-
objects/obj_ncombat/Alarm_0.gml | 89 +++------------------------------
2 files changed, 10 insertions(+), 84 deletions(-)
diff --git a/datafiles/data/unit_stats.json b/datafiles/data/unit_stats.json
index 4773c6ca38..f8fa2c7782 100644
--- a/datafiles/data/unit_stats.json
+++ b/datafiles/data/unit_stats.json
@@ -592,8 +592,9 @@
1
],
"constitution": [
- 20,
- 1
+ 28,
+ 1,
+ "max"
],
"dexterity": [
20,
diff --git a/objects/obj_ncombat/Alarm_0.gml b/objects/obj_ncombat/Alarm_0.gml
index f1bc5f961a..b01e676c8c 100644
--- a/objects/obj_ncombat/Alarm_0.gml
+++ b/objects/obj_ncombat/Alarm_0.gml
@@ -3154,89 +3154,14 @@ try {
u.sprite_index = spr_weapon_blank;
}
- // ** Set up friendly Imperial Guard auxilia **
- // Bulk player force modelled on the defenses above. Reads the world's deployed
- // garrison (p_guardsmen). It renders and is durable via veh blocks; its firepower
- // is injected in scr_player_combat_weapon_stacks, scaled to player_guard. No roster
- // coupling, so no per-model casualty writes.
+ // ** Imperial Guard auxilia **
+ // The old p_guardsmen bolt-on block was retired here. Guardsmen are now fielded
+ // through the standard roster: station them on a world (ship_location -1) and the
+ // Local Forces toggle deploys them into the Hirelings block like any other unit,
+ // so the engine handles placement, targeting and casualties. player_guard is kept
+ // at 0 so the dormant firepower-injection path in scr_player_combat_weapon_stacks
+ // stays inert.
player_guard = 0;
- if ((battle_object != 0) && (battle_special == "")) {
- player_guard = battle_object.p_guardsmen[battle_id];
- }
- if (player_guard > 0) {
- // Place the Guard as the front rank in both attack and defence. They must be
- // the leading block, never a rear one: the player advance (move_unit_block
- // "east") refuses to move a block when another block sits directly ahead of it,
- // so Guard placed behind the Marines on attack can never step forward, and the
- // Marines simply advance off and leave them standing at the rear (the Marines
- // "pass them by"). As the front rank the Guard have open ground ahead, so they
- // lead the charge on attack and hold the line on defence, and either way they
- // reach the enemy and fight. Front rank is just east of the Marines and still
- // west of the enemy spawn (rightmost block + 10).
- var _maxx = -50;
- var _minx = 1000000;
- with (obj_pnunit) {
- if (x > _maxx) _maxx = x;
- if (x < _minx) _minx = x;
- }
- var _frontx;
- if (_maxx < 0) {
- _frontx = 100; // no other player blocks: stand-alone Guard force
- } else {
- _frontx = _maxx + 5; // front rank, attack and defence alike
- }
- u = instance_create(_frontx, 240, obj_pnunit);
- u.guard = 1;
-
- // Guardsmen line: pure infantry, no tanks, the way the enemy Imperial Guard
- // keep their soldier lines tank-free. They render and take losses per man like
- // the enemy Guard. They have no anti-tank weapon, so against armour they can
- // only bleed and die unless a Leman Russ line is present.
- u.men = player_guard;
- u.dudes[1] = "Imperial Guardsman";
- u.dudes_num[1] = player_guard;
- u.dudes_ac[1] = 40; // match the enemy Guardsman: flak armour value 40
- u.dudes_hp[1] = 5;
- u.dudes_vehicle[1] = 0;
-
- // Keep the default obj_pnunit sprite (do not blank it): the block needs its
- // collision mask, or the enemy advance walks straight through the Guard.
-
- // Count the infantry toward player forces. The normal accumulation only runs
- // during setup and this block spawns too late for it; obj_pnunit's Alarm_3
- // skips its auto-add for guard blocks so this is not double counted.
- player_forces += u.men;
- player_max += u.men;
-
- // Leman Russ tanks form their own separate block (guard == 2), placed just
- // behind the infantry line so the Guardsmen screen them. Tanks are the only
- // anti-armour the Guard field, kept out of the soldier line like the enemy's.
- var _tanks = min(30, round(player_guard / 5000));
- if (_tanks > 0) {
- var _tankx = max(5, _frontx - 10);
- var t = instance_create(_tankx, 240, obj_pnunit);
- t.guard = 2;
- t.men = 0;
- for (var i = 1; i <= _tanks; i++) {
- t.veh_co[i] = 0;
- t.veh_id[i] = 0;
- t.veh_type[i] = "Leman Russ Battle Tank";
- t.veh_hp[i] = 250;
- t.veh_ac[i] = 40;
- t.veh_dead[i] = 0;
- t.veh_hp_multiplier[i] = 1;
- t.veh_wep1[i] = "Battle Cannon";
- }
- t.veh = _tanks;
- t.dudes[1] = "Leman Russ Battle Tank";
- t.dudes_num[1] = _tanks;
- t.dudes_ac[1] = 40;
- t.dudes_hp[1] = 250;
- t.dudes_vehicle[1] = 1;
- player_forces += t.veh;
- player_max += t.veh;
- }
- }
instance_activate_object(obj_enunit);
} catch (_exception) {
From c9452d6cf3a79ba6ab3381f62ce321eb1cedfaf3 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Sat, 20 Jun 2026 20:53:34 +0300
Subject: [PATCH 13/50] Added Guardsmen Squads
Added a new Guard squad mechanic. Instead of single entities - each guard squad represents 10 guardsmen. They take damage and "lose guardsmen" per each 40hp hit. cheat is "guardsquad X" for testing (x being the number.
---
datafiles/data/unit_stats.json | 54 +++++++++++++++++++
scripts/macros/macros.gml | 3 ++
scripts/scr_add_man/scr_add_man.gml | 12 ++++-
scripts/scr_cheatcode/scr_cheatcode.gml | 29 +++++-----
.../scr_marine_struct/scr_marine_struct.gml | 3 ++
.../scr_player_combat_weapon_stacks.gml | 53 +++++++++++++++---
6 files changed, 130 insertions(+), 24 deletions(-)
diff --git a/datafiles/data/unit_stats.json b/datafiles/data/unit_stats.json
index f8fa2c7782..249045efb9 100644
--- a/datafiles/data/unit_stats.json
+++ b/datafiles/data/unit_stats.json
@@ -581,6 +581,60 @@
1
]
},
+ "guard_squad": {
+ "ballistic_skill": [
+ 25,
+ 1
+ ],
+ "base_group": "human",
+ "charisma": [
+ 15,
+ 1
+ ],
+ "constitution": [
+ 28,
+ 1,
+ "max"
+ ],
+ "dexterity": [
+ 20,
+ 1
+ ],
+ "intelligence": [
+ 15,
+ 1
+ ],
+ "luck": 5,
+ "piety": [
+ 25,
+ 1
+ ],
+ "religion": "imperial_cult",
+ "start_gear": {
+ "armour": "Flak Armour",
+ "gear": "",
+ "mobi": "",
+ "wep1": "Lasgun",
+ "wep2": ""
+ },
+ "strength": [
+ 20,
+ 1
+ ],
+ "technology": [
+ 10,
+ 1
+ ],
+ "title": "Guard Squad",
+ "weapon_skill": [
+ 15,
+ 1
+ ],
+ "wisdom": [
+ 15,
+ 1
+ ]
+ },
"guardsman": {
"ballistic_skill": [
25,
diff --git a/scripts/macros/macros.gml b/scripts/macros/macros.gml
index 7c16cd0d58..85a567a07d 100644
--- a/scripts/macros/macros.gml
+++ b/scripts/macros/macros.gml
@@ -1,3 +1,6 @@
+// Imperial Guard squad: how many guardsmen one Guard Squad unit represents.
+#macro GUARD_SQUAD_SIZE 10
+
#macro MAX_STC_PER_SUBCATEGORY 6
#macro DEFAULT_TOOLTIP_VIEW_OFFSET 32
#macro DEFAULT_LINE_GAP -1
diff --git a/scripts/scr_add_man/scr_add_man.gml b/scripts/scr_add_man/scr_add_man.gml
index a80b3b0371..5737106699 100644
--- a/scripts/scr_add_man/scr_add_man.gml
+++ b/scripts/scr_add_man/scr_add_man.gml
@@ -11,7 +11,8 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
"Ranger",
"Ork Sniper",
"Flash Git",
- "Guardsman"
+ "Guardsman",
+ "Guard Squad"
];
var _gear = {};
var _company_slot = 0;
@@ -32,6 +33,11 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
obj_ini.race[target_company][_company_slot] = eFACTION.IMPERIUM;
_unit = new TTRPG_stats("imperial_guard", target_company, _company_slot, "guardsman");
break;
+ case "Guard Squad":
+ spawn_exp = 10;
+ obj_ini.race[target_company][_company_slot] = eFACTION.IMPERIUM;
+ _unit = new TTRPG_stats("imperial_guard", target_company, _company_slot, "guard_squad");
+ break;
case "Skitarii":
spawn_exp = 10;
obj_ini.race[target_company][_company_slot] = 3;
@@ -111,6 +117,10 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
case "Guardsman":
obj_ini.name[target_company][_company_slot] = global.name_generator.GenerateFromSet("imperial_male");
break;
+
+ case "Guard Squad":
+ obj_ini.name[target_company][_company_slot] = global.name_generator.GenerateFromSet("imperial_male");
+ break;
}
if (!array_contains(non_marine_roles, man_role)) {
diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml
index 61fd2b5ece..93089f05f2 100644
--- a/scripts/scr_cheatcode/scr_cheatcode.gml
+++ b/scripts/scr_cheatcode/scr_cheatcode.gml
@@ -108,6 +108,11 @@ function scr_cheatcode(argument0) {
scr_add_man("Guardsman", 0, "", "", 0, true, "default");
}
break;
+ case "guardsquad":
+ repeat (real(cheat_arguments[0])) {
+ scr_add_man("Guard Squad", 0, "", "", 0, true, "default");
+ }
+ break;
case "chaosfleetspawn":
spawn_chaos_warlord();
break;
@@ -411,16 +416,12 @@ function draw_planet_debug_options() {
if (debug) {
debug_slate.inside_method = function() {
debug_options.draw();
- switch(debug_options.current_selection){
- case 0:
- draw_planet_debug_forces();
- break;
- case 1:
- draw_planet_debug_problems();
- break;
- case 2:
- draw_planet_debug_features();
- break;
+ if (debug_options.current_selection == 0) {
+ draw_planet_debug_forces();
+ } else if (debug_options.current_selection == 1) {
+ draw_planet_debug_problems();
+ } else if (debug_options.current_selection == 2) {
+ draw_planet_debug_features();
}
};
debug_slate.draw();
@@ -501,7 +502,6 @@ function draw_planet_debug_problems() {
if (scr_hit(38, _y, 337, _y + 20)) {
tooltip_draw(mission_name_key(_keys[i]));
if (mouse_button_clicked()) {
- var _p_data = obj_star_select.p_data;
switch (_keys[i]) {
case "inquisitor":
mission_inquistion_hunt_inquisitor(target.id);
@@ -518,12 +518,7 @@ function draw_planet_debug_problems() {
case "mech_bionics":
spawn_mechanicus_mission("mech_bionics");
break;
- case "succession":
- _p_data.init_war_of_succession();
- break;
- case "fallen":
- _p_data.init_fallen_marines();
- break
+
default:
scr_popup("error", "no specific debug action created please consider helping to make one", "");
break;
diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml
index 405aef0b6e..85735fc3bb 100644
--- a/scripts/scr_marine_struct/scr_marine_struct.gml
+++ b/scripts/scr_marine_struct/scr_marine_struct.gml
@@ -396,6 +396,9 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {}
max_h += gear_weapon_data("weapon", weapon_one(), "hp_mod");
max_h += gear_weapon_data("weapon", weapon_two(), "hp_mod");
}
+ if (role() == "Guard Squad") {
+ max_h *= GUARD_SQUAD_SIZE; // a squad shares one pooled health bar and dies as a whole
+ }
return max_h;
};
diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
index de330d2afd..d8122c652a 100644
--- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
+++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
@@ -60,6 +60,36 @@ function add_data_to_stack(stack_index, weapon, unit_damage = false, head_role =
}
}
+/// @self Asset.GMObject.obj_pnunit
+/// Adds a single named weapon to the stacks, firing "count" times. Used for Guard
+/// Squads, where one unit struct stands for a whole squad: the default weapon (wep1)
+/// fires once per man and the special weapon (wep2) fires once for the squad. Mirrors
+/// the enemy horde firepower in scr_en_weapon (attack times the number firing) rather
+/// than the normal single-primary-weapon path, which would only fire the higher-attack gun.
+function add_squad_weapon(weapon_name, count, head_role = false, unit = "none") {
+ if (weapon_name == "") {
+ return;
+ }
+ var _w = gear_weapon_data("weapon", weapon_name, "all", false, "standard");
+ if (!is_struct(_w) || _w.name == "") {
+ return;
+ }
+ var _idx = find_stack_index(_w.name, head_role, unit);
+ if (_idx < 0) {
+ return;
+ }
+ att[_idx] += _w.attack * count;
+ apa[_idx] = _w.arp;
+ range[_idx] = _w.range;
+ wep_num[_idx] += count;
+ splash[_idx] = _w.spli;
+ wep[_idx] = _w.name;
+ if (obj_ncombat.started == 0) {
+ ammo[_idx] = _w.ammo;
+ }
+ wep_owner[_idx] = "assorted";
+}
+
/// @self Asset.GMObject.obj_pnunit
function find_stack_index(weapon_name, head_role = false, unit = "none") {
final_index = -1;
@@ -312,12 +342,23 @@ function scr_player_combat_weapon_stacks() {
}
if (marine_casting[g] == false) {
var weapon_stack_index = 0;
- var primary_ranged = unit.ranged_damage_data[3]; //collect unit ranged data
- var weapon_stack_index = find_stack_index(primary_ranged.name, head_role, unit);
- if (weapon_stack_index > -1) {
- add_data_to_stack(weapon_stack_index, primary_ranged, unit.ranged_damage_data[0], head_role, unit);
- if (head_role) {
- player_head_role_stack(weapon_stack_index, unit);
+ if (unit.role() == "Guard Squad") {
+ // The squad thins as it takes losses: its surviving strength scales with
+ // remaining health, so a half-health squad fires half its lasguns and a
+ // squad on its last legs fires one. It fires wep1 once per surviving man
+ // and its special weapon (wep2) once while the squad still lives.
+ var _sq_max = unit.max_health();
+ var _sq_men = (_sq_max > 0) ? max(1, ceil(GUARD_SQUAD_SIZE * unit.hp() / _sq_max)) : 1;
+ add_squad_weapon(unit.weapon_one(), _sq_men, head_role, unit);
+ add_squad_weapon(unit.weapon_two(), 1, head_role, unit);
+ } else {
+ var primary_ranged = unit.ranged_damage_data[3]; //collect unit ranged data
+ weapon_stack_index = find_stack_index(primary_ranged.name, head_role, unit);
+ if (weapon_stack_index > -1) {
+ add_data_to_stack(weapon_stack_index, primary_ranged, unit.ranged_damage_data[0], head_role, unit);
+ if (head_role) {
+ player_head_role_stack(weapon_stack_index, unit);
+ }
}
}
From 448d2bc27fdb507da22c79cacec56c789d37d93a Mon Sep 17 00:00:00 2001
From: KestasV
Date: Sun, 21 Jun 2026 01:31:55 +0300
Subject: [PATCH 14/50] Fixed issues with single unit guardsmen and their
spawning
Limits on HQ pool size removed. You can now huge numbers of guarrdsmen without either the game freezing or crashing. Still recommending to just spawn 1000 at a time. Use cheat "guardsman 1000" to spawn them, they will appear in your HQ company and should be on your home planet.
---
datafiles/data/armour.json | 6 +++---
datafiles/data/weapons.json | 8 ++++----
scripts/scr_add_man/scr_add_man.gml | 10 ++++++++--
scripts/scr_after_combat/scr_after_combat.gml | 2 +-
scripts/scr_cheatcode/scr_cheatcode.gml | 10 ++++++++--
scripts/scr_company_view/scr_company_view.gml | 19 +++++++++++++++++++
.../scr_marine_struct/scr_marine_struct.gml | 9 +++++++++
7 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/datafiles/data/armour.json b/datafiles/data/armour.json
index 6f1cea803f..0504ce9e46 100644
--- a/datafiles/data/armour.json
+++ b/datafiles/data/armour.json
@@ -175,9 +175,9 @@
"Flak Armour": {
"abbreviation": "FlkArm",
"armour_value": {
- "artifact": 7,
- "master_crafted": 6,
- "standard": 5
+ "artifact": 12,
+ "master_crafted": 11,
+ "standard": 10
},
"damage_resistance_mod": {
"artifact": 0,
diff --git a/datafiles/data/weapons.json b/datafiles/data/weapons.json
index e779bbc2aa..e466bb0861 100644
--- a/datafiles/data/weapons.json
+++ b/datafiles/data/weapons.json
@@ -1613,11 +1613,11 @@
"Lasgun": {
"abbreviation": "Lasgun",
"ammo": 40,
- "arp": 1,
+ "arp": 2,
"attack": {
- "artifact": 26,
- "master_crafted": 22,
- "standard": 18
+ "artifact": 36,
+ "master_crafted": 32,
+ "standard": 28
},
"description": "The standard-issue weapon of the Astra Militarum. A rugged two-handed las weapon firing coherent energy beams, prized for its reliability and the ease of recharging its power packs in the field. Common, dependable, and unremarkable on its own.",
"melee_hands": 0,
diff --git a/scripts/scr_add_man/scr_add_man.gml b/scripts/scr_add_man/scr_add_man.gml
index 5737106699..3f68e2731d 100644
--- a/scripts/scr_add_man/scr_add_man.gml
+++ b/scripts/scr_add_man/scr_add_man.gml
@@ -145,8 +145,14 @@ function scr_add_man(man_role, target_company, spawn_exp, spawn_name, corruption
_unit.add_exp(spawn_exp);
_unit.allocate_unit_to_fresh_spawn(home_spot);
_unit.update_role(man_role);
- with (obj_ini) {
- scr_company_order(target_company);
+ // Re-sorting the whole company after every spawn is O(n) per call, which makes a
+ // bulk spawn O(n^2) and freezes at high counts. Callers doing a batch can pass
+ // other_data.skip_company_order and run scr_company_order once when finished.
+ var _skip_order = is_struct(other_data) && variable_struct_exists(other_data, "skip_company_order") && other_data.skip_company_order;
+ if (!_skip_order) {
+ with (obj_ini) {
+ scr_company_order(target_company);
+ }
}
_unit.update_health(_unit.max_health());
return _unit;
diff --git a/scripts/scr_after_combat/scr_after_combat.gml b/scripts/scr_after_combat/scr_after_combat.gml
index b4668a3b90..723cd11c9b 100644
--- a/scripts/scr_after_combat/scr_after_combat.gml
+++ b/scripts/scr_after_combat/scr_after_combat.gml
@@ -240,7 +240,7 @@ function after_battle_part1() {
marine_dead[i] = 1;
marine_hp[i] = -50;
}
- if ((veh_type[i] != "") && (obj_ncombat.defeat == 1)) {
+ if ((i < array_length(veh_type)) && (veh_type[i] != "") && (obj_ncombat.defeat == 1)) {
veh_dead[i] = 1;
veh_hp[i] = -200;
}
diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml
index 93089f05f2..8cdeb77b9e 100644
--- a/scripts/scr_cheatcode/scr_cheatcode.gml
+++ b/scripts/scr_cheatcode/scr_cheatcode.gml
@@ -105,12 +105,18 @@ function scr_cheatcode(argument0) {
break;
case "guardsman":
repeat (real(cheat_arguments[0])) {
- scr_add_man("Guardsman", 0, "", "", 0, true, "default");
+ scr_add_man("Guardsman", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
+ }
+ with (obj_ini) {
+ scr_company_order(0);
}
break;
case "guardsquad":
repeat (real(cheat_arguments[0])) {
- scr_add_man("Guard Squad", 0, "", "", 0, true, "default");
+ scr_add_man("Guard Squad", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
+ }
+ with (obj_ini) {
+ scr_company_order(0);
}
break;
case "chaosfleetspawn":
diff --git a/scripts/scr_company_view/scr_company_view.gml b/scripts/scr_company_view/scr_company_view.gml
index 0addd44874..273de529e9 100644
--- a/scripts/scr_company_view/scr_company_view.gml
+++ b/scripts/scr_company_view/scr_company_view.gml
@@ -49,6 +49,25 @@ function find_company_open_slot(target_company) {
break;
}
}
+ if (good == -1) {
+ // No free slot left: grow the company by one fully-initialised blank slot so
+ // companies are effectively uncapped (HQ included). Only runs on overflow, so
+ // normal recruiting is unchanged. All parallel arrays are extended together to
+ // stay in sync, mirroring _init_marine_row for a single index.
+ good = array_length(obj_ini.name[target_company]);
+ obj_ini.race[target_company][good] = 1;
+ obj_ini.name[target_company][good] = "";
+ obj_ini.role[target_company][good] = "";
+ obj_ini.wep1[target_company][good] = "";
+ obj_ini.spe[target_company][good] = "";
+ obj_ini.wep2[target_company][good] = "";
+ obj_ini.armour[target_company][good] = "";
+ obj_ini.gear[target_company][good] = "";
+ obj_ini.mobi[target_company][good] = "";
+ obj_ini.age[target_company][good] = 0;
+ obj_ini.god[target_company][good] = 0;
+ obj_ini.TTRPG[target_company][good] = new TTRPG_stats("chapter", target_company, good, "blank");
+ }
return good;
}
diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml
index 85735fc3bb..98260be90d 100644
--- a/scripts/scr_marine_struct/scr_marine_struct.gml
+++ b/scripts/scr_marine_struct/scr_marine_struct.gml
@@ -1898,6 +1898,15 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {}
static allocate_unit_to_fresh_spawn = function(type = "default") {
var homestar = "none";
var spawn_location_chosen = false;
+ if (type == "home_planet") {
+ // Place directly on the chapter home planet and keep the unit off-ship. Used by
+ // bulk spawns so large numbers of units are not distributed across the fleet's
+ // ships, which is slow and clutters ship cargo.
+ planet_location = obj_ini.home_planet;
+ ship_location = -1;
+ location_string = obj_ini.home_name;
+ return;
+ }
if (((type == "home") || (type == "default")) && (obj_ini.fleet_type == ePLAYER_BASE.HOME_WORLD)) {
var homestar = find_star_by_name(obj_ini.home_name);
} else if (type != "ship") {
From 70a5084b442d39ee671f98264c3a162504706724 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Sun, 21 Jun 2026 03:08:47 +0300
Subject: [PATCH 15/50] New update fixes guardsmen spawning and adds guard
filter
Basically you can now filter for guard units in your ships. to add guard to your planet press P and type in "guardsman 2000" or more. Or less. Not recommended going over 10k for now, as it can slow down post battle loading and takes a minute to load them in.
---
datafiles/data/weapons.json | 8 ++++----
.../scr_marine_struct/scr_marine_struct.gml | 18 ++++++++++++++----
scripts/scr_roster/scr_roster.gml | 14 +++++++++++++-
3 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/datafiles/data/weapons.json b/datafiles/data/weapons.json
index e466bb0861..2114b83c45 100644
--- a/datafiles/data/weapons.json
+++ b/datafiles/data/weapons.json
@@ -1613,11 +1613,11 @@
"Lasgun": {
"abbreviation": "Lasgun",
"ammo": 40,
- "arp": 2,
+ "arp": 1,
"attack": {
- "artifact": 36,
- "master_crafted": 32,
- "standard": 28
+ "artifact": 30,
+ "master_crafted": 26,
+ "standard": 22
},
"description": "The standard-issue weapon of the Astra Militarum. A rugged two-handed las weapon firing coherent energy beams, prized for its reliability and the ease of recharging its power packs in the field. Common, dependable, and unremarkable on its own.",
"melee_hands": 0,
diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml
index 98260be90d..97b2f65824 100644
--- a/scripts/scr_marine_struct/scr_marine_struct.gml
+++ b/scripts/scr_marine_struct/scr_marine_struct.gml
@@ -1899,12 +1899,22 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {}
var homestar = "none";
var spawn_location_chosen = false;
if (type == "home_planet") {
- // Place directly on the chapter home planet and keep the unit off-ship. Used by
- // bulk spawns so large numbers of units are not distributed across the fleet's
- // ships, which is slow and clutters ship cargo.
- planet_location = obj_ini.home_planet;
+ // Place on the chapter's actual owned planet in the home system and keep the unit
+ // off-ship, so bulk spawns are not scattered across the fleet's ships. Scan for a
+ // player-owned planet rather than trusting obj_ini.home_planet, which can be a
+ // stale index pointing at a planet that does not exist in this system.
ship_location = -1;
location_string = obj_ini.home_name;
+ planet_location = obj_ini.home_planet;
+ var homestar = find_star_by_name(obj_ini.home_name);
+ if (homestar != "none") {
+ for (var i = 1; i <= homestar.planets; i++) {
+ if (homestar.p_owner[i] == eFACTION.PLAYER) {
+ planet_location = i;
+ break;
+ }
+ }
+ }
return;
}
if (((type == "home") || (type == "default")) && (obj_ini.fleet_type == ePLAYER_BASE.HOME_WORLD)) {
diff --git a/scripts/scr_roster/scr_roster.gml b/scripts/scr_roster/scr_roster.gml
index 5caf8a0f44..0dc05d9132 100644
--- a/scripts/scr_roster/scr_roster.gml
+++ b/scripts/scr_roster/scr_roster.gml
@@ -111,6 +111,11 @@ function Roster() constructor {
_valid_type = _allow_dreadnoughts;
}
}
+ // Guardsmen answer to their own filter button rather than always passing
+ var _grd_role = _unit.role();
+ if (_grd_role == "Guardsman" || _grd_role == "Guard Squad") {
+ _valid_type = array_contains(_valid_squad_types, "guardsman");
+ }
}
if (_unit.ship_location > -1) {
@@ -158,7 +163,7 @@ function Roster() constructor {
static new_squad_button = function(display, squad_id) {
var _button = new ToggleButton();
display = string_replace(display, " Squad", "");
- if (display != "Command") {
+ if (display != "Command" && display != "Guardsmen") {
display = string_plural(display);
}
_button.str1 = display;
@@ -290,6 +295,13 @@ function Roster() constructor {
new_squad_button("Dreadnought", "dreadnought");
}
}
+ // Guardsmen and Guard Squads have no squad type, so give them their
+ // own filter button (added once) so they can be selected on their own.
+ var _grd_role = _unit.role();
+ if ((_grd_role == "Guardsman" || _grd_role == "Guard Squad") && !array_contains(_squads, "guardsman")) {
+ array_push(_squads, "guardsman");
+ new_squad_button("Guardsmen", "guardsman");
+ }
}
}
}
From 065dcbdb574e21b9f1dceda6ac77c580f10f04aa Mon Sep 17 00:00:00 2001
From: KestasV
Date: Sun, 21 Jun 2026 03:53:31 +0300
Subject: [PATCH 16/50] Fixed filter for guardsmen. Now you can filter them out
from your entirer force if you w ant
---
objects/obj_star_select/Create_0.gml | 23 +++++++++
scripts/scr_PlanetData/scr_PlanetData.gml | 63 +++++------------------
2 files changed, 37 insertions(+), 49 deletions(-)
diff --git a/objects/obj_star_select/Create_0.gml b/objects/obj_star_select/Create_0.gml
index a9499ca01a..df87d667a0 100644
--- a/objects/obj_star_select/Create_0.gml
+++ b/objects/obj_star_select/Create_0.gml
@@ -58,6 +58,29 @@ guard_recruit_button.bind_method = function() {
}
};
+// Levy Guardsmen: raise 100 deployable Guardsmen as actual units (not the abstract PDF
+// pool). They muster on this world, stationed off-ship, so the deploy roster's Guardsmen
+// filter can bring them into a battle here, or they can be embarked onto ships and taken
+// on the offensive. Costs 10 requisition. Uses the batch spawn path (one sort at the end)
+// so raising 100 at once stays fast.
+guardsmen_levy_button = new PurchaseButton(10);
+guardsmen_levy_button.update({tooltip: "Levy 100 Guardsmen from this world as deployable troops. They muster here, ready to be brought into battle or embarked onto your ships. /n Costs 10 requisition", label: "Levy Guardsmen", target: target});
+guardsmen_levy_button.bind_method = function() {
+ var _star = target.name;
+ var _planet = obj_controller.selecting_planet;
+ repeat (100) {
+ var _u = scr_add_man("Guardsman", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
+ if (is_struct(_u)) {
+ _u.location_string = _star;
+ _u.planet_location = _planet;
+ _u.ship_location = -1;
+ }
+ }
+ with (obj_ini) {
+ scr_company_order(0);
+ }
+};
+
recruiting_button = new PurchaseButton(0);
recruiting_button.update({tooltip: "Enable recruiting", label: "Recruiting", target: target});
recruiting_button.bind_method = function() {
diff --git a/scripts/scr_PlanetData/scr_PlanetData.gml b/scripts/scr_PlanetData/scr_PlanetData.gml
index a7490e7779..f938c9b05d 100644
--- a/scripts/scr_PlanetData/scr_PlanetData.gml
+++ b/scripts/scr_PlanetData/scr_PlanetData.gml
@@ -34,6 +34,7 @@ function PlanetData(planet, system) constructor {
is_hulk = system.space_hulk;
x = system.x;
y = system.y;
+ player_disposition = system.dispo[planet];
planet_type = system.p_type[planet];
operatives = system.p_operatives[planet];
pdf = system.p_pdf[planet];
@@ -77,6 +78,10 @@ function PlanetData(planet, system) constructor {
heretic_timer = system.p_hurssy_time[planet];
+ secret_corruption = system.p_heresy_secret[planet];
+
+ corruption = system.p_heresy[planet];
+
population_influences = system.p_influence[planet];
raided_this_turn = system.p_raided[planet];
@@ -100,7 +105,6 @@ function PlanetData(planet, system) constructor {
system.dispo[planet] = 100;
}
- player_disposition = system.dispo[planet];
garrisons = system.system_garrison[planet];
if (garrisons == 0){
garrisons = system.get_garrison(planet)
@@ -119,10 +123,6 @@ function PlanetData(planet, system) constructor {
system.p_influence[planet][i] = 0;
}
}
-
- secret_corruption = system.p_heresy_secret[planet];
-
- corruption = system.p_heresy[planet];
}
refresh_data();
@@ -278,7 +278,8 @@ function PlanetData(planet, system) constructor {
if (large_population) {
new_pdf *= large_pop_conversion;
}
- edit_pdf(new_pdf)
+ pdf += new_pdf;
+ system.p_pdf[planet] = pdf;
return new_pdf;
};
@@ -467,7 +468,7 @@ function PlanetData(planet, system) constructor {
var pip = instance_create(0,0,obj_popup);
pip.title = "Planetary Governor Assassinated";
- pip._text = txt;
+ pip.text = txt;
pip.planet = planet;
pip.p_data = self;
var options = [
@@ -1693,6 +1694,12 @@ function PlanetData(planet, system) constructor {
var _guard_button = obj_star_select.guard_recruit_button;
_guard_button.update({x1: xx + 35, y1: _half_way + spacing_y, allow_click: true});
_guard_button.draw(pdf >= 1000);
+
+ // Levy Guardsmen sits one row below Recruit Guard. Enabled whenever the
+ // player can afford it (the PurchaseButton checks the 10 requisition).
+ var _levy_button = obj_star_select.guardsmen_levy_button;
+ _levy_button.update({x1: xx + 35, y1: _half_way + spacing_y * 2, allow_click: true});
+ _levy_button.draw(true);
}
var _recruit_button = obj_star_select.recruiting_button;
@@ -2123,46 +2130,4 @@ function PlanetData(planet, system) constructor {
}
}
-
- static create_alert = function(){
- return instance_create(system.x + 16, system.y - 24, obj_star_event);
- }
-
- static init_war_of_succession = function(){
- add_feature(eP_FEATURES.SUCCESSION_WAR);
- add_problem("succession", irandom(6) + 4);
- set_player_disposition(-5000);
-
- scr_popup("War of Succession", $"The planetary governor of {name()} has died. Several subordinates and other parties each claim to be the true heir and successor- war has erupted across the planet as a result. Heresy thrives in chaos.", "succession", "");
- var _star_alert = create_alert();
- _star_alert.image_alpha = 1;
- _star_alert.image_speed = 1;
- _star_alert.col = "red";
- scr_event_log("red", $"War of Succession on {name()}");
- }
-
-
- static init_fallen_marines = function(){
-
- var _eta = scr_mission_eta(system.x, system.y, 1);
-
- LOGGER.info($"Fallen: found star {name()} as candidate");
-
- var assigned_problem = add_problem("fallen", _eta);
- LOGGER.info($"assigned_problem {assigned_problem}");
-
- if (!assigned_problem) {
- LOGGER.error("RE: Hunt the Fallen, coulnd't assign a problem to the planet");
- return;
- }
-
- var _text = $"Sources indicate one of the Fallen may be upon {name()}. We have {_eta} months to send out a strike team and scour the planet. Any longer and any Fallen that might be there will have escaped.";
- scr_popup("Hunt the Fallen", _text, "fallen", "");
- scr_event_log("", $"Sources indicate one of the Fallen may be upon {name()}. We have {_eta} months to investigate.");
- var star_alert = create_alert();
- star_alert.image_alpha = 1;
- star_alert.image_speed = 1;
- star_alert.col = "purple";
- }
-
}
\ No newline at end of file
From 7dc1187863f067c53faeae47af545c26d788066d Mon Sep 17 00:00:00 2001
From: KestasV
Date: Sun, 21 Jun 2026 13:58:28 +0300
Subject: [PATCH 17/50] Added diplomacy with Sector Governor on behalf of
guardsmen, fixed some guardsmen logic
For now the main way to recruit them is on your homeworld by pressing P for cheats and entering "guardsman 1000" for testing. You can get even morse guardsmen, i'll test how they work in combat.
---
objects/obj_star_select/Create_0.gml | 23 ---------------
scripts/scr_PlanetData/scr_PlanetData.gml | 6 ----
scripts/scr_trade/scr_trade.gml | 35 +++++++++++++++++++++++
scripts/scr_trade_dep/scr_trade_dep.gml | 11 ++++++-
4 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/objects/obj_star_select/Create_0.gml b/objects/obj_star_select/Create_0.gml
index df87d667a0..a9499ca01a 100644
--- a/objects/obj_star_select/Create_0.gml
+++ b/objects/obj_star_select/Create_0.gml
@@ -58,29 +58,6 @@ guard_recruit_button.bind_method = function() {
}
};
-// Levy Guardsmen: raise 100 deployable Guardsmen as actual units (not the abstract PDF
-// pool). They muster on this world, stationed off-ship, so the deploy roster's Guardsmen
-// filter can bring them into a battle here, or they can be embarked onto ships and taken
-// on the offensive. Costs 10 requisition. Uses the batch spawn path (one sort at the end)
-// so raising 100 at once stays fast.
-guardsmen_levy_button = new PurchaseButton(10);
-guardsmen_levy_button.update({tooltip: "Levy 100 Guardsmen from this world as deployable troops. They muster here, ready to be brought into battle or embarked onto your ships. /n Costs 10 requisition", label: "Levy Guardsmen", target: target});
-guardsmen_levy_button.bind_method = function() {
- var _star = target.name;
- var _planet = obj_controller.selecting_planet;
- repeat (100) {
- var _u = scr_add_man("Guardsman", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
- if (is_struct(_u)) {
- _u.location_string = _star;
- _u.planet_location = _planet;
- _u.ship_location = -1;
- }
- }
- with (obj_ini) {
- scr_company_order(0);
- }
-};
-
recruiting_button = new PurchaseButton(0);
recruiting_button.update({tooltip: "Enable recruiting", label: "Recruiting", target: target});
recruiting_button.bind_method = function() {
diff --git a/scripts/scr_PlanetData/scr_PlanetData.gml b/scripts/scr_PlanetData/scr_PlanetData.gml
index f938c9b05d..d3e7cdd75a 100644
--- a/scripts/scr_PlanetData/scr_PlanetData.gml
+++ b/scripts/scr_PlanetData/scr_PlanetData.gml
@@ -1694,12 +1694,6 @@ function PlanetData(planet, system) constructor {
var _guard_button = obj_star_select.guard_recruit_button;
_guard_button.update({x1: xx + 35, y1: _half_way + spacing_y, allow_click: true});
_guard_button.draw(pdf >= 1000);
-
- // Levy Guardsmen sits one row below Recruit Guard. Enabled whenever the
- // player can afford it (the PurchaseButton checks the 10 requisition).
- var _levy_button = obj_star_select.guardsmen_levy_button;
- _levy_button.update({x1: xx + 35, y1: _half_way + spacing_y * 2, allow_click: true});
- _levy_button.draw(true);
}
var _recruit_button = obj_star_select.recruiting_button;
diff --git a/scripts/scr_trade/scr_trade.gml b/scripts/scr_trade/scr_trade.gml
index 76753d5db6..7d77bcda0a 100644
--- a/scripts/scr_trade/scr_trade.gml
+++ b/scripts/scr_trade/scr_trade.gml
@@ -17,6 +17,7 @@ function TradeAttempt(diplomacy) constructor {
"Inferno Bolts": 5,
"Sister of Battle": 40,
"Sister Hospitaler": 75,
+ "Guardsman": 0.05,
"Eldar Power Sword": 50,
"Archeotech Laspistol": 150,
"Ranger": 100,
@@ -90,6 +91,12 @@ function TradeAttempt(diplomacy) constructor {
quality: "standard",
number: _opt.number,
};
+ // Space Marines commandeering Imperial Guard is frowned upon since the
+ // Heresy and the reign of Goge Vandire, so the Sector Governor's regard
+ // dips a little each time. The hit is small and one-off per levy.
+ if (_type == "Guardsman") {
+ alter_disposition(diplomacy_faction, -2);
+ }
} else if (_opt.trade_type == "arti") {
scr_add_artifact("random", "minor", true);
} else if (_opt.trade_type == "vehic") {
@@ -373,6 +380,7 @@ function TradeAttempt(diplomacy) constructor {
switch (diplomacy_faction) {
case 2:
new_demand_buttons(0, "Requisition", "req");
+ new_demand_buttons(0, "Guardsman", "merc", 5000);
new_demand_buttons(0, "Recruiting Planet", "license", 1);
new_demand_buttons(0, "License: Repair", "license", 1);
new_demand_buttons(0, "License: Crusade", "license", 1);
@@ -675,6 +683,33 @@ function TradeAttempt(diplomacy) constructor {
deal_chance = (100 - penalty) - (their_worth - (my_worth * dif_penalty));
//LOGGER.debug($"{their_worth},{my_worth},{deal_chance}");
+
+ // Guardsmen are abundant Imperial line troops the Sector Governor hands over by the
+ // thousand, not a haggled rarity, so the base trade overhead does not apply to a
+ // pure Guard levy. They cost a flat 0.05 requisition each (50 per 1000). If the
+ // offered requisition covers the guardsmen demanded the Governor obliges outright,
+ // otherwise he declines. Only triggers when guardsmen are the sole demand, so it
+ // cannot be used to slip other goods through cheaply.
+ var _guard_num = 0;
+ var _other_demand = false;
+ for (var gi = 0; gi < array_length(demand_options); gi++) {
+ if (demand_options[gi].number > 0) {
+ if (demand_options[gi].label == "Guardsman") {
+ _guard_num += demand_options[gi].number;
+ } else {
+ _other_demand = true;
+ }
+ }
+ }
+ if ((_guard_num > 0) && !_other_demand) {
+ var _req_offered = 0;
+ for (var ri = 0; ri < array_length(offer_options); ri++) {
+ if (offer_options[ri].label == "Requisition") {
+ _req_offered += offer_options[ri].number;
+ }
+ }
+ deal_chance = _req_offered >= ceil(_guard_num * 0.05) ? 100 : 0;
+ }
var _chance = clamp(floor((deal_chance / 20)), 0, 6);
trade_likely = chance_chart[_chance];
diff --git a/scripts/scr_trade_dep/scr_trade_dep.gml b/scripts/scr_trade_dep/scr_trade_dep.gml
index bd5bf465f5..f8343cd279 100644
--- a/scripts/scr_trade_dep/scr_trade_dep.gml
+++ b/scripts/scr_trade_dep/scr_trade_dep.gml
@@ -4,10 +4,19 @@ function scr_trade_dep() {
//LOGGER.debug($"trade goods : {_goods}");
if (struct_exists(_goods, "mercenaries")) {
var _mercs = struct_get_names(_goods.mercenaries);
+ var _spawned_any = false;
for (var m = 0; m < array_length(_mercs); m++) {
var _merc_type = _mercs[m];
repeat (_goods.mercenaries[$ _merc_type].number) {
- scr_add_man(_merc_type, 0, "", "", 0, true, "default");
+ // Skip the per-spawn company re-sort; one sort after the batch keeps a
+ // large levy (a thousand guardsmen) fast instead of O(n squared).
+ scr_add_man(_merc_type, 0, "", "", 0, true, "default", {skip_company_order: true});
+ _spawned_any = true;
+ }
+ }
+ if (_spawned_any) {
+ with (obj_ini) {
+ scr_company_order(0);
}
}
}
From 26d1a809ec709f81eba911059e19cfd397996eb2 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Mon, 22 Jun 2026 00:58:56 +0300
Subject: [PATCH 18/50] Working Alpha of Guard mod
Too long to describe what's implemented. Basically made working diplomacy (Buy 1000 guards for 50 req off of sector governor) added decimal unit counts (10 guard take up 1 space marine slot) and balanced their combat and survivability. Short version, lots of changes not mentioned. Needs testing and balance now.
---
ChapterMaster.yyp | 2 +-
datafiles/data/weapons.json | 2 +-
scripts/macros/macros.gml | 6 ++++
scripts/scr_clean/scr_clean.gml | 7 ++++
scripts/scr_load_all/scr_load_all.gml | 15 +++++++++
.../scr_marine_struct/scr_marine_struct.gml | 7 ++++
scripts/scr_trade/scr_trade.gml | 31 ++++++++++++------
scripts/scr_ui_manage/scr_ui_manage.gml | 12 ++++++-
.../scr_unit_quick_find_pane.gml | 32 +++++++++++++++++--
9 files changed, 99 insertions(+), 15 deletions(-)
diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp
index bdd1e3318e..0210c6f65a 100644
--- a/ChapterMaster.yyp
+++ b/ChapterMaster.yyp
@@ -604,7 +604,7 @@
"isEcma":false,
"LibraryEmitters":[],
"MetaData":{
- "IDEVersion":"2024.1400.5.1065",
+ "IDEVersion":"2026.0.0.16",
},
"name":"ChapterMaster",
"resources":[
diff --git a/datafiles/data/weapons.json b/datafiles/data/weapons.json
index 2114b83c45..6bf705a23e 100644
--- a/datafiles/data/weapons.json
+++ b/datafiles/data/weapons.json
@@ -1613,7 +1613,7 @@
"Lasgun": {
"abbreviation": "Lasgun",
"ammo": 40,
- "arp": 1,
+ "arp": 2,
"attack": {
"artifact": 30,
"master_crafted": 26,
diff --git a/scripts/macros/macros.gml b/scripts/macros/macros.gml
index 85a567a07d..e978cea7aa 100644
--- a/scripts/macros/macros.gml
+++ b/scripts/macros/macros.gml
@@ -1,6 +1,12 @@
// Imperial Guard squad: how many guardsmen one Guard Squad unit represents.
#macro GUARD_SQUAD_SIZE 10
+// Imperial Guard cover save: fraction of would-be ground-combat casualties treated as
+// missed, standing in for spacing, terrain use and a low profile that the combat model
+// does not simulate. Applied after armour, so it also blunts armour-piercing weapons
+// (choppaz, power klawz) that ignore Flak entirely. 0 = no save, 0.4 = 40% fewer losses.
+#macro GUARD_COVER_SAVE 0.4
+
#macro MAX_STC_PER_SUBCATEGORY 6
#macro DEFAULT_TOOLTIP_VIEW_OFFSET 32
#macro DEFAULT_LINE_GAP -1
diff --git a/scripts/scr_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml
index 5996d5e392..033ccdefcc 100644
--- a/scripts/scr_clean/scr_clean.gml
+++ b/scripts/scr_clean/scr_clean.gml
@@ -237,6 +237,13 @@ function damage_infantry(_damage_data, _shots, _damage, _weapon_index) {
if (_g_total < 0) {
_g_total = 0;
}
+ // Cover / dispersion save (see GUARD_COVER_SAVE in macros.gml). A flat fraction
+ // of would-be casualties are treated as missed, standing in for spacing, terrain
+ // and a small profile. Applied after armour so it also blunts armour-piercing
+ // weapons (choppaz, power klawz) that ignore Flak entirely.
+ if (_g_total > 0 && GUARD_COVER_SAVE > 0) {
+ _g_total = floor(_g_total * (1 - GUARD_COVER_SAVE));
+ }
_damage_data.hits += _shots;
// Always name the block, even on a zero-casualty hit, or the enemy attack
// flavor prints "fire at ." with a blank target whenever armour soaks the shot.
diff --git a/scripts/scr_load_all/scr_load_all.gml b/scripts/scr_load_all/scr_load_all.gml
index 85f0fed57d..124c41efb9 100644
--- a/scripts/scr_load_all/scr_load_all.gml
+++ b/scripts/scr_load_all/scr_load_all.gml
@@ -4,6 +4,21 @@ function scr_load_all(select_units) {
// Load / Select All
if (select_units) {
man_size = 0;
+ // If no location is anchored yet, anchor it to the first selectable unit so a
+ // straight Select All works even when nothing was individually clicked first
+ // (e.g. a body of guardsmen mustered on a planet). The vehicle branch below
+ // already self-anchors; this gives the man branch the same behaviour.
+ if (selecting_location == "") {
+ for (var j = 0; j < array_length(display_unit); j++) {
+ var anchor_unit = display_unit[j];
+ if (is_struct(anchor_unit) && (man[j] == "man") && (ma_god[j] < 10) && (anchor_unit.assignment() == "none")) {
+ selecting_location = ma_loc[j];
+ selecting_planet = ma_wid[j];
+ selecting_ship = ma_lid[j];
+ break;
+ }
+ }
+ }
// This sets the maximum size of marines in a company to 200 size
for (var i = 0; i < array_length(display_unit); i++) {
unit = display_unit[i];
diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml
index 97b2f65824..35362a997d 100644
--- a/scripts/scr_marine_struct/scr_marine_struct.gml
+++ b/scripts/scr_marine_struct/scr_marine_struct.gml
@@ -361,6 +361,13 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data = {}
var arm = armour();
var sz = 0;
sz = 1;
+ // Guardsmen are line infantry, racked aboard far denser than power-armoured
+ // Astartes, so a single trooper takes only a tenth of a marine's berth. A Guard
+ // Squad is left at a full slot, since one already stands in for a whole squad.
+ if (unit_role == "Guardsman") {
+ size = 0.1;
+ return size;
+ }
if (string_count("Dread", arm) > 0) {
sz += 5;
} else if (array_contains(global.list_terminator_armour, arm)) {
diff --git a/scripts/scr_trade/scr_trade.gml b/scripts/scr_trade/scr_trade.gml
index 7d77bcda0a..93257c9775 100644
--- a/scripts/scr_trade/scr_trade.gml
+++ b/scripts/scr_trade/scr_trade.gml
@@ -84,18 +84,29 @@ function TradeAttempt(diplomacy) constructor {
} else if (_opt.trade_type == "req") {
obj_controller.requisition += _opt.number;
} else if (_opt.trade_type == "merc") {
- if (!struct_exists(trading_object, "mercenaries")) {
- trading_object.mercenaries = {};
- }
- trading_object.mercenaries[$ _type] = {
- quality: "standard",
- number: _opt.number,
- };
- // Space Marines commandeering Imperial Guard is frowned upon since the
- // Heresy and the reign of Goge Vandire, so the Sector Governor's regard
- // dips a little each time. The hit is small and one-off per levy.
if (_type == "Guardsman") {
+ // Guardsmen are not shipped in like off-world mercenaries. At the
+ // Governor's word a regiment is raised on the spot from the homeworld's
+ // own PDF, so they muster immediately on your home world rather than
+ // travelling by trade convoy. Spawned off-ship via the home_planet path,
+ // batched with a single company sort so a thousand stays fast.
+ repeat (_opt.number) {
+ scr_add_man("Guardsman", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
+ }
+ with (obj_ini) {
+ scr_company_order(0);
+ }
+ // Commandeering Imperial Guard is frowned upon since the Heresy and the
+ // reign of Goge Vandire, so the Sector Governor's regard dips a little.
alter_disposition(diplomacy_faction, -2);
+ } else {
+ if (!struct_exists(trading_object, "mercenaries")) {
+ trading_object.mercenaries = {};
+ }
+ trading_object.mercenaries[$ _type] = {
+ quality: "standard",
+ number: _opt.number,
+ };
}
} else if (_opt.trade_type == "arti") {
scr_add_artifact("random", "minor", true);
diff --git a/scripts/scr_ui_manage/scr_ui_manage.gml b/scripts/scr_ui_manage/scr_ui_manage.gml
index 0502eb063a..bd0aa97271 100644
--- a/scripts/scr_ui_manage/scr_ui_manage.gml
+++ b/scripts/scr_ui_manage/scr_ui_manage.gml
@@ -808,7 +808,17 @@ function scr_ui_manage() {
squad_sel = -1;
squad_sel_action = -1;
}
- if (man_size < 1) {
+ // Only clear the selection when nothing is actually picked. The old check reset
+ // on any total below 1.0, which wiped fractional-size selections (guardsmen at
+ // 0.1) before they could reach a full marine's worth of space.
+ var _has_selection = false;
+ for (var _ms = 0; _ms < array_length(man_sel); _ms++) {
+ if (man_sel[_ms] == 1) {
+ _has_selection = true;
+ break;
+ }
+ }
+ if (man_size < 1 && !_has_selection) {
reset_manage_selections();
}
var unit;
diff --git a/scripts/scr_unit_quick_find_pane/scr_unit_quick_find_pane.gml b/scripts/scr_unit_quick_find_pane/scr_unit_quick_find_pane.gml
index b52049e53a..329349f63e 100644
--- a/scripts/scr_unit_quick_find_pane/scr_unit_quick_find_pane.gml
+++ b/scripts/scr_unit_quick_find_pane/scr_unit_quick_find_pane.gml
@@ -684,9 +684,37 @@ function jail_selection() {
alarm[6] = 7;
}
+/// @self Asset.GMObject.obj_controller
+// Returns true if at least one unit is actually selected. Used so loading works for
+// fractional-size units (guardsmen at 0.1) whose summed total can read as 0 even
+// though units are picked. The real per-unit loader checks each unit's own size.
+function selection_has_units() {
+ if (man_size > 0) {
+ return true;
+ }
+ for (var i = 0; i < array_length(man_sel); i++) {
+ if (man_sel[i] == 1) {
+ return true;
+ }
+ }
+ return false;
+}
+
/// @self Asset.GMObject.obj_controller
function load_selection() {
- if (man_size > 0 && !location_out_of_player_control(selecting_location)) {
+ // Recover the location anchor from the actual selection if it was lost. This keeps
+ // Load working for fractional-size units whose summed total can read 0.
+ if (selecting_location == "") {
+ for (var i = 0; i < array_length(man_sel); i++) {
+ if (man_sel[i] == 1) {
+ selecting_location = ma_loc[i];
+ selecting_planet = ma_wid[i];
+ selecting_ship = ma_lid[i];
+ break;
+ }
+ }
+ }
+ if (selection_has_units() && !location_out_of_player_control(selecting_location)) {
scr_company_load(selecting_location);
menu = 30;
top = 1;
@@ -695,7 +723,7 @@ function load_selection() {
/// @self Asset.GMObject.obj_controller
function unload_selection() {
- if (man_size > 0 && obj_controller.selecting_ship >= 0 && !instance_exists(obj_star_select) && !location_out_of_player_control(selecting_location) && selecting_location != "Warp") {
+ if (selection_has_units() && obj_controller.selecting_ship >= 0 && !instance_exists(obj_star_select) && !location_out_of_player_control(selecting_location) && selecting_location != "Warp") {
cooldown = 8000;
var boba = 0;
var unload_star = find_star_by_name(selecting_location);
From 9461b7ed08578d482183e916e8e6ee22386dcfd0 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Mon, 22 Jun 2026 05:35:31 +0300
Subject: [PATCH 19/50] Fixed guardsmen doing no damage (woops)
Basically accidentally attached their damage and new cover mechanic values to old pnunit.guard instead of the current guard. Should work now as intended. Not overpowered, not incredibly weak, doing damage, also having melee. Also fixed some values with REQ and tried to set a limit on how many guardsmen you received from the Sector Governor via diplomacy. If that doesn't work then P "guardsman X" cheat is your other option
---
datafiles/data/unit_stats.json | 4 ++--
datafiles/data/weapons.json | 25 +++++++++++++++++++---
scripts/scr_flavor2/scr_flavor2.gml | 7 ++++--
scripts/scr_trade/scr_trade.gml | 33 ++++++++++-------------------
4 files changed, 40 insertions(+), 29 deletions(-)
diff --git a/datafiles/data/unit_stats.json b/datafiles/data/unit_stats.json
index 249045efb9..ad25d8e73a 100644
--- a/datafiles/data/unit_stats.json
+++ b/datafiles/data/unit_stats.json
@@ -615,7 +615,7 @@
"gear": "",
"mobi": "",
"wep1": "Lasgun",
- "wep2": ""
+ "wep2": "Bayonet"
},
"strength": [
20,
@@ -669,7 +669,7 @@
"gear": "",
"mobi": "",
"wep1": "Lasgun",
- "wep2": ""
+ "wep2": "Bayonet"
},
"strength": [
20,
diff --git a/datafiles/data/weapons.json b/datafiles/data/weapons.json
index 6bf705a23e..b318ea4233 100644
--- a/datafiles/data/weapons.json
+++ b/datafiles/data/weapons.json
@@ -352,6 +352,25 @@
],
"value": 45
},
+ "Bayonet": {
+ "abbreviation": "Bynt",
+ "ammo": 0,
+ "arp": 1,
+ "attack": {
+ "artifact": 22,
+ "master_crafted": 20,
+ "standard": 18
+ },
+ "description": "A short blade clamped to the muzzle of a lasgun. It gives a Guardsman something to thrust with when the foe closes, but against anything tougher than a grot it is little more than a desperate inconvenience.",
+ "melee_hands": 0,
+ "range": 1,
+ "ranged_hands": 0,
+ "spli": 0,
+ "tags": [
+ "knife"
+ ],
+ "value": 1
+ },
"Combat Knife": {
"abbreviation": "CbKnf",
"ammo": 0,
@@ -1615,9 +1634,9 @@
"ammo": 40,
"arp": 2,
"attack": {
- "artifact": 30,
- "master_crafted": 26,
- "standard": 22
+ "artifact": 130,
+ "master_crafted": 110,
+ "standard": 90
},
"description": "The standard-issue weapon of the Astra Militarum. A rugged two-handed las weapon firing coherent energy beams, prized for its reliability and the ease of recharging its power packs in the field. Common, dependable, and unremarkable on its own.",
"melee_hands": 0,
diff --git a/scripts/scr_flavor2/scr_flavor2.gml b/scripts/scr_flavor2/scr_flavor2.gml
index 5a84f0d153..52375f9c9d 100644
--- a/scripts/scr_flavor2/scr_flavor2.gml
+++ b/scripts/scr_flavor2/scr_flavor2.gml
@@ -439,8 +439,11 @@ function scr_flavor2(lost_units_count, target_type, hostile_range, hostile_weapo
special = is_specialist(unit_role, SPECIALISTS_HEADS) || unit_role == obj_ini.role[100][eROLE.CHAPTERMASTER] || unit_role == "Venerable " + string(obj_ini.role[100][eROLE.DREADNOUGHT]) || unit_role == obj_ini.role[100][eROLE.CAPTAIN] || obj_ncombat.player_max <= 6;
if (!special) {
- plural = units_lost > 1 ? "s" : "";
- m2 += $"{units_lost} {unit_role}{plural}, ";
+ var _plural_name = unit_role;
+ if (units_lost > 1) {
+ _plural_name = (unit_role == "Guardsman") ? "Guardsmen" : (unit_role + "s");
+ }
+ m2 += $"{units_lost} {_plural_name}, ";
} else {
him = -1; // Find which unit this is
for (var marine = 0; marine < marine_length; marine++) {
diff --git a/scripts/scr_trade/scr_trade.gml b/scripts/scr_trade/scr_trade.gml
index 93257c9775..5b730f97a2 100644
--- a/scripts/scr_trade/scr_trade.gml
+++ b/scripts/scr_trade/scr_trade.gml
@@ -84,29 +84,18 @@ function TradeAttempt(diplomacy) constructor {
} else if (_opt.trade_type == "req") {
obj_controller.requisition += _opt.number;
} else if (_opt.trade_type == "merc") {
+ if (!struct_exists(trading_object, "mercenaries")) {
+ trading_object.mercenaries = {};
+ }
+ trading_object.mercenaries[$ _type] = {
+ quality: "standard",
+ number: _opt.number,
+ };
+ // Space Marines commandeering Imperial Guard is frowned upon since the
+ // Heresy and the reign of Goge Vandire, so the Sector Governor's regard
+ // dips a little each time. The hit is small and one-off per levy.
if (_type == "Guardsman") {
- // Guardsmen are not shipped in like off-world mercenaries. At the
- // Governor's word a regiment is raised on the spot from the homeworld's
- // own PDF, so they muster immediately on your home world rather than
- // travelling by trade convoy. Spawned off-ship via the home_planet path,
- // batched with a single company sort so a thousand stays fast.
- repeat (_opt.number) {
- scr_add_man("Guardsman", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
- }
- with (obj_ini) {
- scr_company_order(0);
- }
- // Commandeering Imperial Guard is frowned upon since the Heresy and the
- // reign of Goge Vandire, so the Sector Governor's regard dips a little.
alter_disposition(diplomacy_faction, -2);
- } else {
- if (!struct_exists(trading_object, "mercenaries")) {
- trading_object.mercenaries = {};
- }
- trading_object.mercenaries[$ _type] = {
- quality: "standard",
- number: _opt.number,
- };
}
} else if (_opt.trade_type == "arti") {
scr_add_artifact("random", "minor", true);
@@ -391,7 +380,7 @@ function TradeAttempt(diplomacy) constructor {
switch (diplomacy_faction) {
case 2:
new_demand_buttons(0, "Requisition", "req");
- new_demand_buttons(0, "Guardsman", "merc", 5000);
+ new_demand_buttons(0, "Guardsman", "merc", 2000);
new_demand_buttons(0, "Recruiting Planet", "license", 1);
new_demand_buttons(0, "License: Repair", "license", 1);
new_demand_buttons(0, "License: Crusade", "license", 1);
From 956c5de489cd8f611295d5b82b0333bc4e0fb1b6 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Mon, 22 Jun 2026 05:47:19 +0300
Subject: [PATCH 20/50] Fixed the issue of your guardsmen not arriving via
trade
Now they should arrive lol the last patch biffed it
---
scripts/scr_trade/scr_trade.gml | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/scripts/scr_trade/scr_trade.gml b/scripts/scr_trade/scr_trade.gml
index 5b730f97a2..3372fde267 100644
--- a/scripts/scr_trade/scr_trade.gml
+++ b/scripts/scr_trade/scr_trade.gml
@@ -84,18 +84,30 @@ function TradeAttempt(diplomacy) constructor {
} else if (_opt.trade_type == "req") {
obj_controller.requisition += _opt.number;
} else if (_opt.trade_type == "merc") {
- if (!struct_exists(trading_object, "mercenaries")) {
- trading_object.mercenaries = {};
- }
- trading_object.mercenaries[$ _type] = {
- quality: "standard",
- number: _opt.number,
- };
- // Space Marines commandeering Imperial Guard is frowned upon since the
- // Heresy and the reign of Goge Vandire, so the Sector Governor's regard
- // dips a little each time. The hit is small and one-off per levy.
if (_type == "Guardsman") {
+ // The Sector Governor raises the regiment straight from his homeworld
+ // PDF, so they muster at the chapter's home planet at once with no
+ // convoy. An earlier patch dropped this and routed them onto the
+ // convoy stash instead, so they never arrived; this restores it.
+ repeat (_opt.number) {
+ scr_add_man("Guardsman", 0, "", "", 0, true, "home_planet", {skip_company_order: true});
+ }
+ with (obj_ini) {
+ scr_company_order(0);
+ }
+ // Space Marines commandeering Imperial Guard is frowned upon since the
+ // Heresy and the reign of Goge Vandire, so the Sector Governor's regard
+ // dips a little each time. The hit is small and one-off per levy.
alter_disposition(diplomacy_faction, -2);
+ } else {
+ // Every other mercenary type arrives by trade convoy.
+ if (!struct_exists(trading_object, "mercenaries")) {
+ trading_object.mercenaries = {};
+ }
+ trading_object.mercenaries[$ _type] = {
+ quality: "standard",
+ number: _opt.number,
+ };
}
} else if (_opt.trade_type == "arti") {
scr_add_artifact("random", "minor", true);
From f8957ddb0e99409a1a0630b67c0542a2d2ab9ade Mon Sep 17 00:00:00 2001
From: KestasV
Date: Mon, 22 Jun 2026 10:49:23 +0300
Subject: [PATCH 21/50] Marked code as Obsolete, fixed guard splash damage,
edited cover system
Also edited some other variables, but the base is that guardsmen didn't take splash damage from single weapons before as effectively. Also edited the cover system so it doesn't roll on melee.
---
objects/obj_pnunit/Create_0.gml | 2 +-
scripts/macros/macros.gml | 4 ++
scripts/scr_clean/scr_clean.gml | 44 +++++++++++++++++--
.../scr_player_combat_weapon_stacks.gml | 9 ++++
4 files changed, 55 insertions(+), 4 deletions(-)
diff --git a/objects/obj_pnunit/Create_0.gml b/objects/obj_pnunit/Create_0.gml
index 92ad072a18..35b3bb9ace 100644
--- a/objects/obj_pnunit/Create_0.gml
+++ b/objects/obj_pnunit/Create_0.gml
@@ -9,7 +9,7 @@ attacked_dudes = 0;
dreads = 0;
jetpack_destroy = 0;
defenses = 0;
-guard = 0;
+guard = 0; // OBSOLETE (iteration 1): flag for the dead planetary Guard men-block. Never set to 1 anywhere, so the guard==1 branches in scr_clean and scr_player_combat_weapon_stacks are dead. Live guardsmen are role "Guardsman" unit_struct units.
unit_count = 0;
unit_count_old = 0;
diff --git a/scripts/macros/macros.gml b/scripts/macros/macros.gml
index e978cea7aa..3e19426cfd 100644
--- a/scripts/macros/macros.gml
+++ b/scripts/macros/macros.gml
@@ -1,4 +1,8 @@
// Imperial Guard squad: how many guardsmen one Guard Squad unit represents.
+// RESERVED (iteration 2): the Guard Squad system (this macro, the guard_squad template,
+// scr_add_man, scr_marine_struct max_health(), scr_cheatcode, scr_roster, and the combat
+// hook in scr_player_combat_weapon_stacks) is not used in normal play. Kept for planned
+// reuse as heavy weapons teams. Do not delete.
#macro GUARD_SQUAD_SIZE 10
// Imperial Guard cover save: fraction of would-be ground-combat casualties treated as
diff --git a/scripts/scr_clean/scr_clean.gml b/scripts/scr_clean/scr_clean.gml
index 033ccdefcc..c890d16111 100644
--- a/scripts/scr_clean/scr_clean.gml
+++ b/scripts/scr_clean/scr_clean.gml
@@ -151,7 +151,7 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam
// ### Marine + Dreadnought Processing ###
if (target_is_infantry && (men + dreads > 0)) {
- damage_infantry(damage_data, hostile_shots, hostile_damage, weapon_index_position);
+ damage_infantry(damage_data, hostile_shots, hostile_damage, weapon_index_position, hostile_splash);
}
if (damage_data.hits < hostile_shots) {
@@ -162,7 +162,7 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam
// ### Marine + Dreadnought Processing ###
if (!target_is_infantry && (men + dreads > 0)) {
- damage_infantry(damage_data, hostile_shots, hostile_damage, weapon_index_position);
+ damage_infantry(damage_data, hostile_shots, hostile_damage, weapon_index_position, hostile_splash);
}
}
@@ -181,7 +181,7 @@ function scr_clean(target_object, target_is_infantry, hostile_shots, hostile_dam
}
/// @self Asset.GMObject.obj_pnunit
-function damage_infantry(_damage_data, _shots, _damage, _weapon_index) {
+function damage_infantry(_damage_data, _shots, _damage, _weapon_index, _splash) {
var _armour_pierce = apa[_weapon_index];
var _armour_mod = 0;
switch (_armour_pierce) {
@@ -214,6 +214,10 @@ function damage_infantry(_damage_data, _shots, _damage, _weapon_index) {
// Bulk man-block with no individual model structs (Guard auxilia): take losses
// straight off the men count, the way the enemy's ranks do, since there are no
// marine structs for the normal path to kill. Scoped to guard blocks only.
+ // ===== OBSOLETE: planetary Guard (iteration 1) =====
+ // Casualty math for the dead first-iteration men-block. The `guard` flag is never set
+ // to 1, so this never runs, and the cover-save inside it never applies. Live guardsmen
+ // take casualties through the normal marine path below. Left for reference only.
if (guard == 1 && array_length(valid_marines) == 0 && men > 0) {
// Identical to the enemy Guardsman casualty math in scr_shoot. Reduce each
// shot by armour, pool the survivable damage across all shots, convert it to
@@ -332,6 +336,7 @@ function damage_infantry(_damage_data, _shots, _damage, _weapon_index) {
var chunk = max(10, 62 - (marine_ac[marine_index] * 2));
_modified_damage = (webr <= chunk) ? 5000 : 0;
} */
+ var _hp_before = marine.hp();
marine.add_or_sub_health(-_modified_damage);
// Check if marine is dead
@@ -339,6 +344,39 @@ function damage_infantry(_damage_data, _shots, _damage, _weapon_index) {
// Remove dead infantry from further hits
valid_marines = array_delete_value(valid_marines, marine_index);
_damage_data.units_lost++;
+
+ // ===== Splash carry-over =====
+ // Port of the enemy men-block math in scr_shoot onto the player's individual
+ // units. A blast weapon's lethal overkill spills onto adjacent units, capped at
+ // the weapon's splash, and every further kill is gated by that unit's own armour
+ // and HP. Low-HP ranks (guardsmen) get torn apart by a Kannon or Rokkit; Marines
+ // and bosses soak the leftover through armour and HP, so it cannot wipe them, and
+ // ordinary attrition does not rise because only overkill carries.
+ if (_splash > 1) {
+ var _carry = _modified_damage - _hp_before; // damage left after this kill
+ var _spread_left = _splash - 1;
+ while (_spread_left > 0 && _carry > 0 && array_length(valid_marines) > 0) {
+ var _next_index = array_random_element(valid_marines);
+ var _next = unit_struct[_next_index];
+ var _next_net = _carry - (marine_ac[_next_index] * _armour_mod);
+ if (_next_net > 0) {
+ _next_net = round(_next_net * (1 - (_next.damage_resistance() / 100)));
+ }
+ if (_next_net <= 0) {
+ break; // armour soaked the leftover; the blast is spent
+ }
+ var _next_hp_before = _next.hp();
+ _next.add_or_sub_health(-_next_net);
+ if (check_dead_marines(_next, _next_index)) {
+ valid_marines = array_delete_value(valid_marines, _next_index);
+ _damage_data.units_lost++;
+ _carry = _next_net - _next_hp_before; // remaining overkill rolls on
+ } else {
+ break; // wounded but alive; the blast is spent on this body
+ }
+ _spread_left--;
+ }
+ }
}
}
diff --git a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
index d8122c652a..25c8b45ba4 100644
--- a/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
+++ b/scripts/scr_player_combat_weapon_stacks/scr_player_combat_weapon_stacks.gml
@@ -160,6 +160,11 @@ function scr_player_combat_weapon_stacks() {
exit;
}
+ // ===== OBSOLETE: planetary Guard (iteration 1) =====
+ // First-iteration "planetary Guard" men-block (PDF / Imperial Navy). The obj_pnunit
+ // `guard` flag is never set to 1 anywhere in the project, so this branch is dead and
+ // never runs. Left for reference only. The live guardsmen are individual unit_struct
+ // units with role "Guardsman" and fire through the normal weapon path below, not here.
if (guard == 1) {
var _gi = 0;
var _pg = men; // current Guardsmen in this block
@@ -342,6 +347,10 @@ function scr_player_combat_weapon_stacks() {
}
if (marine_casting[g] == false) {
var weapon_stack_index = 0;
+ // ===== RESERVED: Guard Squad (iteration 2) =====
+ // Single pooled-HP squad entity (role "Guard Squad"). Not deployed in
+ // normal play; the live guardsmen are individuals. Kept deliberately for
+ // planned reuse as heavy weapons teams. Do not delete.
if (unit.role() == "Guard Squad") {
// The squad thins as it takes losses: its surviving strength scales with
// remaining health, so a half-health squad fires half its lasguns and a
From f7660a7bc7e6e01a830508c5b3d2c61e9b6bf538 Mon Sep 17 00:00:00 2001
From: KestasV
Date: Mon, 22 Jun 2026 11:26:47 +0300
Subject: [PATCH 22/50] Added base guardsman portrait
Added the Steel legion guardsman portrait placeholder for now (i always loved their look) will replace them with a more popular variant based on a vote most likely.
---
datafiles/images/units/guardsman.png | Bin 0 -> 45359 bytes
.../scr_draw_unit_image/scr_draw_unit_image.gml | 15 +++++++++++++++
2 files changed, 15 insertions(+)
create mode 100644 datafiles/images/units/guardsman.png
diff --git a/datafiles/images/units/guardsman.png b/datafiles/images/units/guardsman.png
new file mode 100644
index 0000000000000000000000000000000000000000..59ac96dbf596e122721186072d091c24b5e4b98f
GIT binary patch
literal 45359
zcmY(qbzD?k*ft6XN_Pz10ulpKLrY0_gLE@=mw+(RIUpb{DJ?B60z=6VLkLL6NP~2L
z^StN%ednA%_RQL~;@)fBaoyL7)7DfXz@@=OLqj7_QC84J{a2ulzu3=Fzwv-`1Job7
zkFJs&S{+%;Ht|72Bkce0Kp*n>YKM9u##!Ik*H}Yc
z+}6X5&)Uwz#-1kNQ{OfiY%6BRAtOzID;X$`s=>|P*P1EN&DGsUJWz_|e<~J7mH)d8WRaHi
zwsR2IRe1ZqPoU1ESe$%)J;i~*fPetL06{(vZ%3ejn3x!l|26RSYhKh7ygothzSe=f
z?mn#lTY-YTkFB?}r?0bzJJWv^THAQ|`AV_)`8nH(J6Jmi+t}F&^V(Po+VKhq*je*h
z+X)Kr+6fBUi3$sVUONcbu>5cHzRnK+Z~N{(|0@QRK!E?<0SfT(|JUXJ%Hmqy&i1HY
z{MV$kfaL$&|NmW+1pe2N|4+xH|DP+Uv7$=HkXC-W?^<0F>-_GP3c|(CP(L
z6lC=SEe;-nzLoC>&&50xtmpUMnEBKfgiPH1DoIXGg|G>+MiLJbvuq6vl&Y7#A-3i4
zvZ0NA^7^4KSI+WVJNnIsB=l!;Kb2po6x}4=yIq%%#VG-C(iy{yuj{ZEcvRC!Mhv8&g~8M>=g8MjTa?9~$_?zijJ^VbwsSlZFn*R}=*
z%f0uuPZmXw;VD;wsJS?{rH(@>~X-m{eE_+a9zq*J0*PG`7OC(
zxQNP~3?)bRzB907m9aSEWjsqU=q2v6+Xv}xo|lBeFttc+GA#6NA!dA`KrOnVQWe#r
zXLQMP&CA;cs*(IGiMGsT9oD8H70y+HYZpU>+ft|wqrIag9Qx=J{!(*VX6Bg4W6)WZ
zd}zQcaW01+UuBxX8Ojeh$L^0UK7tl8VNZ!Ojgh_~cG3W9s6eyX;u_|3jfBy>@|epG
zBK2PwgFS+erRy^8`M`&(=sg9_-7#0merR6;}nfmb}*(vPlMf(5tvXYI)HhqJQ{R`?y`cw<;iWGc@XfKZ9eL{&y3_Gg4_Z%R`p
z3{cYmusvC^ToJ|!{5H4VC6E0f6T{JrrB>T?(;z~h2FyEWyw`}ytZk~ZlRIZ}$Go
zjrNcgxEIw_wbg6e{R9ko@G38f<&Rf}LO4~XR5!aTTuk$vy+(XujY5W|eOFUh_+8
zHdPj&PmNY^tGo)d!TC=*Ao@yy<0AhtNU-eA|X{Mx~r
ztERY0)(r9t)kHK0B2QMBAqvmY#j(>=zxYO6v6=2uF@%4wpgzXp0I{>l`O7-j_Thbl
zqcb4LG5wP{8H)GGSbS7duqt_C75c-vwv>7gpC2zdH&iRd`j2bZjvP=IgJ89c)4z^%
z#~G*QC{#!IzD1#xQOIGZl2$gWLbq-=iLQh;D+%Eq4|5)~@GoXy;_ES+4z@VC4029p
zr%_VNUx80OYfA+<*Yv=F`!B~q$uj>+3Ss%ZqeS7ilut*D*Mwnf>GMJEi>V7_VXJL2
z6QZj#p@F?SW=EXTo}AhFD;3VPUBt`omE>~6^+s!D(BY%DWA@6dK$qh@V9)pE&XB8v
zr+0?qDOftc6E?{qZ@`L_N^ClB0Iyy>b3BV|H1-6G%3eor#&D>=eP$8zfIeSduzf18
zsih^B>jsi4Xc8q53%`EpT#PeKB6Bs0pG!}C^&A^>B}5&3(j&2xkp4+2*R}8;?
z*UWdFIt|{8}_^T4c)3AS=QjFkqsw=_D4|T>&64f9;@nLR)KR
z3Wj0>b(@AD+9R_SWB5)5f!0NXJ1;~w){us4VA~v_Yapz+Je_@nJtzCdqhrDd{_GK^
z6_%E6KQ=Y^Jcfx5AG^^l_5~g9`e&p&F^50^68dz6JhquO-zZJFqU?IM%C2E4(Y3t2
zY^bUNfGvj9^#n8r1iD!M43uPOh26VC304^u1+2-TpIZdK4HqaA3B}4%SRIyal
zsOB}1=L(PA927=ANf&{+r3M3o1KPwQk=uv^|LFV9NlmsP)1
z$wyYGirF?vExKWgk=(Q8dI^0t7H3OgG#}>1kpvT
zjXbQWP?+f+j73oil$_qYpD#)v7h7lHVwM4Eb#@*l7>+1+^P1CcBLw5yoA_sF9#_Uk
zo*_yK8ShT7%sm@|7TXK7>|5PyAHu-PmPDJbEM=v2uM(Yco@tN|p5NKNG&94L9d`Q7
zp;0h`Z?DR(=bbJkm|s}Kz^lO+>LIdqljGg=cKydp^W0Qxa-XL%z^QaE
z%xz9Br{l+B^15BOJm>7h;U2=PMtZgNXzSE5Jm*CJD9?-TX$1s-v{b3r(%Isy{O)xo
zUJ~|p!MLii=+(b5E3+vPzpLUNn17r3ryst7
zYqX%3fb$Sz#J6|I8Y8g!5?aBmjVAHQa*)N-OmFC31(BA$C(6#V>c)h#9$rx6N2|YO
z%_-lyKZk6llVw1^^3jkqa_4w>c#wT$R!nO$t#e+a1Y)L-WU#DGw({y^XwS1-f1Ro-
znY*}q{}RE4bgbaX#H%@NhLK{T!-Jwr1k!g!#IeOBB+A@g{kw?g$M0$5j4uqmUnqPj
zS%#A)rz|_SPx2hyqxZ&OCHSE_ub^P^*j{}|{?flSPEG^h6s+bZ~uAvdITFT
zPGp@(M`x1;P%XA3b;J$=jby_IT!frAWpf){-XtGiAC`J4kVfO*Qp*+rQihy(P59tq
zVb>xRLqy6O$pq}BnEEHzdNOW-dyzik`ImlQ3*t625)gVvtM3y+TYls|FB3vduY)7{
z)KUSRuW=<2eMLj-edrI55umtOXebcp1EhdEBpeYIyiQ1VDzr_R1R+bj4!l?4b$sxV#(MO&0-o@dMdH@y@`W0|R}
z$jwY7sLxYq=jw4~b?ov|WJ3B11K4{X<{!{{v*Yndo?C2}ZUjJ#6OB6{XZ+;B__@V$
zSOSiY$YwXSDy$bJ5CyfaD^yu;p2?ommsnSjW)7U3Jn?&B8EMOShgskCPf_}AzZYia(LH{8
z%F4$FzZq7Nfz4ftSU&7k2d*95N8Z?sobFPO`Sq>zF$24gA3}FO0lm)ul584#+tyFm
zn5T&nQb4kN#Xp=sS}(PR?>ZAqR`7$i+px2p=JLu4aPqLuqy%|A@m7=k1D*U}5`
z**Zh+{&ZiZ7S|ZpdWW3^JQAlLx`l0Lg~zp7-o0Y{-Y_`ie*9WPXsl~%Uiyi>wY4Jj
ze6w)vu=7exI#(xyo$>Cv;=0x2&VK{6VT5{5OiJu6-ru1~Eun<2FaOYWpv)hODn|v6
zmw~3>r_KstP$5hg3e|m7DLXGrRSjXr##qG49V;NxHxqg=MP=fx|O-gGuoBmd|s
zB39q~NMo-vxuw<`&6TSW*Ag98HEh;b*WZ$*SL^mL9;;vt)DnvJkwPH&;(noWAaFEzkfP^*OJWodo!FS|1!N|mfQcE}k42s3
zX&ibM^#0Ae^U3Pm4*8CL#C$%o5x`j(hcPqmoFoZ00yN{oI2fCY_t%ca5QXv=l==@6EquL5px9}VAy^|@e|k22;1kIl@4ah*sJIV`XSxo;Gy)D&O%G%f!)XvE-oWjAtq6AdE#1{XA&
zWs4$_1w@y-^&+w_sUqeX!eJE@TGk|wqWz}aHGbmwtQoi`44RJMWVq;nNlHIB=3q56
zy71=Ddrcz>6*@gbVQeRj1j@)axEZ>j{aCq=XXaVTd$C4G<2R!v>=Tktqz{j1k+E&b
zhIA8#8MV7#)l~njygjY|pE2n(m9p(S(lIbFMMX3=V6%@TKySPidu56~k<_mgGW)*S
zq^rGXo+BMX7f*#)N4#0ft8nA>+Z+LpMKuu^5nTm6T!@~okVG>Fxfy3Af0wZfam)g#
zq?$g19M_KY4j}HGKW&~~2LujS#v)eOl2{Ac{i4#-ZU0FsagX>)zTqCUk>&uZHK*d=
zF$c{~8+*zL0tnM|3Y+{Cb=q82<#njz%gdbB$F3X!$Zv2`r;l^-eiqXJK;qj!?LG+z
zgim6NuF9z!Mpw&a)+!=7JU$8)Llx|gBNKWh7Z-yBH1#k&4^Pl)*ZTTdOVM~`m50aT
z8@~eV&~?6k=EdW~odAYDNc#E(8Z-zc-I+3ORtcZUqFKS0lWXJk>exZ`dBrjdn6E4ysGs(CwXCYX?^P;udybsxu_C6+USrS?V6(7b@i2hN6mx5_S4R2
zOLZthG#vMsr+V7+YD#QrQ`%myiHoL~pJ@Uw&u>6>GRX#$nelq<#dp64niU!bNpY5V
zz0pv4M8>O$d4X&5^_!y9f7{^sd+^vcf`jMIObjHPiiS>nV7K6tBpmM6$@mmV8q27H
zaU-v2paq$>>1Y}B6+)}bPE=BFy&4Ah?~ZVps@$3ke5WdA7lJkZnITWwwpz4>Did;$
zq)mtw0>9Q)td0#==gi3&7z}tppctEUimZW;Wm!Rw?Nm;Cq>eOmib+cR5)yrFey`(a
zE26zlI&Yn?J56nS0y5Mey~xYEIW;OwGBslQi~qQW?Y9YsSNq56v)x2lj66l181rJP
z3Wx(ZoXh(_^5oCEyu+i^hv@!%AGzR`z;BA>O#arPGz;pv9i<9<;I{lZLy=x!ld3qA
zWZ&Z+_&7&7!9aN9R(Q`Zb1uI+E^~YQ#4K~gUGI72JI-BCpH7u2Gz9>Ev-rlxi#?v7
zwK9=JD;kH9)Jy>v>bm)hVawyudxaZ88{@Fl_*v5>Ls9oU%G$jT*U>
z34FMi4_Ctj-Wx874IUjG!J8SMQdqVh|FET*^($P|yHz}NTNC5U%aY<^F#j$*2boYB
ze|il_roJR&qlDPBJCBUTS5;yEOojQA3cKxd(kkUCoKL5|sG#jRxh0Xg@Uh(Bcv_$e
z^6gl&avX3q`S!ax-=*O+BdJU#$Ma&xt@VnqW8t!#1xIo&sA_IA&$b)n$Z`7a^JSk|
zGb!7L;w-1MK~<-?zZ?zNY=zR&x%En$r;VKPluiucB)t?TX6ztfOMTo}^NR@kypQVxc@a;2{9mO@prFo
z$?X-vom)N4FQ3l
zI-D!3BSG2&UrOESVR9C(zj^oq9Yh_nVa5okBDyMWp0K&t4BlJkHzspYew#hr?n{hq
zb3M*q<`_(WKhKM2h8jnm
zkt>eh6^Lymc;s*NL%59y@bb%Z^HVd<~^LzwI9gd6Lo{mMQnkHUY1oy=Ho<
z{ek}QmO%51_A1U}3ec#UaYpvKJN>XbcXRhr--S1~!=VVj?J_32!yy}@@bfjCw3%G}
zmP@7RdM}C^`H?+Va1W+E!@Hj#7xNzhdY@nJ+_SExvzppRtvD5c!~V4Q_^EnTdU@f=ig?hA_^nf|Q_`18weq+%D{|dT
zikKzV=gtZSqRp^Io>wAC+ef=OCOC>FO(ENwgH0nt
zUqbh*7Vf$uEZc}NJYZG%IvNjU^V_gwuM2~j3y+DSQ6E)pzBwX4-#qw%xngK&GE?0)
z*018Hz^Z-?jr@u+&5P<{X4>=iVKYelU!s^&=ae(V3r;iLOyR=2Jyx2E_Mo%pmciR&
z5U)gCbT~~jRN+hc>aow}&iGhgbM)*hjzrSN$5c+uQ@B8GzTju|uVeA!_n5PFHydVx
z3^h!&?mpi4#7LeGwKspq1x5{?2^4B~f
zyjKpq=}{7Y`8OWBJM){&%)CG>g3Y@+a$
zLI>da03!(AjjrfCUwiC&z?$U9I~*mX0E
zIAxV(6B7^)2TNImA9AagOXNR7uUuV}rsQnt72TY8{`3yF2TbXPjPG_>gO;s9Gy=bD
zP;PG`%Sum3Vd*^UNHA(*Xyy)JX7346$T6k9#lSp9`J
zAv5u*o1Q`HyO#ORpAN4d>qnF^Axr1MT-cmrG)Vg6kX5{{`+sMcALL>+8J&d+Qp>oy
zEk;q3f=A`%!txerr=tK=QI_kgf7}2Pb1G(*ajtrQr(mj#W5trwmeAUl(!@6O8*6mI
z*?`n8zrXEH1mS+xgeBfm&xu8E;#iZjmdRn!9NRy44KEQf>q$$#AmXIBw+rXLe^W0r
zZJkjRsj2BCAmJF`NcBY?f^R}a%a_d9@U8~?<6tWxk|#~y^}@E!{UUH@G$P8mu#w!=
zbYlG?*VRqKm=Br1_qJhuB}xeugn1POt>R4-H<#9d=c);+wyDPgBoo<}khs8QJ
z1KOC2$TPpe#i4iYVNu{tGN`h3H}YutMJ&@78Nkmnco!N(d*ajJZAiU&=cQ=Yn7t$Q
z6#>MfG+*zd^>@LAmAL5|E#&vi$$g>){pigm_AklG8xcxG3_8Gxo8csZ)yogLp%Y5=
zXXcC@qeI8|Hz(uh^A+)EDFY;2vU;EJLvZFV+rD@7jvHCru=HMn3z04J799A`r2nlG
zdD@3(g;B0A(lEc{NIR6O)_~hdZfzqAty9?{rc?S@M91A41|q{uvWi@rwe-PJBv(hv
zn~&XhzZ?WD!cM8{%$NIV<;`cw?V}!oKj^M?|6o0-<7Reqi6P73L0QQV*OU;24>mpT
znp%VvomCJb5HE~ZY$^x^WidZ^cbm`S6SYzB!&HiSr=LXPCfr+Gg%m2ZzHyM)x_ELR
z81U6}EVsV*gE8;TwIG>(XE~?pPHqmupntc+1_7W{R5WRWsQipdAkYDvJZ4#1i8G{L
z+_LRPoX&}~xmzIHB}4%!w}D6;`El>|t?Mm(Fs};DX6^RD7DOxj7O@r7=g{=Ujpk^%
zcgVY4&UxGl#2jnW+Ij`*^8ZBC`-IgP_STJUsKU_|p3>eU$}&K@2j{KkmKEEZ)1@6+
zPQcA447$8QF03+;xb)TEFFGz{@B+I}=$v!-|6Wa6Lppr1Kj#9mP{PD@NDxC(Rj_#ttXyW(&R_n$cpV)jtpi~C_-2iGh0OfbFB2d?tbt2)
z66LYtJ<;)E0cD1Xr|!iJ6T
z%{P(((Ghw`KiU-fhO!>y>0+N2s+TW4S?68+1gW3^h@5gv*$66(yv>dK#M8jxBi~VP
z0p!M3qJ&We`AyE~kB76o2W~x!z@yZO_v?QCZ*g=0XD3}-P9}}7Tnd7AM2v_o0r=0A
z%bdGyKy;15dt}j7g7$uyvmI+&HnPx*5mD}+{B}(X5oe+Q$QVoN)ZX@^uSlRY2V3%Y
zki`1NJw)8nCoFitMtZaFq4U=SYOIa}QRrjSr=FQUSFZi82;EkGnsfdYK{L@B)4@Q;
zl-gyfy{htGqFpz0QU&2hVlJE1gu(d1DoE`=fV{Tz5R*nzzA)lr>3N}XBtv++*6SXU
zNHSs>{?A9DlCg5nO9Z^2q(cH;IT-oSw`s^Vp8nJ9s#Bgbf)q_8=a=FA%!EJu2ONnZ
z0=*{-Z2|*b!Qn7hJytAKfCSGsQ&*BtroyT&woWZON5l%@oLs9dxeP71_TAWwf@~
z8R!{NsNzfutsgDl4LC=lq1K;bGo<#AOFZ>JqvBn6qn3=?!s;^fiSX*_dNua^+NMC^
z^?BRL2cq}cOz|VMV>eZ6kGs)|&dxPT3R1oqET7)KAhEpvNrkd?2lNNFT@@mfSVFbC
zFW-D*#St3YmJ2+7v@oA9e1AVKJrXz_rAJ3cr!Jy+YA(?k!WailT(?utbiig$`|5t*
zCr%uBmd;v7&tRi5<}IKk1RgElak9{B=2xbhHXw&Ja?#egIUeB4H-DS4m}Vqgkok>t
zHPLBJ79#w;%&^gI)mk$t8{uXKcf`}=%XB?vuu>no5!Q%86A4-gYLw8j*n(Iq*UPMV
zhBI94%RIl&;1n!O<}WX&DwbaztpI
z(_rioTa1?RQuB3A$IfGSNa%G*AzJMMIYF)0wOXAEF~n(#{XLQjDW`IA_7L{u6I2l1
zpPEtlcP;dEkgESC^wB8fVd|JJnZp_|=<0D?)L&O?WI&&eHAh{
zBtM$qV9Cib-GcTWB^gquU4Az;otc`s+!UCXuSd5x4_wRwi_G=z?e&LF1uq!5|*S4v8ztb+PvvOP$06R(F|fnz)?lfAR4d*NXgUe~)KN
zw_x=KEdK17qm;oi4k{*rc6|jEj(@GnnGNpuZn0@MwN7FtCXUXry#6C)O8tW!u^iGP
zeb-}J_jN2XJzWq!;ecuV(=H@t;fA`d_Gb9bvZ#_flAnoCc&UT|5fWXNS0p<%o_V4POIqk<7-x<)Io!U=I3+P=PD3#U$SPowU2Cv
zM8-9SHD`2{ay0wO&os2~{FMYcm&n|ge
zgA!UMw0m=C&_!H_>YT2cIQj88J7rRp*A2`RSUP~$1@7sWu#BVWhnEv8Q$cu`4);xz<
zXYH854<|Q!z$U;{Wlh6Wg|d5z(mpBFU-rgx+5vIX72}?aIl-Lg#LcXD0LN7B1~fxr)LOY*bEk1Tc6giUExy;(Bg(XzB$(&q8rxUC$sBkt5?j65UI1t1r0FzcsioOpj^J*_q4dz2@T&Ra
zCuiGa6J3}2wi$HUXv{F9ibHi`BvrmP<;vJ@cJ!zCdBBr5_8mnI%__$^-;)ka}f
zu47aEFMeqr`F#IG@`48VESWEpZX6G{gkSuNC_vDXYRe!&KN6(hT+0pw$2VGazr#p=
zh^qb*e&^S7dt+!-;0HY0)H3cY4C9;dx{M|VrdY{dbuVV4#=AsW&l
z=DCp3;?g?q(JJP8{OaPJjr;rdRyWZfq6%}517T3Me-e>QkB2&vMJ){bQgDf`6J;C|
zIxqXh&C#RO@=6p=v1_NE!NxN$hAHqcC359J@iFB$0PA&8R;h6X$kgzDaS3_90j}us
z>X7>zyJ+l?AYAJ=prhQIMS@9UfS48{@H5vj!dj8|mZ^aEa>?j>uVx^a+GqRnjLn3o
zQutv#_0dzIUgl*Y8OqSD(A)}0hP;n4i!lp5S>SqFNqNsvnd|l5;|EjYpWlZ~={Udh
zbb%9`hTJ0i29Ar{9gQYtMguyrKcd=DIVn9+r!r4XZG&jP*+w2(L;L<$^_~_?pLz)B
zq#x@F^(7l5Du%*c_;W&IaOFlj>|fLH|7BNyX$$4=3sLJ?SgYB-4n>#a-z%$`=iWKP
zdRPZkK1&A9b@@pm1E;*3YXW_B_?LuG*spxhn|x@($9T$B1tW84S~3|>pTS7u_<&^tN4
z|4k%7j<*te=$AYpB9z2TC>h{>^mquL}JxT<(!?k_Lm^A920~U4Qy*m__+5v9;r_XgYMtU#0AkGoJN{QnkXYo&mjA_A}n+xYl{CMtl^)|3TnLdqvyRtAOf
zc!f5wsjW9@PW(?^KT^0TWo$ZV&u1M3%v>m&*Aa>)6+1q
zACPi03g(z;arEe%xa4#IXZxbRRp>E^YC1SN`qtf&M22o}E@VeuhhxkoOtMCX~VmufkgEXkh{-<&gLP
zii@hihG#zi#%buIC9gKd$bLKXoE@p!qR8ba_WE-s&_o18TLqsYmy=t4t#osBKP8U
z{=g^Q9!5CHpDR*i|EwbrC=zGf^36;QHxRMu3~q5KA3O-gWLYH5^PhVP%>t2Tco
zP)siao%L=dH5GFsPV1mcxSNQ*+9Kn67ZX0&3E{eF>E6+IMU*oO&(6KdNt9__Cz-vQpH<
z^D6<0Xu|87(SNQ9&mvb;SrS>JS5=9AU`Wf%2>Rf68KpwHTDO1eA@jIWC?uJNqhq^}
zDf^usGlwl1V27iNt51x$b^j%&@^PAmnXTz2(xqu*Z-r3j_viAQj-Nup9FE|`V}OF@
zE4XT3zQ?VFzk6@tPu!YgX!R}=7SPF5$>3A7U&7Vo47)+QEY1fXN-(b+b_Vf*ddz`)
zQXIzk_d@<74*WYDH0vUO19N32Hu7}kO9o4vEh^-?t59ReL!Li>)+qFH-x1PH(%7p=
zpBxl|F7xzJ@9{|H1~>dzu>KU$d-5vbk2T%0apNgZrr6jGeywossJFNoqLmWa;pjUz
zttQyYAs=iamodO*B7;8F04?;COzWeDe9?j?f;2{^Gs0+66*0KzH1>_>-IU_eX>57V
zw&RPx4hQ3;pQ3bjqA;($K_qTA;Vmbo1?Nw;ZH}k)RmXf_;KO?S8}8>(%p6S^rA1W)
z&N*K)ioen%YXXPI@<7BOTPN2jAIiM`R^GcM);e|FI(0Jt7wG903Z#ST(eGPhaC8Ax
zReGPR_i{?JplnG9BKT))ByKsF!mP7P4n>Ht75??*99fE0KNp>eSgFL
z-mnE}*Shn5Li4XcI5k|2fiAzn7^!cs_?0g0c}>4*RB9u)
zn^;VD*V3#;k^q4UXXRc_ea}TKqDgFjmIfgdNR&Q8nZh7t;~xee+~x8!_qsnJaYLlq
zajDRiWE9H)_!kTQ5rrR7M4L&RbC78-(;IVrY{_gDp7Bef!rkX_)0>*1fVV1G4_p04
z?yM6!lYSH4^Z6#Vv-in-S}4epZs@6R6ZoXkpH7*FU{ZfXxbk0TPs?(sTJbnmLl+|k
zqP`923>OQ{7*5e9JJnV=)7vi#MA^-ov*6pt>M_)b+>aWiT;DH&kMieg;vy9)QJ`<{x#9GiGwB(AlU(*oycVEc_BH{UePq6}_
zC#6_OA8T^y)qNtqkP(JTAwM_cEncOw__-f1k29jH%dHW{rZ12Q?73Y(#kBzbhEu9s
zw-4z33XOs|)K}~}KN&ZgT7ayDIma$r%b#
zaR)sEKVGckN!cH#QzQmDHnk`Q(MAn3t~@Fg({5Z;$}-Y1Wy_3dO)fx3Xi}f4%nlrr
zk6!csCxnfW*92PHsAX5PA-rr|SXzLYMqNDTQdCMlWnjnpKze@HZPj8*FWG~pMOu)(
z_N#I2{SP7*9XZ@mU4X6lslk$;(;ICebEf9nFJE6l4v)U5zA>1e(NF_KJJp`9*w%h=
z$Lt2NWiSbZUgBA<;}t$(1cEHvX56yY5`zW2iug4?w$-tQ2P)b!d+=C8p=>0&DtmLU
z&D^yyUeBKVJp#|v%5oE6Lo%?Bfqqg1<%bwmoMUwfGy8tathUM_QZ-&YRBFV_$(F9T
z5aRO~DM&)O~@%ry}`D
z4GbRY!g`-ZhUPa^`pC%gbY`9|_eDJ(?oj;duXWW&gbuuNzIfKA@+KKPlz1Xz!gFex
zaLTP9&CHkQA-nSd*honYgjEhDk}j!5K}Uf`%|8Zxo-p9EI;s1gV05sxUvcDCU-kXpfE9;P*2jg3doq#1@-td!RcJXm=C~pC|
zBuU>*T1qI}$x67dIL)`-CPkSfool$;y#E5%WDB{5{PGOBVxQ|LpN_9z6N`iinfW9@
z_Ce0<^dLqKzu}eyq1Ue@et%-{>U^GjoQvJjnl74#H
zJ1Ay@RqMOcL8Ie;e|`I2)*EL=Pru4(U9x`BPjWW95tT(&r$x7Nu|`K2QvwV}Wq5B^
zF0b!eVebk3VO@cDG~LQ1is&l=dlcnvollqMnJ(%Hljzl>o{fJY^^j@v@p^YJcnONb
zEvJyGEulz`xhD0cm5x!0DI>Z6kmM5{Xq?@$U1kW~dJ<E$mXuy~(@?JpUWp>Q1ctzFVnIf9MoboIsmPLQ!J>Ydk3uA1Co9O
z<_vmk063F(#HjXjG)%l27CjqlKo+x-*+yHnLoWo{3WHGJF+v|5CSJ4uR`{~*?SaN!
z=nc0edmM)Jg9f9$5M5({=kU=Z#q>I)_*8#88byYy?>%+kz+=Ty$=T>~Y&Rxm$64w3
z?s=oyceKKQtZ)R_qTGGTGb~f?R{vHf4Yh_!<;KMFSJ*#eh4wd3jlnok#EuejsulE$
zvoiSsLIxl8b2v4-T|#fg*iZ=q!nrtU`9598HCb=jYuU?L!UId2@qK7_bQSQ$`G!%I`u$TWjn
zOCF>%EiMmCqQ1~0-OetJw5EwT#8@;{BYytw-8*ec6u(viQ&xGYmCm9Uc45}`#usPC
z6I9BBm*_kkOf82Of6h)P^F#4roF{LHIzl)rQeBPY$zMzTAIZ6qMB?VlT
zZLikDqau`>#2cjJ?JdFq1eZb~vTdC?HiPb3{K@pXfn71RVL$pn8&<^p<7`Gs=%NA9
zf0+gnj$GFAIi?G|Wb87q5}^^Tb;h-s_|K`8WlaoS=Vw)(AAaMd_2SzxfQ+aS~7@?BRY9g!G)7
z);Bpn_Yu4U(j#s829C3
z8HXDmV-R7ZbG|>l+pR<_zb(2BPshG-7Ev5L3#jw4^-y4w>bDS;K*X7g)iJ2=R*+zH
zBsRNqih$qgdHT_$J
zU&YYtZDinXyM$0unSVTLmyQE-2m*a6DnoQNIBMG^DP!4Hf4*db>r7)=WZd$(CWB>B
z0GZZLxXP>$xjo9XaG?m_i^dH3KoH73U}O7obYS!^FO25(9{anc+(|8A6(*cdZ*WqG
z*J`X=ESS6O#bZKsj=B$u%+3y+Nw-DocE^yQ-v@b9rYQIh8&K80%o{L34Ni!DQ4HHlCF&`Ji
z$53BtG^sbK7bRDOAB08^Z00e~7FZXb_H5dRY3xkqL~G+Uf=a7!`7*gjVZ?(ZW}DKR
z7Ljej703$n*Sml107eOQ0!2c))paE&kad;cV!bkn(3Jn+F?0Tfg)cR{mcbW%ew%SW
zBdqI(244?>elIN_Nro0jc*(F6QZ#K>`TQIP|I>gU-2XB%INfi6N|=<|eHDiLDQwQ=tn-HOhQUTHwFYvp)=!Gnd(tK$z17qW-Di?t5#l0mnQaB1X&70KDVN1{4(f
z=WfOd^im__JOs7N!BJ9NOz{OeqL#Om5LH)pRSk;My^Y#6A$laeac-kHYg#&EDayj{
zCf{QsLI2fqae4Xu63EgJHf3sT2t~+Q=>&3#eWs{6%j|H`(Phqa1WW!1nh5wc
z1bMG8#~3zYCHYcA&_BQ*aQ+&VG&1Hhlnl9hC0a+{*wUg=fb4pIER8}~{46|!r5)3$
z07#Q<^S8&f>s!}O1p`w=GQsCgmCaQ-bMM=-tiSs+KkT}5Y#q~ozI>MpJ15nk^utk_
z0_+575|^6;7ZEoWl#
zS6|$hC{s{u;NX@Y5?4k^0s;R!Pv8p>>p-q^;P>o$?8u1zd@koTkc5;&ld0$a9^vZw
zRMz!%jOETHDghf1pbRCq30ZJ1wyr3-=RxkiUTsupLXq$1Ir$b-c+RqoQ~
zn_t`sVB-43-?HnkrB<)F;s*unP0|#Yqj>u91{Yk%JH8rc`3-&Pvb)Ld*qQ}Cic<|K
zp>{4L3S^c1z%npt%pT{5>10ya>)2={WE5OU1^lqf^K9TV&SL*`QA0ZvwGcgRQRN2_
z5T{@3PxL!rOiR5C(9KM=@-%hsnlMuo
ze{e7UPh`5#T`)ld7v=p4(Y;96KS9ei8^kwfdaCN2Aa~=5l!fJ$4Lcnj;pj#lFSz;9
zG)9O@T=jkqXxzBQJM2)6=zDcE|IPOTTh1$&|cE~Ph$u;iK6jtVvBXc8sX23jvv_-zpZpsz>AblsXbf6K8Z!_+auO~u}Q&xwF#K9S9?RWI
zCK=d{Cbd2eV+8PEQ$(W$pJiHP@9)+_AbKI@rCe==A0o7>?$t?h?lP2MZ&JOKjYh`H$
zQOE}mnlb!=qRMKI_zgA@xJ^x2Ef|#qUx~V_nOD1Pdr5b2#9yF^Q<54+x~@L%-C)&F
ziQSLwVMd(qXT2n31n1LK10MiodaRD0uhg!EhKCD1BD|m^%+xWtd=j5x&-Vu<9Tawgh_=1EgQT4_kk_@{B3hU)~Qwl*R+z4s0|u}>o_Ot<=+
zsUN;6FInx!8wZv;$Cf&hh@9*M25fG3Tq$LEIk(L^|TT*fm5XqstLmFx6
zZU*TFX{AF37-T2`Vd(CT=l-8}^J>;Qcdc{pIs3c!XG_C0yvP#z@wSDfFqg^F-&!Tr
z;P&G9&kZ7G*edz)6<&8-LMFw!Npr%jG|BX*G}ZtOs4tl&bDgS?<49GC86WwFuZiVn
zkSlW#69IEO`ip1{4=QOSb#~^e`Ev_>Z1e4j=jH0w$bQwNgm2^T$Fj?Z%l$o*IU3bw
zoJM%HfUM@w1uB&7R%FjUHnNA34pdBv2}S`IzD}Im%WgAnuz*XEN&YG@nf-KIp)r0zzk
zOGxxI@prPn{)!=B5vGgBfrX=B!BX=#i>Kz(l=NiqH%6^+h#qM~=Cz;9JPkuHanYPTkFu)O>>}_HkHd)XYJyhAzMAqLYg_`g50M
z*Ix}iy4!XbhpJJ7K}~=z>w{ia;r&-W>yYxl2^3hWi&)Exrvy6oSO2QO7G||eo?ppG
z(fK^7h0dU|IqkS;IVDOEwb^&-=p%wWujNicVVh$u^o*E%{fYDs
zUFsy6ScmNm;|rejTDtrNjyTCITx|8+|86{j>*5AH+*-=*4af=P%&ZA0YlKWvKW6l0
z=jN=0_8E+qfB!L?{JG9%v;N=z4e|2-2MnjEJ+Qqh^-;vIM(M
zSeow>YmMvDe5%cJe^<{QD#7c_1Yh7|^fJ7R@h#`dUQkWi8qF&Azdz>pV?B<;wqm$<
z9B+IazX<<^Q_Px7xQ&mbL25WzWFFo9O0cTN|M4!)`$9R7ru{WSeX|mw4w3K~3Q>p$
zm1AoU3ZEbv!0qNm>?h;Q!~gVl>+gzglOR7mT@|2g!0=q*G`PGOFz2A;WagkYPsc2f
zT2u;4`nq!c*8^Y3LW6*G)LTalFUw7~jZ)q&w3%My5N_|Q?kn4xm7T=H+h(HEyM3dF
zgXLSR%9-aKA@0Vc*6C-j6D5(E;Zp1wRko=qjE-$9ogGa%?lB?oY6G2A2+A&sw2c1(
znUHU1n%c5Cf0||k4ir`OZMV18fI!V4VnQ1SG>#g-_0GV}y3Ip;#Qj5H
zvKLn-{HAE8B`M!Iae*t~%XB|alGFeY9;>hWxUl_X(cEg6LFsdk%C7BEae-x19Up=z
zrPz*rKwtd$FDF`C6P0Ti;h!4KvKx!OrfI+93V0MWogs2oJ6^B(i=KDLTXc?BwQxr9
zj$t(Jt#SuFfvX}cy5I)m#OsNd%d{td1M;khZvHN*4apAswXXh}BegY}*|6s@c9Zc|q74dl
zHw97m_P1GlXsT(B>ps4s?n?5a*nuXp6K?gB2Fa=5koS!=@J6<_EpDP7608VWKQ3k^
zydgx<5B=Q
zmE!eYf$(&RQFc%_Z99}g{EksA4ND7`i6DtDKM#wJr`LC6o)kN?gZ+DKNvmjL3X1k1
z)bFgs=%DMIT8Y}sK6RQ*CwAu&Q?-B)HIa%m6D#-{Z(mqSUr#8++t_6
zd|eqwQhg83Bw>27&H)WQkH4(k~k9EVLzZM%-
z8{Jl;Ol~E0p{P0a40s?w;HmGjD@)RjZ~|_r0k@qIlzu3gY=I>=t&@kd)D-o97%Y((N|h{H
zN9TFNBI79L_1Gk#$5l3pyH&lo44o+V?IEL~&1KQely=uHpF<2Vi%8O|-SU;DmN>A0
z#U*DYu`T-fPa0dtXIeYumEU*5xwYO$fPq=ZM6kX}Wdkr{zkaJQ6nAd!Cn#KKK1ffV
zb1E}~AI7qyo`y*#lst*>ed+@nT8!AF
z&0+U;>R^n1Eq|X3!JUvM9dQV1P&Cc4ngY@x2latW#R|&mT>Ecc8=7S}*pnzq