Expansion (#707)

This additional content explores the aftermath of an event in The Ensign. A large dungeon, The Executioner, reveals the fate of one of the Wanderers’ most powerful weapons though multiple wings, each ending with a unique boss encounter. The fabricator allows the player to craft powerful items out of alien alloy, introducing new combat mechanics.
This commit is contained in:
Michael Townsend
2023-06-09 12:38:16 -04:00
committed by GitHub
parent 431b72fab8
commit 7ee96fd108
18 changed files with 5123 additions and 2038 deletions
+119 -55
View File
@@ -437,63 +437,13 @@ var Space = {
Engine.GAME_OVER = true;
Score.save();
Prestige.save();
$('<center>')
.addClass('centerCont')
.appendTo('body');
$('<span>')
.addClass('endGame')
.text(_('score for this game: {0}', Score.calculateScore()))
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame')
.text(_('total score: {0}', Prestige.get().score))
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<br />')
.appendTo('.centerCont');
$('#starsContainer').remove();
$('#content, #notifications').remove();
$('<span>')
.addClass('endGame endGameOption')
.text(_('restart.'))
.click(Engine.confirmDelete)
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame')
.text(_('expanded story. alternate ending. behind the scenes commentary. get the app.'))
.appendTo('.centerCont')
.animate({opacity:1}, 1500);
$('<br />')
.appendTo('.centerCont');
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame endGameOption')
.text(_('iOS.'))
.click(function() { window.open('https://itunes.apple.com/app/apple-store/id736683061?pt=2073437&ct=gameover&mt=8'); })
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame endGameOption')
.text(_('android.'))
.click(function() { window.open('https://play.google.com/store/apps/details?id=com.yourcompany.adarkroom'); })
.appendTo('.centerCont')
.animate({opacity:1},1500);
Engine.options = {};
Engine.deleteSave(true);
Space.showExpansionEnding().then(() => {
Space.showEndingOptions();
Engine.options = {};
Engine.deleteSave(true);
});
}
});
}, 2000);
@@ -501,6 +451,120 @@ var Space = {
}, 2000);
});
},
showExpansionEnding: () => {
return new Promise((resolve) => {
if (!$SM.get('stores["fleet beacon"]')) {
resolve();
return;
}
const c = $('<div>')
.addClass('outroContainer')
.appendTo('body');
setTimeout(() => {
$('<div>')
.addClass('outro')
.html('the beacon pulses gently as the ship glides through space.<br>coordinates are locked. nothing to do but wait.')
.appendTo(c)
.animate({ opacity: 1}, 500);
}, 2000);
setTimeout(() => {
$('<div>')
.addClass('outro')
.html('the beacon glows a solid blue, and then goes dim. the ship slows.<br>gradually, the vast wanderer homefleet comes into view.<br>massive worldships drift unnaturally through clouds of debris, scarred and dead.')
.appendTo(c)
.animate({ opacity: 1}, 500);
}, 7000);
setTimeout(() => {
$('<div>')
.addClass('outro')
.text('the air is running out.')
.appendTo(c)
.animate({ opacity: 1}, 500);
}, 14000);
setTimeout(() => {
$('<div>')
.addClass('outro')
.text('the capsule is cold.')
.appendTo(c)
.animate({ opacity: 1}, 500);
}, 17000);
setTimeout(() => {
Button.Button({
id: 'wait-btn',
text: _('wait'),
click: (btn) => {
btn.addClass('disabled');
c.animate({ opacity: 0 }, 5000, 'linear', () => {
c.remove();
setTimeout(resolve, 3000);
})
}
}).animate({ opacity: 1 }, 500).appendTo(c);
}, 19500)
});
},
showEndingOptions: () => {
$('<center>')
.addClass('centerCont')
.appendTo('body');
$('<span>')
.addClass('endGame')
.text(_('score for this game: {0}', Score.calculateScore()))
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame')
.text(_('total score: {0}', Prestige.get().score))
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame endGameOption')
.text(_('restart.'))
.click(Engine.confirmDelete)
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame')
.text(_('expanded story. alternate ending. behind the scenes commentary. get the app.'))
.appendTo('.centerCont')
.animate({opacity:1}, 1500);
$('<br />')
.appendTo('.centerCont');
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame endGameOption')
.text(_('iOS.'))
.click(function() { window.open('https://itunes.apple.com/app/apple-store/id736683061?pt=2073437&ct=gameover&mt=8'); })
.appendTo('.centerCont')
.animate({opacity:1},1500);
$('<br />')
.appendTo('.centerCont');
$('<span>')
.addClass('endGame endGameOption')
.text(_('android.'))
.click(function() { window.open('https://play.google.com/store/apps/details?id=com.yourcompany.adarkroom'); })
.appendTo('.centerCont')
.animate({opacity:1},1500);
},
keyDown: function(event) {
switch(event.which) {