ソースを参照

接入dialogue系统,为NPC对话预备

DrDuck0117 6 日 前
コミット
ab5f2f68b9
62 ファイル変更833 行追加161 行削除
  1. 12 2
      ddmyx.yyp
  2. 6 1
      objects/oAccesscard/Create_0.gml
  3. 16 0
      objects/oAutomatedSolid/Create_0.gml
  4. 7 0
      objects/oAutomatedSolid/Step_0.gml
  5. 44 0
      objects/oAutomatedSolid/oAutomatedSolid.yy
  6. 4 2
      objects/oBossShowerhead/Create_0.gml
  7. 1 1
      objects/oBreakableSolid/Create_0.gml
  8. 2 1
      objects/oBreakableSolid/Step_0.gml
  9. 2 0
      objects/oCredit/Create_0.gml
  10. 5 2
      objects/oCredit/Step_0.gml
  11. 1 1
      objects/oCreditPile/Create_0.gml
  12. 23 8
      objects/oDoorInteractive/Create_0.gml
  13. 7 0
      objects/oDoorInteractive/Draw_0.gml
  14. 4 0
      objects/oDoorInteractive/Step_0.gml
  15. 5 2
      objects/oDoorInteractive/oDoorInteractive.yy
  16. 1 0
      objects/oDoorLocked/Create_0.gml
  17. 6 0
      objects/oDoorLocked/Step_0.gml
  18. 44 0
      objects/oDoorLocked/oDoorLocked.yy
  19. 38 0
      objects/oDoorLocker/oDoorLocker.yy
  20. 1 3
      objects/oMain/Create_0.gml
  21. 5 1
      objects/oMain/Draw_64.gml
  22. 5 4
      objects/oMain/Step_0.gml
  23. 11 0
      objects/oNPCwarden/Create_0.gml
  24. 43 0
      objects/oNPCwarden/oNPCwarden.yy
  25. 2 2
      objects/oSavePoint/oSavePoint.yy
  26. 6 3
      objects/oWeaponInteractive/Create_0.gml
  27. 2 2
      objects/oWeaponInteractive/oWeaponInteractive.yy
  28. 3 3
      rooms/rTest1/rTest1.yy
  29. 12 1
      rooms/rTest5/rTest5.yy
  30. 4 0
      rooms/rTest6/rTest6.yy
  31. 23 10
      rooms/rTest7/rTest7.yy
  32. 1 0
      rooms/rTest8/RoomCreationCode.gml
  33. 86 0
      rooms/rTest8/rTest8.yy
  34. 13 2
      scripts/BossShowerheadAI/BossShowerheadAI.gml
  35. 6 88
      scripts/PlayerStates/PlayerStates.gml
  36. 52 12
      scripts/SaveLoad/SaveLoad.gml
  37. 5 1
      scripts/ShowerheadAI/ShowerheadAI.gml
  38. 1 1
      scripts/ShowerheadBombAI/ShowerheadBombAI.gml
  39. 28 2
      scripts/general/general.gml
  40. BIN
      sprites/sAutomatedSolid/5f8a516f-8580-4fa8-8b91-351f5998c6db.png
  41. BIN
      sprites/sAutomatedSolid/layers/5f8a516f-8580-4fa8-8b91-351f5998c6db/dc2c122c-d732-48ba-a0d9-baf2160c52f5.png
  42. 90 0
      sprites/sAutomatedSolid/sAutomatedSolid.yy
  43. BIN
      sprites/sBossShowerheadSpawn/1ac62f0e-9aa2-4e15-8236-794449af5591.png
  44. BIN
      sprites/sBossShowerheadSpawn/2540442a-0cea-4420-970e-ca205b97652a.png
  45. BIN
      sprites/sBossShowerheadSpawn/7b9f748e-23f1-4d33-ba98-1653d69529cd.png
  46. BIN
      sprites/sBossShowerheadSpawn/89aa24d8-ed91-446e-b930-b115fc5430a9.png
  47. BIN
      sprites/sBossShowerheadSpawn/b4aeb4c0-3065-4f00-93e7-bcfc3748ece4.png
  48. BIN
      sprites/sBossShowerheadSpawn/layers/1ac62f0e-9aa2-4e15-8236-794449af5591/f24b423d-90db-4b9e-8790-8dafbebd16f4.png
  49. BIN
      sprites/sBossShowerheadSpawn/layers/2540442a-0cea-4420-970e-ca205b97652a/f24b423d-90db-4b9e-8790-8dafbebd16f4.png
  50. BIN
      sprites/sBossShowerheadSpawn/layers/7b9f748e-23f1-4d33-ba98-1653d69529cd/f24b423d-90db-4b9e-8790-8dafbebd16f4.png
  51. BIN
      sprites/sBossShowerheadSpawn/layers/89aa24d8-ed91-446e-b930-b115fc5430a9/f24b423d-90db-4b9e-8790-8dafbebd16f4.png
  52. BIN
      sprites/sBossShowerheadSpawn/layers/b4aeb4c0-3065-4f00-93e7-bcfc3748ece4/f24b423d-90db-4b9e-8790-8dafbebd16f4.png
  53. 21 1
      sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy
  54. BIN
      sprites/sDoorLocked/98999c57-07b3-4dc3-99f6-01061c67e39c.png
  55. BIN
      sprites/sDoorLocked/layers/98999c57-07b3-4dc3-99f6-01061c67e39c/4d6ff755-545d-4ad2-b5ee-89afb209dcaa.png
  56. 90 0
      sprites/sDoorLocked/sDoorLocked.yy
  57. 0 0
      sprites/sInteractive/77a13498-0f83-4365-a90a-6f333c814809.png
  58. 0 0
      sprites/sInteractive/layers/77a13498-0f83-4365-a90a-6f333c814809/2b5d548b-d47f-41fe-a87a-7e61dfc03c9e.png
  59. 5 5
      sprites/sInteractive/sInteractive.yy
  60. BIN
      sprites/sNPC/77a13498-0f83-4365-a90a-6f333c814809.png
  61. BIN
      sprites/sNPC/layers/77a13498-0f83-4365-a90a-6f333c814809/2b5d548b-d47f-41fe-a87a-7e61dfc03c9e.png
  62. 90 0
      sprites/sNPC/sNPC.yy

+ 12 - 2
ddmyx.yyp

@@ -30,6 +30,7 @@
     {"$GMFolder":"","%Name":"oPlayerCorpse","folderPath":"folders/Enemy/oPlayerCorpse.yy","name":"oPlayerCorpse","resourceType":"GMFolder","resourceVersion":"2.0",},
     {"$GMFolder":"","%Name":"Fonts","folderPath":"folders/Fonts.yy","name":"Fonts","resourceType":"GMFolder","resourceVersion":"2.0",},
     {"$GMFolder":"","%Name":"Objects","folderPath":"folders/Objects.yy","name":"Objects","resourceType":"GMFolder","resourceVersion":"2.0",},
+    {"$GMFolder":"","%Name":"NPCs","folderPath":"folders/Objects/IntractiveObjects/NPCs.yy","name":"NPCs","resourceType":"GMFolder","resourceVersion":"2.0",},
     {"$GMFolder":"","%Name":"HazardObjects","folderPath":"folders/Objects/HazardObjects.yy","name":"HazardObjects","resourceType":"GMFolder","resourceVersion":"2.0",},
     {"$GMFolder":"","%Name":"IntractiveObjects","folderPath":"folders/Objects/IntractiveObjects.yy","name":"IntractiveObjects","resourceType":"GMFolder","resourceVersion":"2.0",},
     {"$GMFolder":"","%Name":"SolidObjects","folderPath":"folders/Objects/SolidObjects.yy","name":"SolidObjects","resourceType":"GMFolder","resourceVersion":"2.0",},
@@ -69,6 +70,7 @@
     {"id":{"name":"更新日志tianhaobu","path":"notes/更新日志tianhaobu/更新日志tianhaobu.yy",},},
     {"id":{"name":"oAccesscard","path":"objects/oAccesscard/oAccesscard.yy",},},
     {"id":{"name":"oAudioManager","path":"objects/oAudioManager/oAudioManager.yy",},},
+    {"id":{"name":"oAutomatedSolid","path":"objects/oAutomatedSolid/oAutomatedSolid.yy",},},
     {"id":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},},
     {"id":{"name":"oBlockSlippery","path":"objects/oBlockSlippery/oBlockSlippery.yy",},},
     {"id":{"name":"oBossHex","path":"objects/oBossHex/oBossHex.yy",},},
@@ -82,6 +84,8 @@
     {"id":{"name":"oCreditPile","path":"objects/oCreditPile/oCreditPile.yy",},},
     {"id":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},},
     {"id":{"name":"oDoorInteractive","path":"objects/oDoorInteractive/oDoorInteractive.yy",},},
+    {"id":{"name":"oDoorLocked","path":"objects/oDoorLocked/oDoorLocked.yy",},},
+    {"id":{"name":"oDoorLocker","path":"objects/oDoorLocker/oDoorLocker.yy",},},
     {"id":{"name":"oDoubleJumpEffect","path":"objects/oDoubleJumpEffect/oDoubleJumpEffect.yy",},},
     {"id":{"name":"oEnemyCorpse","path":"objects/oEnemyCorpse/oEnemyCorpse.yy",},},
     {"id":{"name":"oEnemyCrawl","path":"objects/oEnemyCrawl/oEnemyCrawl.yy",},},
@@ -99,6 +103,7 @@
     {"id":{"name":"oInGameManager","path":"objects/oInGameManager/oInGameManager.yy",},},
     {"id":{"name":"oInventory","path":"objects/oInventory/oInventory.yy",},},
     {"id":{"name":"oMain","path":"objects/oMain/oMain.yy",},},
