modified: index.html
modified: js/config.js modified: js/game.js modified: js/ui.js modified: style.css
This commit is contained in:
@ -75,6 +75,7 @@ a1.7 1.7 0 0 0-1.5 1z"></path>
|
||||
<div id="upgrade-panel">
|
||||
<div class="menu-title">Upgrades</div>
|
||||
<div id="total-level" class="stat-line"></div>
|
||||
<div id="star-bonus" class="stat-line"></div>
|
||||
<div class="upgrade-row">
|
||||
</br>
|
||||
<div id="spendable-mass">Available to Spend: 0 kg</div>
|
||||
|
||||
13
js/config.js
13
js/config.js
@ -36,9 +36,9 @@ var CONFIG = {
|
||||
COMET_BASE_COST: 1e7,
|
||||
PLANET_BASE_COST: 1e24,
|
||||
GIANT_BASE_COST: 1e27,
|
||||
MTYPE_BASE_COST: 1e28,
|
||||
KTYPE_BASE_COST: 1e29,
|
||||
GTYPE_BASE_COST: 1e30,
|
||||
MTYPE_BASE_COST: 1e29,
|
||||
KTYPE_BASE_COST: 1e30,
|
||||
GTYPE_BASE_COST: 1e31,
|
||||
|
||||
// Upgrade scaling
|
||||
UPGRADE_COST_MULTIPLIER_ASTER: 1.25,
|
||||
@ -74,10 +74,11 @@ var CONFIG = {
|
||||
ktype: [8.95e29, 1.59e30], // K-Type: 0.45-0.8 M☉
|
||||
gtype: [1.59e30, 2.07e30] // G-Type: 0.8-1.04 M☉
|
||||
},
|
||||
|
||||
// Star-tier spawn rate bonuses (applied to all lower tiers)
|
||||
MTYPE_SPAWN_BOOST_PER_LEVEL: 0.03, // 3% per level
|
||||
KTYPE_SPAWN_BOOST_PER_LEVEL: 0.04, // 4% per level
|
||||
GTYPE_SPAWN_BOOST_PER_LEVEL: 0.05, // 5% per level
|
||||
MTYPE_SPAWN_BOOST_PER_LEVEL: 0.01, // 1% per level
|
||||
KTYPE_SPAWN_BOOST_PER_LEVEL: 0.02, // 2% per level
|
||||
GTYPE_SPAWN_BOOST_PER_LEVEL: 0.03, // 3% per level
|
||||
|
||||
// Visual Sizes
|
||||
VISUAL_SIZE_SMALL: 1,
|
||||
|
||||
33
js/game.js
33
js/game.js
@ -257,20 +257,39 @@ var Game = (function() {
|
||||
}
|
||||
|
||||
function updateSpawnIntervals() {
|
||||
// Calculate star-tier spawn boost (multiplicative)
|
||||
var starBonus = 1 +
|
||||
(state.mtypeUpgradeLevel * CONFIG.MTYPE_SPAWN_BOOST_PER_LEVEL) +
|
||||
(state.ktypeUpgradeLevel * CONFIG.KTYPE_SPAWN_BOOST_PER_LEVEL) +
|
||||
(state.gtypeUpgradeLevel * CONFIG.GTYPE_SPAWN_BOOST_PER_LEVEL);
|
||||
|
||||
// Asteroids boosted by all stars
|
||||
state.currentAsteroidSpawnInterval = CONFIG.BASE_ASTEROID_SPAWN_INTERVAL /
|
||||
(1 + state.asteroidUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_ASTER);
|
||||
((1 + state.asteroidUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_ASTER) * starBonus);
|
||||
|
||||
// Comets boosted by all stars
|
||||
state.currentCometSpawnInterval = CONFIG.BASE_COMET_SPAWN_INTERVAL /
|
||||
(1 + state.cometUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_COMET);
|
||||
((1 + state.cometUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_COMET) * starBonus);
|
||||
|
||||
// Planets boosted by all stars
|
||||
state.currentPlanetSpawnInterval = CONFIG.BASE_PLANET_SPAWN_INTERVAL /
|
||||
(1 + state.planetUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_PLANT);
|
||||
((1 + state.planetUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_PLANT) * starBonus);
|
||||
|
||||
// Giants boosted by all stars
|
||||
state.currentGiantSpawnInterval = CONFIG.BASE_GIANT_SPAWN_INTERVAL /
|
||||
(1 + state.giantUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_GIANT);
|
||||
((1 + state.giantUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_GIANT) * starBonus);
|
||||
|
||||
// M-type boosted by all stars
|
||||
state.currentMtypeSpawnInterval = CONFIG.BASE_MTYPE_SPAWN_INTERVAL /
|
||||
(1 + state.mtypeUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_MTYPE);
|
||||
((1 + state.mtypeUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_MTYPE) * starBonus);
|
||||
|
||||
// K-type boosted by all stars
|
||||
state.currentKtypeSpawnInterval = CONFIG.BASE_KTYPE_SPAWN_INTERVAL /
|
||||
(1 + state.ktypeUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_KTYPE);
|
||||
((1 + state.ktypeUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_KTYPE) * starBonus);
|
||||
|
||||
// G-type boosted by all stars
|
||||
state.currentGtypeSpawnInterval = CONFIG.BASE_GTYPE_SPAWN_INTERVAL /
|
||||
(1 + state.gtypeUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_GTYPE);
|
||||
((1 + state.gtypeUpgradeLevel * CONFIG.UPGRADE_BONUS_PER_LEVEL_GTYPE) * starBonus);
|
||||
}
|
||||
|
||||
function recalculateUpgradeCosts() {
|
||||
|
||||
31
js/ui.js
31
js/ui.js
@ -352,9 +352,38 @@ var UI = {
|
||||
'<span class="tooltip-trigger">' +
|
||||
'Total Level: ' + totalLevel +
|
||||
'<span class="tooltip">' +
|
||||
'Sum of all upgrades.<br>'
|
||||
'Sum of all upgrades.<br>' +
|
||||
'</span>' +
|
||||
'</span>';
|
||||
|
||||
var starBonusEl = document.getElementById('star-bonus');
|
||||
if (!starBonusEl) return;
|
||||
|
||||
var mBonus = gameState.mtypeUpgradeLevel * CONFIG.MTYPE_SPAWN_BOOST_PER_LEVEL * 100;
|
||||
var kBonus = gameState.ktypeUpgradeLevel * CONFIG.KTYPE_SPAWN_BOOST_PER_LEVEL * 100;
|
||||
var gBonus = gameState.gtypeUpgradeLevel * CONFIG.GTYPE_SPAWN_BOOST_PER_LEVEL * 100;
|
||||
var totalStarBonus = (mBonus + kBonus + gBonus).toFixed(0);
|
||||
|
||||
var starTooltip =
|
||||
'*-Type upgrades boost the spawn rate of all objects.';
|
||||
|
||||
if (mBonus > 1) {
|
||||
starTooltip += '<br><br>M-Type: +' + mBonus.toFixed(0) + '%<br>';
|
||||
}
|
||||
|
||||
if (kBonus > 1) {
|
||||
starTooltip += 'K-Type: +' + kBonus.toFixed(0) + '%<br>';
|
||||
}
|
||||
|
||||
if (gBonus > 1) {
|
||||
starTooltip += 'G-Type: +' + gBonus.toFixed(0) + '%';
|
||||
}
|
||||
|
||||
starBonusEl.innerHTML =
|
||||
'<span class="tooltip-trigger">' +
|
||||
'<br><span style="color:#FC6;">Star Bonus: +' + totalStarBonus + '%</span>' +
|
||||
'<span class="tooltip">' + starTooltip + '</span>' +
|
||||
'</span>';
|
||||
},
|
||||
|
||||
updateActiveObjects: function() {
|
||||
|
||||
Reference in New Issue
Block a user