From 6b57a1eecc4149b9f38d817937d3e20e7ee9804c Mon Sep 17 00:00:00 2001 From: Jacob Wilson Date: Tue, 29 Oct 2024 10:27:55 -0500 Subject: [PATCH 1/3] Created the extended campus map --- .../campusTreeInteraction.interactions.js | 0 .../map_extended_campus/enterMapCityLeft.interactions.js | 5 +++++ .../map_extended_campus/enterMapCityTop.interactions.js | 5 +++++ .../map_extended_campus/fountainInteraction.interactions.js | 0 src/interactions/map_extended_campus/index.js | 6 ++++++ .../map_extended_campus/signLeftInteraction.interactions.js | 0 .../signRightInteraction.interactions.js | 0 .../map_extended_campus/treeSignInteraction.interactions.js | 0 8 files changed, 16 insertions(+) create mode 100644 src/interactions/map_extended_campus/campusTreeInteraction.interactions.js create mode 100644 src/interactions/map_extended_campus/enterMapCityLeft.interactions.js create mode 100644 src/interactions/map_extended_campus/enterMapCityTop.interactions.js create mode 100644 src/interactions/map_extended_campus/fountainInteraction.interactions.js create mode 100644 src/interactions/map_extended_campus/index.js create mode 100644 src/interactions/map_extended_campus/signLeftInteraction.interactions.js create mode 100644 src/interactions/map_extended_campus/signRightInteraction.interactions.js create mode 100644 src/interactions/map_extended_campus/treeSignInteraction.interactions.js diff --git a/src/interactions/map_extended_campus/campusTreeInteraction.interactions.js b/src/interactions/map_extended_campus/campusTreeInteraction.interactions.js new file mode 100644 index 00000000..e69de29b diff --git a/src/interactions/map_extended_campus/enterMapCityLeft.interactions.js b/src/interactions/map_extended_campus/enterMapCityLeft.interactions.js new file mode 100644 index 00000000..9370d4e1 --- /dev/null +++ b/src/interactions/map_extended_campus/enterMapCityLeft.interactions.js @@ -0,0 +1,5 @@ +export const enterMapCityLeft = (player, k) => { + player.onCollide('enter_map_city', () => { + k.go('city', 'spawn_extended_campus'); + }); +}; diff --git a/src/interactions/map_extended_campus/enterMapCityTop.interactions.js b/src/interactions/map_extended_campus/enterMapCityTop.interactions.js new file mode 100644 index 00000000..d577e81c --- /dev/null +++ b/src/interactions/map_extended_campus/enterMapCityTop.interactions.js @@ -0,0 +1,5 @@ +export const enterMapCityTop = (player, k) => { + player.onCollide('enter_map_city_top', () => { + k.go('city', 'spawn_right'); + }); +}; diff --git a/src/interactions/map_extended_campus/fountainInteraction.interactions.js b/src/interactions/map_extended_campus/fountainInteraction.interactions.js new file mode 100644 index 00000000..e69de29b diff --git a/src/interactions/map_extended_campus/index.js b/src/interactions/map_extended_campus/index.js new file mode 100644 index 00000000..5f3dc003 --- /dev/null +++ b/src/interactions/map_extended_campus/index.js @@ -0,0 +1,6 @@ +import { enterMapCityLeft } from './enterMapCityLeft.interactions'; +import { enterMapCityTop } from './enterMapCityTop.interactions'; + +const interactions = [enterMapCityLeft, enterMapCityTop]; + +export default interactions; diff --git a/src/interactions/map_extended_campus/signLeftInteraction.interactions.js b/src/interactions/map_extended_campus/signLeftInteraction.interactions.js new file mode 100644 index 00000000..e69de29b diff --git a/src/interactions/map_extended_campus/signRightInteraction.interactions.js b/src/interactions/map_extended_campus/signRightInteraction.interactions.js new file mode 100644 index 00000000..e69de29b diff --git a/src/interactions/map_extended_campus/treeSignInteraction.interactions.js b/src/interactions/map_extended_campus/treeSignInteraction.interactions.js new file mode 100644 index 00000000..e69de29b From 3c482df065be83eafb93e26226b7198a1666b92a Mon Sep 17 00:00:00 2001 From: Jacob Wilson Date: Tue, 29 Oct 2024 10:28:37 -0500 Subject: [PATCH 2/3] Created the extended campus map --- public/exports/maps/map_extended_campus.png | Bin 0 -> 27082 bytes public/maps/map_city.json | 31 +- public/maps/map_extended_campus.json | 913 ++++++++++++++++++ src/core/kaplay/sounds/index.js | 1 + src/gameObjects/map_extended_campus/index.js | 3 + .../enterMapExtendCampusTop.interactions.js | 5 + .../enterMapExtendedCampus.interactions.js | 5 + src/interactions/map_city/index.js | 4 + src/main.js | 4 + src/scenes/extended_campus.js | 22 + 10 files changed, 984 insertions(+), 4 deletions(-) create mode 100644 public/exports/maps/map_extended_campus.png create mode 100644 public/maps/map_extended_campus.json create mode 100644 src/gameObjects/map_extended_campus/index.js create mode 100644 src/interactions/map_city/enterMapExtendCampusTop.interactions.js create mode 100644 src/interactions/map_city/enterMapExtendedCampus.interactions.js create mode 100644 src/scenes/extended_campus.js diff --git a/public/exports/maps/map_extended_campus.png b/public/exports/maps/map_extended_campus.png new file mode 100644 index 0000000000000000000000000000000000000000..4bae620edb1d1cf28afa49aecaa1af0c3d313959 GIT binary patch literal 27082 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 XD|GD+PY?NWCV;Ny6OA%8>!AMuZ-TTm literal 0 HcmV?d00001 diff --git a/public/maps/map_city.json b/public/maps/map_city.json index 4bc2d504..340b3ebc 100644 --- a/public/maps/map_city.json +++ b/public/maps/map_city.json @@ -1985,6 +1985,18 @@ "width":0, "x":167.549668874172, "y":99.3377483443709 + }, + { + "height":0, + "id":476, + "name":"spawn_extended_campus", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":928, + "y":560 }], "opacity":1, "properties":[ @@ -1994,7 +2006,7 @@ "value":false }], "type":"objectgroup", - "visible":true, + "visible":false, "x":0, "y":0 }, @@ -3669,7 +3681,7 @@ "value":true }], "type":"objectgroup", - "visible":true, + "visible":false, "x":0, "y":0 }, @@ -3827,6 +3839,17 @@ "width":16, "x":160, "y":66 + }, + { + "height":64, + "id":475, + "name":"enter_map_extended_campus", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":944, + "y":544 }], "opacity":1, "properties":[ @@ -3841,12 +3864,12 @@ "value":false }], "type":"objectgroup", - "visible":true, + "visible":false, "x":0, "y":0 }], "nextlayerid":49, - "nextobjectid":475, + "nextobjectid":477, "orientation":"orthogonal", "renderorder":"right-down", "tiledversion":"1.11.0", diff --git a/public/maps/map_extended_campus.json b/public/maps/map_extended_campus.json new file mode 100644 index 00000000..2e7ad823 --- /dev/null +++ b/public/maps/map_extended_campus.json @@ -0,0 +1,913 @@ +{ "compressionlevel":-1, + "height":20, + "infinite":false, + "layers":[ + { + "data":[927, 927, 927, 928, 748, 1005, 748, 889, 889, 889, 889, 889, 890, 748, 889, 889, 889, 889, 889, 889, + 889, 889, 890, 965, 748, 935, 748, 889, 889, 889, 889, 889, 890, 748, 889, 889, 889, 889, 889, 889, + 889, 889, 890, 965, 748, 935, 748, 889, 889, 889, 889, 889, 890, 748, 889, 889, 889, 889, 889, 889, + 889, 889, 890, 965, 748, 935, 748, 889, 889, 889, 889, 889, 890, 748, 889, 889, 889, 889, 889, 889, + 889, 889, 890, 965, 748, 935, 748, 748, 748, 748, 748, 748, 748, 748, 889, 889, 889, 889, 889, 889, + 889, 889, 890, 965, 748, 963, 927, 927, 928, 748, 748, 926, 927, 928, 889, 889, 889, 889, 889, 889, + 889, 889, 890, 965, 748, 963, 889, 889, 965, 748, 748, 963, 889, 965, 889, 889, 881, 882, 889, 889, + 889, 889, 890, 965, 748, 963, 889, 889, 1002, 748, 748, 1000, 889, 965, 889, 889, 889, 889, 889, 889, + 889, 889, 889, 965, 748, 1000, 1001, 1002, 710, 748, 748, 748, 1000, 1002, 889, 889, 889, 889, 889, 889, + 889, 889, 889, 965, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, + 889, 889, 889, 965, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, + 889, 889, 889, 965, 748, 926, 927, 928, 748, 748, 748, 748, 926, 927, 927, 927, 927, 927, 927, 928, + 889, 889, 889, 965, 748, 963, 889, 965, 748, 926, 928, 748, 963, 889, 889, 889, 889, 889, 889, 965, + 1001, 1001, 1001, 1002, 748, 963, 889, 965, 748, 963, 965, 748, 963, 889, 889, 889, 889, 889, 889, 965, + 748, 748, 748, 748, 748, 963, 889, 1002, 748, 963, 965, 748, 1000, 889, 889, 889, 889, 889, 889, 965, + 927, 927, 927, 928, 748, 963, 965, 748, 748, 963, 965, 748, 748, 963, 889, 889, 889, 889, 889, 965, + 889, 889, 889, 965, 748, 963, 965, 748, 926, 889, 889, 928, 748, 963, 889, 889, 889, 889, 889, 965, + 889, 889, 889, 965, 748, 963, 965, 748, 963, 889, 889, 965, 748, 963, 889, 889, 889, 889, 889, 965, + 889, 889, 889, 965, 748, 963, 965, 748, 963, 889, 889, 965, 748, 963, 889, 889, 889, 889, 889, 965, + 889, 889, 889, 1002, 748, 1000, 1002, 748, 1000, 1001, 1001, 1002, 748, 1000, 1001, 1001, 1001, 1001, 1001, 1002], + "height":20, + "id":1, + "name":"ground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":20, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, 354, 354, 354, 354, 355, + 0, 0, 0, 0, 0, 0, 0, 0, 1037, 1038, 1039, 1040, 0, 0, 353, 354, 354, 354, 354, 355, + 0, 0, 0, 0, 0, 0, 0, 0, 1041, 1042, 1043, 1044, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1045, 1046, 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1049, 1050, 1051, 1052, 517, 0, 514, 0, 0, 517, 0, 514, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 514, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 513, 0, 0, 0, 0, 0, + 574, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 0, 0, + 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, + 0, 0, 404, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, + 514, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, 0, 0, 0, 514, 0, 0, + 1436, 1436, 1436, 1437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 515, 0, 0, 516], + "height":20, + "id":2, + "name":"props", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":20, + "x":0, + "y":0 + }, + { + "data":[1368, 1369, 1369, 1370, 0, 1285, 0, 1188, 1189, 1190, 1196, 1197, 1198, 0, 1196, 1197, 1197, 1197, 1197, 1198, + 1395, 1396, 1396, 1397, 0, 1312, 0, 1178, 1179, 1180, 1070, 1071, 1072, 0, 195, 196, 196, 196, 196, 197, + 1422, 1423, 1423, 1424, 0, 0, 0, 1232, 1233, 1234, 1124, 1125, 1126, 0, 195, 196, 196, 196, 196, 197, + 0, 0, 0, 1303, 0, 0, 0, 1259, 1260, 1261, 1151, 1152, 1153, 0, 195, 196, 196, 196, 196, 197, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 196, 196, 196, 196, 197, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 270, 270, 270, 270, 271, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 307, 307, 307, 307, 308, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 175, 176, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 212, 1860, 1860, 214, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 212, 1860, 1860, 214, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 249, 250, 250, 251, 0, 0, 0, 0, 0, 0, 0, 0], + "height":20, + "id":3, + "name":"buildings", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":20, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":6, + "name":"buildingDecorations", + "objects":[ + { + "gid":1336, + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":-8, + "y":224 + }, + { + "gid":547, + "height":16, + "id":2, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":160 + }, + { + "gid":1336, + "height":16, + "id":3, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":128, + "y":64 + }, + { + "gid":1336, + "height":16, + "id":4, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":176, + "y":64 + }, + { + "gid":882, + "height":16, + "id":11, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":272, + "y":112 + }, + { + "gid":2147484530, + "height":16, + "id":12, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":256, + "y":112 + }, + { + "gid":620, + "height":16, + "id":13, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":248, + "y":44 + }, + { + "gid":620, + "height":16, + "id":14, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":280, + "y":44 + }, + { + "gid":1539, + "height":16, + "id":15, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":264, + "y":72 + }, + { + "gid":182, + "height":16, + "id":16, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":304, + "y":112 + }, + { + "gid":180, + "height":16, + "id":17, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":288, + "y":112 + }, + { + "gid":217, + "height":16, + "id":18, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":224, + "y":112 + }, + { + "gid":219, + "height":16, + "id":19, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":240, + "y":112 + }, + { + "gid":331, + "height":16, + "id":20, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":240, + "y":80 + }, + { + "gid":294, + "height":16, + "id":21, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":240, + "y":64 + }, + { + "gid":332, + "height":16, + "id":22, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":288, + "y":80 + }, + { + "gid":333, + "height":16, + "id":23, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":304, + "y":80 + }, + { + "gid":619, + "height":16, + "id":24, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":168, + "y":44 + }, + { + "gid":619, + "height":16, + "id":25, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":120, + "y":44 + }, + { + "gid":3221225685, + "height":16, + "id":26, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":160, + "y":304 + }, + + { + "gid":1073742037, + "height":16, + "id":27, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":144, + "y":304 + }, + { + "gid":213, + "height":16, + "id":28, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":144, + "y":288 + }, + { + "gid":2147483861, + "height":16, + "id":29, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":160, + "y":288 + }, + { + "gid":252, + "height":16, + "id":30, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":152, + "y":296 + }, + { + "gid":2207, + "height":16, + "id":31, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":104, + "y":216 + }, + { + "gid":2206, + "height":16, + "id":32, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":88, + "y":216 + }, + { + "gid":2190, + "height":16, + "id":33, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":88, + "y":200 + }, + { + "gid":2191, + "height":16, + "id":34, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":104, + "y":200 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":7, + "name":"map_boundaries", + "objects":[ + { + "height":208, + "id":36, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":8, + "x":312, + "y":112 + }, + { + "height":8, + "id":37, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":320, + "x":0, + "y":312 + }, + { + "height":320, + "id":38, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":8, + "x":0, + "y":0 + }, + { + "height":8, + "id":39, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":320, + "x":0, + "y":0 + }], + "opacity":1, + "properties":[ + { + "name":"isStatic", + "type":"bool", + "value":true + }], + "type":"objectgroup", + "visible":false, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":12, + "name":"building_boundaries", + "objects":[ + { + "height":104, + "id":40, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":96, + "x":224, + "y":0 + }, + { + "height":56, + "id":42, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":96, + "x":112, + "y":0 + }, + { + "height":32, + "id":43, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":80, + "y":0 + }, + { + "height":48, + "id":44, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":64, + "x":0, + "y":0 + }, + { + "height":80, + "id":45, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":144 + }, + { + "height":16, + "id":46, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":96, + "y":192 + }, + { + "height":32, + "id":47, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":32, + "y":272 + }, + { + "height":16, + "id":48, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":288 + }, + { + "height":60, + "id":49, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":60, + "x":130, + "y":258 + }], + "opacity":1, + "properties":[ + { + "name":"isStatic", + "type":"bool", + "value":true + }], + "type":"objectgroup", + "visible":false, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":8, + "name":"enter_new_map_boundaries", + "objects":[ + { + "height":64, + "id":50, + "name":"enter_map_city", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":224 + }, + { + "height":16, + "id":51, + "name":"enter_map_orange_house", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":128, + "y":48 + }, + { + "height":16, + "id":52, + "name":"enter_map_red_house", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":176, + "y":48 + }, + { + "height":16, + "id":53, + "name":"enter_map_realtor_office", + "rotation":0, + "type":"", + "visible":true, + "width":32, + "x":256, + "y":96 + }, + { + "height":16, + "id":65, + "name":"enter_map_city_top", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":64, + "y":0 + }, + { + "height":16, + "id":66, + "name":"enter_map_city_top", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":96, + "y":0 + }, + { + "height":16, + "id":67, + "name":"enter_map_city_top", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":208, + "y":0 + }], + "opacity":1, + "properties":[ + { + "name":"isStatic", + "type":"bool", + "value":false + }], + "type":"objectgroup", + "visible":false, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":9, + "name":"spawnpoints", + "objects":[ + { + "height":0, + "id":54, + "name":"player", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":32, + "y":232 + }, + { + "height":0, + "id":55, + "name":"spawn_left", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":40, + "y":232 + }, + { + "height":0, + "id":56, + "name":"spawn_realtor_office", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":272, + "y":128 + }, + { + "height":0, + "id":57, + "name":"spawn_orange_house", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":136, + "y":80 + }, + { + "height":0, + "id":58, + "name":"spawn_red_house", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":184, + "y":80 + }, + { + "height":0, + "id":68, + "name":"spawn_extended_campus_top", + "point":true, + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":72, + "y":48 + }], + "opacity":1, + "properties":[ + { + "name":"isStatic", + "type":"bool", + "value":false + }], + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":10, + "name":"interaction_objects", + "objects":[ + { + "height":16, + "id":60, + "name":"tree_sign", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":48, + "y":48 + }, + { + "height":36, + "id":61, + "name":"campus_tree", + "rotation":0, + "type":"", + "visible":true, + "width":36, + "x":86, + "y":182 + }, + { + "height":60, + "id":62, + "name":"fountain", + "rotation":0, + "type":"", + "visible":true, + "width":60, + "x":130, + "y":258 + }, + { + "height":16, + "id":63, + "name":"sign_left", + "rotation":0, + "type":"", + "visible":true, + "width":32, + "x":224, + "y":96 + }, + { + "height":16, + "id":64, + "name":"sign_right", + "rotation":0, + "type":"", + "visible":true, + "width":32, + "x":288, + "y":96 + }], + "opacity":1, + "properties":[ + { + "name":"isStatic", + "type":"bool", + "value":true + }], + "type":"objectgroup", + "visible":false, + "x":0, + "y":0 + }], + "nextlayerid":13, + "nextobjectid":69, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.11.0", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "source":"..\/..\/..\/..\/..\/Tiled\/tilesets\/map_city.tsx" + }, + { + "firstgid":1037, + "source":"..\/..\/..\/..\/..\/Tiled\/maps\/ztm_logo_64x64.tsx" + }, + { + "firstgid":1053, + "source":"..\/..\/..\/..\/..\/Tiled\/tilesets\/city_tiles.tsx" + }, + { + "firstgid":1539, + "source":"..\/..\/..\/..\/..\/Tiled\/maps\/ztm_logo.tsx" + }, + { + "firstgid":1540, + "source":"..\/..\/..\/..\/..\/Tiled\/tilesets\/map_city_dungeon.tsx" + }, + { + "firstgid":2062, + "source":"..\/..\/..\/..\/..\/Tiled\/forest_tiles.tsx" + }], + "tilewidth":16, + "type":"map", + "version":"1.10", + "width":20 +} \ No newline at end of file diff --git a/src/core/kaplay/sounds/index.js b/src/core/kaplay/sounds/index.js index 2457dad4..ca85228b 100644 --- a/src/core/kaplay/sounds/index.js +++ b/src/core/kaplay/sounds/index.js @@ -1,3 +1,4 @@ export const addSceneSounds = (sounds, k, map) => { + if (sounds === undefined) return; sounds.forEach((triggerSound) => triggerSound(k, map)); }; diff --git a/src/gameObjects/map_extended_campus/index.js b/src/gameObjects/map_extended_campus/index.js new file mode 100644 index 00000000..9e5525bd --- /dev/null +++ b/src/gameObjects/map_extended_campus/index.js @@ -0,0 +1,3 @@ +const gameObjects = []; + +export default gameObjects; diff --git a/src/interactions/map_city/enterMapExtendCampusTop.interactions.js b/src/interactions/map_city/enterMapExtendCampusTop.interactions.js new file mode 100644 index 00000000..3fde0927 --- /dev/null +++ b/src/interactions/map_city/enterMapExtendCampusTop.interactions.js @@ -0,0 +1,5 @@ +export const enterMapExtendedCampusTop = (player, k) => { + player.onCollide('enter_map_right', () => { + k.go('extended_campus', 'spawn_extended_campus_top'); + }); +}; diff --git a/src/interactions/map_city/enterMapExtendedCampus.interactions.js b/src/interactions/map_city/enterMapExtendedCampus.interactions.js new file mode 100644 index 00000000..2124e558 --- /dev/null +++ b/src/interactions/map_city/enterMapExtendedCampus.interactions.js @@ -0,0 +1,5 @@ +export const enterMapExtendedCampus = (player, k) => { + player.onCollide('enter_map_extended_campus', () => { + k.go('extended_campus'); + }); +}; diff --git a/src/interactions/map_city/index.js b/src/interactions/map_city/index.js index 342bb881..2891c206 100644 --- a/src/interactions/map_city/index.js +++ b/src/interactions/map_city/index.js @@ -13,6 +13,8 @@ import { import { stall1Interaction, stall2Interaction } from './stalls.interaction'; import { enterMapClassroomInteraction } from './enterMapClassroomInteraction.interactions'; import { enterMapSeasideInteraction } from './enterMapSeasideInteraction.interactions'; +import { enterMapExtendedCampus } from './enterMapExtendedCampus.interactions'; +import { enterMapExtendedCampusTop } from './enterMapExtendCampusTop.interactions'; const interactions = [ enterMapArcadeInteraction, @@ -21,6 +23,8 @@ const interactions = [ enterMapForestJunctionInteraction, enterMapClassroomInteraction, enterMapSeasideInteraction, + enterMapExtendedCampus, + enterMapExtendedCampusTop, boundaryBurgerBarInteraction, boundaryArcadeInteraction, snackBarRedInteraction, diff --git a/src/main.js b/src/main.js index d5689c71..e434376c 100644 --- a/src/main.js +++ b/src/main.js @@ -20,6 +20,7 @@ import { loseScreen } from './scenes/gameMachine/lose'; import { classroom } from './scenes/classroom'; import { seaside } from './scenes/seaside'; import { downtown } from './scenes/downtown'; +import { extendedCampus } from './scenes/extended_campus'; k.scene('start', (enter_tag) => bootstrap(start, { enter_tag })); k.scene('city', (enter_tag) => bootstrap(city, { enter_tag })); @@ -34,6 +35,9 @@ k.scene('campus_house_1', (enter_tag) => k.scene('classroom', (enter_tag) => bootstrap(classroom, { enter_tag })); k.scene('seaside', (enter_tag) => bootstrap(seaside, { enter_tag })); k.scene('downtown', (enter_tag) => bootstrap(downtown, { enter_tag })); +k.scene('extended_campus', (enter_tag) => + bootstrap(extendedCampus, { enter_tag }) +); k.scene('fishing', (enter_tag) => miniGameBootstrap(fishing, { enter_tag })); // Game Machine Scenes diff --git a/src/scenes/extended_campus.js b/src/scenes/extended_campus.js new file mode 100644 index 00000000..6293e3b9 --- /dev/null +++ b/src/scenes/extended_campus.js @@ -0,0 +1,22 @@ +import gameObjects from '../gameObjects/map_extended_campus'; +import { initMap } from '../init/map.init'; +import interactions from '../interactions/map_extended_campus'; + +export async function extendedCampus() { + const objectConfig = { + static: [ + 'map_boundaries', + 'building_boundaries', + 'enter_new_map_boundaries', + ], + spawnpoints: ['spawnpoints'], + interactionObjects: ['interaction_objects'], + }; + const [map, spawnpoint] = await initMap( + objectConfig, + './exports/maps/map_extended_campus.png', + './maps/map_extended_campus.json' + ); + + return [map, spawnpoint, gameObjects, interactions]; +} From 90ce6c73acd14072fd33d56446f35622d3813699 Mon Sep 17 00:00:00 2001 From: Jacob Wilson Date: Wed, 30 Oct 2024 10:58:13 -0500 Subject: [PATCH 3/3] Added extended campus interactions --- .../campusTreeInteraction.interactions.js | 14 ++++++++++++++ .../fountainInteraction.interactions.js | 14 ++++++++++++++ src/interactions/map_extended_campus/index.js | 15 ++++++++++++++- .../signLeftInteraction.interactions.js | 12 ++++++++++++ .../signRightInteraction.interactions.js | 14 ++++++++++++++ .../treeSignInteraction.interactions.js | 15 +++++++++++++++ 6 files changed, 83 insertions(+), 1 deletion(-) diff --git a/src/interactions/map_extended_campus/campusTreeInteraction.interactions.js b/src/interactions/map_extended_campus/campusTreeInteraction.interactions.js index e69de29b..cb29f170 100644 --- a/src/interactions/map_extended_campus/campusTreeInteraction.interactions.js +++ b/src/interactions/map_extended_campus/campusTreeInteraction.interactions.js @@ -0,0 +1,14 @@ +import { interactionHandler } from '../handler.interactions'; +import { displayDialogue } from '../../utils'; + +export const campusTreeInteraction = (player, k) => { + interactionHandler(player, 'campus_tree', k, async () => { + displayDialogue({ + k, + player, + text: [ + 'The tree seems to emit a faint glow. There are carvings on its trunk, suggesting that students from years past have left messages or markings here.', + ], + }); + }); +}; diff --git a/src/interactions/map_extended_campus/fountainInteraction.interactions.js b/src/interactions/map_extended_campus/fountainInteraction.interactions.js index e69de29b..f3e25e45 100644 --- a/src/interactions/map_extended_campus/fountainInteraction.interactions.js +++ b/src/interactions/map_extended_campus/fountainInteraction.interactions.js @@ -0,0 +1,14 @@ +import { interactionHandler } from '../handler.interactions'; +import { displayDialogue } from '../../utils'; + +export const fountainInteraction = (player, k) => { + interactionHandler(player, 'fountain', k, async () => { + displayDialogue({ + k, + player, + text: [ + 'The fountain\'s gentle flow seems to whisper, "May your journey be as calm as these waters."', + ], + }); + }); +}; diff --git a/src/interactions/map_extended_campus/index.js b/src/interactions/map_extended_campus/index.js index 5f3dc003..16366c57 100644 --- a/src/interactions/map_extended_campus/index.js +++ b/src/interactions/map_extended_campus/index.js @@ -1,6 +1,19 @@ import { enterMapCityLeft } from './enterMapCityLeft.interactions'; import { enterMapCityTop } from './enterMapCityTop.interactions'; +import { campusTreeInteraction } from './campusTreeInteraction.interactions'; +import { fountainInteraction } from './fountainInteraction.interactions'; +import { signLeftInteraction } from './signLeftInteraction.interactions'; +import { signRightInteraction } from './signRightInteraction.interactions'; +import { treeSignInteraction } from './treeSignInteraction.interactions'; -const interactions = [enterMapCityLeft, enterMapCityTop]; +const interactions = [ + enterMapCityLeft, + enterMapCityTop, + campusTreeInteraction, + fountainInteraction, + signLeftInteraction, + signRightInteraction, + treeSignInteraction, +]; export default interactions; diff --git a/src/interactions/map_extended_campus/signLeftInteraction.interactions.js b/src/interactions/map_extended_campus/signLeftInteraction.interactions.js index e69de29b..b4bc1b64 100644 --- a/src/interactions/map_extended_campus/signLeftInteraction.interactions.js +++ b/src/interactions/map_extended_campus/signLeftInteraction.interactions.js @@ -0,0 +1,12 @@ +import { interactionHandler } from '../handler.interactions'; +import { displayDialogue } from '../../utils'; + +export const signLeftInteraction = (player, k) => { + interactionHandler(player, 'sign_left', k, async () => { + displayDialogue({ + k, + player, + text: ['"Finding your dream home, one step at a time."'], + }); + }); +}; diff --git a/src/interactions/map_extended_campus/signRightInteraction.interactions.js b/src/interactions/map_extended_campus/signRightInteraction.interactions.js index e69de29b..2d5e879c 100644 --- a/src/interactions/map_extended_campus/signRightInteraction.interactions.js +++ b/src/interactions/map_extended_campus/signRightInteraction.interactions.js @@ -0,0 +1,14 @@ +import { interactionHandler } from '../handler.interactions'; +import { displayDialogue } from '../../utils'; + +export const signRightInteraction = (player, k) => { + interactionHandler(player, 'sign_right', k, async () => { + displayDialogue({ + k, + player, + text: [ + '"Your future awaits—let us help you find the perfect place to call home."', + ], + }); + }); +}; diff --git a/src/interactions/map_extended_campus/treeSignInteraction.interactions.js b/src/interactions/map_extended_campus/treeSignInteraction.interactions.js index e69de29b..78e65cba 100644 --- a/src/interactions/map_extended_campus/treeSignInteraction.interactions.js +++ b/src/interactions/map_extended_campus/treeSignInteraction.interactions.js @@ -0,0 +1,15 @@ +import { interactionHandler } from '../handler.interactions'; +import { displayDialogue } from '../../utils'; + +export const treeSignInteraction = (player, k) => { + interactionHandler(player, 'tree_sign', k, async () => { + displayDialogue({ + k, + player, + text: [ + 'These trees were planted by students, each one a symbol of growth, resilience, and hope for the future.', + 'May they stand tall and strong, shading those who come after.', + ], + }); + }); +};