diff --git a/contributors.html b/contributors.html
index a51602cf..c1b0d72e 100644
--- a/contributors.html
+++ b/contributors.html
@@ -100,6 +100,10 @@
SHARK GAME: NEW FRONTIERS
Glowkate |
Art |
+
+ Main Battle Train |
+ Art |
+
UnstoppableGiant |
Playtesting, Art |
diff --git a/img/small/actions/getCrimsonCombine.png b/img/small/actions/getCrimsonCombine.png
new file mode 100644
index 00000000..dd0260f1
Binary files /dev/null and b/img/small/actions/getCrimsonCombine.png differ
diff --git a/img/sprites.png b/img/sprites.png
index 59e10160..072721cb 100644
Binary files a/img/sprites.png and b/img/sprites.png differ
diff --git a/js/data/events.js b/js/data/events.js
index 28c209d9..fee41d63 100644
--- a/js/data/events.js
+++ b/js/data/events.js
@@ -341,9 +341,9 @@ SharkGame.Events = {
},
trigger() {
if (SharkGame.Lab.findAllAffordableUpgrades().length) {
- $("#tab-lab").html("(!) Laboratory");
+ $("#tab-lab").html(`(!) ${SharkGame.Lab.tabName}`);
} else {
- $("#tab-lab").html("Laboratory");
+ $("#tab-lab").html(`${SharkGame.Lab.tabName}`);
}
return true;
},
diff --git a/js/data/sprites.js b/js/data/sprites.js
index f3916636..fb3b0a29 100644
--- a/js/data/sprites.js
+++ b/js/data/sprites.js
@@ -247,7 +247,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getCrystalMiner": {
+ "actions/getCrimsonCombine": {
frame: {
x: 100,
y: 350,
@@ -255,7 +255,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getCuriousCrab": {
+ "actions/getCrystalMiner": {
frame: {
x: 150,
y: 350,
@@ -263,7 +263,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getDiver": {
+ "actions/getCuriousCrab": {
frame: {
x: 200,
y: 350,
@@ -271,7 +271,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getDolphin": {
+ "actions/getDiver": {
frame: {
x: 250,
y: 350,
@@ -279,7 +279,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getEel": {
+ "actions/getDolphin": {
frame: {
x: 300,
y: 350,
@@ -287,7 +287,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getEggBrooder": {
+ "actions/getEel": {
frame: {
x: 350,
y: 350,
@@ -295,7 +295,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getExplorer": {
+ "actions/getEggBrooder": {
frame: {
x: 400,
y: 0,
@@ -303,7 +303,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getExtractionTeam": {
+ "actions/getExplorer": {
frame: {
x: 400,
y: 50,
@@ -311,7 +311,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getFarmer": {
+ "actions/getExtractionTeam": {
frame: {
x: 400,
y: 100,
@@ -319,7 +319,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getFishMachine": {
+ "actions/getFarmer": {
frame: {
x: 400,
y: 150,
@@ -327,7 +327,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getHarvester": {
+ "actions/getFishMachine": {
frame: {
x: 400,
y: 200,
@@ -335,7 +335,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getInvestigator": {
+ "actions/getHarvester": {
frame: {
x: 400,
y: 250,
@@ -343,7 +343,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getJellyfish": {
+ "actions/getInvestigator": {
frame: {
x: 400,
y: 300,
@@ -351,7 +351,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getKelpCultivator": {
+ "actions/getJellyfish": {
frame: {
x: 400,
y: 350,
@@ -359,7 +359,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getLaser": {
+ "actions/getKelpCultivator": {
frame: {
x: 0,
y: 400,
@@ -367,7 +367,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getLobster": {
+ "actions/getLaser": {
frame: {
x: 50,
y: 400,
@@ -375,7 +375,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getLobter": {
+ "actions/getLobster": {
frame: {
x: 100,
y: 400,
@@ -383,7 +383,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getMaker": {
+ "actions/getLobter": {
frame: {
x: 150,
y: 400,
@@ -391,7 +391,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getManta": {
+ "actions/getMaker": {
frame: {
x: 200,
y: 400,
@@ -399,7 +399,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getNurse": {
+ "actions/getManta": {
frame: {
x: 250,
y: 400,
@@ -407,7 +407,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getOctopus": {
+ "actions/getNurse": {
frame: {
x: 300,
y: 400,
@@ -415,7 +415,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getPhilosopher": {
+ "actions/getOctopus": {
frame: {
x: 350,
y: 400,
@@ -423,7 +423,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getPit": {
+ "actions/getPhilosopher": {
frame: {
x: 400,
y: 400,
@@ -431,7 +431,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getPlanter": {
+ "actions/getPit": {
frame: {
x: 450,
y: 0,
@@ -439,7 +439,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getQueen": {
+ "actions/getPlanter": {
frame: {
x: 450,
y: 50,
@@ -447,7 +447,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getResearcher": {
+ "actions/getQueen": {
frame: {
x: 450,
y: 100,
@@ -455,7 +455,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSandDigger": {
+ "actions/getResearcher": {
frame: {
x: 450,
y: 150,
@@ -463,7 +463,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getScavenger": {
+ "actions/getSandDigger": {
frame: {
x: 450,
y: 200,
@@ -471,7 +471,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getScholar": {
+ "actions/getScavenger": {
frame: {
x: 450,
y: 250,
@@ -479,7 +479,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getScientist": {
+ "actions/getScholar": {
frame: {
x: 450,
y: 300,
@@ -487,7 +487,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSeaApple": {
+ "actions/getScientist": {
frame: {
x: 450,
y: 350,
@@ -495,7 +495,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getShark": {
+ "actions/getSeaApple": {
frame: {
x: 450,
y: 400,
@@ -503,7 +503,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getShoveler": {
+ "actions/getShark": {
frame: {
x: 0,
y: 450,
@@ -511,7 +511,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getShrimp": {
+ "actions/getShoveler": {
frame: {
x: 50,
y: 450,
@@ -519,7 +519,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSifter": {
+ "actions/getShrimp": {
frame: {
x: 100,
y: 450,
@@ -527,7 +527,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSkimmer": {
+ "actions/getSifter": {
frame: {
x: 150,
y: 450,
@@ -535,7 +535,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSpongeFarm": {
+ "actions/getSkimmer": {
frame: {
x: 200,
y: 450,
@@ -543,7 +543,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSprongeSmelter": {
+ "actions/getSpongeFarm": {
frame: {
x: 250,
y: 450,
@@ -551,7 +551,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getSquid": {
+ "actions/getSprongeSmelter": {
frame: {
x: 300,
y: 450,
@@ -559,7 +559,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getStormgoer": {
+ "actions/getSquid": {
frame: {
x: 350,
y: 450,
@@ -567,7 +567,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getTechnician": {
+ "actions/getStormgoer": {
frame: {
x: 400,
y: 450,
@@ -575,7 +575,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getTirelessCrafter": {
+ "actions/getTechnician": {
frame: {
x: 450,
y: 450,
@@ -583,7 +583,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getTreasurer": {
+ "actions/getTirelessCrafter": {
frame: {
x: 500,
y: 0,
@@ -591,7 +591,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getUrchin": {
+ "actions/getTreasurer": {
frame: {
x: 500,
y: 50,
@@ -599,7 +599,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getWhale": {
+ "actions/getUrchin": {
frame: {
x: 500,
y: 100,
@@ -607,7 +607,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/getWorker": {
+ "actions/getWhale": {
frame: {
x: 500,
y: 150,
@@ -615,7 +615,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/jellyfishToScience": {
+ "actions/getWorker": {
frame: {
x: 500,
y: 200,
@@ -623,7 +623,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/makeSacrifice": {
+ "actions/jellyfishToScience": {
frame: {
x: 500,
y: 250,
@@ -631,7 +631,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/pearlConversion": {
+ "actions/makeSacrifice": {
frame: {
x: 500,
y: 300,
@@ -639,7 +639,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/prySponge": {
+ "actions/pearlConversion": {
frame: {
x: 500,
y: 350,
@@ -647,7 +647,7 @@ SharkGame.Sprites = {
h: 50,
},
},
- "actions/prySponge2": {
+ "actions/prySponge": {
frame: {
x: 500,
y: 400,
@@ -1367,4 +1367,12 @@ SharkGame.Sprites = {
h: 24,
},
},
+ "actions/prySponge2": {
+ frame: {
+ x: 500,
+ y: 400,
+ w: 50,
+ h: 50,
+ },
+ },
};
diff --git a/js/gateway.js b/js/gateway.js
index 61c88a55..b40b90d2 100644
--- a/js/gateway.js
+++ b/js/gateway.js
@@ -828,7 +828,7 @@ SharkGame.Gateway = {
switch (SharkGame.Aspects.distantForesight.level) {
case 1:
contentDiv.prepend($("").html(worldData.foresight.longDesc));
- if (worldData.foresight.missing.length > 0) {
+ if (worldData.foresight.missing && worldData.foresight.missing.length > 0) {
const missingList = $("
").addClass("gatewayPropertyList");
_.each(worldData.foresight.missing, (missingResource) => {
missingList.append(
@@ -841,7 +841,7 @@ SharkGame.Gateway = {
});
contentDiv.prepend(missingList);
}
- if (worldData.foresight.present.length > 0) {
+ if (worldData.foresight.present && worldData.foresight.present.length > 0) {
const presentList = $("").addClass("gatewayPropertyList");
_.each(worldData.foresight.present, (presentResource) => {
presentList.append(
@@ -860,7 +860,7 @@ SharkGame.Gateway = {
});
contentDiv.prepend(presentList);
}
- if (worldData.modifiers.length > 0) {
+ if (worldData.modifiers && worldData.modifiers.length > 0) {
const modifierList = $("").addClass("gatewayPropertyList");
_.each(worldData.modifiers, (modifier) => {
if (gateway.playerHasSeenResource(modifier.resource) || !(worldData.foresight.present.indexOf(modifier.resource) > -1)) {
diff --git a/js/main.js b/js/main.js
index c852123f..aadbdc52 100644
--- a/js/main.js
+++ b/js/main.js
@@ -91,7 +91,6 @@ $.extend(SharkGame, {
"DUNGEONS",
"The Adventure Continues",
"To Be Continued",
- "#TeamSeas",
"Sharks of Rage",
"Bedrock? Edition",
"Java(script) Edition",
@@ -102,7 +101,7 @@ $.extend(SharkGame, {
],
GAME_NAME: null,
ACTUAL_GAME_NAME: "Shark Game",
- VERSION: "20240909a",
+ VERSION: "20241106a",
ORIGINAL_VERSION: 0.71,
VERSION_NAME: "The Tempetuous Update",
EPSILON: 1e-6, // floating point comparison is a joy
@@ -905,6 +904,9 @@ SharkGame.Button = {
};
SharkGame.Changelog = {
+ "New Frontiers patch 20241106a": [
+ "Added a new sprite courtesy of Main Battle Train.",
+ ],
"New Frontiers patch 20240909a": [
"Added another one new sprite courtesy of Glowkate!",
"Added a heap of new fun facts.",
diff --git a/js/panes.js b/js/panes.js
index ce8f4bdd..64acb084 100644
--- a/js/panes.js
+++ b/js/panes.js
@@ -41,7 +41,6 @@ SharkGame.Panes = {
donate:
"You can donate to various projects and organizations below to help support sea life:
" +
"(seems only fitting, given the original game was made for a charity event)" +
- "#TeamSeas is a project which is using donations to take over 30 million pounds of trash out of the ocean. You can donate to #TeamSeas here.
" +
"The Shark Trust is an organization that exists solely to advocate for research into, education about, and fair treatment of sharks. You can donate to the Shark Trust here.
" +
"(But if you'd rather, you can also " +
"