+    {"id":{"name":"oNPCwarden","path":"objects/oNPCwarden/oNPCwarden.yy",},},
     {"id":{"name":"oParentEnemy","path":"objects/oParentEnemy/oParentEnemy.yy",},},
     {"id":{"name":"oParentEntity","path":"objects/oParentEntity/oParentEntity.yy",},},
     {"id":{"name":"oParentHazard","path":"objects/oParentHazard/oParentHazard.yy",},},
@@ -136,6 +141,7 @@
     {"id":{"name":"rTest5","path":"rooms/rTest5/rTest5.yy",},},
     {"id":{"name":"rTest6","path":"rooms/rTest6/rTest6.yy",},},
     {"id":{"name":"rTest7","path":"rooms/rTest7/rTest7.yy",},},
+    {"id":{"name":"rTest8","path":"rooms/rTest8/rTest8.yy",},},
     {"id":{"name":"rTitle","path":"rooms/rTitle/rTitle.yy",},},
     {"id":{"name":"AudioManager","path":"scripts/AudioManager/AudioManager.yy",},},
     {"id":{"name":"BossHexAI","path":"scripts/BossHexAI/BossHexAI.yy",},},
@@ -159,6 +165,7 @@
     {"id":{"name":"sh_flash","path":"shaders/sh_flash/sh_flash.yy",},},
     {"id":{"name":"sh_grey","path":"shaders/sh_grey/sh_grey.yy",},},
     {"id":{"name":"sh_ink_blend","path":"shaders/sh_ink_blend/sh_ink_blend.yy",},},
+    {"id":{"name":"sAutomatedSolid","path":"sprites/sAutomatedSolid/sAutomatedSolid.yy",},},
     {"id":{"name":"sBlockClimbable","path":"sprites/sBlockClimbable/sBlockClimbable.yy",},},
     {"id":{"name":"sBlockSlippery","path":"sprites/sBlockSlippery/sBlockSlippery.yy",},},
     {"id":{"name":"sBossHex","path":"sprites/sBossHex/sBossHex.yy",},},
@@ -178,6 +185,7 @@
     {"id":{"name":"sCredit","path":"sprites/sCredit/sCredit.yy",},},
     {"id":{"name":"sCreditIndi","path":"sprites/sCreditIndi/sCreditIndi.yy",},},
     {"id":{"name":"sDoor","path":"sprites/sDoor/sDoor.yy",},},
+    {"id":{"name":"sDoorLocked","path":"sprites/sDoorLocked/sDoorLocked.yy",},},
     {"id":{"name":"sDoubleJumpEffect","path":"sprites/sDoubleJumpEffect/sDoubleJumpEffect.yy",},},
     {"id":{"name":"sEnemyCrawl","path":"sprites/sEnemyCrawl/sEnemyCrawl.yy",},},
     {"id":{"name":"sEnemyDummyAttack","path":"sprites/sEnemyDummyAttack/sEnemyDummyAttack.yy",},},
@@ -200,8 +208,9 @@
     {"id":{"name":"sHitboxHor","path":"sprites/sHitboxHor/sHitboxHor.yy",},},
     {"id":{"name":"sHitboxUp","path":"sprites/sHitboxUp/sHitboxUp.yy",},},
     {"id":{"name":"sInteractIndicator","path":"sprites/sInteractIndicator/sInteractIndicator.yy",},},
+    {"id":{"name":"sInteractive","path":"sprites/sInteractive/sInteractive.yy",},},
+    {"id":{"name":"sNPC","path":"sprites/sNPC/sNPC.yy",},},
     {"id":{"name":"sNull","path":"sprites/sNull/sNull.yy",},},
-    {"id":{"name":"sParentInteractive","path":"sprites/sParentInteractive/sParentInteractive.yy",},},
     {"id":{"name":"sPlayerArcSlash","path":"sprites/sPlayerArcSlash/sPlayerArcSlash.yy",},},
     {"id":{"name":"sPlayerAttack","path":"sprites/sPlayerAttack/sPlayerAttack.yy",},},
     {"id":{"name":"sPlayerDash","path":"sprites/sPlayerDash/sPlayerDash.yy",},},
@@ -238,8 +247,9 @@
     {"roomId":{"name":"rTest3","path":"rooms/rTest3/rTest3.yy",},},
     {"roomId":{"name":"rTest4","path":"rooms/rTest4/rTest4.yy",},},
     {"roomId":{"name":"rTest5","path":"rooms/rTest5/rTest5.yy",},},
-    {"roomId":{"name":"rTest7","path":"rooms/rTest7/rTest7.yy",},},
+    {"roomId":{"name":"rTest8","path":"rooms/rTest8/rTest8.yy",},},
     {"roomId":{"name":"rTest6","path":"rooms/rTest6/rTest6.yy",},},
+    {"roomId":{"name":"rTest7","path":"rooms/rTest7/rTest7.yy",},},
   ],
   "templateType":"game",
   "TextureGroups":[

+ 6 - 1
objects/oAccesscard/Create_0.gml

@@ -6,7 +6,12 @@ indi_y_offset = -72;
 
 callback = function()
 {
-	type(["You find the access card!"], interact_end);
+	var _func = function()
+	{
+		unlock_player();
+		unlock_door();
+	}
+	type(["You find the access card!"], _func);
 	global.save_data.player.abilities.accesscard = true;
 	
 	save_game_to_disk();

+ 16 - 0
objects/oAutomatedSolid/Create_0.gml

@@ -0,0 +1,16 @@
+if self_check_activated()
+	instance_destroy();
+
+image_speed = 0;
+animation_spd = 0;
+
+get_hit = function(_info)
+{
+	var _struct = particle_get_info(peBladeHitHazard);
+	var _part_type = _struct.emitters[0].parttype.ind;
+	var _dir = point_direction(0, 0, _info.kbFactorX, -abs(_info.kbFactorY));
+	part_type_direction(_part_type, _dir - 45, _dir + 45, 0, 5);
+    
+	var _part = part_system_create_layer("Effect", false, peBladeHitHazard);
+	part_system_position(_part, x, y);
+}

+ 7 - 0
objects/oAutomatedSolid/Step_0.gml

@@ -0,0 +1,7 @@
+image_index += animation_spd;
+if animation_end()
+{
+	unlock_player();
+	autosave();
+	instance_destroy();
+}

+ 44 - 0
objects/oAutomatedSolid/oAutomatedSolid.yy

@@ -0,0 +1,44 @@
+{
+  "$GMObject":"",
+  "%Name":"oAutomatedSolid",
+  "eventList":[
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+  ],
+  "managed":true,
+  "name":"oAutomatedSolid",
+  "overriddenProperties":[],
+  "parent":{
+    "name":"SolidObjects",
+    "path":"folders/Objects/SolidObjects.yy",
+  },
+  "parentObjectId":{
+    "name":"oParentSolid",
+    "path":"objects/oParentSolid/oParentSolid.yy",
+  },
+  "persistent":false,
+  "physicsAngularDamping":0.1,
+  "physicsDensity":0.5,
+  "physicsFriction":0.2,
+  "physicsGroup":1,
+  "physicsKinematic":false,
+  "physicsLinearDamping":0.1,
+  "physicsObject":false,
+  "physicsRestitution":0.1,
+  "physicsSensor":false,
+  "physicsShape":1,
+  "physicsShapePoints":[],
+  "physicsStartAwake":true,
+  "properties":[
+    {"$GMObjectProperty":"v2","%Name":"uuid","filters":[],"listItems":[],"multiselect":false,"name":"uuid","rangeEnabled":false,"rangeMax":10.0,"rangeMin":0.0,"resourceType":"GMObjectProperty","resourceVersion":"2.0","value":"","varType":2,},
+  ],
+  "resourceType":"GMObject",
+  "resourceVersion":"2.0",
+  "solid":false,
+  "spriteId":{
+    "name":"sAutomatedSolid",
+    "path":"sprites/sAutomatedSolid/sAutomatedSolid.yy",
+  },
+  "spriteMaskId":null,
+  "visible":true,
+}

+ 4 - 2
objects/oBossShowerhead/Create_0.gml

@@ -13,7 +13,7 @@ enemy_ai = boss_showerhead_ai;
 
 hitbox = enemy_create_hitboxMC(160, 160);
 
-state = "SPAWN";
+state = "AWAIT";
 
 attack_queue = [1, 3, 1, 3, 2, 1, 2, 3, 1, 2, 2, 3];
 attack_index = irandom(array_length(attack_queue) - 1);
@@ -36,4 +36,6 @@ death_callback = function()
 	
 	icl(oAccesscard);
 	instance_destroy();
-}
+}
+
+animation_spd = 0;

+ 1 - 1
objects/oBreakableSolid/Create_0.gml

@@ -1,4 +1,4 @@
-self_check_destroy();
+self_check_activated();
 
 image_speed = 0;
 animation_spd = 1;

+ 2 - 1
objects/oBreakableSolid/Step_0.gml

@@ -10,7 +10,8 @@ if animation_end()
 		else
 			_pe.x_spd = random_range(-6, 6);
 	}
