diff --git a/Cargo.toml b/Cargo.toml index 853d3d3..e7bbe5a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "ludum-dare-48" +name = "one-breath" version = "0.1.0" authors = ["Evan Pratten "] edition = "2018" diff --git a/assets/img/map/cave.json b/assets/img/map/cave.json index 2204b46..3fdba6c 100644 --- a/assets/img/map/cave.json +++ b/assets/img/map/cave.json @@ -1 +1 @@ -[{"x":95,"y":25,"w":190,"h":50},{"x":500,"y":30,"w":440,"h":60},{"x":90,"y":80,"w":180,"h":60},{"x":305,"y":70,"w":10,"h":20},{"x":525,"y":65,"w":390,"h":10},{"x":530,"y":75,"w":380,"h":10},{"x":385,"y":85,"w":10,"h":10},{"x":435,"y":85,"w":30,"h":10},{"x":470,"y":85,"w":20,"h":10},{"x":615,"y":85,"w":210,"h":10},{"x":190,"y":95,"w":20,"h":10},{"x":435,"y":95,"w":10,"h":10},{"x":475,"y":100,"w":10,"h":20},{"x":525,"y":100,"w":10,"h":20},{"x":640,"y":95,"w":160,"h":10},{"x":200,"y":105,"w":20,"h":10},{"x":500,"y":105,"w":20,"h":10},{"x":575,"y":105,"w":30,"h":10},{"x":660,"y":105,"w":120,"h":10},{"x":75,"y":170,"w":150,"h":120},{"x":175,"y":120,"w":10,"h":20},{"x":205,"y":115,"w":10,"h":10},{"x":495,"y":120,"w":10,"h":20},{"x":520,"y":115,"w":20,"h":10},{"x":585,"y":130,"w":10,"h":40},{"x":665,"y":115,"w":110,"h":10},{"x":155,"y":125,"w":10,"h":10},{"x":190,"y":125,"w":20,"h":10},{"x":505,"y":130,"w":10,"h":20},{"x":525,"y":125,"w":10,"h":10},{"x":660,"y":125,"w":120,"h":10},{"x":185,"y":135,"w":50,"h":10},{"x":520,"y":135,"w":20,"h":10},{"x":595,"y":135,"w":10,"h":10},{"x":665,"y":135,"w":110,"h":10},{"x":155,"y":145,"w":10,"h":10},{"x":220,"y":145,"w":20,"h":10},{"x":670,"y":145,"w":100,"h":10},{"x":155,"y":155,"w":10,"h":10},{"x":190,"y":155,"w":40,"h":10},{"x":225,"y":155,"w":10,"h":10},{"x":355,"y":160,"w":10,"h":20},{"x":645,"y":155,"w":150,"h":10},{"x":200,"y":165,"w":100,"h":10},{"x":565,"y":170,"w":10,"h":20},{"x":600,"y":175,"w":20,"h":30},{"x":670,"y":165,"w":100,"h":10},{"x":210,"y":175,"w":120,"h":10},{"x":345,"y":175,"w":50,"h":10},{"x":415,"y":175,"w":10,"h":10},{"x":575,"y":180,"w":10,"h":20},{"x":665,"y":175,"w":110,"h":10},{"x":285,"y":185,"w":270,"h":10},{"x":545,"y":185,"w":30,"h":10},{"x":665,"y":185,"w":110,"h":10},{"x":295,"y":195,"w":290,"h":10},{"x":525,"y":195,"w":10,"h":10},{"x":630,"y":195,"w":180,"h":10},{"x":305,"y":205,"w":310,"h":10},{"x":545,"y":210,"w":10,"h":20},{"x":640,"y":205,"w":160,"h":10},{"x":185,"y":215,"w":70,"h":10},{"x":355,"y":215,"w":230,"h":10},{"x":555,"y":215,"w":10,"h":10},{"x":645,"y":215,"w":150,"h":10},{"x":160,"y":225,"w":20,"h":10},{"x":270,"y":225,"w":20,"h":10},{"x":380,"y":225,"w":180,"h":10},{"x":660,"y":225,"w":120,"h":10},{"x":70,"y":255,"w":140,"h":50},{"x":410,"y":235,"w":120,"h":10},{"x":665,"y":240,"w":110,"h":20},{"x":385,"y":245,"w":70,"h":10},{"x":590,"y":255,"w":20,"h":30},{"x":390,"y":255,"w":20,"h":10},{"x":670,"y":260,"w":100,"h":20},{"x":605,"y":265,"w":10,"h":10},{"x":655,"y":295,"w":130,"h":50},{"x":65,"y":285,"w":130,"h":10},{"x":60,"y":295,"w":120,"h":10},{"x":55,"y":305,"w":110,"h":10},{"x":410,"y":315,"w":20,"h":30},{"x":50,"y":365,"w":100,"h":110},{"x":510,"y":320,"w":40,"h":20},{"x":355,"y":325,"w":10,"h":10},{"x":650,"y":330,"w":140,"h":20},{"x":285,"y":335,"w":30,"h":10},{"x":380,"y":335,"w":100,"h":10},{"x":515,"y":350,"w":70,"h":40},{"x":340,"y":345,"w":160,"h":10},{"x":635,"y":345,"w":170,"h":10},{"x":335,"y":355,"w":170,"h":10},{"x":635,"y":355,"w":170,"h":10},{"x":330,"y":365,"w":180,"h":10},{"x":560,"y":370,"w":20,"h":20},{"x":650,"y":370,"w":140,"h":20},{"x":325,"y":375,"w":190,"h":10},{"x":485,"y":375,"w":10,"h":10},{"x":520,"y":375,"w":40,"h":10},{"x":285,"y":385,"w":110,"h":10},{"x":395,"y":385,"w":10,"h":10},{"x":515,"y":385,"w":10,"h":10},{"x":660,"y":395,"w":120,"h":30},{"x":105,"y":395,"w":10,"h":10},{"x":285,"y":400,"w":130,"h":20},{"x":580,"y":405,"w":20,"h":30},{"x":525,"y":405,"w":10,"h":10},{"x":170,"y":430,"w":20,"h":40},{"x":295,"y":425,"w":130,"h":30},{"x":520,"y":415,"w":20,"h":10},{"x":655,"y":415,"w":130,"h":10},{"x":45,"y":625,"w":90,"h":410},{"x":505,"y":425,"w":30,"h":10},{"x":650,"y":430,"w":140,"h":20},{"x":185,"y":435,"w":10,"h":10},{"x":375,"y":435,"w":30,"h":10},{"x":430,"y":435,"w":40,"h":10},{"x":495,"y":450,"w":10,"h":40},{"x":185,"y":445,"w":10,"h":10},{"x":245,"y":455,"w":30,"h":30},{"x":360,"y":445,"w":180,"h":10},{"x":530,"y":445,"w":20,"h":10},{"x":665,"y":445,"w":110,"h":10},{"x":180,"y":485,"w":20,"h":70},{"x":215,"y":460,"w":10,"h":20},{"x":305,"y":455,"w":90,"h":10},{"x":420,"y":455,"w":80,"h":10},{"x":535,"y":460,"w":10,"h":20},{"x":660,"y":465,"w":120,"h":30},{"x":305,"y":465,"w":90,"h":10},{"x":365,"y":470,"w":10,"h":20},{"x":385,"y":465,"w":10,"h":10},{"x":440,"y":470,"w":40,"h":20},{"x":505,"y":475,"w":10,"h":30},{"x":260,"y":475,"w":80,"h":10},{"x":330,"y":475,"w":40,"h":10},{"x":380,"y":475,"w":20,"h":10},{"x":520,"y":475,"w":20,"h":10},{"x":265,"y":485,"w":70,"h":10},{"x":315,"y":495,"w":10,"h":30},{"x":435,"y":485,"w":30,"h":10},{"x":515,"y":485,"w":10,"h":10},{"x":650,"y":485,"w":140,"h":10},{"x":265,"y":495,"w":50,"h":10},{"x":640,"y":505,"w":160,"h":30},{"x":195,"y":505,"w":10,"h":10},{"x":280,"y":510,"w":20,"h":20},{"x":195,"y":515,"w":10,"h":10},{"x":190,"y":535,"w":20,"h":30},{"x":580,"y":525,"w":20,"h":10},{"x":660,"y":535,"w":120,"h":30},{"x":575,"y":535,"w":10,"h":10},{"x":185,"y":555,"w":30,"h":10},{"x":320,"y":570,"w":20,"h":40},{"x":430,"y":565,"w":20,"h":30},{"x":650,"y":555,"w":140,"h":10},{"x":180,"y":580,"w":20,"h":40},{"x":450,"y":565,"w":20,"h":10},{"x":645,"y":565,"w":150,"h":10},{"x":95,"y":575,"w":10,"h":10},{"x":285,"y":580,"w":30,"h":20},{"x":335,"y":575,"w":10,"h":10},{"x":450,"y":575,"w":20,"h":10},{"x":660,"y":595,"w":120,"h":50},{"x":100,"y":585,"w":20,"h":10},{"x":195,"y":585,"w":10,"h":10},{"x":240,"y":595,"w":20,"h":30},{"x":335,"y":585,"w":10,"h":10},{"x":445,"y":585,"w":30,"h":10},{"x":100,"y":595,"w":20,"h":10},{"x":195,"y":595,"w":10,"h":10},{"x":340,"y":595,"w":40,"h":10},{"x":430,"y":600,"w":20,"h":20},{"x":100,"y":605,"w":20,"h":10},{"x":350,"y":605,"w":20,"h":10},{"x":340,"y":630,"w":20,"h":20},{"x":665,"y":630,"w":110,"h":20},{"x":280,"y":655,"w":20,"h":50},{"x":400,"y":645,"w":20,"h":30},{"x":430,"y":635,"w":20,"h":10},{"x":540,"y":650,"w":20,"h":40},{"x":430,"y":645,"w":40,"h":10},{"x":670,"y":650,"w":100,"h":20},{"x":310,"y":655,"w":40,"h":10},{"x":435,"y":655,"w":50,"h":10},{"x":375,"y":665,"w":170,"h":10},{"x":665,"y":675,"w":110,"h":30},{"x":350,"y":675,"w":100,"h":10},{"x":440,"y":675,"w":40,"h":10},{"x":310,"y":685,"w":20,"h":10},{"x":550,"y":685,"w":20,"h":10},{"x":545,"y":700,"w":30,"h":20},{"x":660,"y":700,"w":120,"h":20},{"x":205,"y":710,"w":10,"h":20},{"x":220,"y":715,"w":20,"h":10},{"x":270,"y":715,"w":20,"h":10},{"x":540,"y":715,"w":20,"h":10},{"x":655,"y":735,"w":130,"h":50},{"x":200,"y":725,"w":60,"h":10},{"x":260,"y":725,"w":20,"h":10},{"x":195,"y":735,"w":150,"h":10},{"x":205,"y":760,"w":190,"h":40},{"x":335,"y":745,"w":10,"h":10},{"x":320,"y":755,"w":40,"h":10},{"x":95,"y":765,"w":10,"h":10},{"x":320,"y":765,"w":40,"h":10},{"x":650,"y":765,"w":140,"h":10},{"x":95,"y":775,"w":10,"h":10},{"x":330,"y":775,"w":60,"h":10},{"x":470,"y":810,"w":20,"h":80},{"x":545,"y":830,"w":10,"h":120},{"x":655,"y":820,"w":130,"h":100},{"x":95,"y":785,"w":10,"h":10},{"x":125,"y":785,"w":30,"h":10},{"x":185,"y":790,"w":10,"h":20},{"x":310,"y":785,"w":100,"h":10},{"x":485,"y":785,"w":10,"h":10},{"x":95,"y":795,"w":10,"h":10},{"x":125,"y":800,"w":10,"h":20},{"x":320,"y":795,"w":80,"h":10},{"x":485,"y":795,"w":10,"h":10},{"x":95,"y":805,"w":10,"h":10},{"x":330,"y":805,"w":60,"h":10},{"x":495,"y":805,"w":30,"h":10},{"x":95,"y":815,"w":10,"h":10},{"x":340,"y":830,"w":40,"h":40},{"x":495,"y":815,"w":30,"h":10},{"x":365,"y":825,"w":10,"h":10},{"x":495,"y":825,"w":30,"h":10},{"x":40,"y":980,"w":80,"h":300},{"x":380,"y":835,"w":40,"h":10},{"x":495,"y":835,"w":30,"h":10},{"x":385,"y":845,"w":50,"h":10},{"x":495,"y":845,"w":30,"h":10},{"x":360,"y":855,"w":100,"h":10},{"x":480,"y":855,"w":20,"h":10},{"x":350,"y":865,"w":120,"h":10},{"x":475,"y":870,"w":10,"h":20},{"x":90,"y":875,"w":20,"h":10},{"x":345,"y":875,"w":130,"h":10},{"x":660,"y":895,"w":120,"h":50},{"x":90,"y":885,"w":20,"h":10},{"x":320,"y":885,"w":120,"h":10},{"x":90,"y":895,"w":20,"h":10},{"x":265,"y":900,"w":10,"h":20},{"x":330,"y":895,"w":100,"h":10},{"x":540,"y":895,"w":20,"h":10},{"x":575,"y":905,"w":10,"h":30},{"x":90,"y":905,"w":20,"h":10},{"x":325,"y":905,"w":110,"h":10},{"x":510,"y":905,"w":60,"h":10},{"x":90,"y":915,"w":20,"h":10},{"x":320,"y":915,"w":100,"h":10},{"x":480,"y":915,"w":20,"h":10},{"x":90,"y":925,"w":20,"h":10},{"x":305,"y":925,"w":110,"h":10},{"x":470,"y":925,"w":20,"h":10},{"x":530,"y":925,"w":40,"h":10},{"x":570,"y":925,"w":20,"h":10},{"x":655,"y":1005,"w":130,"h":170},{"x":90,"y":935,"w":20,"h":10},{"x":295,"y":940,"w":110,"h":20},{"x":460,"y":935,"w":20,"h":10},{"x":505,"y":935,"w":30,"h":10},{"x":565,"y":935,"w":10,"h":10},{"x":90,"y":945,"w":20,"h":10},{"x":450,"y":945,"w":20,"h":10},{"x":560,"y":945,"w":20,"h":10},{"x":90,"y":955,"w":20,"h":10},{"x":255,"y":960,"w":50,"h":20},{"x":325,"y":955,"w":50,"h":10},{"x":400,"y":955,"w":20,"h":10},{"x":445,"y":955,"w":10,"h":10},{"x":555,"y":955,"w":10,"h":10},{"x":90,"y":965,"w":20,"h":10},{"x":330,"y":965,"w":40,"h":10},{"x":390,"y":965,"w":20,"h":10},{"x":435,"y":965,"w":10,"h":10},{"x":550,"y":965,"w":20,"h":10},{"x":90,"y":975,"w":20,"h":10},{"x":250,"y":980,"w":60,"h":20},{"x":295,"y":975,"w":10,"h":10},{"x":340,"y":980,"w":20,"h":20},{"x":385,"y":985,"w":10,"h":30},{"x":540,"y":975,"w":20,"h":10},{"x":100,"y":985,"w":40,"h":10},{"x":305,"y":990,"w":10,"h":20},{"x":470,"y":985,"w":20,"h":10},{"x":525,"y":985,"w":30,"h":10},{"x":105,"y":995,"w":50,"h":10},{"x":250,"y":995,"w":80,"h":10},{"x":330,"y":995,"w":40,"h":10},{"x":445,"y":1000,"w":10,"h":20},{"x":465,"y":1040,"w":10,"h":100},{"x":515,"y":995,"w":10,"h":10},{"x":105,"y":1005,"w":50,"h":10},{"x":270,"y":1005,"w":160,"h":10},{"x":395,"y":1010,"w":10,"h":20},{"x":510,"y":1005,"w":20,"h":10},{"x":125,"y":1015,"w":90,"h":10},{"x":240,"y":1015,"w":80,"h":10},{"x":315,"y":1020,"w":50,"h":20},{"x":405,"y":1045,"w":10,"h":70},{"x":440,"y":1015,"w":20,"h":10},{"x":505,"y":1015,"w":10,"h":10},{"x":125,"y":1025,"w":90,"h":10},{"x":230,"y":1025,"w":60,"h":10},{"x":435,"y":1055,"w":10,"h":70},{"x":555,"y":1055,"w":10,"h":70},{"x":130,"y":1035,"w":100,"h":10},{"x":235,"y":1035,"w":50,"h":10},{"x":305,"y":1035,"w":50,"h":10},{"x":385,"y":1035,"w":10,"h":10},{"x":130,"y":1045,"w":100,"h":10},{"x":235,"y":1050,"w":30,"h":20},{"x":290,"y":1045,"w":60,"h":10},{"x":380,"y":1045,"w":20,"h":10},{"x":135,"y":1055,"w":110,"h":10},{"x":280,"y":1055,"w":60,"h":10},{"x":370,"y":1055,"w":20,"h":10},{"x":135,"y":1065,"w":110,"h":10},{"x":265,"y":1065,"w":70,"h":10},{"x":365,"y":1065,"w":10,"h":10},{"x":140,"y":1075,"w":120,"h":10},{"x":260,"y":1075,"w":60,"h":10},{"x":360,"y":1075,"w":20,"h":10},{"x":145,"y":1085,"w":130,"h":10},{"x":255,"y":1085,"w":50,"h":10},{"x":355,"y":1090,"w":10,"h":20},{"x":400,"y":1085,"w":20,"h":10},{"x":145,"y":1095,"w":130,"h":10},{"x":255,"y":1095,"w":30,"h":10},{"x":425,"y":1100,"w":10,"h":20},{"x":455,"y":1095,"w":10,"h":10},{"x":550,"y":1095,"w":20,"h":10},{"x":660,"y":1100,"w":120,"h":20},{"x":145,"y":1105,"w":130,"h":10},{"x":350,"y":1105,"w":20,"h":10},{"x":545,"y":1105,"w":10,"h":10},{"x":150,"y":1115,"w":140,"h":10},{"x":345,"y":1115,"w":10,"h":10},{"x":420,"y":1115,"w":20,"h":10},{"x":540,"y":1115,"w":20,"h":10},{"x":665,"y":1120,"w":110,"h":20},{"x":105,"y":1125,"w":50,"h":10},{"x":145,"y":1130,"w":10,"h":20},{"x":415,"y":1125,"w":10,"h":10},{"x":535,"y":1125,"w":10,"h":10},{"x":35,"y":1355,"w":70,"h":450},{"x":530,"y":1135,"w":20,"h":10},{"x":660,"y":1145,"w":120,"h":30},{"x":280,"y":1145,"w":20,"h":10},{"x":525,"y":1145,"w":10,"h":10},{"x":280,"y":1155,"w":40,"h":10},{"x":75,"y":1165,"w":10,"h":10},{"x":275,"y":1170,"w":30,"h":20},{"x":655,"y":1175,"w":130,"h":30},{"x":75,"y":1175,"w":10,"h":10},{"x":295,"y":1175,"w":10,"h":10},{"x":80,"y":1185,"w":20,"h":10},{"x":275,"y":1185,"w":50,"h":10},{"x":80,"y":1195,"w":20,"h":10},{"x":265,"y":1195,"w":50,"h":10},{"x":650,"y":1210,"w":140,"h":40},{"x":80,"y":1205,"w":20,"h":10},{"x":255,"y":1215,"w":70,"h":30},{"x":80,"y":1215,"w":20,"h":10},{"x":490,"y":1215,"w":20,"h":10},{"x":80,"y":1225,"w":20,"h":10},{"x":480,"y":1235,"w":40,"h":30},{"x":535,"y":1225,"w":10,"h":10},{"x":80,"y":1235,"w":20,"h":10},{"x":250,"y":1235,"w":60,"h":10},{"x":535,"y":1255,"w":30,"h":50},{"x":655,"y":1250,"w":130,"h":40},{"x":80,"y":1245,"w":20,"h":10},{"x":235,"y":1245,"w":70,"h":10},{"x":80,"y":1255,"w":20,"h":10},{"x":225,"y":1255,"w":70,"h":10},{"x":475,"y":1280,"w":30,"h":60},{"x":505,"y":1270,"w":10,"h":40},{"x":80,"y":1265,"w":20,"h":10},{"x":220,"y":1265,"w":60,"h":10},{"x":435,"y":1265,"w":30,"h":10},{"x":555,"y":1265,"w":10,"h":10},{"x":80,"y":1275,"w":20,"h":10},{"x":210,"y":1275,"w":60,"h":10},{"x":300,"y":1275,"w":20,"h":10},{"x":415,"y":1285,"w":70,"h":30},{"x":555,"y":1275,"w":10,"h":10},{"x":645,"y":1275,"w":150,"h":10},{"x":80,"y":1285,"w":20,"h":10},{"x":205,"y":1285,"w":70,"h":10},{"x":295,"y":1285,"w":30,"h":10},{"x":545,"y":1305,"w":30,"h":50},{"x":655,"y":1295,"w":130,"h":30},{"x":80,"y":1295,"w":20,"h":10},{"x":175,"y":1295,"w":10,"h":10},{"x":210,"y":1295,"w":40,"h":10},{"x":290,"y":1300,"w":40,"h":20},{"x":500,"y":1295,"w":20,"h":10},{"x":80,"y":1305,"w":20,"h":10},{"x":190,"y":1305,"w":80,"h":10},{"x":435,"y":1305,"w":30,"h":10},{"x":500,"y":1305,"w":20,"h":10},{"x":80,"y":1315,"w":20,"h":10},{"x":185,"y":1315,"w":70,"h":10},{"x":285,"y":1320,"w":50,"h":20},{"x":490,"y":1315,"w":40,"h":10},{"x":660,"y":1320,"w":120,"h":20},{"x":80,"y":1325,"w":20,"h":10},{"x":175,"y":1325,"w":70,"h":10},{"x":485,"y":1345,"w":30,"h":50},{"x":80,"y":1335,"w":20,"h":10},{"x":170,"y":1335,"w":60,"h":10},{"x":280,"y":1345,"w":80,"h":30},{"x":655,"y":1335,"w":130,"h":10},{"x":80,"y":1345,"w":20,"h":10},{"x":165,"y":1345,"w":50,"h":10},{"x":395,"y":1360,"w":30,"h":40},{"x":525,"y":1350,"w":10,"h":20},{"x":650,"y":1355,"w":140,"h":30},{"x":75,"y":1355,"w":10,"h":10},{"x":160,"y":1355,"w":40,"h":10},{"x":540,"y":1355,"w":20,"h":10},{"x":75,"y":1365,"w":10,"h":10},{"x":165,"y":1365,"w":30,"h":10},{"x":260,"y":1365,"w":60,"h":10},{"x":415,"y":1365,"w":10,"h":10},{"x":535,"y":1365,"w":70,"h":10},{"x":75,"y":1375,"w":10,"h":10},{"x":255,"y":1380,"w":70,"h":20},{"x":415,"y":1375,"w":10,"h":10},{"x":585,"y":1375,"w":270,"h":10},{"x":75,"y":1385,"w":10,"h":10},{"x":405,"y":1395,"w":30,"h":30},{"x":580,"y":1385,"w":280,"h":10},{"x":75,"y":1395,"w":10,"h":10},{"x":245,"y":1395,"w":90,"h":10},{"x":570,"y":1395,"w":300,"h":10},{"x":75,"y":1405,"w":10,"h":10},{"x":250,"y":1425,"w":80,"h":50},{"x":570,"y":1405,"w":300,"h":10},{"x":75,"y":1415,"w":10,"h":10},{"x":295,"y":1415,"w":10,"h":10},{"x":335,"y":1420,"w":10,"h":20},{"x":560,"y":1470,"w":320,"h":120},{"x":75,"y":1425,"w":10,"h":10},{"x":305,"y":1425,"w":30,"h":10},{"x":365,"y":1425,"w":10,"h":10},{"x":75,"y":1435,"w":10,"h":10},{"x":340,"y":1435,"w":100,"h":10},{"x":75,"y":1445,"w":10,"h":10},{"x":340,"y":1445,"w":100,"h":10},{"x":75,"y":1455,"w":10,"h":10},{"x":305,"y":1465,"w":170,"h":30},{"x":110,"y":1465,"w":80,"h":10},{"x":110,"y":1475,"w":80,"h":10},{"x":110,"y":1485,"w":80,"h":10},{"x":240,"y":1485,"w":40,"h":10},{"x":330,"y":1485,"w":120,"h":10},{"x":115,"y":1495,"w":90,"h":10},{"x":245,"y":1495,"w":30,"h":10},{"x":335,"y":1495,"w":110,"h":10},{"x":115,"y":1505,"w":90,"h":10},{"x":250,"y":1505,"w":20,"h":10},{"x":345,"y":1505,"w":90,"h":10},{"x":115,"y":1515,"w":90,"h":10},{"x":350,"y":1515,"w":40,"h":10},{"x":115,"y":1525,"w":90,"h":10},{"x":360,"y":1525,"w":40,"h":10},{"x":80,"y":1535,"w":20,"h":10},{"x":135,"y":1535,"w":70,"h":10},{"x":350,"y":1535,"w":20,"h":10},{"x":565,"y":1545,"w":310,"h":30},{"x":80,"y":1545,"w":20,"h":10},{"x":145,"y":1545,"w":50,"h":10},{"x":345,"y":1545,"w":10,"h":10},{"x":75,"y":1555,"w":10,"h":10},{"x":160,"y":1555,"w":40,"h":10},{"x":75,"y":1565,"w":10,"h":10},{"x":495,"y":1565,"w":130,"h":10},{"x":650,"y":1575,"w":140,"h":30},{"x":75,"y":1575,"w":10,"h":10},{"x":495,"y":1575,"w":110,"h":10},{"x":25,"y":1870,"w":50,"h":580},{"x":510,"y":1590,"w":20,"h":20},{"x":55,"y":1595,"w":10,"h":10},{"x":660,"y":1620,"w":120,"h":60},{"x":55,"y":1605,"w":10,"h":10},{"x":505,"y":1605,"w":10,"h":10},{"x":55,"y":1615,"w":10,"h":10},{"x":60,"y":1625,"w":20,"h":10},{"x":65,"y":1635,"w":30,"h":10},{"x":65,"y":1645,"w":30,"h":10},{"x":275,"y":1645,"w":30,"h":10},{"x":65,"y":1655,"w":30,"h":10},{"x":270,"y":1655,"w":40,"h":10},{"x":655,"y":1710,"w":130,"h":120},{"x":65,"y":1665,"w":30,"h":10},{"x":260,"y":1680,"w":60,"h":40},{"x":65,"y":1675,"w":30,"h":10},{"x":300,"y":1675,"w":20,"h":10},{"x":65,"y":1685,"w":30,"h":10},{"x":310,"y":1690,"w":20,"h":20},{"x":65,"y":1695,"w":30,"h":10},{"x":70,"y":1705,"w":40,"h":10},{"x":265,"y":1705,"w":90,"h":10},{"x":405,"y":1705,"w":10,"h":10},{"x":70,"y":1715,"w":40,"h":10},{"x":245,"y":1725,"w":90,"h":30},{"x":410,"y":1715,"w":40,"h":10},{"x":445,"y":1715,"w":10,"h":10},{"x":70,"y":1725,"w":40,"h":10},{"x":405,"y":1725,"w":90,"h":10},{"x":70,"y":1735,"w":40,"h":10},{"x":395,"y":1735,"w":110,"h":10},{"x":70,"y":1745,"w":40,"h":10},{"x":235,"y":1745,"w":110,"h":10},{"x":390,"y":1745,"w":120,"h":10},{"x":70,"y":1755,"w":40,"h":10},{"x":225,"y":1760,"w":110,"h":20},{"x":395,"y":1760,"w":150,"h":20},{"x":75,"y":1765,"w":50,"h":10},{"x":75,"y":1775,"w":50,"h":10},{"x":205,"y":1775,"w":110,"h":10},{"x":385,"y":1775,"w":130,"h":10},{"x":660,"y":1785,"w":120,"h":30},{"x":75,"y":1785,"w":50,"h":10},{"x":200,"y":1785,"w":120,"h":10},{"x":370,"y":1790,"w":100,"h":20},{"x":75,"y":1795,"w":50,"h":10},{"x":190,"y":1800,"w":100,"h":20},{"x":75,"y":1805,"w":50,"h":10},{"x":355,"y":1805,"w":70,"h":10},{"x":405,"y":1815,"w":10,"h":30},{"x":665,"y":1840,"w":110,"h":80},{"x":75,"y":1815,"w":50,"h":10},{"x":180,"y":1820,"w":80,"h":20},{"x":340,"y":1815,"w":100,"h":10},{"x":530,"y":1815,"w":20,"h":10},{"x":75,"y":1825,"w":50,"h":10},{"x":330,"y":1825,"w":120,"h":10},{"x":535,"y":1835,"w":10,"h":30},{"x":75,"y":1835,"w":50,"h":10},{"x":170,"y":1840,"w":60,"h":20},{"x":315,"y":1835,"w":130,"h":10},{"x":395,"y":1835,"w":10,"h":10},{"x":475,"y":1835,"w":10,"h":10},{"x":75,"y":1845,"w":50,"h":10},{"x":300,"y":1845,"w":160,"h":10},{"x":500,"y":1845,"w":40,"h":10},{"x":70,"y":1855,"w":40,"h":10},{"x":295,"y":1860,"w":170,"h":20},{"x":485,"y":1885,"w":10,"h":70},{"x":525,"y":1855,"w":30,"h":10},{"x":65,"y":1865,"w":30,"h":10},{"x":525,"y":1865,"w":70,"h":10},{"x":65,"y":1875,"w":30,"h":10},{"x":270,"y":1880,"w":140,"h":20},{"x":530,"y":1875,"w":80,"h":10},{"x":65,"y":1885,"w":30,"h":10},{"x":530,"y":1885,"w":80,"h":10},{"x":660,"y":1900,"w":120,"h":40},{"x":65,"y":1895,"w":30,"h":10},{"x":260,"y":1895,"w":120,"h":10},{"x":530,"y":1895,"w":80,"h":10},{"x":65,"y":1905,"w":30,"h":10},{"x":255,"y":1910,"w":110,"h":20},{"x":530,"y":1905,"w":80,"h":10},{"x":65,"y":1915,"w":30,"h":10},{"x":530,"y":1915,"w":80,"h":10},{"x":65,"y":1925,"w":30,"h":10},{"x":250,"y":1925,"w":100,"h":10},{"x":315,"y":1935,"w":10,"h":30},{"x":430,"y":1925,"w":60,"h":10},{"x":525,"y":1940,"w":70,"h":40},{"x":655,"y":1980,"w":130,"h":120},{"x":65,"y":1935,"w":30,"h":10},{"x":245,"y":1940,"w":110,"h":20},{"x":435,"y":1935,"w":50,"h":10},{"x":65,"y":1945,"w":30,"h":10},{"x":425,"y":1950,"w":30,"h":20},{"x":455,"y":1950,"w":10,"h":20},{"x":65,"y":1955,"w":30,"h":10},{"x":245,"y":1955,"w":130,"h":10},{"x":65,"y":1965,"w":30,"h":10},{"x":235,"y":1970,"w":110,"h":20},{"x":305,"y":1970,"w":10,"h":20},{"x":390,"y":1965,"w":20,"h":10},{"x":435,"y":1965,"w":30,"h":10},{"x":65,"y":1975,"w":30,"h":10},{"x":385,"y":1980,"w":10,"h":20},{"x":435,"y":1975,"w":50,"h":10},{"x":65,"y":1985,"w":30,"h":10},{"x":225,"y":2010,"w":90,"h":60},{"x":295,"y":1985,"w":10,"h":10},{"x":65,"y":1995,"w":30,"h":10},{"x":290,"y":1995,"w":20,"h":10},{"x":70,"y":2005,"w":40,"h":10},{"x":285,"y":2010,"w":10,"h":20},{"x":70,"y":2015,"w":40,"h":10},{"x":75,"y":2025,"w":50,"h":10},{"x":275,"y":2025,"w":10,"h":10},{"x":75,"y":2035,"w":50,"h":10},{"x":275,"y":2035,"w":10,"h":10},{"x":75,"y":2045,"w":50,"h":10},{"x":215,"y":2065,"w":70,"h":50},{"x":660,"y":2045,"w":120,"h":10},{"x":80,"y":2055,"w":60,"h":10},{"x":655,"y":2065,"w":130,"h":30},{"x":85,"y":2065,"w":70,"h":10},{"x":400,"y":2065,"w":140,"h":10},{"x":90,"y":2075,"w":80,"h":10},{"x":395,"y":2075,"w":170,"h":10},{"x":95,"y":2085,"w":90,"h":10},{"x":395,"y":2085,"w":210,"h":10},{"x":615,"y":2085,"w":210,"h":10},{"x":160,"y":2095,"w":220,"h":10},{"x":500,"y":2095,"w":440,"h":10},{"x":385,"y":2105,"w":670,"h":10},{"x":385,"y":2115,"w":670,"h":10},{"x":385,"y":2125,"w":670,"h":10},{"x":385,"y":2135,"w":670,"h":10},{"x":385,"y":2145,"w":670,"h":10},{"x":385,"y":2155,"w":670,"h":10}] \ No newline at end of file +[{"x":95,"y":25,"width":190,"height":50},{"x":500,"y":30,"width":440,"height":60},{"x":90,"y":80,"width":180,"height":60},{"x":305,"y":70,"width":10,"height":20},{"x":525,"y":65,"width":390,"height":10},{"x":530,"y":75,"width":380,"height":10},{"x":385,"y":85,"width":10,"height":10},{"x":435,"y":85,"width":30,"height":10},{"x":470,"y":85,"width":20,"height":10},{"x":615,"y":85,"width":210,"height":10},{"x":190,"y":95,"width":20,"height":10},{"x":435,"y":95,"width":10,"height":10},{"x":475,"y":100,"width":10,"height":20},{"x":525,"y":100,"width":10,"height":20},{"x":640,"y":95,"width":160,"height":10},{"x":200,"y":105,"width":20,"height":10},{"x":500,"y":105,"width":20,"height":10},{"x":575,"y":105,"width":30,"height":10},{"x":660,"y":105,"width":120,"height":10},{"x":75,"y":170,"width":150,"height":120},{"x":175,"y":120,"width":10,"height":20},{"x":205,"y":115,"width":10,"height":10},{"x":495,"y":120,"width":10,"height":20},{"x":520,"y":115,"width":20,"height":10},{"x":585,"y":130,"width":10,"height":40},{"x":665,"y":115,"width":110,"height":10},{"x":155,"y":125,"width":10,"height":10},{"x":190,"y":125,"width":20,"height":10},{"x":505,"y":130,"width":10,"height":20},{"x":525,"y":125,"width":10,"height":10},{"x":660,"y":125,"width":120,"height":10},{"x":185,"y":135,"width":50,"height":10},{"x":520,"y":135,"width":20,"height":10},{"x":595,"y":135,"width":10,"height":10},{"x":665,"y":135,"width":110,"height":10},{"x":155,"y":145,"width":10,"height":10},{"x":220,"y":145,"width":20,"height":10},{"x":670,"y":145,"width":100,"height":10},{"x":155,"y":155,"width":10,"height":10},{"x":190,"y":155,"width":40,"height":10},{"x":225,"y":155,"width":10,"height":10},{"x":355,"y":160,"width":10,"height":20},{"x":645,"y":155,"width":150,"height":10},{"x":200,"y":165,"width":100,"height":10},{"x":565,"y":170,"width":10,"height":20},{"x":600,"y":175,"width":20,"height":30},{"x":670,"y":165,"width":100,"height":10},{"x":210,"y":175,"width":120,"height":10},{"x":345,"y":175,"width":50,"height":10},{"x":415,"y":175,"width":10,"height":10},{"x":575,"y":180,"width":10,"height":20},{"x":665,"y":175,"width":110,"height":10},{"x":285,"y":185,"width":270,"height":10},{"x":545,"y":185,"width":30,"height":10},{"x":665,"y":185,"width":110,"height":10},{"x":295,"y":195,"width":290,"height":10},{"x":525,"y":195,"width":10,"height":10},{"x":630,"y":195,"width":180,"height":10},{"x":305,"y":205,"width":310,"height":10},{"x":545,"y":210,"width":10,"height":20},{"x":640,"y":205,"width":160,"height":10},{"x":185,"y":215,"width":70,"height":10},{"x":355,"y":215,"width":230,"height":10},{"x":555,"y":215,"width":10,"height":10},{"x":645,"y":215,"width":150,"height":10},{"x":160,"y":225,"width":20,"height":10},{"x":270,"y":225,"width":20,"height":10},{"x":380,"y":225,"width":180,"height":10},{"x":660,"y":225,"width":120,"height":10},{"x":70,"y":255,"width":140,"height":50},{"x":410,"y":235,"width":120,"height":10},{"x":665,"y":240,"width":110,"height":20},{"x":385,"y":245,"width":70,"height":10},{"x":590,"y":255,"width":20,"height":30},{"x":390,"y":255,"width":20,"height":10},{"x":670,"y":260,"width":100,"height":20},{"x":605,"y":265,"width":10,"height":10},{"x":655,"y":295,"width":130,"height":50},{"x":65,"y":285,"width":130,"height":10},{"x":60,"y":295,"width":120,"height":10},{"x":55,"y":305,"width":110,"height":10},{"x":410,"y":315,"width":20,"height":30},{"x":50,"y":365,"width":100,"height":110},{"x":510,"y":320,"width":40,"height":20},{"x":355,"y":325,"width":10,"height":10},{"x":650,"y":330,"width":140,"height":20},{"x":285,"y":335,"width":30,"height":10},{"x":380,"y":335,"width":100,"height":10},{"x":515,"y":350,"width":70,"height":40},{"x":340,"y":345,"width":160,"height":10},{"x":635,"y":345,"width":170,"height":10},{"x":335,"y":355,"width":170,"height":10},{"x":635,"y":355,"width":170,"height":10},{"x":330,"y":365,"width":180,"height":10},{"x":560,"y":370,"width":20,"height":20},{"x":650,"y":370,"width":140,"height":20},{"x":325,"y":375,"width":190,"height":10},{"x":485,"y":375,"width":10,"height":10},{"x":520,"y":375,"width":40,"height":10},{"x":285,"y":385,"width":110,"height":10},{"x":395,"y":385,"width":10,"height":10},{"x":515,"y":385,"width":10,"height":10},{"x":660,"y":395,"width":120,"height":30},{"x":105,"y":395,"width":10,"height":10},{"x":285,"y":400,"width":130,"height":20},{"x":580,"y":405,"width":20,"height":30},{"x":525,"y":405,"width":10,"height":10},{"x":170,"y":430,"width":20,"height":40},{"x":295,"y":425,"width":130,"height":30},{"x":520,"y":415,"width":20,"height":10},{"x":655,"y":415,"width":130,"height":10},{"x":45,"y":625,"width":90,"height":410},{"x":505,"y":425,"width":30,"height":10},{"x":650,"y":430,"width":140,"height":20},{"x":185,"y":435,"width":10,"height":10},{"x":375,"y":435,"width":30,"height":10},{"x":430,"y":435,"width":40,"height":10},{"x":495,"y":450,"width":10,"height":40},{"x":185,"y":445,"width":10,"height":10},{"x":245,"y":455,"width":30,"height":30},{"x":360,"y":445,"width":180,"height":10},{"x":530,"y":445,"width":20,"height":10},{"x":665,"y":445,"width":110,"height":10},{"x":180,"y":485,"width":20,"height":70},{"x":215,"y":460,"width":10,"height":20},{"x":305,"y":455,"width":90,"height":10},{"x":420,"y":455,"width":80,"height":10},{"x":535,"y":460,"width":10,"height":20},{"x":660,"y":465,"width":120,"height":30},{"x":305,"y":465,"width":90,"height":10},{"x":365,"y":470,"width":10,"height":20},{"x":385,"y":465,"width":10,"height":10},{"x":440,"y":470,"width":40,"height":20},{"x":505,"y":475,"width":10,"height":30},{"x":260,"y":475,"width":80,"height":10},{"x":330,"y":475,"width":40,"height":10},{"x":380,"y":475,"width":20,"height":10},{"x":520,"y":475,"width":20,"height":10},{"x":265,"y":485,"width":70,"height":10},{"x":315,"y":495,"width":10,"height":30},{"x":435,"y":485,"width":30,"height":10},{"x":515,"y":485,"width":10,"height":10},{"x":650,"y":485,"width":140,"height":10},{"x":265,"y":495,"width":50,"height":10},{"x":640,"y":505,"width":160,"height":30},{"x":195,"y":505,"width":10,"height":10},{"x":280,"y":510,"width":20,"height":20},{"x":195,"y":515,"width":10,"height":10},{"x":190,"y":535,"width":20,"height":30},{"x":580,"y":525,"width":20,"height":10},{"x":660,"y":535,"width":120,"height":30},{"x":575,"y":535,"width":10,"height":10},{"x":185,"y":555,"width":30,"height":10},{"x":320,"y":570,"width":20,"height":40},{"x":430,"y":565,"width":20,"height":30},{"x":650,"y":555,"width":140,"height":10},{"x":180,"y":580,"width":20,"height":40},{"x":450,"y":565,"width":20,"height":10},{"x":645,"y":565,"width":150,"height":10},{"x":95,"y":575,"width":10,"height":10},{"x":285,"y":580,"width":30,"height":20},{"x":335,"y":575,"width":10,"height":10},{"x":450,"y":575,"width":20,"height":10},{"x":660,"y":595,"width":120,"height":50},{"x":100,"y":585,"width":20,"height":10},{"x":195,"y":585,"width":10,"height":10},{"x":240,"y":595,"width":20,"height":30},{"x":335,"y":585,"width":10,"height":10},{"x":445,"y":585,"width":30,"height":10},{"x":100,"y":595,"width":20,"height":10},{"x":195,"y":595,"width":10,"height":10},{"x":340,"y":595,"width":40,"height":10},{"x":430,"y":600,"width":20,"height":20},{"x":100,"y":605,"width":20,"height":10},{"x":350,"y":605,"width":20,"height":10},{"x":340,"y":630,"width":20,"height":20},{"x":665,"y":630,"width":110,"height":20},{"x":280,"y":655,"width":20,"height":50},{"x":400,"y":645,"width":20,"height":30},{"x":430,"y":635,"width":20,"height":10},{"x":540,"y":650,"width":20,"height":40},{"x":430,"y":645,"width":40,"height":10},{"x":670,"y":650,"width":100,"height":20},{"x":310,"y":655,"width":40,"height":10},{"x":435,"y":655,"width":50,"height":10},{"x":375,"y":665,"width":170,"height":10},{"x":665,"y":675,"width":110,"height":30},{"x":350,"y":675,"width":100,"height":10},{"x":440,"y":675,"width":40,"height":10},{"x":310,"y":685,"width":20,"height":10},{"x":550,"y":685,"width":20,"height":10},{"x":545,"y":700,"width":30,"height":20},{"x":660,"y":700,"width":120,"height":20},{"x":205,"y":710,"width":10,"height":20},{"x":220,"y":715,"width":20,"height":10},{"x":270,"y":715,"width":20,"height":10},{"x":540,"y":715,"width":20,"height":10},{"x":655,"y":735,"width":130,"height":50},{"x":200,"y":725,"width":60,"height":10},{"x":260,"y":725,"width":20,"height":10},{"x":195,"y":735,"width":150,"height":10},{"x":205,"y":760,"width":190,"height":40},{"x":335,"y":745,"width":10,"height":10},{"x":320,"y":755,"width":40,"height":10},{"x":95,"y":765,"width":10,"height":10},{"x":320,"y":765,"width":40,"height":10},{"x":650,"y":765,"width":140,"height":10},{"x":95,"y":775,"width":10,"height":10},{"x":330,"y":775,"width":60,"height":10},{"x":470,"y":810,"width":20,"height":80},{"x":545,"y":830,"width":10,"height":120},{"x":655,"y":820,"width":130,"height":100},{"x":95,"y":785,"width":10,"height":10},{"x":125,"y":785,"width":30,"height":10},{"x":185,"y":790,"width":10,"height":20},{"x":310,"y":785,"width":100,"height":10},{"x":485,"y":785,"width":10,"height":10},{"x":95,"y":795,"width":10,"height":10},{"x":125,"y":800,"width":10,"height":20},{"x":320,"y":795,"width":80,"height":10},{"x":485,"y":795,"width":10,"height":10},{"x":95,"y":805,"width":10,"height":10},{"x":330,"y":805,"width":60,"height":10},{"x":495,"y":805,"width":30,"height":10},{"x":95,"y":815,"width":10,"height":10},{"x":340,"y":830,"width":40,"height":40},{"x":495,"y":815,"width":30,"height":10},{"x":365,"y":825,"width":10,"height":10},{"x":495,"y":825,"width":30,"height":10},{"x":40,"y":980,"width":80,"height":300},{"x":380,"y":835,"width":40,"height":10},{"x":495,"y":835,"width":30,"height":10},{"x":385,"y":845,"width":50,"height":10},{"x":495,"y":845,"width":30,"height":10},{"x":360,"y":855,"width":100,"height":10},{"x":480,"y":855,"width":20,"height":10},{"x":350,"y":865,"width":120,"height":10},{"x":475,"y":870,"width":10,"height":20},{"x":90,"y":875,"width":20,"height":10},{"x":345,"y":875,"width":130,"height":10},{"x":660,"y":895,"width":120,"height":50},{"x":90,"y":885,"width":20,"height":10},{"x":320,"y":885,"width":120,"height":10},{"x":90,"y":895,"width":20,"height":10},{"x":265,"y":900,"width":10,"height":20},{"x":330,"y":895,"width":100,"height":10},{"x":540,"y":895,"width":20,"height":10},{"x":575,"y":905,"width":10,"height":30},{"x":90,"y":905,"width":20,"height":10},{"x":325,"y":905,"width":110,"height":10},{"x":510,"y":905,"width":60,"height":10},{"x":90,"y":915,"width":20,"height":10},{"x":320,"y":915,"width":100,"height":10},{"x":480,"y":915,"width":20,"height":10},{"x":90,"y":925,"width":20,"height":10},{"x":305,"y":925,"width":110,"height":10},{"x":470,"y":925,"width":20,"height":10},{"x":530,"y":925,"width":40,"height":10},{"x":570,"y":925,"width":20,"height":10},{"x":655,"y":1005,"width":130,"height":170},{"x":90,"y":935,"width":20,"height":10},{"x":295,"y":940,"width":110,"height":20},{"x":460,"y":935,"width":20,"height":10},{"x":505,"y":935,"width":30,"height":10},{"x":565,"y":935,"width":10,"height":10},{"x":90,"y":945,"width":20,"height":10},{"x":450,"y":945,"width":20,"height":10},{"x":560,"y":945,"width":20,"height":10},{"x":90,"y":955,"width":20,"height":10},{"x":255,"y":960,"width":50,"height":20},{"x":325,"y":955,"width":50,"height":10},{"x":400,"y":955,"width":20,"height":10},{"x":445,"y":955,"width":10,"height":10},{"x":555,"y":955,"width":10,"height":10},{"x":90,"y":965,"width":20,"height":10},{"x":330,"y":965,"width":40,"height":10},{"x":390,"y":965,"width":20,"height":10},{"x":435,"y":965,"width":10,"height":10},{"x":550,"y":965,"width":20,"height":10},{"x":90,"y":975,"width":20,"height":10},{"x":250,"y":980,"width":60,"height":20},{"x":295,"y":975,"width":10,"height":10},{"x":340,"y":980,"width":20,"height":20},{"x":385,"y":985,"width":10,"height":30},{"x":540,"y":975,"width":20,"height":10},{"x":100,"y":985,"width":40,"height":10},{"x":305,"y":990,"width":10,"height":20},{"x":470,"y":985,"width":20,"height":10},{"x":525,"y":985,"width":30,"height":10},{"x":105,"y":995,"width":50,"height":10},{"x":250,"y":995,"width":80,"height":10},{"x":330,"y":995,"width":40,"height":10},{"x":445,"y":1000,"width":10,"height":20},{"x":465,"y":1040,"width":10,"height":100},{"x":515,"y":995,"width":10,"height":10},{"x":105,"y":1005,"width":50,"height":10},{"x":270,"y":1005,"width":160,"height":10},{"x":395,"y":1010,"width":10,"height":20},{"x":510,"y":1005,"width":20,"height":10},{"x":125,"y":1015,"width":90,"height":10},{"x":240,"y":1015,"width":80,"height":10},{"x":315,"y":1020,"width":50,"height":20},{"x":405,"y":1045,"width":10,"height":70},{"x":440,"y":1015,"width":20,"height":10},{"x":505,"y":1015,"width":10,"height":10},{"x":125,"y":1025,"width":90,"height":10},{"x":230,"y":1025,"width":60,"height":10},{"x":435,"y":1055,"width":10,"height":70},{"x":555,"y":1055,"width":10,"height":70},{"x":130,"y":1035,"width":100,"height":10},{"x":235,"y":1035,"width":50,"height":10},{"x":305,"y":1035,"width":50,"height":10},{"x":385,"y":1035,"width":10,"height":10},{"x":130,"y":1045,"width":100,"height":10},{"x":235,"y":1050,"width":30,"height":20},{"x":290,"y":1045,"width":60,"height":10},{"x":380,"y":1045,"width":20,"height":10},{"x":135,"y":1055,"width":110,"height":10},{"x":280,"y":1055,"width":60,"height":10},{"x":370,"y":1055,"width":20,"height":10},{"x":135,"y":1065,"width":110,"height":10},{"x":265,"y":1065,"width":70,"height":10},{"x":365,"y":1065,"width":10,"height":10},{"x":140,"y":1075,"width":120,"height":10},{"x":260,"y":1075,"width":60,"height":10},{"x":360,"y":1075,"width":20,"height":10},{"x":145,"y":1085,"width":130,"height":10},{"x":255,"y":1085,"width":50,"height":10},{"x":355,"y":1090,"width":10,"height":20},{"x":400,"y":1085,"width":20,"height":10},{"x":145,"y":1095,"width":130,"height":10},{"x":255,"y":1095,"width":30,"height":10},{"x":425,"y":1100,"width":10,"height":20},{"x":455,"y":1095,"width":10,"height":10},{"x":550,"y":1095,"width":20,"height":10},{"x":660,"y":1100,"width":120,"height":20},{"x":145,"y":1105,"width":130,"height":10},{"x":350,"y":1105,"width":20,"height":10},{"x":545,"y":1105,"width":10,"height":10},{"x":150,"y":1115,"width":140,"height":10},{"x":345,"y":1115,"width":10,"height":10},{"x":420,"y":1115,"width":20,"height":10},{"x":540,"y":1115,"width":20,"height":10},{"x":665,"y":1120,"width":110,"height":20},{"x":105,"y":1125,"width":50,"height":10},{"x":145,"y":1130,"width":10,"height":20},{"x":415,"y":1125,"width":10,"height":10},{"x":535,"y":1125,"width":10,"height":10},{"x":35,"y":1355,"width":70,"height":450},{"x":530,"y":1135,"width":20,"height":10},{"x":660,"y":1145,"width":120,"height":30},{"x":280,"y":1145,"width":20,"height":10},{"x":525,"y":1145,"width":10,"height":10},{"x":280,"y":1155,"width":40,"height":10},{"x":75,"y":1165,"width":10,"height":10},{"x":275,"y":1170,"width":30,"height":20},{"x":655,"y":1175,"width":130,"height":30},{"x":75,"y":1175,"width":10,"height":10},{"x":295,"y":1175,"width":10,"height":10},{"x":80,"y":1185,"width":20,"height":10},{"x":275,"y":1185,"width":50,"height":10},{"x":80,"y":1195,"width":20,"height":10},{"x":265,"y":1195,"width":50,"height":10},{"x":650,"y":1210,"width":140,"height":40},{"x":80,"y":1205,"width":20,"height":10},{"x":255,"y":1215,"width":70,"height":30},{"x":80,"y":1215,"width":20,"height":10},{"x":490,"y":1215,"width":20,"height":10},{"x":80,"y":1225,"width":20,"height":10},{"x":480,"y":1235,"width":40,"height":30},{"x":535,"y":1225,"width":10,"height":10},{"x":80,"y":1235,"width":20,"height":10},{"x":250,"y":1235,"width":60,"height":10},{"x":535,"y":1255,"width":30,"height":50},{"x":655,"y":1250,"width":130,"height":40},{"x":80,"y":1245,"width":20,"height":10},{"x":235,"y":1245,"width":70,"height":10},{"x":80,"y":1255,"width":20,"height":10},{"x":225,"y":1255,"width":70,"height":10},{"x":475,"y":1280,"width":30,"height":60},{"x":505,"y":1270,"width":10,"height":40},{"x":80,"y":1265,"width":20,"height":10},{"x":220,"y":1265,"width":60,"height":10},{"x":435,"y":1265,"width":30,"height":10},{"x":555,"y":1265,"width":10,"height":10},{"x":80,"y":1275,"width":20,"height":10},{"x":210,"y":1275,"width":60,"height":10},{"x":300,"y":1275,"width":20,"height":10},{"x":415,"y":1285,"width":70,"height":30},{"x":555,"y":1275,"width":10,"height":10},{"x":645,"y":1275,"width":150,"height":10},{"x":80,"y":1285,"width":20,"height":10},{"x":205,"y":1285,"width":70,"height":10},{"x":295,"y":1285,"width":30,"height":10},{"x":545,"y":1305,"width":30,"height":50},{"x":655,"y":1295,"width":130,"height":30},{"x":80,"y":1295,"width":20,"height":10},{"x":175,"y":1295,"width":10,"height":10},{"x":210,"y":1295,"width":40,"height":10},{"x":290,"y":1300,"width":40,"height":20},{"x":500,"y":1295,"width":20,"height":10},{"x":80,"y":1305,"width":20,"height":10},{"x":190,"y":1305,"width":80,"height":10},{"x":435,"y":1305,"width":30,"height":10},{"x":500,"y":1305,"width":20,"height":10},{"x":80,"y":1315,"width":20,"height":10},{"x":185,"y":1315,"width":70,"height":10},{"x":285,"y":1320,"width":50,"height":20},{"x":490,"y":1315,"width":40,"height":10},{"x":660,"y":1320,"width":120,"height":20},{"x":80,"y":1325,"width":20,"height":10},{"x":175,"y":1325,"width":70,"height":10},{"x":485,"y":1345,"width":30,"height":50},{"x":80,"y":1335,"width":20,"height":10},{"x":170,"y":1335,"width":60,"height":10},{"x":280,"y":1345,"width":80,"height":30},{"x":655,"y":1335,"width":130,"height":10},{"x":80,"y":1345,"width":20,"height":10},{"x":165,"y":1345,"width":50,"height":10},{"x":395,"y":1360,"width":30,"height":40},{"x":525,"y":1350,"width":10,"height":20},{"x":650,"y":1355,"width":140,"height":30},{"x":75,"y":1355,"width":10,"height":10},{"x":160,"y":1355,"width":40,"height":10},{"x":540,"y":1355,"width":20,"height":10},{"x":75,"y":1365,"width":10,"height":10},{"x":165,"y":1365,"width":30,"height":10},{"x":260,"y":1365,"width":60,"height":10},{"x":415,"y":1365,"width":10,"height":10},{"x":535,"y":1365,"width":70,"height":10},{"x":75,"y":1375,"width":10,"height":10},{"x":255,"y":1380,"width":70,"height":20},{"x":415,"y":1375,"width":10,"height":10},{"x":585,"y":1375,"width":270,"height":10},{"x":75,"y":1385,"width":10,"height":10},{"x":405,"y":1395,"width":30,"height":30},{"x":580,"y":1385,"width":280,"height":10},{"x":75,"y":1395,"width":10,"height":10},{"x":245,"y":1395,"width":90,"height":10},{"x":570,"y":1395,"width":300,"height":10},{"x":75,"y":1405,"width":10,"height":10},{"x":250,"y":1425,"width":80,"height":50},{"x":570,"y":1405,"width":300,"height":10},{"x":75,"y":1415,"width":10,"height":10},{"x":295,"y":1415,"width":10,"height":10},{"x":335,"y":1420,"width":10,"height":20},{"x":560,"y":1470,"width":320,"height":120},{"x":75,"y":1425,"width":10,"height":10},{"x":305,"y":1425,"width":30,"height":10},{"x":365,"y":1425,"width":10,"height":10},{"x":75,"y":1435,"width":10,"height":10},{"x":340,"y":1435,"width":100,"height":10},{"x":75,"y":1445,"width":10,"height":10},{"x":340,"y":1445,"width":100,"height":10},{"x":75,"y":1455,"width":10,"height":10},{"x":305,"y":1465,"width":170,"height":30},{"x":110,"y":1465,"width":80,"height":10},{"x":110,"y":1475,"width":80,"height":10},{"x":110,"y":1485,"width":80,"height":10},{"x":240,"y":1485,"width":40,"height":10},{"x":330,"y":1485,"width":120,"height":10},{"x":115,"y":1495,"width":90,"height":10},{"x":245,"y":1495,"width":30,"height":10},{"x":335,"y":1495,"width":110,"height":10},{"x":115,"y":1505,"width":90,"height":10},{"x":250,"y":1505,"width":20,"height":10},{"x":345,"y":1505,"width":90,"height":10},{"x":115,"y":1515,"width":90,"height":10},{"x":350,"y":1515,"width":40,"height":10},{"x":115,"y":1525,"width":90,"height":10},{"x":360,"y":1525,"width":40,"height":10},{"x":80,"y":1535,"width":20,"height":10},{"x":135,"y":1535,"width":70,"height":10},{"x":350,"y":1535,"width":20,"height":10},{"x":565,"y":1545,"width":310,"height":30},{"x":80,"y":1545,"width":20,"height":10},{"x":145,"y":1545,"width":50,"height":10},{"x":345,"y":1545,"width":10,"height":10},{"x":75,"y":1555,"width":10,"height":10},{"x":160,"y":1555,"width":40,"height":10},{"x":75,"y":1565,"width":10,"height":10},{"x":495,"y":1565,"width":130,"height":10},{"x":650,"y":1575,"width":140,"height":30},{"x":75,"y":1575,"width":10,"height":10},{"x":495,"y":1575,"width":110,"height":10},{"x":25,"y":1870,"width":50,"height":580},{"x":510,"y":1590,"width":20,"height":20},{"x":55,"y":1595,"width":10,"height":10},{"x":660,"y":1620,"width":120,"height":60},{"x":55,"y":1605,"width":10,"height":10},{"x":505,"y":1605,"width":10,"height":10},{"x":55,"y":1615,"width":10,"height":10},{"x":60,"y":1625,"width":20,"height":10},{"x":65,"y":1635,"width":30,"height":10},{"x":65,"y":1645,"width":30,"height":10},{"x":275,"y":1645,"width":30,"height":10},{"x":65,"y":1655,"width":30,"height":10},{"x":270,"y":1655,"width":40,"height":10},{"x":655,"y":1710,"width":130,"height":120},{"x":65,"y":1665,"width":30,"height":10},{"x":260,"y":1680,"width":60,"height":40},{"x":65,"y":1675,"width":30,"height":10},{"x":300,"y":1675,"width":20,"height":10},{"x":65,"y":1685,"width":30,"height":10},{"x":310,"y":1690,"width":20,"height":20},{"x":65,"y":1695,"width":30,"height":10},{"x":70,"y":1705,"width":40,"height":10},{"x":265,"y":1705,"width":90,"height":10},{"x":405,"y":1705,"width":10,"height":10},{"x":70,"y":1715,"width":40,"height":10},{"x":245,"y":1725,"width":90,"height":30},{"x":410,"y":1715,"width":40,"height":10},{"x":445,"y":1715,"width":10,"height":10},{"x":70,"y":1725,"width":40,"height":10},{"x":405,"y":1725,"width":90,"height":10},{"x":70,"y":1735,"width":40,"height":10},{"x":395,"y":1735,"width":110,"height":10},{"x":70,"y":1745,"width":40,"height":10},{"x":235,"y":1745,"width":110,"height":10},{"x":390,"y":1745,"width":120,"height":10},{"x":70,"y":1755,"width":40,"height":10},{"x":225,"y":1760,"width":110,"height":20},{"x":395,"y":1760,"width":150,"height":20},{"x":75,"y":1765,"width":50,"height":10},{"x":75,"y":1775,"width":50,"height":10},{"x":205,"y":1775,"width":110,"height":10},{"x":385,"y":1775,"width":130,"height":10},{"x":660,"y":1785,"width":120,"height":30},{"x":75,"y":1785,"width":50,"height":10},{"x":200,"y":1785,"width":120,"height":10},{"x":370,"y":1790,"width":100,"height":20},{"x":75,"y":1795,"width":50,"height":10},{"x":190,"y":1800,"width":100,"height":20},{"x":75,"y":1805,"width":50,"height":10},{"x":355,"y":1805,"width":70,"height":10},{"x":405,"y":1815,"width":10,"height":30},{"x":665,"y":1840,"width":110,"height":80},{"x":75,"y":1815,"width":50,"height":10},{"x":180,"y":1820,"width":80,"height":20},{"x":340,"y":1815,"width":100,"height":10},{"x":530,"y":1815,"width":20,"height":10},{"x":75,"y":1825,"width":50,"height":10},{"x":330,"y":1825,"width":120,"height":10},{"x":535,"y":1835,"width":10,"height":30},{"x":75,"y":1835,"width":50,"height":10},{"x":170,"y":1840,"width":60,"height":20},{"x":315,"y":1835,"width":130,"height":10},{"x":395,"y":1835,"width":10,"height":10},{"x":475,"y":1835,"width":10,"height":10},{"x":75,"y":1845,"width":50,"height":10},{"x":300,"y":1845,"width":160,"height":10},{"x":500,"y":1845,"width":40,"height":10},{"x":70,"y":1855,"width":40,"height":10},{"x":295,"y":1860,"width":170,"height":20},{"x":485,"y":1885,"width":10,"height":70},{"x":525,"y":1855,"width":30,"height":10},{"x":65,"y":1865,"width":30,"height":10},{"x":525,"y":1865,"width":70,"height":10},{"x":65,"y":1875,"width":30,"height":10},{"x":270,"y":1880,"width":140,"height":20},{"x":530,"y":1875,"width":80,"height":10},{"x":65,"y":1885,"width":30,"height":10},{"x":530,"y":1885,"width":80,"height":10},{"x":660,"y":1900,"width":120,"height":40},{"x":65,"y":1895,"width":30,"height":10},{"x":260,"y":1895,"width":120,"height":10},{"x":530,"y":1895,"width":80,"height":10},{"x":65,"y":1905,"width":30,"height":10},{"x":255,"y":1910,"width":110,"height":20},{"x":530,"y":1905,"width":80,"height":10},{"x":65,"y":1915,"width":30,"height":10},{"x":530,"y":1915,"width":80,"height":10},{"x":65,"y":1925,"width":30,"height":10},{"x":250,"y":1925,"width":100,"height":10},{"x":315,"y":1935,"width":10,"height":30},{"x":430,"y":1925,"width":60,"height":10},{"x":525,"y":1940,"width":70,"height":40},{"x":655,"y":1980,"width":130,"height":120},{"x":65,"y":1935,"width":30,"height":10},{"x":245,"y":1940,"width":110,"height":20},{"x":435,"y":1935,"width":50,"height":10},{"x":65,"y":1945,"width":30,"height":10},{"x":425,"y":1950,"width":30,"height":20},{"x":455,"y":1950,"width":10,"height":20},{"x":65,"y":1955,"width":30,"height":10},{"x":245,"y":1955,"width":130,"height":10},{"x":65,"y":1965,"width":30,"height":10},{"x":235,"y":1970,"width":110,"height":20},{"x":305,"y":1970,"width":10,"height":20},{"x":390,"y":1965,"width":20,"height":10},{"x":435,"y":1965,"width":30,"height":10},{"x":65,"y":1975,"width":30,"height":10},{"x":385,"y":1980,"width":10,"height":20},{"x":435,"y":1975,"width":50,"height":10},{"x":65,"y":1985,"width":30,"height":10},{"x":225,"y":2010,"width":90,"height":60},{"x":295,"y":1985,"width":10,"height":10},{"x":65,"y":1995,"width":30,"height":10},{"x":290,"y":1995,"width":20,"height":10},{"x":70,"y":2005,"width":40,"height":10},{"x":285,"y":2010,"width":10,"height":20},{"x":70,"y":2015,"width":40,"height":10},{"x":75,"y":2025,"width":50,"height":10},{"x":275,"y":2025,"width":10,"height":10},{"x":75,"y":2035,"width":50,"height":10},{"x":275,"y":2035,"width":10,"height":10},{"x":75,"y":2045,"width":50,"height":10},{"x":215,"y":2065,"width":70,"height":50},{"x":660,"y":2045,"width":120,"height":10},{"x":80,"y":2055,"width":60,"height":10},{"x":655,"y":2065,"width":130,"height":30},{"x":85,"y":2065,"width":70,"height":10},{"x":400,"y":2065,"width":140,"height":10},{"x":90,"y":2075,"width":80,"height":10},{"x":395,"y":2075,"width":170,"height":10},{"x":95,"y":2085,"width":90,"height":10},{"x":395,"y":2085,"width":210,"height":10},{"x":615,"y":2085,"width":210,"height":10},{"x":160,"y":2095,"width":220,"height":10},{"x":500,"y":2095,"width":440,"height":10},{"x":385,"y":2105,"width":670,"height":10},{"x":385,"y":2115,"width":670,"height":10},{"x":385,"y":2125,"width":670,"height":10},{"x":385,"y":2135,"width":670,"height":10},{"x":385,"y":2145,"width":670,"height":10},{"x":385,"y":2155,"width":670,"height":10}] diff --git a/assets/worlds/mainworld.json b/assets/worlds/mainworld.json index 45a78a5..40d085e 100644 --- a/assets/worlds/mainworld.json +++ b/assets/worlds/mainworld.json @@ -3,14 +3,11 @@ "x": 10000.0, "y": 10000.0 }, + "player_spawn": { + "x": 220.0, + "y": 50.0 + }, "fish": [ - { - "x": 500.0, - "y": 300.0 - }, - { - "x": 800.0, - "y": 200.0 - } + {"x":49,"y":801},{"x":570,"y":594},{"x":761,"y":186},{"x":760,"y":940},{"x":241,"y":32},{"x":501,"y":18},{"x":487,"y":37},{"x":802,"y":849},{"x":864,"y":43},{"x":544,"y":886},{"x":987,"y":710},{"x":949,"y":404},{"x":694,"y":32},{"x":364,"y":899},{"x":26,"y":849},{"x":253,"y":627},{"x":39,"y":547},{"x":307,"y":730},{"x":133,"y":967},{"x":861,"y":76},{"x":199,"y":229},{"x":617,"y":532},{"x":391,"y":388},{"x":491,"y":816},{"x":539,"y":243},{"x":222,"y":288},{"x":81,"y":784},{"x":432,"y":830},{"x":741,"y":737},{"x":426,"y":480},{"x":591,"y":437},{"x":903,"y":380},{"x":653,"y":349},{"x":684,"y":235},{"x":797,"y":438},{"x":546,"y":615},{"x":497,"y":523},{"x":406,"y":468},{"x":173,"y":183},{"x":641,"y":187},{"x":517,"y":294},{"x":527,"y":650},{"x":962,"y":237},{"x":25,"y":868},{"x":16,"y":369},{"x":434,"y":712},{"x":632,"y":315},{"x":172,"y":421},{"x":450,"y":53},{"x":731,"y":220},{"x":532,"y":467},{"x":816,"y":497},{"x":948,"y":539},{"x":467,"y":829},{"x":533,"y":809},{"x":146,"y":989},{"x":850,"y":245},{"x":989,"y":214},{"x":203,"y":354},{"x":466,"y":611},{"x":382,"y":376},{"x":111,"y":148},{"x":411,"y":77},{"x":124,"y":418},{"x":154,"y":611},{"x":56,"y":732},{"x":800,"y":488},{"x":851,"y":668},{"x":240,"y":220},{"x":1000,"y":62},{"x":95,"y":784},{"x":700,"y":428},{"x":735,"y":517},{"x":259,"y":843},{"x":647,"y":268},{"x":668,"y":823},{"x":198,"y":241},{"x":243,"y":422},{"x":838,"y":433},{"x":642,"y":97},{"x":563,"y":974},{"x":386,"y":548},{"x":646,"y":482},{"x":691,"y":794},{"x":167,"y":485},{"x":978,"y":622},{"x":845,"y":431},{"x":529,"y":719},{"x":963,"y":145},{"x":6,"y":412},{"x":381,"y":830},{"x":918,"y":118},{"x":915,"y":27},{"x":618,"y":262},{"x":250,"y":635},{"x":100,"y":500},{"x":442,"y":321},{"x":769,"y":767},{"x":714,"y":204},{"x":506,"y":872},{"x":575,"y":178},{"x":256,"y":411},{"x":921,"y":617},{"x":971,"y":214},{"x":726,"y":702},{"x":103,"y":450},{"x":501,"y":134},{"x":265,"y":993},{"x":31,"y":63},{"x":502,"y":448},{"x":46,"y":457},{"x":809,"y":184},{"x":763,"y":962},{"x":632,"y":873},{"x":916,"y":761},{"x":710,"y":720},{"x":873,"y":222},{"x":256,"y":861},{"x":246,"y":482},{"x":390,"y":812},{"x":28,"y":247},{"x":516,"y":523},{"x":869,"y":43},{"x":680,"y":740},{"x":406,"y":65},{"x":657,"y":196},{"x":692,"y":635},{"x":97,"y":993},{"x":616,"y":490},{"x":515,"y":955},{"x":412,"y":502},{"x":743,"y":565},{"x":16,"y":499},{"x":324,"y":582},{"x":871,"y":62},{"x":128,"y":476},{"x":716,"y":525},{"x":627,"y":2},{"x":730,"y":913},{"x":704,"y":522},{"x":242,"y":934},{"x":172,"y":277},{"x":651,"y":948},{"x":349,"y":263},{"x":731,"y":967},{"x":382,"y":762},{"x":217,"y":15},{"x":49,"y":25},{"x":583,"y":110},{"x":700,"y":620},{"x":230,"y":537},{"x":285,"y":978},{"x":4,"y":791},{"x":939,"y":866},{"x":371,"y":342},{"x":759,"y":870},{"x":892,"y":103},{"x":57,"y":129},{"x":233,"y":383},{"x":171,"y":472},{"x":173,"y":842},{"x":516,"y":464},{"x":407,"y":458},{"x":963,"y":231},{"x":526,"y":253},{"x":815,"y":857},{"x":175,"y":909},{"x":993,"y":255},{"x":129,"y":390},{"x":76,"y":997},{"x":833,"y":174},{"x":501,"y":396},{"x":897,"y":218},{"x":876,"y":601},{"x":41,"y":165},{"x":993,"y":473},{"x":606,"y":308},{"x":831,"y":382},{"x":517,"y":828},{"x":984,"y":26},{"x":286,"y":712},{"x":422,"y":311},{"x":448,"y":103},{"x":260,"y":229},{"x":5,"y":738},{"x":283,"y":346},{"x":744,"y":463},{"x":634,"y":719},{"x":446,"y":977},{"x":220,"y":89},{"x":745,"y":866},{"x":851,"y":860},{"x":369,"y":940},{"x":828,"y":577},{"x":350,"y":337},{"x":334,"y":378},{"x":203,"y":248},{"x":665,"y":788},{"x":334,"y":927},{"x":307,"y":764},{"x":500,"y":763},{"x":613,"y":843},{"x":384,"y":253},{"x":956,"y":569},{"x":846,"y":137},{"x":105,"y":728},{"x":686,"y":226},{"x":657,"y":52},{"x":592,"y":433},{"x":997,"y":820},{"x":746,"y":389},{"x":405,"y":448},{"x":973,"y":19},{"x":538,"y":518},{"x":790,"y":275},{"x":633,"y":738},{"x":128,"y":484},{"x":603,"y":371},{"x":932,"y":21},{"x":582,"y":445},{"x":438,"y":793},{"x":963,"y":69},{"x":158,"y":263},{"x":988,"y":297},{"x":249,"y":227},{"x":245,"y":466},{"x":131,"y":495},{"x":620,"y":266},{"x":505,"y":384},{"x":813,"y":647},{"x":113,"y":66},{"x":757,"y":10},{"x":2,"y":707},{"x":540,"y":140},{"x":562,"y":691},{"x":484,"y":433},{"x":859,"y":455},{"x":248,"y":117},{"x":36,"y":432},{"x":798,"y":754},{"x":611,"y":291},{"x":664,"y":770},{"x":299,"y":788},{"x":433,"y":920},{"x":540,"y":739},{"x":201,"y":829},{"x":972,"y":362},{"x":811,"y":120},{"x":941,"y":670},{"x":186,"y":448},{"x":549,"y":611},{"x":206,"y":387},{"x":973,"y":437},{"x":700,"y":709},{"x":472,"y":243},{"x":971,"y":518},{"x":184,"y":540},{"x":271,"y":257},{"x":290,"y":895},{"x":546,"y":7},{"x":256,"y":542},{"x":418,"y":553},{"x":816,"y":875},{"x":908,"y":547},{"x":315,"y":354},{"x":266,"y":471},{"x":242,"y":88},{"x":785,"y":52},{"x":497,"y":47},{"x":466,"y":279},{"x":750,"y":690},{"x":329,"y":296},{"x":545,"y":715},{"x":508,"y":562},{"x":993,"y":467},{"x":703,"y":733},{"x":824,"y":11},{"x":419,"y":337},{"x":393,"y":229},{"x":898,"y":261},{"x":264,"y":708},{"x":711,"y":768},{"x":568,"y":409},{"x":473,"y":342},{"x":329,"y":53},{"x":95,"y":815},{"x":783,"y":977},{"x":48,"y":551},{"x":635,"y":931},{"x":653,"y":86},{"x":9,"y":153},{"x":955,"y":660},{"x":480,"y":716},{"x":936,"y":622},{"x":607,"y":221},{"x":423,"y":545},{"x":507,"y":668},{"x":676,"y":957},{"x":253,"y":515},{"x":327,"y":495},{"x":965,"y":808},{"x":2,"y":807},{"x":276,"y":199},{"x":584,"y":75},{"x":770,"y":51},{"x":667,"y":717},{"x":944,"y":913},{"x":982,"y":977},{"x":618,"y":482},{"x":372,"y":545},{"x":507,"y":518},{"x":604,"y":492},{"x":772,"y":730},{"x":350,"y":141},{"x":783,"y":437},{"x":282,"y":714},{"x":269,"y":691},{"x":991,"y":386},{"x":234,"y":196},{"x":908,"y":635},{"x":785,"y":340},{"x":125,"y":712},{"x":466,"y":210},{"x":280,"y":185},{"x":995,"y":466},{"x":589,"y":258},{"x":700,"y":120},{"x":855,"y":323},{"x":690,"y":355},{"x":755,"y":353},{"x":378,"y":970},{"x":865,"y":270},{"x":220,"y":62},{"x":685,"y":848},{"x":670,"y":907},{"x":710,"y":671},{"x":209,"y":68},{"x":642,"y":470},{"x":104,"y":642},{"x":631,"y":328},{"x":898,"y":424},{"x":909,"y":427},{"x":189,"y":141},{"x":259,"y":993},{"x":332,"y":791},{"x":842,"y":778},{"x":63,"y":390},{"x":146,"y":895},{"x":230,"y":274},{"x":316,"y":447},{"x":603,"y":59},{"x":377,"y":841},{"x":602,"y":119},{"x":728,"y":557},{"x":395,"y":514},{"x":379,"y":754},{"x":822,"y":840},{"x":860,"y":478},{"x":695,"y":360},{"x":156,"y":784},{"x":241,"y":353},{"x":195,"y":199},{"x":284,"y":110},{"x":484,"y":966},{"x":889,"y":370},{"x":246,"y":684},{"x":710,"y":345},{"x":382,"y":635},{"x":447,"y":948},{"x":741,"y":274},{"x":224,"y":883},{"x":99,"y":37},{"x":472,"y":803},{"x":141,"y":397},{"x":371,"y":602},{"x":7,"y":482},{"x":184,"y":990},{"x":555,"y":313},{"x":573,"y":886},{"x":167,"y":365},{"x":810,"y":721},{"x":958,"y":767},{"x":891,"y":561},{"x":314,"y":987},{"x":156,"y":95},{"x":349,"y":542},{"x":775,"y":35},{"x":121,"y":655},{"x":311,"y":242},{"x":534,"y":135},{"x":71,"y":134},{"x":367,"y":896},{"x":447,"y":524},{"x":120,"y":421},{"x":878,"y":398},{"x":469,"y":822},{"x":483,"y":966},{"x":240,"y":880},{"x":759,"y":980},{"x":531,"y":759},{"x":395,"y":118},{"x":354,"y":360},{"x":173,"y":924},{"x":550,"y":958},{"x":888,"y":379},{"x":244,"y":448},{"x":999,"y":554},{"x":941,"y":455},{"x":798,"y":916},{"x":134,"y":123},{"x":90,"y":440},{"x":923,"y":263},{"x":405,"y":595},{"x":194,"y":387},{"x":370,"y":697},{"x":943,"y":888},{"x":607,"y":336},{"x":168,"y":105},{"x":874,"y":66},{"x":675,"y":50},{"x":601,"y":242},{"x":925,"y":728},{"x":643,"y":609},{"x":769,"y":713},{"x":410,"y":913},{"x":153,"y":776},{"x":775,"y":949},{"x":184,"y":93},{"x":624,"y":632},{"x":899,"y":804},{"x":909,"y":327},{"x":371,"y":510},{"x":663,"y":415},{"x":337,"y":542},{"x":248,"y":104},{"x":925,"y":450},{"x":310,"y":925},{"x":4,"y":550},{"x":559,"y":652},{"x":671,"y":296},{"x":414,"y":60},{"x":972,"y":505},{"x":221,"y":147},{"x":318,"y":592},{"x":861,"y":656},{"x":258,"y":675},{"x":565,"y":390},{"x":703,"y":236},{"x":227,"y":76},{"x":989,"y":252},{"x":924,"y":419},{"x":983,"y":971},{"x":795,"y":244},{"x":256,"y":498},{"x":517,"y":674},{"x":89,"y":197},{"x":366,"y":234},{"x":41,"y":952},{"x":487,"y":981},{"x":939,"y":922},{"x":384,"y":315},{"x":958,"y":57},{"x":499,"y":152},{"x":716,"y":167},{"x":167,"y":301},{"x":781,"y":964},{"x":101,"y":215},{"x":605,"y":396},{"x":31,"y":973},{"x":128,"y":831},{"x":685,"y":701},{"x":150,"y":507},{"x":663,"y":77},{"x":792,"y":561},{"x":398,"y":281},{"x":168,"y":936},{"x":8,"y":266},{"x":19,"y":723},{"x":377,"y":975},{"x":68,"y":114},{"x":191,"y":784},{"x":94,"y":222},{"x":986,"y":578},{"x":474,"y":160},{"x":936,"y":945},{"x":603,"y":778},{"x":105,"y":845},{"x":955,"y":583},{"x":832,"y":905},{"x":264,"y":132},{"x":219,"y":747},{"x":515,"y":562},{"x":178,"y":198},{"x":999,"y":1},{"x":470,"y":345},{"x":450,"y":490},{"x":967,"y":306},{"x":257,"y":360},{"x":632,"y":26},{"x":916,"y":382},{"x":631,"y":194},{"x":492,"y":235},{"x":479,"y":373},{"x":887,"y":154},{"x":65,"y":181},{"x":956,"y":879},{"x":567,"y":578},{"x":718,"y":617},{"x":464,"y":243},{"x":545,"y":410},{"x":923,"y":340},{"x":978,"y":716},{"x":277,"y":261},{"x":462,"y":600},{"x":687,"y":507} ] } \ No newline at end of file diff --git a/bundle/create-releases.sh b/bundle/create-releases.sh index 3837f1a..1005aa0 100755 --- a/bundle/create-releases.sh +++ b/bundle/create-releases.sh @@ -9,10 +9,10 @@ set -e # Make a uni-bundle echo "Creating a fat bundle for all platforms" rm -rf ./bundle/release -rm -rf ./bundle/ludum-dare-48.zip +rm -rf ./bundle/one-breath.zip mkdir -p ./bundle/release cp -r ./assets ./bundle/release -cp ./bundle/linux/release/ludum-dare-48 ./bundle/release/ludum-dare-48 -cp ./bundle/windows/release/ludum-dare-48.exe ./bundle/release/ludum-dare-48.exe +cp ./bundle/linux/release/one-breath ./bundle/release/one-breath +cp ./bundle/windows/release/one-breath.exe ./bundle/release/one-breath.exe cd ./bundle/release -zip -r ../ludum-dare-48.zip ./ \ No newline at end of file +zip -r ../one-breath.zip ./ \ No newline at end of file diff --git a/bundle/linux/create-release.sh b/bundle/linux/create-release.sh index 2e130e0..6e4b674 100755 --- a/bundle/linux/create-release.sh +++ b/bundle/linux/create-release.sh @@ -12,7 +12,7 @@ rm -rf ./bundle/linux/release-x86_64-unknown-linux-gnu.zip mkdir -p ./bundle/linux/release echo "Copying binary" -cp ./target/x86_64-unknown-linux-gnu/release/ludum-dare-48 ./bundle/linux/release +cp ./target/x86_64-unknown-linux-gnu/release/one-breath ./bundle/linux/release echo "Copying assets" cp -r ./assets ./bundle/linux/release diff --git a/bundle/windows/create-release.sh b/bundle/windows/create-release.sh index 46a2412..bf5c147 100755 --- a/bundle/windows/create-release.sh +++ b/bundle/windows/create-release.sh @@ -11,7 +11,7 @@ rm -rf ./bundle/windows/release-x86_64-pc-windows-gnu.zip mkdir -p ./bundle/windows/release echo "Copying binary" -cp ./target/x86_64-pc-windows-gnu/release/ludum-dare-48.exe ./bundle/windows/release +cp ./target/x86_64-pc-windows-gnu/release/one-breath.exe ./bundle/windows/release echo "Copying assets" cp -r ./assets ./bundle/windows/release diff --git a/src/entities/fish.rs b/src/entities/fish.rs index 7d994bc..8982d0b 100644 --- a/src/entities/fish.rs +++ b/src/entities/fish.rs @@ -1,30 +1,51 @@ -use rand::{Rng, prelude::ThreadRng}; +use rand::{prelude::ThreadRng, Rng}; use raylib::prelude::*; -use crate::{gamecore::GameCore, lib::utils::triangles::rotate_vector, player::Player}; +use crate::{ + gamecore::GameCore, lib::utils::triangles::rotate_vector, player::Player, world::World, +}; const FISH_FOLLOW_PLAYER_DISTANCE: f32 = 30.0; const FISH_FOLLOW_PLAYER_SPEED: f32 = 1.8; const FISH_FOLLOW_PLAYER_SPEED_FAST: f32 = FISH_FOLLOW_PLAYER_SPEED * 3.0; const FISH_ATTACH_RADIUS: f32 = 20.0; +const FISH_VISION: f32 = 25.0; +const FISH_MAX_SPEED: f32 = 2.0; +const FISH_MAX_FORCE: f32 = 0.05; +const FISH_FACTOR_ATTRACTION: f32 = 1.0; +const FISH_FACTOR_PLAYER: f32 = 0.1; +const FISH_FACTOR_COHESION: f32 = 0.1; +const FISH_SEPARATION_DISTANCE: f32 = 15.0; +const FISH_FACTOR_SEPARATION: f32 = 1.5; + #[derive(Debug, Clone)] pub struct FishEntity { position: Vector2, direction: Vector2, + velocity: Vector2, pub following_player: bool, size: Vector2, - rng: ThreadRng + rng: ThreadRng, + color: Color, } impl FishEntity { pub fn new(position: Vector2) -> Self { + let mut rng = rand::thread_rng(); Self { position: position, direction: Vector2::zero(), + velocity: Vector2::zero(), following_player: false, size: Vector2 { x: 5.0, y: 8.0 }, - rng: rand::thread_rng() + color: Color { + r: rng.gen_range(128..225), + g: rng.gen_range(128..225), + b: rng.gen_range(128..225), + a: 140, + }, + rng, } } @@ -36,34 +57,81 @@ impl FishEntity { return output; } - pub fn handle_follow_player(&mut self, player: &Player, dt: f64) { - // Distance and direction to player - let dist_to_player = player.position - self.position; - let dist_to_player_lin = self.position.distance_to(player.position); - let mut direction_to_player = dist_to_player; - direction_to_player.normalize(); + pub fn handle_follow_player(&mut self, player: &Player, dt: f64, other_fish: &Vec) { + let mut acceleration: Vector2 = Vector2::zero(); - // Fish movement - let movement; - - // Random variance - let variance = self.rng.gen_range(500.0..1000.0) / 1000.0; - - // If the fish is double its follow distance from the player - if dist_to_player_lin.abs() > (FISH_FOLLOW_PLAYER_DISTANCE * 2.0) { - movement = direction_to_player * FISH_FOLLOW_PLAYER_SPEED_FAST * variance; - } else { - // Move slowly in the direction of the player unless too close - if dist_to_player_lin.abs() > FISH_FOLLOW_PLAYER_DISTANCE { - movement = direction_to_player * FISH_FOLLOW_PLAYER_SPEED * variance; - } else { - movement = Vector2::zero(); + let mut steer: Vector2 = Vector2::zero(); + let mut count1: u16 = 0; + let mut sum1: Vector2 = Vector2::zero(); + let mut count2: u16 = 0; + let mut sum2: Vector2 = Vector2::zero(); + let mut count3: u16 = 0; + // separation + for i in other_fish { + let dist = (self.position - i.position).length(); + if dist < FISH_SEPARATION_DISTANCE && dist > 0.0 { + let mut diff: Vector2 = self.position - i.position; + diff.normalize(); + diff /= dist; + steer += diff; + count1 += 1; + } + if dist < FISH_VISION && dist > 0.0 { + sum1 += i.direction; + count2 += 1; + sum2 += i.position; + count3 += 1; } } + if count1 > 0 { + steer /= count1 as f32; + } + if steer.x != 0.0 || steer.y != 0.0 { + steer.normalize(); + steer *= FISH_MAX_SPEED; + steer -= self.velocity; + steer.x = f32::min(f32::max(steer.x, -FISH_MAX_FORCE), FISH_MAX_FORCE); + steer.y = f32::min(f32::max(steer.y, -FISH_MAX_FORCE), FISH_MAX_FORCE); + acceleration += steer * FISH_FACTOR_SEPARATION; + } + + // attraction + if count2 > 0 { + sum1 /= count2 as f32; + sum1.normalize(); + sum1 *= FISH_MAX_SPEED; + sum1 -= self.velocity; + sum1.x = f32::min(f32::max(sum1.x, -FISH_MAX_FORCE), FISH_MAX_FORCE); + sum1.y = f32::min(f32::max(sum1.y, -FISH_MAX_FORCE), FISH_MAX_FORCE); + acceleration += sum1 * FISH_FACTOR_ATTRACTION; + } + + // cohesion + if count3 > 0 { + sum2 /= count3 as f32; + let mut desired: Vector2 = sum2 - self.position; + + desired.normalize(); + desired *= FISH_MAX_SPEED; + + desired.x = f32::min(f32::max(desired.x, -FISH_MAX_FORCE), FISH_MAX_FORCE); + desired.y = f32::min(f32::max(desired.y, -FISH_MAX_FORCE), FISH_MAX_FORCE); + + acceleration += desired * FISH_FACTOR_COHESION; + } + + // turn to player + let mut player_factor: Vector2 = player.position - self.position; + player_factor.normalize(); + acceleration += player_factor * FISH_FACTOR_PLAYER; // Move the fish - self.direction = direction_to_player; - self.position += movement; + self.direction = self.velocity.normalized(); + self.velocity += acceleration; + + self.velocity.x = f32::min(f32::max(self.velocity.x, -FISH_MAX_SPEED), FISH_MAX_SPEED); + self.velocity.y = f32::min(f32::max(self.velocity.y, -FISH_MAX_SPEED), FISH_MAX_SPEED); + self.position += self.velocity; } pub fn handle_free_movement(&mut self, player: &mut Player, dt: f64) { @@ -76,6 +144,7 @@ impl FishEntity { // Handle player picking up fish if player.position.distance_to(self.position).abs() <= player.size.y * 2.2 { self.following_player = true; + self.velocity = self.direction.normalized(); // Add currency to the player player.coins += 1; @@ -86,9 +155,9 @@ impl FishEntity { self.direction = direction_to_player; } - pub fn update_position(&mut self, player: &mut Player, dt: f64) { + pub fn update_position(&mut self, player: &mut Player, dt: f64, other_fish: &Vec) { if self.following_player { - self.handle_follow_player(player, dt); + self.handle_follow_player(player, dt, other_fish); } else { self.handle_free_movement(player, dt); } @@ -127,7 +196,7 @@ impl FishEntity { self.position + fish_front, self.position + fish_bl, self.position + fish_br, - Color::BLACK, + self.color, ); } } diff --git a/src/gamecore.rs b/src/gamecore.rs index a29e2fa..d8216b7 100644 --- a/src/gamecore.rs +++ b/src/gamecore.rs @@ -107,6 +107,7 @@ impl GameCore { world: World, progress: GameProgress, ) -> Self { + let player = Player::new(&world.player_spawn); Self { state: GameState::Loading, last_state: GameState::Loading, @@ -117,13 +118,13 @@ impl GameCore { .expect("Failed to load game assets. Can not launch!"), master_camera: Camera2D { offset: Vector2::zero(), - target: Vector2::zero(), + target: world.player_spawn, rotation: 0.0, zoom: 2.0, }, show_simple_debug_info: false, world: world, - player: Player::new(), + player, progress: progress, } } diff --git a/src/logic/ingame/mod.rs b/src/logic/ingame/mod.rs index 4a4e0a8..18ab910 100644 --- a/src/logic/ingame/mod.rs +++ b/src/logic/ingame/mod.rs @@ -6,6 +6,7 @@ use raylib::prelude::*; use crate::{ gamecore::{GameCore, GameState}, lib::wrappers::audio::player::AudioPlayer, + pallette::{SKY, WATER}, }; use super::screen::Screen; @@ -31,7 +32,48 @@ impl InGameScreen { context_2d: &mut RaylibMode2D, game_core: &mut GameCore, ) { - context_2d.draw_circle(0, 0, 10.0, Color::BLACK); + // Build source bounds + let source_bounds = Rectangle { + x: 0.0, + y: 0.0, + width: game_core.resources.cave_mid_layer.width as f32, + height: game_core.resources.cave_mid_layer.height as f32, + }; + let world_bounds = Rectangle { + x: 0.0, + y: 0.0, + width: game_core.resources.cave_mid_layer.width as f32, + height: game_core.resources.cave_mid_layer.height as f32, + }; + + // Clear the background + context_2d.draw_rectangle_rec(world_bounds, WATER); + + // Render the world texture + context_2d.draw_texture_rec( + &game_core.resources.cave_mid_layer, + source_bounds, + Vector2 { + x: world_bounds.x, + y: world_bounds.y, + }, + Color::WHITE, + ); + } + + fn render_colliders( + &mut self, + context_2d: &mut RaylibMode2D, + game_core: &mut GameCore, + ) { + // Render every collider + for collider in game_core.world.colliders.iter() { + context_2d.draw_rectangle_lines_ex( + collider, + 1, + Color::RED, + ); + } } } @@ -47,7 +89,7 @@ impl Screen for InGameScreen { let dt = draw_handle.get_time() - game_core.last_frame_time; // Clear frame - draw_handle.clear_background(Color::BLUE); + draw_handle.clear_background(Color::BLACK); // Handle the pause menu being opened if draw_handle.is_key_pressed(KeyboardKey::KEY_ESCAPE) { @@ -72,11 +114,14 @@ impl Screen for InGameScreen { // Render the world self.render_world(&mut context_2d, game_core); + if game_core.show_simple_debug_info{ + self.render_colliders(&mut context_2d, game_core); + } // Render entities - let mut fish = &mut game_core.world.fish; - for fish in fish.iter_mut() { - fish.update_position(&mut game_core.player, dt); + let fish_clone = game_core.world.fish.clone(); + for fish in game_core.world.fish.iter_mut() { + fish.update_position(&mut game_core.player, dt, &fish_clone); fish.render(&mut context_2d); } diff --git a/src/logic/ingame/playerlogic.rs b/src/logic/ingame/playerlogic.rs index 1460984..6446ec5 100644 --- a/src/logic/ingame/playerlogic.rs +++ b/src/logic/ingame/playerlogic.rs @@ -129,8 +129,20 @@ pub fn update_player_movement( // Only do this if the mouse is far enough away let player_real_movement = game_core.player.direction * speed_multiplier; if raw_movement_direction.distance_to(Vector2::zero()) > game_core.player.size.y / 2.0 { - game_core.player.position += player_real_movement; game_core.player.is_moving = true; + game_core.player.position += player_real_movement; + + // Check for any collisions + for collider in game_core.world.colliders.iter() { + if game_core.player.collides_with_rec(collider) { + game_core.player.is_moving = false; + break; + } + } + + if !game_core.player.is_moving { + game_core.player.position -= player_real_movement; + } } else { game_core.player.is_moving = false; } @@ -142,9 +154,19 @@ pub fn update_player_movement( draw_handle.get_world_to_screen2D(game_core.player.position, game_core.master_camera); // Camera only moves if you get close to the edge of the screen - if player_screen_position.distance_to(window_center).abs() > (window_center.y - 40.0) { + if player_screen_position.distance_to(window_center).abs() > 100.0 { game_core.master_camera.target += player_real_movement; } + + // If the player is not on screen, snap the camera to them + if player_screen_position.distance_to(window_center).abs() > window_center.y { + game_core.master_camera.target = game_core.player.position - (window_center / 2.0); + } + + // // Clamp camera target y to 0 + // if game_core.master_camera.target.y < -100.0 { + // game_core.master_camera.target.y = -100.0; + // } } pub fn render_player(context_2d: &mut RaylibMode2D, game_core: &mut GameCore) { diff --git a/src/logic/mainmenu.rs b/src/logic/mainmenu.rs index 893494e..e3fc664 100644 --- a/src/logic/mainmenu.rs +++ b/src/logic/mainmenu.rs @@ -28,11 +28,11 @@ impl Screen for MainMenuScreen { let win_width = draw_handle.get_screen_width(); // Clear frame - draw_handle.clear_background(Color::WHITE); + draw_handle.clear_background(Color::BLUE); // Render title draw_handle.draw_text( - "TMP TITLE", + "ONE BREATH", (win_height / 2) - 80, win_width / 4, 40, diff --git a/src/logic/pausemenu.rs b/src/logic/pausemenu.rs index 64daf35..30c91f4 100644 --- a/src/logic/pausemenu.rs +++ b/src/logic/pausemenu.rs @@ -7,7 +7,7 @@ use crate::{ use super::screen::Screen; -const SCREEN_PANEL_SIZE: Vector2 = Vector2 { x: 300.0, y: 300.0 }; +const SCREEN_PANEL_SIZE: Vector2 = Vector2 { x: 300.0, y: 380.0 }; pub struct PauseMenuScreen {} @@ -118,6 +118,15 @@ impl Screen for PauseMenuScreen { } } + // Render credits + draw_handle.draw_text( + "Credits:\n\t- @ewpratten\n\t- @rsninja722\n\t- @wm-c\n\t- @catarinaburghi", + (win_width / 2) - (SCREEN_PANEL_SIZE.x as i32 / 2) + 10, + (win_height / 2) - (SCREEN_PANEL_SIZE.y as i32 / 2) + 120, + 20, + Color::BLACK, + ); + // Close and quit buttons let bottom_left_button_dimensions = Rectangle { x: (win_width as f32 / 2.0) - (SCREEN_PANEL_SIZE.x / 2.0) + 5.0, diff --git a/src/main.rs b/src/main.rs index 0016bc3..75a8769 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,14 +13,14 @@ use lib::{utils::profiler::GameProfiler, wrappers::audio::player::AudioPlayer}; use log::info; use logic::{gameend::GameEndScreen, ingame::InGameScreen, loadingscreen::LoadingScreen, mainmenu::MainMenuScreen, pausemenu::PauseMenuScreen, screen::Screen}; use raylib::prelude::*; -use world::World; +use world::{World, load_world_colliders}; // Game Launch Configuration const DEFAULT_WINDOW_DIMENSIONS: Vector2 = Vector2 { x: 1080.0, y: 720.0, }; -const WINDOW_TITLE: &str = r"Ludum Dare 48"; +const WINDOW_TITLE: &str = r"One Breath"; const MAX_FPS: u32 = 60; fn main() { @@ -32,7 +32,7 @@ fn main() { .size( DEFAULT_WINDOW_DIMENSIONS.x as i32, DEFAULT_WINDOW_DIMENSIONS.y as i32, - ) + ).msaa_4x() .title(WINDOW_TITLE) .build(); raylib.set_target_fps(MAX_FPS); @@ -41,7 +41,8 @@ fn main() { raylib.set_exit_key(None); // Load the world - let world = World::load_from_json("./assets/worlds/mainworld.json".to_string()).expect("Failed to load main world JSON"); + let world_colliders = load_world_colliders("./assets/img/map/cave.json".to_string()).expect("Failed to load world colliders"); + let world = World::load_from_json("./assets/worlds/mainworld.json".to_string(), world_colliders).expect("Failed to load main world JSON"); // Load the game progress let game_progress = GameProgress::try_from_file("./assets/savestate.json".to_string()); diff --git a/src/pallette.rs b/src/pallette.rs index 9d70e98..5d675ca 100644 --- a/src/pallette.rs +++ b/src/pallette.rs @@ -19,4 +19,18 @@ pub const TRANSLUCENT_WHITE_64: Color = Color { g: 255, b: 255, a: 64, +}; + +pub const SKY: Color = Color { + r: 15, + g: 193, + b: 217, + a: 255 +}; + +pub const WATER: Color = Color { + r: 24, + g: 66, + b: 143, + a: 255 }; \ No newline at end of file diff --git a/src/player.rs b/src/player.rs index 95c34a2..01c5343 100644 --- a/src/player.rs +++ b/src/player.rs @@ -1,6 +1,6 @@ -use raylib::math::Vector2; - +use raylib::math::{Rectangle, Vector2}; +use crate::lib::utils::triangles::rotate_vector; #[derive(Debug, Default)] pub struct Player { @@ -12,20 +12,48 @@ pub struct Player { pub breath_percent: f32, pub is_moving: bool, pub is_boosting: bool, - pub is_boost_charging: bool + pub is_boost_charging: bool, } impl Player { - pub fn new() -> Self { + pub fn new(spawn: &Vector2) -> Self { Self { boost_percent: 1.0, - size: Vector2 { - x: 11.0, - y: 21.0 - }, + size: Vector2 { x: 11.0, y: 21.0 }, breath_percent: 1.0, + position: spawn.clone(), ..Default::default() - } } -} \ No newline at end of file + + pub fn collides_with_rec(&self, rectangle: &Rectangle) -> bool { + // // Build a bounding box of the player by their corners + // let top_left_corner = self.position - (self.size / 2.0); + // let bottom_right_corner = self.position + (self.size / 2.0); + // let top_right_corner = Vector2 { + // x: bottom_right_corner.x, + // y: top_left_corner.y, + // }; + // let bottom_left_corner = Vector2 { + // x: top_left_corner.x, + // y: bottom_right_corner.y, + // }; + + // // Get the rotation + // let rotation = Vector2::zero().angle_to(self.direction); + + // // Rotate the bounds + // let top_left_corner = rotate_vector(top_left_corner, rotation); + // let bottom_right_corner = rotate_vector(bottom_right_corner, rotation); + // let top_right_corner = rotate_vector(top_right_corner, rotation); + // let bottom_left_corner = rotate_vector(bottom_left_corner, rotation); + + // // Check for collisions + // return rectangle.check_collision_point_rec(top_left_corner) + // || rectangle.check_collision_point_rec(bottom_right_corner) + // || rectangle.check_collision_point_rec(top_right_corner) + // || rectangle.check_collision_point_rec(bottom_left_corner); + + return rectangle.check_collision_circle_rec(self.position, (self.size.y * 0.5) / 2.0); + } +} diff --git a/src/resources.rs b/src/resources.rs index 7397358..b88c5a4 100644 --- a/src/resources.rs +++ b/src/resources.rs @@ -16,6 +16,9 @@ pub struct GlobalResources { pub player_animation_regular: FrameAnimationWrapper, pub player_animation_boost_charge: FrameAnimationWrapper, pub player_animation_boost: FrameAnimationWrapper, + + // Cave + pub cave_mid_layer: Texture2D } impl GlobalResources { @@ -56,6 +59,10 @@ impl GlobalResources { 21, 30, ), + cave_mid_layer: raylib.load_texture_from_image( + &thread, + &Image::load_image("./assets/img/map/cave.png")?, + )?, }) } } diff --git a/src/world.rs b/src/world.rs index 050d284..1f344fe 100644 --- a/src/world.rs +++ b/src/world.rs @@ -1,6 +1,6 @@ use std::{fs::File, io::BufReader}; -use raylib::math::Vector2; +use raylib::math::{Rectangle, Vector2}; use serde::{Deserialize, Serialize}; use std::io::Read; use failure::Error; @@ -10,16 +10,20 @@ use crate::entities::fish::FishEntity; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct World { pub end_position: Vector2, + pub player_spawn: Vector2, #[serde(rename = "fish")] pub fish_positions: Vec, #[serde(skip)] - pub fish: Vec + pub fish: Vec, + + #[serde(skip)] + pub colliders: Vec } impl World { - pub fn load_from_json(file: String) -> Result { + pub fn load_from_json(file: String, colliders: Vec) -> Result { // Load the file let file = File::open(file)?; let reader = BufReader::new(file); @@ -30,6 +34,17 @@ impl World { // Init all fish result.fish = FishEntity::new_from_positions(&result.fish_positions); + // Init colliders + result.colliders = Vec::new(); + for collider in colliders.iter(){ + result.colliders.push(Rectangle { + x: collider.x - (collider.width / 2.0), + y: collider.y - (collider.height / 2.0), + width: collider.width, + height: collider.height, + }); + } + Ok(result) } @@ -45,3 +60,13 @@ impl World { } } } + + +pub fn load_world_colliders(file: String) -> Result, Error> { + // Load the file + let file = File::open(file)?; + let reader = BufReader::new(file); + + // Deserialize + Ok(serde_json::from_reader(reader)?) +} \ No newline at end of file