-	self_record_destroy();
+	autosave();
+	instance_destroy();
 }
 if abs(shake_power) > 0.1
 {

+ 2 - 0
objects/oCredit/Create_0.gml

@@ -3,6 +3,8 @@ y_spd = random_range(-15, -5);
 
 image_angle = random(360);
 
+mask_index = sRec32;
+
 restitution = 0.5; // 弹力系数
 
 pickup_timer = 30; // 最快拾取时间(可选)

+ 5 - 2
objects/oCredit/Step_0.gml

@@ -1,5 +1,7 @@
 y_spd += global.g * global.time_scale;
 
+var _angle = image_angle;
+image_angle = 0;
 if place_meeting(x, y + y_spd, oParentSolid)
 {
     while !place_meeting(x, y + sign(y_spd), oParentSolid)
@@ -9,7 +11,7 @@ if place_meeting(x, y + y_spd, oParentSolid)
 	{
         y_spd *= -restitution;
 		x_spd *= restitution;
-	} // 落地反弹
+	}
 	else
 	{
         y_spd = 0;
@@ -19,12 +21,13 @@ if place_meeting(x, y + y_spd, oParentSolid)
 y += y_spd * global.time_scale;
 
 if place_meeting(x + x_spd, y, oParentSolid)
-    x_spd *= -restitution; // 撞墙反弹
+    x_spd *= -restitution;
 
 x += x_spd * global.time_scale;
 
 pickup_timer--;
 
+image_angle = _angle;
 image_angle += 4 * point_distance(0, 0, x_spd, y_spd) * global.time_scale;
 
 

+ 1 - 1
objects/oCreditPile/Create_0.gml

@@ -1,4 +1,4 @@
-self_check_destroy();
+self_check_activated();
 
 image_speed = 0;
 animation_spd = 1;

+ 23 - 8
objects/oDoorInteractive/Create_0.gml

@@ -1,14 +1,29 @@
-self_check_destroy();
+depth = 10;
+if self_check_activated()
+{
+	activated = true;
+	exit;
+}
+	
 event_inherited();
 
 dist_tor = 144;
-dist_y_tor = 48;
-indi_y_offset = -192;
+dist_y_tor = 144;
+indi_y_offset = -96;
+
+activated = false;
 
 callback = function()
 {
-	global.save_data.player.abilities.attack = true;
-	
-	self_record_destroy();
-}
-depth = 10;
+	if global.save_data.player.abilities.accesscard == false
+		type(["It seems that you'll need an access card to open this door."],
+		unlock_player);
+	else
+	{
+		control.animation_spd = 0.25;
+		indi_img_index = 0;
+		activated = true;
+		lock_player();
+		autosave();
+	}
+}

+ 7 - 0
objects/oDoorInteractive/Draw_0.gml

@@ -0,0 +1,7 @@
+if activated
+{
+	draw_self();
+	exit;
+}
+
+event_inherited();

+ 4 - 0
objects/oDoorInteractive/Step_0.gml

@@ -0,0 +1,4 @@
+if activated
+	exit;
+	
+event_inherited();

+ 5 - 2
objects/oDoorInteractive/oDoorInteractive.yy

@@ -3,6 +3,8 @@
   "%Name":"oDoorInteractive",
   "eventList":[
     {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
   ],
   "managed":true,
   "name":"oDoorInteractive",
@@ -30,13 +32,14 @@
   "physicsStartAwake":true,
   "properties":[
     {"$GMObjectProperty":"v2","%Name":"uuid","filters":[],"listItems":[],"multiselect":false,"name":"uuid","rangeEnabled":false,"rangeMax":10.0,"rangeMin":0.0,"resourceType":"GMObjectProperty","resourceVersion":"2.0","value":"","varType":2,},
+    {"$GMObjectProperty":"v2","%Name":"control","filters":[],"listItems":[],"multiselect":false,"name":"control","rangeEnabled":false,"rangeMax":10.0,"rangeMin":0.0,"resourceType":"GMObjectProperty","resourceVersion":"2.0","value":"","varType":5,},
   ],
   "resourceType":"GMObject",
   "resourceVersion":"2.0",
   "solid":false,
   "spriteId":{
-    "name":"sParentInteractive",
-    "path":"sprites/sParentInteractive/sParentInteractive.yy",
+    "name":"sInteractive",
+    "path":"sprites/sInteractive/sInteractive.yy",
   },
   "spriteMaskId":null,
   "visible":true,

+ 1 - 0
objects/oDoorLocked/Create_0.gml

@@ -0,0 +1 @@
+animation_spd = 0.25;

+ 6 - 0
objects/oDoorLocked/Step_0.gml

@@ -0,0 +1,6 @@
+image_index += animation_spd;
+
+if animation_end()
+	animation_spd = 0;
+else if image_index == 0 && animation_spd < 0
+	instance_destroy();

+ 44 - 0
objects/oDoorLocked/oDoorLocked.yy

@@ -0,0 +1,44 @@
+{
+  "$GMObject":"",
+  "%Name":"oDoorLocked",
+  "eventList":[
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+  ],
+  "managed":true,
+  "name":"oDoorLocked",
+  "overriddenProperties":[],
+  "parent":{
+    "name":"SolidObjects",
+    "path":"folders/Objects/SolidObjects.yy",
+  },
+  "parentObjectId":{
+    "name":"oParentSolid",
+    "path":"objects/oParentSolid/oParentSolid.yy",
+  },
+  "persistent":false,
+  "physicsAngularDamping":0.1,
+  "physicsDensity":0.5,
+  "physicsFriction":0.2,
+  "physicsGroup":1,
+  "physicsKinematic":false,
+  "physicsLinearDamping":0.1,
+  "physicsObject":false,
+  "physicsRestitution":0.1,
+  "physicsSensor":false,
+  "physicsShape":1,
+  "physicsShapePoints":[],
+  "physicsStartAwake":true,
+  "properties":[
+    {"$GMObjectProperty":"v2","%Name":"unlock","filters":[],"listItems":[],"multiselect":false,"name":"unlock","rangeEnabled":false,"rangeMax":10.0,"rangeMin":0.0,"resourceType":"GMObjectProperty","resourceVersion":"2.0","value":"true","varType":3,},
+  ],
+  "resourceType":"GMObject",
+  "resourceVersion":"2.0",
+  "solid":false,
+  "spriteId":{
+    "name":"sDoorLocked",
+    "path":"sprites/sDoorLocked/sDoorLocked.yy",
+  },
+  "spriteMaskId":null,
+  "visible":true,
+}

+ 38 - 0
objects/oDoorLocker/oDoorLocker.yy

@@ -0,0 +1,38 @@
+{
+  "$GMObject":"",
+  "%Name":"oDoorLocker",
+  "eventList":[],
+  "managed":true,
+  "name":"oDoorLocker",
+  "overriddenProperties":[],
+  "parent":{
+    "name":"Objects",
+    "path":"folders/Objects.yy",
+  },
+  "parentObjectId":null,
+  "persistent":false,
+  "physicsAngularDamping":0.1,
+  "physicsDensity":0.5,
+  "physicsFriction":0.2,
+  "physicsGroup":1,
+  "physicsKinematic":false,
+  "physicsLinearDamping":0.1,
+  "physicsObject":false,
+  "physicsRestitution":0.1,
+  "physicsSensor":false,
+  "physicsShape":1,
+  "physicsShapePoints":[],
+  "physicsStartAwake":true,
+  "properties":[
+    {"$GMObjectProperty":"v2","%Name":"unlock","filters":[],"listItems":[],"multiselect":false,"name":"unlock","rangeEnabled":false,"rangeMax":10.0,"rangeMin":0.0,"resourceType":"GMObjectProperty","resourceVersion":"2.0","value":"true","varType":3,},
+  ],
+  "resourceType":"GMObject",
+  "resourceVersion":"2.0",
+  "solid":false,
+  "spriteId":{
+    "name":"sRec32",
+    "path":"sprites/sRec32/sRec32.yy",
+  },
+  "spriteMaskId":null,
+  "visible":true,
+}

+ 1 - 3
objects/oMain/Create_0.gml

@@ -1,8 +1,6 @@
 #macro RES_W 1280
 #macro RES_H 720
 
-randomize();
-
 global.input_handles_index = [
 	"debug",
 	"ingame",
@@ -55,7 +53,7 @@ icl(oAudioManager);
 icl(oTyper);
 
 // title UI (BETA)
-menu_options = ["CONTINUE", "NEW GAME", "INFO", "CONTROL:", "EXIT"];
+menu_options = ["CONTINUE", "NEW GAME", "EXIT"];
 menu_index = 0;
 
 animation_timer = 0;

+ 5 - 1
objects/oMain/Draw_64.gml

@@ -10,10 +10,14 @@ var _cy = RES_H / 2;
 
 draw_rectangle_colour(0, 0, RES_W, RES_H, c_black, c_black, #5a5a5a, #4a4a4a, false);
 
-var _title_text = "ddmyx ver26.4.8";
+var _title_text = "ddmyx ver26.6.11";
 
 draw_text_transformed(_cx, _cy - 96, _title_text, 1.5, 1.5, 0);
 
+var _bottom_text = "by team RSPB";
+
+draw_text_transformed(_cx, RES_H - 48, _bottom_text, 1, 1, 0);
+
 var _spacing = 48;
 
 for(var i = 0; i < array_length(menu_options); i++)

+ 5 - 4
objects/oMain/Step_0.gml

@@ -90,7 +90,7 @@ if _select_title
 			{
 				icl(oRippleExpand);
 				
-				global.save_data = get_default_save_data();
+				initialize_save_data();
 				save_game_to_disk();
 				load_game_from_disk();
 			};
@@ -99,11 +99,12 @@ if _select_title
 			_ripple.callback = _func;
 			break;
 
-        case 4: game_end(); break;
+        case 2: game_end(); break;
     }
 }
+/*
 if (_left_title || _right_title || _select_title) && menu_index == 3
 	global.altcontrol = !global.altcontrol;
-menu_options[3] = global.altcontrol ? "控制-WASD" : "控制-方向键";
-
+menu_options[2] = global.altcontrol ? "Control-WASD" : "Control-Arrows";
+*/
 animation_timer += 0.05;

+ 11 - 0
objects/oNPCwarden/Create_0.gml

@@ -0,0 +1,11 @@
+event_inherited();
+
+dist_tor = 144;
+dist_y_tor = 48;
+indi_y_offset = -192;
+
+callback = function()
+{
+
+}
+depth = 10;

+ 43 - 0
objects/oNPCwarden/oNPCwarden.yy

@@ -0,0 +1,43 @@
+{
+  "$GMObject":"",
+  "%Name":"oNPCwarden",
+  "eventList":[
+    {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
+  ],
+  "managed":true,
+  "name":"oNPCwarden",
+  "overriddenProperties":[],
+  "parent":{
+    "name":"IntractiveObjects",
+    "path":"folders/Objects/IntractiveObjects.yy",
+  },
+  "parentObjectId":{
+    "name":"oParentInteractive",
+    "path":"objects/oParentInteractive/oParentInteractive.yy",
+  },
+  "persistent":false,
+  "physicsAngularDamping":0.1,
+  "physicsDensity":0.5,
+  "physicsFriction":0.2,
+  "physicsGroup":1,
+  "physicsKinematic":false,
+  "physicsLinearDamping":0.1,
+  "physicsObject":false,
+  "physicsRestitution":0.1,
+  "physicsSensor":false,
+  "physicsShape":1,
+  "physicsShapePoints":[],
+  "physicsStartAwake":true,
+  "properties":[
+    {"$GMObjectProperty":"v2","%Name":"interactive","filters":[],"listItems":[],"multiselect":false,"name":"interactive","rangeEnabled":false,"rangeMax":10.0,"rangeMin":0.0,"resourceType":"GMObjectProperty","resourceVersion":"2.0","value":"true","varType":3,},
+  ],
+  "resourceType":"GMObject",
+  "resourceVersion":"2.0",
+  "solid":false,
+  "spriteId":{
+    "name":"sNPC",
+    "path":"sprites/sNPC/sNPC.yy",
+  },
+  "spriteMaskId":null,
+  "visible":true,
+}

+ 2 - 2
objects/oSavePoint/oSavePoint.yy

@@ -35,8 +35,8 @@
   "resourceVersion":"2.0",
   "solid":false,
   "spriteId":{
-    "name":"sParentInteractive",
-    "path":"sprites/sParentInteractive/sParentInteractive.yy",
+    "name":"sInteractive",
+    "path":"sprites/sInteractive/sInteractive.yy",
   },
   "spriteMaskId":null,
   "visible":true,

+ 6 - 3
objects/oWeaponInteractive/Create_0.gml

@@ -1,4 +1,6 @@
-self_check_destroy();
+if self_check_activated()
+	instance_destroy();
+
 event_inherited();
 
 dist_tor = 144;
@@ -8,9 +10,10 @@ indi_y_offset = -192;
 callback = function()
 {
     type(["A familiar-looking pen lies quietly on the table.",
-	"Press Z to attack."], interact_end);
+	"Press Z to attack."], unlock_player);
 	global.save_data.player.abilities.attack = true;
 	
-	self_record_destroy();
+	autosave();
+	instance_destroy();
 }
 depth = 10;

+ 2 - 2
objects/oWeaponInteractive/oWeaponInteractive.yy

@@ -35,8 +35,8 @@
   "resourceVersion":"2.0",
   "solid":false,
   "spriteId":{
-    "name":"sParentInteractive",
-    "path":"sprites/sParentInteractive/sParentInteractive.yy",
+    "name":"sInteractive",
+    "path":"sprites/sInteractive/sInteractive.yy",
   },
   "spriteMaskId":null,
   "visible":true,

+ 3 - 3
rooms/rTest1/rTest1.yy

@@ -34,7 +34,7 @@
         {"$GMRInstance":"v4","%Name":"inst_306D7581","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_306D7581","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":13.5,"x":32.0,"y":432.0,},
         {"$GMRInstance":"v4","%Name":"inst_40F0FF48","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_40F0FF48","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":27.5,"scaleY":2.0,"x":2320.0,"y":800.0,},
         {"$GMRInstance":"v4","%Name":"inst_72E53C15","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_72E53C15","objectId":{"name":"oWeaponInteractive","path":"objects/oWeaponInteractive/oWeaponInteractive.yy",},"properties":[
-            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oWeaponInteractive","path":"objects/oWeaponInteractive/oWeaponInteractive.yy",},"propertyId":{"name":"uuid","path":"objects/oWeaponInteractive/oWeaponInteractive.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest1_Attack",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oWeaponInteractive","path":"objects/oWeaponInteractive/oWeaponInteractive.yy",},"propertyId":{"name":"uuid","path":"objects/oWeaponInteractive/oWeaponInteractive.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rT1_weaponi",},
           ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":896.0,"y":864.0,},
         {"$GMRInstance":"v4","%Name":"inst_3B38CB07","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3B38CB07","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":2.0,"scaleY":6.5,"x":1952.0,"y":272.0,},
         {"$GMRInstance":"v4","%Name":"inst_68597383","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_68597383","objectId":{"name":"oBreakableSolid","path":"objects/oBreakableSolid/oBreakableSolid.yy",},"properties":[
@@ -47,9 +47,9 @@
         {"$GMRInstance":"v4","%Name":"inst_5883ACEE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_5883ACEE","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":2.5,"scaleY":1.0,"x":2336.0,"y":448.0,},
         {"$GMRInstance":"v4","%Name":"inst_34AF2973","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_34AF2973","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":2.5,"scaleY":1.0,"x":2784.0,"y":288.0,},
         {"$GMRInstance":"v4","%Name":"inst_37C6533","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_37C6533","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
-            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest2","path":"rooms/rTest2/rTest2.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest2",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest8","path":"rooms/rTest8/rTest8.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest8",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
-            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"0",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_direction","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"DOWN",},
           ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":90.0,"scaleX":1.0,"scaleY":1.5,"x":192.0,"y":-32.0,},
       ],"layers":[],"name":"Instances","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},

+ 12 - 1
rooms/rTest5/rTest5.yy

@@ -19,6 +19,9 @@
     {"name":"inst_6AA01548","path":"rooms/rTest5/rTest5.yy",},
     {"name":"inst_768E7FE1","path":"rooms/rTest5/rTest5.yy",},
     {"name":"inst_6CB88840","path":"rooms/rTest5/rTest5.yy",},
+    {"name":"inst_3DE2F09F","path":"rooms/rTest5/rTest5.yy",},
+    {"name":"inst_46E773EC","path":"rooms/rTest5/rTest5.yy",},
+    {"name":"inst_1279B16A","path":"rooms/rTest5/rTest5.yy",},
   ],
   "isDnd":false,
   "layers":[
@@ -33,7 +36,7 @@
         {"$GMRInstance":"v4","%Name":"inst_1B12CEF0_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1B12CEF0_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":11.5,"scaleY":1.0,"x":1552.0,"y":32.0,},
         {"$GMRInstance":"v4","%Name":"inst_2C4BD67A1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2C4BD67A1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":18.5,"scaleY":1.0,"x":592.0,"y":32.0,},
         {"$GMRInstance":"v4","%Name":"inst_6A147043_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A147043_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":6.5,"x":32.0,"y":208.0,},
-        {"$GMRInstance":"v4","%Name":"inst_2424411A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2424411A","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":5.5,"x":1888.0,"y":240.0,},
+        {"$GMRInstance":"v4","%Name":"inst_2424411A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2424411A","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":5.0,"x":1888.0,"y":224.0,},
         {"$GMRInstance":"v4","%Name":"inst_24E31DFE","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_24E31DFE","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest6","path":"rooms/rTest6/rTest6.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest6",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
@@ -51,6 +54,14 @@
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"0",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_direction","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"RIGHT",},
           ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.5,"x":1952.0,"y":640.0,},
+        {"$GMRInstance":"v4","%Name":"inst_3DE2F09F","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3DE2F09F","objectId":{"name":"oAutomatedSolid","path":"objects/oAutomatedSolid/oAutomatedSolid.yy",},"properties":[
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oAutomatedSolid","path":"objects/oAutomatedSolid/oAutomatedSolid.yy",},"propertyId":{"name":"uuid","path":"objects/oAutomatedSolid/oAutomatedSolid.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rT5_as1",},
+          ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":0.5,"scaleY":1.0,"x":1888.0,"y":512.0,},
+        {"$GMRInstance":"v4","%Name":"inst_46E773EC","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_46E773EC","objectId":{"name":"oDoorInteractive","path":"objects/oDoorInteractive/oDoorInteractive.yy",},"properties":[
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoorInteractive","path":"objects/oDoorInteractive/oDoorInteractive.yy",},"propertyId":{"name":"uuid","path":"objects/oDoorInteractive/oDoorInteractive.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rT5_di1",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoorInteractive","path":"objects/oDoorInteractive/oDoorInteractive.yy",},"propertyId":{"name":"control","path":"objects/oDoorInteractive/oDoorInteractive.yy",},"resource":{"name":"inst_3DE2F09F","path":"rooms/rTest5/rTest5.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"inst_3DE2F09F",},
+          ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":0.5,"scaleY":0.5,"x":1760.0,"y":512.0,},
+        {"$GMRInstance":"v4","%Name":"inst_1279B16A","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1279B16A","objectId":{"name":"oNPCwarden","path":"objects/oNPCwarden/oNPCwarden.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":704.0,"y":640.0,},
       ],"layers":[],"name":"Instances","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
     {"$GMRInstanceLayer":"","%Name":"Effect","depth":100,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[],"layers":[],"name":"Effect","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
     {"$GMRBackgroundLayer":"","%Name":"Background","animationFPS":15.0,"animationSpeedType":0,"colour":4278190080,"depth":200,"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":"Background","properties":[],"resourceType":"GMRBackgroundLayer","resourceVersion":"2.0","spriteId":null,"stretch":false,"userdefinedAnimFPS":false,"userdefinedDepth":false,"visible":true,"vspeed":0.0,"vtiled":false,"x":0,"y":0,},

+ 4 - 0
rooms/rTest6/rTest6.yy

@@ -17,6 +17,8 @@
     {"name":"inst_6E038976","path":"rooms/rTest6/rTest6.yy",},
     {"name":"inst_6736E784","path":"rooms/rTest6/rTest6.yy",},
     {"name":"inst_28A12A74","path":"rooms/rTest6/rTest6.yy",},
+    {"name":"inst_4AE0D770","path":"rooms/rTest6/rTest6.yy",},
+    {"name":"inst_6951A5F0","path":"rooms/rTest6/rTest6.yy",},
   ],
   "isDnd":false,
   "layers":[
@@ -45,6 +47,8 @@
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oBreakableSolid","path":"objects/oBreakableSolid/oBreakableSolid.yy",},"propertyId":{"name":"uuid","path":"objects/oBreakableSolid/oBreakableSolid.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest6_oBS",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oBreakableSolid","path":"objects/oBreakableSolid/oBreakableSolid.yy",},"propertyId":{"name":"breakable_dir","path":"objects/oBreakableSolid/oBreakableSolid.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"180",},
           ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":-1.0,"scaleY":1.0,"x":1824.0,"y":512.0,},
+        {"$GMRInstance":"v4","%Name":"inst_4AE0D770","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_4AE0D770","objectId":{"name":"oEnemyCrawl","path":"objects/oEnemyCrawl/oEnemyCrawl.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":2144.0,"y":608.0,},
+        {"$GMRInstance":"v4","%Name":"inst_6951A5F0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6951A5F0","objectId":{"name":"oEnemyCrawl","path":"objects/oEnemyCrawl/oEnemyCrawl.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":992.0,"y":608.0,},
       ],"layers":[],"name":"Instances","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
     {"$GMRInstanceLayer":"","%Name":"Effect","depth":100,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[],"layers":[],"name":"Effect","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
     {"$GMRBackgroundLayer":"","%Name":"Background","animationFPS":15.0,"animationSpeedType":0,"colour":4278190080,"depth":200,"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":"Background","properties":[],"resourceType":"GMRBackgroundLayer","resourceVersion":"2.0","spriteId":null,"stretch":false,"userdefinedAnimFPS":false,"userdefinedDepth":false,"visible":true,"vspeed":0.0,"vtiled":false,"x":0,"y":0,},

+ 23 - 10
rooms/rTest7/rTest7.yy

@@ -6,25 +6,38 @@
   "inheritCreationOrder":false,
   "inheritLayers":false,
   "instanceCreationOrder":[
-    {"name":"inst_6A147043_1_1","path":"rooms/rTest7/rTest7.yy",},
-    {"name":"inst_2424411A1","path":"rooms/rTest7/rTest7.yy",},
-    {"name":"inst_45595C2_1_1","path":"rooms/rTest7/rTest7.yy",},
-    {"name":"inst_E75B776","path":"rooms/rTest7/rTest7.yy",},
-    {"name":"inst_542B0B1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_6A147043_1_1_1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_2424411A1_1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_45595C2_1_1_1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_E75B776_1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_542B0B1_1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_3042940C1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_32DF0805_1","path":"rooms/rTest7/rTest7.yy",},
+    {"name":"inst_3660C2D8_1","path":"rooms/rTest7/rTest7.yy",},
   ],
   "isDnd":false,
   "layers":[
     {"$GMRInstanceLayer":"","%Name":"Instances","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_45595C2_1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_45595C2_1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":20.0,"scaleY":1.5,"x":640.0,"y":688.0,},
-        {"$GMRInstance":"v4","%Name":"inst_6A147043_1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A147043_1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":10.0,"x":32.0,"y":320.0,},
-        {"$GMRInstance":"v4","%Name":"inst_2424411A1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2424411A1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":6.5,"x":1248.0,"y":208.0,},
-        {"$GMRInstance":"v4","%Name":"inst_E75B776","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E75B776","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
+        {"$GMRInstance":"v4","%Name":"inst_45595C2_1_1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_45595C2_1_1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":20.0,"scaleY":1.5,"x":640.0,"y":688.0,},
+        {"$GMRInstance":"v4","%Name":"inst_6A147043_1_1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A147043_1_1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":6.5,"x":32.0,"y":208.0,},
+        {"$GMRInstance":"v4","%Name":"inst_2424411A1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2424411A1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":6.5,"x":1248.0,"y":208.0,},
+        {"$GMRInstance":"v4","%Name":"inst_E75B776_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E75B776_1","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest6","path":"rooms/rTest6/rTest6.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest6",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"0",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
             {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_direction","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"LEFT",},
           ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.5,"x":1312.0,"y":640.0,},
-        {"$GMRInstance":"v4","%Name":"inst_542B0B1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_542B0B1","objectId":{"name":"oBossShowerhead","path":"objects/oBossShowerhead/oBossShowerhead.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":288.0,"y":576.0,},
+        {"$GMRInstance":"v4","%Name":"inst_542B0B1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_542B0B1_1","objectId":{"name":"oBossShowerhead","path":"objects/oBossShowerhead/oBossShowerhead.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":480.0,"y":576.0,},
+        {"$GMRInstance":"v4","%Name":"inst_3042940C1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3042940C1","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest8","path":"rooms/rTest8/rTest8.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest8",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"0",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_direction","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"RIGHT",},
+          ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.5,"x":-32.0,"y":640.0,},
+        {"$GMRInstance":"v4","%Name":"inst_32DF0805_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_32DF0805_1","objectId":{"name":"oDoorLocker","path":"objects/oDoorLocker/oDoorLocker.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":2.0,"scaleY":2.0,"x":32.0,"y":544.0,},
+        {"$GMRInstance":"v4","%Name":"inst_3660C2D8_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3660C2D8_1","objectId":{"name":"oDoorLocker","path":"objects/oDoorLocker/oDoorLocker.yy",},"properties":[
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoorLocker","path":"objects/oDoorLocker/oDoorLocker.yy",},"propertyId":{"name":"unlock","path":"objects/oDoorLocker/oDoorLocker.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"False",},
+          ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":2.0,"scaleY":2.0,"x":1248.0,"y":544.0,},
       ],"layers":[],"name":"Instances","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
     {"$GMRInstanceLayer":"","%Name":"Effect","depth":100,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[],"layers":[],"name":"Effect","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
     {"$GMRBackgroundLayer":"","%Name":"Background","animationFPS":15.0,"animationSpeedType":0,"colour":4278190080,"depth":200,"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":"Background","properties":[],"resourceType":"GMRBackgroundLayer","resourceVersion":"2.0","spriteId":null,"stretch":false,"userdefinedAnimFPS":false,"userdefinedDepth":false,"visible":true,"vspeed":0.0,"vtiled":false,"x":0,"y":0,},

+ 1 - 0
rooms/rTest8/RoomCreationCode.gml

@@ -0,0 +1 @@
+camera_set_bounds(0, room_width, 0, room_height);

+ 86 - 0
rooms/rTest8/rTest8.yy

@@ -0,0 +1,86 @@
+{
+  "$GMRoom":"v1",
+  "%Name":"rTest8",
+  "creationCodeFile":"rooms/rTest8/RoomCreationCode.gml",
+  "inheritCode":false,
+  "inheritCreationOrder":false,
+  "inheritLayers":false,
+  "instanceCreationOrder":[
+    {"name":"inst_6A147043_1_1","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_2424411A1","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_45595C2_1_1","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_E75B776","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_151F5694","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_37A65794","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_24361DDD","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_1A8CB7C9","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_1B51F8E0","path":"rooms/rTest8/rTest8.yy",},
+    {"name":"inst_3E1E7189","path":"rooms/rTest8/rTest8.yy",},
+  ],
+  "isDnd":false,
+  "layers":[
+    {"$GMRInstanceLayer":"","%Name":"Instances","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_45595C2_1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_45595C2_1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":25.0,"scaleY":1.5,"x":1120.0,"y":688.0,},
+        {"$GMRInstance":"v4","%Name":"inst_6A147043_1_1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_6A147043_1_1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":11.5,"x":32.0,"y":368.0,},
+        {"$GMRInstance":"v4","%Name":"inst_2424411A1","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_2424411A1","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":6.5,"x":1888.0,"y":208.0,},
+        {"$GMRInstance":"v4","%Name":"inst_E75B776","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_E75B776","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest7","path":"rooms/rTest7/rTest7.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest7",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"0",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_direction","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"LEFT",},
+          ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.5,"x":1952.0,"y":640.0,},
+        {"$GMRInstance":"v4","%Name":"inst_151F5694","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_151F5694","objectId":{"name":"oEnemyShowerhead","path":"objects/oEnemyShowerhead/oEnemyShowerhead.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":576.0,"y":768.0,},
+        {"$GMRInstance":"v4","%Name":"inst_37A65794","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_37A65794","objectId":{"name":"oEnemyShowerhead","path":"objects/oEnemyShowerhead/oEnemyShowerhead.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":1.0,"scaleY":1.0,"x":1344.0,"y":768.0,},
+        {"$GMRInstance":"v4","%Name":"inst_24361DDD","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_24361DDD","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":4.0,"scaleY":1.0,"x":1728.0,"y":384.0,},
+        {"$GMRInstance":"v4","%Name":"inst_1A8CB7C9","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1A8CB7C9","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"properties":[
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_room","path":"objects/oDoor/oDoor.yy",},"resource":{"name":"rTest1","path":"rooms/rTest1/rTest1.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"rTest1",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"target_door_id","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"1",},
+            {"$GMOverriddenProperty":"v1","%Name":"","name":"","objectId":{"name":"oDoor","path":"objects/oDoor/oDoor.yy",},"propertyId":{"name":"door_direction","path":"objects/oDoor/oDoor.yy",},"resourceType":"GMOverriddenProperty","resourceVersion":"2.0","value":"UP",},
+          ],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":90.0,"scaleX":1.0,"scaleY":1.5,"x":192.0,"y":736.0,},
+        {"$GMRInstance":"v4","%Name":"inst_1B51F8E0","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_1B51F8E0","objectId":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":14.0,"scaleY":1.0,"x":768.0,"y":384.0,},
+        {"$GMRInstance":"v4","%Name":"inst_3E1E7189","colour":4294967295,"frozen":false,"hasCreationCode":false,"ignore":false,"imageIndex":0,"imageSpeed":1.0,"inheritCode":false,"inheritedItemId":null,"inheritItemSettings":false,"isDnd":false,"name":"inst_3E1E7189","objectId":{"name":"oCreditPile","path":"objects/oCreditPile/oCreditPile.yy",},"properties":[],"resourceType":"GMRInstance","resourceVersion":"2.0","rotation":0.0,"scaleX":3.0,"scaleY":3.0,"x":1728.0,"y":288.0,},
+      ],"layers":[],"name":"Instances","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
+    {"$GMRInstanceLayer":"","%Name":"Effect","depth":100,"effectEnabled":true,"effectType":null,"gridX":32,"gridY":32,"hierarchyFrozen":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritSubLayers":true,"inheritVisibility":true,"instances":[],"layers":[],"name":"Effect","properties":[],"resourceType":"GMRInstanceLayer","resourceVersion":"2.0","userdefinedDepth":false,"visible":true,},
+    {"$GMRBackgroundLayer":"","%Name":"Background","animationFPS":15.0,"animationSpeedType":0,"colour":4278190080,"depth":200,"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":"Background","properties":[],"resourceType":"GMRBackgroundLayer","resourceVersion":"2.0","spriteId":null,"stretch":false,"userdefinedAnimFPS":false,"userdefinedDepth":false,"visible":true,"vspeed":0.0,"vtiled":false,"x":0,"y":0,},
+  ],
+  "name":"rTest8",
+  "parent":{
+    "name":"Administrative",
+    "path":"folders/Rooms/YX/Administrative.yy",
+  },
+  "parentRoom":null,
+  "physicsSettings":{
+    "inheritPhysicsSettings":false,
+    "PhysicsWorld":false,
+    "PhysicsWorldGravityX":0.0,
+    "PhysicsWorldGravityY":10.0,
+    "PhysicsWorldPixToMetres":0.1,
+  },
+  "resourceType":"GMRoom",
+  "resourceVersion":"2.0",
+  "roomSettings":{
+    "Height":720,
+    "inheritRoomSettings":false,
+    "persistent":false,
+    "Width":1920,
+  },
+  "sequenceId":null,
+  "views":[
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+    {"hborder":32,"hport":1080,"hspeed":-1,"hview":1080,"inherit":false,"objectId":null,"vborder":32,"visible":false,"vspeed":-1,"wport":1920,"wview":1920,"xport":0,"xview":0,"yport":0,"yview":0,},
+  ],
+  "viewSettings":{
+    "clearDisplayBuffer":true,
+    "clearViewBackground":false,
+    "enableViews":false,
+    "inheritViewSettings":false,
+  },
+  "volume":1.0,
+}

+ 13 - 2
scripts/BossShowerheadAI/BossShowerheadAI.gml

@@ -4,16 +4,27 @@ function boss_showerhead_ai()
     
     switch(state)
     {
+		case "AWAIT":
+			if global.player.x <= 3/4 * room_width
+			{
+				state = "SPAWN";
+				animation_spd = 0.25;
+				lock_player();
+				lock_door();
+			}
         case "SPAWN":
-			if animation_end()
+			if image_index == 10
 			{
 				for(var i = 0; i < 5; i++)
 					icd(oShockwave, x, y, 0, {delay : i * 10});
 				screen_shake(20);
+			}
+			else if animation_end()
+			{
+				unlock_player();
 				state = "IDLE";
 				idle_timer = 60;
 			}
-
             break;
         
         case "WINDUP":

+ 6 - 88
scripts/PlayerStates/PlayerStates.gml

@@ -406,8 +406,10 @@ function state_hitstun_hazard()
 		var _fade = icl(oFade);
 		_fade._callback = function()
 		{
-			oPlayer.x = oPlayer.last_safe_x;
-			oPlayer.y = oPlayer.last_safe_y;
+			global.player.x_spd = 0;
+			global.player.y_spd = 0;
+			global.player.x = global.player.last_safe_x;
+			global.player.y = global.player.last_safe_y;
 			camera_snap();
 		};
 	}
@@ -515,8 +517,7 @@ function state_locked()
 {
 	locked_timer -= global.time_scale;
 	
-	x_spd = 0;
-	y_spd = 0;
+	y_spd += player_calc_gravity();
 	
 	if locked_timer <= 0
 	{
@@ -580,87 +581,4 @@ function player_calc_gravity()
 		_g *= 0.75; //滞空
 	
 	return _g; // * global.time_scale;
-}
-
-/* 暂时不使用(计划删除)的闪避能力
-function state_dodge()
-{
-	if dodge_phase == "WAIT"
-	{
-		x_spd = 0;
-
-		if current_attacker != noone || animation_end()
-		{
-			y_spd = jump_spd;
-			dodge_phase = "DODGE";
-			
-			set_sprite(sPlayerDodge);
-			
-			if current_attacker != noone && is_marked
-			{
-                is_perfect = true;
-				invincible_timer = 150;
-				
-                global.time_scale = 0.2;
-				global.hitstop = 20;
-				
-            }
-		}
-	}
-	else if dodge_phase == "DODGE"
-	{		
-        y_spd += global.g;
-		
-        if is_perfect icl(oPlayerAfterImage);
-		
-        if y_spd > 0
-		{
-			timer = 0;
-			y_spd = 0;
-			if is_perfect
-			{
-				state = state_arc_slash;
-				set_sprite(sPlayerArcSlash);
-			}
-			else
-			{
-				state = state_dodge_ending;
-				set_sprite(sPlayerDodgeEnding);
-			}
-		}
-	}
-}
-function state_arc_slash()
-{
-    if image_index == 12
-	{
-		var _hb = icd(oPlayerHitboxArc);
-        _hb.owner = id;
-        
-        if facing == 1
-		{
-            _hb.image_xscale = 1;
-			_hb.image_angle = 30;
-			_hb.kb_factor_x *= 1;
-		}
-		else
-		{
-            _hb.image_xscale = -1;
-			_hb.image_angle = -30;
-			_hb.kb_factor_x *= -1;
-		}	
-    }
-	else if image_index > 12
-		y_spd += global.g;
-	if animation_end()
-	{
-        global.time_scale = 1.0;
-        state = state_free;
-    }
-}
-function state_dodge_ending()
-{
-    if animation_end()
-		state = state_free;
-}
-*/
+}

+ 52 - 12
scripts/SaveLoad/SaveLoad.gml

@@ -1,6 +1,6 @@
-function get_default_save_data()
+function initialize_save_data()
 {
-	return
+	global.save_data = 
 	{
 		player:
 		{
@@ -31,19 +31,59 @@ function get_default_save_data()
 			spxPos: 192,
 			spyPos: 864,
 			activated_objects: {}, 
-            defeated_boss: {}
-		}/*,
-		meta:
+            defeated_boss: {},
+			npc_flags: {}
+		}
+	};
+	global.dialogue =
+	{
+        warden:
 		{
-			play_time: 0,
-			save_date: ""
-		}*/
-	}
+			idle : ["Morning!"],
+            first :
+			[[
+			@"Good morning. 
+			I haven't met you before! 
+			Are you new here?",
+			@"By the way, my access card is lost, 
+			so you probably can't leave the dorm right now. 
+			I'm pretty sorry."
+			],[
+			@"Tell me if you see it anywhere!"
+			]],
+            accesscard :
+			[[
+			@"Wow, thanks a lot! 
+			Here, try this.",
+			@"Oh, I can lend a card to you. 
+			There may be other locked doors like these."
+			],[
+			@"Are you leaving? 
+			Remember to pay a visit when you have spare time. 
+			I'm planning to sell some daily necessities."
+			]]
+        }
+	};
+    var _npc_names = struct_get_names(global.dialogue);
+    for(var i = 0; i < array_length(_npc_names); i++)
+    {
+        var _npc = _npc_names[i];
+        var _blocks = struct_get_names(global.dialogue[$ _npc]);
+        
+        var _flags = {};
+        for(var j = 0; j < array_length(_blocks); j++)
+        {
+            var _block = _blocks[j];
+            if _block != "idle"
+                _flags[$ _block] = -1;
+			else if _block == "first"
+				_flags[$ _block] = 0;
+        }
+        global.save_data.world.npc_flags[$ _npc] = _flags;
+    }
 }
 function save_game_to_disk()
-{
-	// global.save_data.meta.save_date = date_datetime_string(date_current_datetime());
-	
+{	
 	var _json_string = json_stringify(global.save_data);
 	
 	var _buffer = buffer_create(string_byte_length(_json_string) + 1, buffer_fixed, 1);

+ 5 - 1
scripts/ShowerheadAI/ShowerheadAI.gml

@@ -4,9 +4,13 @@ function enemy_showerhead_ai()
 	image_xscale = facing_x;
 	
 	var _margin = 320;
+
 	if abs(global.player.x - x) <= _margin
 		awake = true;
-	var _sink_wait = (global.player.x < _margin || global.player.x > room_width - _margin);
+
+	var _sink_wait = global.player.x < _margin || global.player.x > room_width - _margin ||
+	global.player.y < y - 15 * sprite_get_number(sEnemyShowerheadEmerge) / animation_spd
+	
 	switch(state)
 	{		
 		case "WAIT":

+ 1 - 1
scripts/ShowerheadBombAI/ShowerheadBombAI.gml

@@ -8,7 +8,7 @@ function showerhead_bomb_ai()
 	if --inv_timer <= 0
 		hp = 1;
 	
-    y_spd += global.g / 1.5;
+    y_spd += global.g / 1.5 * global.time_scale;
     
     if place_meeting(x, y + y_spd, oParentSolid)
 	{

+ 28 - 2
scripts/general/general.gml

@@ -32,7 +32,6 @@ function camera_snap(_target_x = global.player.x, _target_y = global.player.y)
 
 /// @desc 触发屏幕震动
 /// @param {Real} _magnitude 以像素计算的震动强度
-// @param {Real} _frames 以帧计算的持续时间
 function screen_shake(_magnitude)
 {
     with(global.camera)
@@ -83,13 +82,40 @@ function to_gui(_wx, _wy)
     };
 }
 
-function interact_end()
+//use together
+function lock_player()
+{
+	if !instance_exists(global.player)
+		return;
+	global.player.state = state_locked;
+	global.player.locked_timer = infinity;
+	global.player.x_spd = 0;
+	global.player.y_spd = 0;
+}
+function unlock_player()
 {
 	if !instance_exists(global.player)
 		return;
     global.player.locked_timer = 0;
 }
 
+function lock_door()
+{
+	with(oDoorLocker)
+	{
+		icd(oDoorLocked, x, y, 0, {unlock : unlock});
+		instance_destroy();
+	}
+}
+function unlock_door()
+{
+	with(oDoorLocked)
+	{
+		if unlock
+			animation_spd = -0.25;
+	}
+}
+
 function camera_set_bounds(_l, _r, _t, _b)
 {
     oCamera.bound_left   = _l;

BIN
sprites/sAutomatedSolid/5f8a516f-8580-4fa8-8b91-351f5998c6db.png


BIN
sprites/sAutomatedSolid/layers/5f8a516f-8580-4fa8-8b91-351f5998c6db/dc2c122c-d732-48ba-a0d9-baf2160c52f5.png


+ 90 - 0
sprites/sAutomatedSolid/sAutomatedSolid.yy

@@ -0,0 +1,90 @@
+{
+  "$GMSprite":"v2",
+  "%Name":"sAutomatedSolid",
+  "bboxMode":0,
+  "bbox_bottom":255,
+  "bbox_left":0,
+  "bbox_right":127,
+  "bbox_top":0,
+  "collisionKind":1,
+  "collisionTolerance":0,
+  "DynamicTexturePage":false,
+  "edgeFiltering":false,
+  "For3D":false,
+  "frames":[
+    {"$GMSpriteFrame":"v1","%Name":"5f8a516f-8580-4fa8-8b91-351f5998c6db","name":"5f8a516f-8580-4fa8-8b91-351f5998c6db","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+  ],
+  "gridX":0,
+  "gridY":0,
+  "height":256,
+  "HTile":false,
+  "layers":[
+    {"$GMImageLayer":"","%Name":"dc2c122c-d732-48ba-a0d9-baf2160c52f5","blendMode":0,"displayName":"default","isLocked":false,"name":"dc2c122c-d732-48ba-a0d9-baf2160c52f5","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
+  ],
+  "name":"sAutomatedSolid",
+  "nineSlice":null,
+  "origin":4,
+  "parent":{
+    "name":"SolidObjects",
+    "path":"folders/Objects/SolidObjects.yy",
+  },
+  "preMultiplyAlpha":false,
+  "resourceType":"GMSprite",
+  "resourceVersion":"2.0",
+  "sequence":{
+    "$GMSequence":"v1",
+    "%Name":"sAutomatedSolid",
+    "autoRecord":true,
+    "backdropHeight":768,
+    "backdropImageOpacity":0.5,
+    "backdropImagePath":"",
+    "backdropWidth":1366,
+    "backdropXOffset":0.0,
+    "backdropYOffset":0.0,
+    "events":{
+      "$KeyframeStore<MessageEventKeyframe>":"",
+      "Keyframes":[],
+      "resourceType":"KeyframeStore<MessageEventKeyframe>",
+      "resourceVersion":"2.0",
+    },
+    "eventStubScript":null,
+    "eventToFunction":{},
+    "length":1.0,
+    "lockOrigin":false,
+    "moments":{
+      "$KeyframeStore<MomentsEventKeyframe>":"",
+      "Keyframes":[],
+      "resourceType":"KeyframeStore<MomentsEventKeyframe>",
+      "resourceVersion":"2.0",
+    },
+    "name":"sAutomatedSolid",
+    "playback":1,
+    "playbackSpeed":30.0,
+    "playbackSpeedType":0,
+    "resourceType":"GMSequence",
+    "resourceVersion":"2.0",
+    "showBackdrop":true,
+    "showBackdropImage":false,
+    "timeUnits":1,
+    "tracks":[
+      {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"5f8a516f-8580-4fa8-8b91-351f5998c6db","path":"sprites/sAutomatedSolid/sAutomatedSolid.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"dd13c378-d9e8-4761-84d8-732934eb44b7","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+          ],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
+    ],
+    "visibleRange":null,
+    "volume":1.0,
+    "xorigin":64,
+    "yorigin":128,
+  },
+  "swatchColours":null,
+  "swfPrecision":0.5,
+  "textureGroupId":{
+    "name":"Default",
+    "path":"texturegroups/Default",
+  },
+  "type":0,
+  "VTile":false,
+  "width":128,
+}

BIN
sprites/sBossShowerheadSpawn/1ac62f0e-9aa2-4e15-8236-794449af5591.png


BIN
sprites/sBossShowerheadSpawn/2540442a-0cea-4420-970e-ca205b97652a.png


BIN
sprites/sBossShowerheadSpawn/7b9f748e-23f1-4d33-ba98-1653d69529cd.png


BIN
sprites/sBossShowerheadSpawn/89aa24d8-ed91-446e-b930-b115fc5430a9.png


BIN
sprites/sBossShowerheadSpawn/b4aeb4c0-3065-4f00-93e7-bcfc3748ece4.png


BIN
sprites/sBossShowerheadSpawn/layers/1ac62f0e-9aa2-4e15-8236-794449af5591/f24b423d-90db-4b9e-8790-8dafbebd16f4.png


BIN
sprites/sBossShowerheadSpawn/layers/2540442a-0cea-4420-970e-ca205b97652a/f24b423d-90db-4b9e-8790-8dafbebd16f4.png


BIN
sprites/sBossShowerheadSpawn/layers/7b9f748e-23f1-4d33-ba98-1653d69529cd/f24b423d-90db-4b9e-8790-8dafbebd16f4.png


BIN
sprites/sBossShowerheadSpawn/layers/89aa24d8-ed91-446e-b930-b115fc5430a9/f24b423d-90db-4b9e-8790-8dafbebd16f4.png


BIN
sprites/sBossShowerheadSpawn/layers/b4aeb4c0-3065-4f00-93e7-bcfc3748ece4/f24b423d-90db-4b9e-8790-8dafbebd16f4.png


+ 21 - 1
sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy

@@ -27,6 +27,11 @@
     {"$GMSpriteFrame":"v1","%Name":"b688ca5e-d558-47f6-bad7-f6527a351fa9","name":"b688ca5e-d558-47f6-bad7-f6527a351fa9","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
     {"$GMSpriteFrame":"v1","%Name":"e77f1b68-43a1-4598-835f-d8908b559b79","name":"e77f1b68-43a1-4598-835f-d8908b559b79","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
     {"$GMSpriteFrame":"v1","%Name":"8c79e1b5-3ae2-4cec-abb3-baaa5afaad9c","name":"8c79e1b5-3ae2-4cec-abb3-baaa5afaad9c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+    {"$GMSpriteFrame":"v1","%Name":"89aa24d8-ed91-446e-b930-b115fc5430a9","name":"89aa24d8-ed91-446e-b930-b115fc5430a9","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+    {"$GMSpriteFrame":"v1","%Name":"b4aeb4c0-3065-4f00-93e7-bcfc3748ece4","name":"b4aeb4c0-3065-4f00-93e7-bcfc3748ece4","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+    {"$GMSpriteFrame":"v1","%Name":"2540442a-0cea-4420-970e-ca205b97652a","name":"2540442a-0cea-4420-970e-ca205b97652a","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+    {"$GMSpriteFrame":"v1","%Name":"7b9f748e-23f1-4d33-ba98-1653d69529cd","name":"7b9f748e-23f1-4d33-ba98-1653d69529cd","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+    {"$GMSpriteFrame":"v1","%Name":"1ac62f0e-9aa2-4e15-8236-794449af5591","name":"1ac62f0e-9aa2-4e15-8236-794449af5591","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
   ],
   "gridX":0,
   "gridY":0,
@@ -63,7 +68,7 @@
     },
     "eventStubScript":null,
     "eventToFunction":{},
-    "length":15.0,
+    "length":20.0,
     "lockOrigin":false,
     "moments":{
       "$KeyframeStore<MomentsEventKeyframe>":"",
@@ -127,6 +132,21 @@
             {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
                 "0":{"$SpriteFrameKeyframe":"","Id":{"name":"8c79e1b5-3ae2-4cec-abb3-baaa5afaad9c","path":"sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
               },"Disabled":false,"id":"e15969f9-ce49-4477-838d-4f1af2e8d634","IsCreationKey":false,"Key":14.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"89aa24d8-ed91-446e-b930-b115fc5430a9","path":"sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"5f5da6bd-56dc-474b-bab2-01164062f5f3","IsCreationKey":false,"Key":15.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"b4aeb4c0-3065-4f00-93e7-bcfc3748ece4","path":"sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"1544b609-6073-45d6-a750-6e412aaf5b38","IsCreationKey":false,"Key":16.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"2540442a-0cea-4420-970e-ca205b97652a","path":"sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"b86ac974-a440-4123-a66b-703b2d22de2f","IsCreationKey":false,"Key":17.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"7b9f748e-23f1-4d33-ba98-1653d69529cd","path":"sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"608d7bec-55da-4a40-a568-7bd21f67a121","IsCreationKey":false,"Key":18.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"1ac62f0e-9aa2-4e15-8236-794449af5591","path":"sprites/sBossShowerheadSpawn/sBossShowerheadSpawn.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"9d801a7b-4a80-40a6-8d4f-b32891b132a7","IsCreationKey":false,"Key":19.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
           ],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
     ],
     "visibleRange":null,

BIN
sprites/sDoorLocked/98999c57-07b3-4dc3-99f6-01061c67e39c.png


BIN
sprites/sDoorLocked/layers/98999c57-07b3-4dc3-99f6-01061c67e39c/4d6ff755-545d-4ad2-b5ee-89afb209dcaa.png


+ 90 - 0
sprites/sDoorLocked/sDoorLocked.yy

@@ -0,0 +1,90 @@
+{
+  "$GMSprite":"v2",
+  "%Name":"sDoorLocked",
+  "bboxMode":1,
+  "bbox_bottom":191,
+  "bbox_left":0,
+  "bbox_right":63,
+  "bbox_top":0,
+  "collisionKind":1,
+  "collisionTolerance":0,
+  "DynamicTexturePage":false,
+  "edgeFiltering":false,
+  "For3D":false,
+  "frames":[
+    {"$GMSpriteFrame":"v1","%Name":"98999c57-07b3-4dc3-99f6-01061c67e39c","name":"98999c57-07b3-4dc3-99f6-01061c67e39c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+  ],
+  "gridX":0,
+  "gridY":0,
+  "height":192,
+  "HTile":false,
+  "layers":[
+    {"$GMImageLayer":"","%Name":"4d6ff755-545d-4ad2-b5ee-89afb209dcaa","blendMode":0,"displayName":"default","isLocked":false,"name":"4d6ff755-545d-4ad2-b5ee-89afb209dcaa","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
+  ],
+  "name":"sDoorLocked",
+  "nineSlice":null,
+  "origin":4,
+  "parent":{
+    "name":"SolidObjects",
+    "path":"folders/Objects/SolidObjects.yy",
+  },
+  "preMultiplyAlpha":false,
+  "resourceType":"GMSprite",
+  "resourceVersion":"2.0",
+  "sequence":{
+    "$GMSequence":"v1",
+    "%Name":"sDoorLocked",
+    "autoRecord":true,
+    "backdropHeight":768,
+    "backdropImageOpacity":0.5,
+    "backdropImagePath":"",
+    "backdropWidth":1366,
+    "backdropXOffset":0.0,
+    "backdropYOffset":0.0,
+    "events":{
+      "$KeyframeStore<MessageEventKeyframe>":"",
+      "Keyframes":[],
+      "resourceType":"KeyframeStore<MessageEventKeyframe>",
+      "resourceVersion":"2.0",
+    },
+    "eventStubScript":null,
+    "eventToFunction":{},
+    "length":1.0,
+    "lockOrigin":false,
+    "moments":{
+      "$KeyframeStore<MomentsEventKeyframe>":"",
+      "Keyframes":[],
+      "resourceType":"KeyframeStore<MomentsEventKeyframe>",
+      "resourceVersion":"2.0",
+    },
+    "name":"sDoorLocked",
+    "playback":1,
+    "playbackSpeed":30.0,
+    "playbackSpeedType":0,
+    "resourceType":"GMSequence",
+    "resourceVersion":"2.0",
+    "showBackdrop":true,
+    "showBackdropImage":false,
+    "timeUnits":1,
+    "tracks":[
+      {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"98999c57-07b3-4dc3-99f6-01061c67e39c","path":"sprites/sDoorLocked/sDoorLocked.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"c127d333-eb34-4646-a7f0-1636ec314435","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+          ],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
+    ],
+    "visibleRange":null,
+    "volume":1.0,
+    "xorigin":32,
+    "yorigin":96,
+  },
+  "swatchColours":null,
+  "swfPrecision":0.5,
+  "textureGroupId":{
+    "name":"Default",
+    "path":"texturegroups/Default",
+  },
+  "type":0,
+  "VTile":false,
+  "width":64,
+}

+ 0 - 0
sprites/sParentInteractive/77a13498-0f83-4365-a90a-6f333c814809.png → sprites/sInteractive/77a13498-0f83-4365-a90a-6f333c814809.png


+ 0 - 0
sprites/sParentInteractive/layers/77a13498-0f83-4365-a90a-6f333c814809/2b5d548b-d47f-41fe-a87a-7e61dfc03c9e.png → sprites/sInteractive/layers/77a13498-0f83-4365-a90a-6f333c814809/2b5d548b-d47f-41fe-a87a-7e61dfc03c9e.png


+ 5 - 5
sprites/sParentInteractive/sParentInteractive.yy → sprites/sInteractive/sInteractive.yy

@@ -1,6 +1,6 @@
 {
   "$GMSprite":"v2",
-  "%Name":"sParentInteractive",
+  "%Name":"sInteractive",
   "bboxMode":0,
   "bbox_bottom":127,
   "bbox_left":0,
@@ -21,7 +21,7 @@
   "layers":[
     {"$GMImageLayer":"","%Name":"2b5d548b-d47f-41fe-a87a-7e61dfc03c9e","blendMode":0,"displayName":"default","isLocked":false,"name":"2b5d548b-d47f-41fe-a87a-7e61dfc03c9e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
   ],
-  "name":"sParentInteractive",
+  "name":"sInteractive",
   "nineSlice":null,
   "origin":7,
   "parent":{
@@ -33,7 +33,7 @@
   "resourceVersion":"2.0",
   "sequence":{
     "$GMSequence":"v1",
-    "%Name":"sParentInteractive",
+    "%Name":"sInteractive",
     "autoRecord":true,
     "backdropHeight":768,
     "backdropImageOpacity":0.5,
@@ -57,7 +57,7 @@
       "resourceType":"KeyframeStore<MomentsEventKeyframe>",
       "resourceVersion":"2.0",
     },
-    "name":"sParentInteractive",
+    "name":"sInteractive",
     "playback":1,
     "playbackSpeed":30.0,
     "playbackSpeedType":0,
@@ -69,7 +69,7 @@
     "tracks":[
       {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
             {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
-                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"77a13498-0f83-4365-a90a-6f333c814809","path":"sprites/sParentInteractive/sParentInteractive.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"77a13498-0f83-4365-a90a-6f333c814809","path":"sprites/sInteractive/sInteractive.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
               },"Disabled":false,"id":"dd6450c6-1ddc-4d5a-8ef1-4cf4c534ab73","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
           ],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
     ],

BIN
sprites/sNPC/77a13498-0f83-4365-a90a-6f333c814809.png


BIN
sprites/sNPC/layers/77a13498-0f83-4365-a90a-6f333c814809/2b5d548b-d47f-41fe-a87a-7e61dfc03c9e.png


+ 90 - 0
sprites/sNPC/sNPC.yy

@@ -0,0 +1,90 @@
+{
+  "$GMSprite":"v2",
+  "%Name":"sNPC",
+  "bboxMode":0,
+  "bbox_bottom":127,
+  "bbox_left":0,
+  "bbox_right":127,
+  "bbox_top":0,
+  "collisionKind":1,
+  "collisionTolerance":0,
+  "DynamicTexturePage":false,
+  "edgeFiltering":false,
+  "For3D":false,
+  "frames":[
+    {"$GMSpriteFrame":"v1","%Name":"77a13498-0f83-4365-a90a-6f333c814809","name":"77a13498-0f83-4365-a90a-6f333c814809","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
+  ],
+  "gridX":0,
+  "gridY":0,
+  "height":128,
+  "HTile":false,
+  "layers":[
+    {"$GMImageLayer":"","%Name":"2b5d548b-d47f-41fe-a87a-7e61dfc03c9e","blendMode":0,"displayName":"default","isLocked":false,"name":"2b5d548b-d47f-41fe-a87a-7e61dfc03c9e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
+  ],
+  "name":"sNPC",
+  "nineSlice":null,
+  "origin":7,
+  "parent":{
+    "name":"IntractiveObjects",
+    "path":"folders/Objects/IntractiveObjects.yy",
+  },
+  "preMultiplyAlpha":false,
+  "resourceType":"GMSprite",
+  "resourceVersion":"2.0",
+  "sequence":{
+    "$GMSequence":"v1",
+    "%Name":"sNPC",
+    "autoRecord":true,
+    "backdropHeight":768,
+    "backdropImageOpacity":0.5,
+    "backdropImagePath":"",
+    "backdropWidth":1366,
+    "backdropXOffset":0.0,
+    "backdropYOffset":0.0,
+    "events":{
+      "$KeyframeStore<MessageEventKeyframe>":"",
+      "Keyframes":[],
+      "resourceType":"KeyframeStore<MessageEventKeyframe>",
+      "resourceVersion":"2.0",
+    },
+    "eventStubScript":null,
+    "eventToFunction":{},
+    "length":1.0,
+    "lockOrigin":false,
+    "moments":{
+      "$KeyframeStore<MomentsEventKeyframe>":"",
+      "Keyframes":[],
+      "resourceType":"KeyframeStore<MomentsEventKeyframe>",
+      "resourceVersion":"2.0",
+    },
+    "name":"sNPC",
+    "playback":1,
+    "playbackSpeed":30.0,
+    "playbackSpeedType":0,
+    "resourceType":"GMSequence",
+    "resourceVersion":"2.0",
+    "showBackdrop":true,
+    "showBackdropImage":false,
+    "timeUnits":1,
+    "tracks":[
+      {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
+            {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
+                "0":{"$SpriteFrameKeyframe":"","Id":{"name":"77a13498-0f83-4365-a90a-6f333c814809","path":"sprites/sNPC/sNPC.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
+              },"Disabled":false,"id":"dd6450c6-1ddc-4d5a-8ef1-4cf4c534ab73","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
+          ],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
+    ],
+    "visibleRange":null,
+    "volume":1.0,
+    "xorigin":64,
+    "yorigin":128,
+  },
+  "swatchColours":null,
+  "swfPrecision":0.5,
+  "textureGroupId":{
+    "name":"Default",
+    "path":"texturegroups/Default",
+  },
+  "type":0,
+  "VTile":false,
+  "width":128,
+}