diff --git a/css/main.css b/css/main.css index 7e21aa7..629ed05 100644 --- a/css/main.css +++ b/css/main.css @@ -194,7 +194,7 @@ div.button div.cooldown { /* Up/Down buttons. They're complicated! */ -.upBtn, .dnBtn, .maxBtn, .zeroBtn { +.upBtn, .dnBtn, .upManyBtn, .dnManyBtn { position: absolute; width: 14px; height: 15px; @@ -205,11 +205,11 @@ div.button div.cooldown { right: 0px; } -.maxBtn, .zeroBtn { +.upManyBtn, .dnManyBtn { right: -11px; } -.upBtn.disabled, .dnBtn.disabled, .maxBtn.disabled, .zeroBtn.disabled { +.upBtn.disabled, .dnBtn.disabled, .upManyBtn.disabled, .dnManyBtn.disabled { cursor: default; } @@ -217,11 +217,11 @@ div.button div.cooldown { top: -2px; } -.maxBtn { +.upManyBtn { top: -2px; } -.upBtn:after, .upBtn:before, .maxBtn:after, .maxBtn:before { +.upBtn:after, .upBtn:before, .upManyBtn:after, .upManyBtn:before { position: absolute; border: medium solid transparent; content: " "; @@ -230,15 +230,15 @@ div.button div.cooldown { bottom: 4px; } -.upBtn:after, .maxBtn:after { +.upBtn:after, .upManyBtn:after { border-color: transparent transparent white; } -.upBtn:before, .maxBtn:before { +.upBtn:before, .upManyBtn:before { border-color: transparent transparent black; } -.upBtn.disabled:before, .maxBtn.disabled:before { +.upBtn.disabled:before, .upManyBtn.disabled:before { border-color: transparent transparent #999; } @@ -247,11 +247,11 @@ div.button div.cooldown { bottom: -3px; } -.zeroBtn { +.dnManyBtn { bottom: -3px; } -.dnBtn:after, .dnBtn:before, .zeroBtn:after, .zeroBtn:before { +.dnBtn:after, .dnBtn:before, .dnManyBtn:after, .dnManyBtn:before { position: absolute; border: medium solid transparent; content: " "; @@ -266,27 +266,27 @@ div.button div.cooldown { margin-left: -3px; } -.upBtn:before, .dnBtn:before, .maxBtn:before, .zeroBtn:before { +.upBtn:before, .dnBtn:before, .upManyBtn:before, .dnManyBtn:before { border-width: 5px; left: 50%; margin-left: -5px; } -.maxBtn:after, .zeroBtn:after { +.upManyBtn:after, .dnManyBtn:after { border-width: 2px; left: 50%; margin-left: -2px; } -.dnBtn:after, .zeroBtn:after { +.dnBtn:after, .dnManyBtn:after { border-color: white transparent transparent; } -.dnBtn:before, .zeroBtn:before { +.dnBtn:before, .dnManyBtn:before { border-color: black transparent transparent; } -.dnBtn.disabled:before, .zeroBtn.disabled:before { +.dnBtn.disabled:before, .dnManyBtn.disabled:before { border-color: #999 transparent transparent; } diff --git a/script/outside.js b/script/outside.js index 79ad486..9d33d2f 100644 --- a/script/outside.js +++ b/script/outside.js @@ -296,10 +296,10 @@ var Outside = { numGatherers -= State.outside.workers[k]; if(State.outside.workers[k] == 0) { $('.dnBtn', row).addClass('disabled'); - $('.zeroBtn', row).addClass('disabled'); + $('.dnManyBtn', row).addClass('disabled'); } else { $('.dnBtn', row).removeClass('disabled'); - $('.zeroBtn', row).removeClass('disabled'); + $('.dnManyBtn', row).removeClass('disabled'); } } @@ -312,10 +312,10 @@ var Outside = { if(numGatherers == 0) { $('.upBtn', '#workers').addClass('disabled'); - $('.maxBtn', '#workers').addClass('disabled'); + $('.upManyBtn', '#workers').addClass('disabled'); } else { $('.upBtn', '#workers').removeClass('disabled'); - $('.maxBtn', '#workers').removeClass('disabled'); + $('.upManyBtn', '#workers').removeClass('disabled'); } @@ -342,10 +342,10 @@ var Outside = { $('').text(num).appendTo(val); if(name != 'gatherer') { - $('
').addClass('maxBtn').appendTo(val).click(Outside.maxWorker); - $('
').addClass('upBtn').appendTo(val).click(Outside.increaseWorker); - $('
').addClass('dnBtn').appendTo(val).click(Outside.decreaseWorker); - $('
').addClass('zeroBtn').appendTo(val).click(Outside.zeroWorker); + $('
').addClass('upManyBtn').appendTo(val).click([10], Outside.increaseWorker); + $('
').addClass('upBtn').appendTo(val).click([1], Outside.increaseWorker); + $('
').addClass('dnBtn').appendTo(val).click([1], Outside.decreaseWorker); + $('
').addClass('dnManyBtn').appendTo(val).click([10], Outside.decreaseWorker); } $('
').addClass('clear').appendTo(row); @@ -365,8 +365,9 @@ var Outside = { increaseWorker: function(btn) { var worker = $(this).closest('.workerRow').children('.row_key').text(); if(Outside.getNumGatherers() > 0) { - Engine.log('increasing ' + worker); - State.outside.workers[worker]++; + var increaseAmt = Math.min(Outside.getNumGatherers(), btn.data); + Engine.log('increasing ' + worker + ' by ' + increaseAmt); + State.outside.workers[worker] += increaseAmt; Outside.updateVillageIncome(); Outside.updateWorkersView(); } @@ -375,28 +376,9 @@ var Outside = { decreaseWorker: function(btn) { var worker = $(this).closest('.workerRow').children('.row_key').text(); if(State.outside.workers[worker] > 0) { - Engine.log('decreasing ' + worker); - State.outside.workers[worker]--; - Outside.updateVillageIncome(); - Outside.updateWorkersView(); - } - }, - - maxWorker: function(btn) { - var worker = $(this).closest('.workerRow').children('.row_key').text(); - if(Outside.getNumGatherers() > 0) { - Engine.log('maxing ' + worker); - State.outside.workers[worker] += Outside.getNumGatherers(); - Outside.updateVillageIncome(); - Outside.updateWorkersView(); - } - }, - - zeroWorker: function(btn) { - var worker = $(this).closest('.workerRow').children('.row_key').text(); - if(State.outside.workers[worker] > 0) { - Engine.log('zeroing ' + worker); - State.outside.workers[worker] = 0; + var decreaseAmt = Math.min(State.outside.workers[worker] || 0, btn.data); + Engine.log('decreasing ' + worker + ' by ' + decreaseAmt); + State.outside.workers[worker] -= decreaseAmt; Outside.updateVillageIncome(); Outside.updateWorkersView(); } diff --git a/script/path.js b/script/path.js index 41c9369..bf003e6 100644 --- a/script/path.js +++ b/script/path.js @@ -194,17 +194,17 @@ var Path = { } if(num == 0) { $('.dnBtn', row).addClass('disabled'); - $('.zeroBtn', row).addClass('disabled'); + $('.dnManyBtn', row).addClass('disabled'); } else { $('.dnBtn', row).removeClass('disabled'); - $('.zeroBtn', row).removeClass('disabled'); + $('.dnManyBtn', row).removeClass('disabled'); } if(num >= numAvailable || space < Path.getWeight(k)) { $('.upBtn', row).addClass('disabled'); - $('.maxBtn', row).addClass('disabled'); + $('.upManyBtn', row).addClass('disabled'); } else if(space >= Path.getWeight(k)) { $('.upBtn', row).removeClass('disabled'); - $('.maxBtn', row).removeClass('disabled'); + $('.upManyBtn', row).removeClass('disabled'); } } else if(have == 0 && row.length > 0) { row.remove(); @@ -227,10 +227,10 @@ var Path = { var val = $('
').addClass('row_val').appendTo(row); $('').text(num).appendTo(val); - $('
').addClass('upBtn').appendTo(val).click(Path.increaseSupply); - $('
').addClass('dnBtn').appendTo(val).click(Path.decreaseSupply); - $('
').addClass('maxBtn').appendTo(val).click(Path.maxSupply); - $('
').addClass('zeroBtn').appendTo(val).click(Path.zeroSupply); + $('
').addClass('upBtn').appendTo(val).click([1], Path.increaseSupply); + $('
').addClass('dnBtn').appendTo(val).click([1], Path.decreaseSupply); + $('
').addClass('upManyBtn').appendTo(val).click([10], Path.increaseSupply); + $('
').addClass('dnManyBtn').appendTo(val).click([10], Path.decreaseSupply); $('
').addClass('clear').appendTo(row); var numAvailable = Engine.getStore(name); @@ -243,48 +243,27 @@ var Path = { return row; }, - increaseSupply: function() { + increaseSupply: function(btn) { var supply = $(this).closest('.outfitRow').children('.row_key').text().replace('-', ' '); - Engine.log('increasing ' + supply); - var cur = Path.outfit[supply]; - cur = typeof cur == 'number' ? cur : 0; - if(Path.getFreeSpace() >= Path.getWeight(supply) && cur < Engine.getStore(supply)) { - Path.outfit[supply] = cur + 1; - Path.updateOutfitting(); - } - }, - - decreaseSupply: function() { - var supply = $(this).closest('.outfitRow').children('.row_key').text().replace('-', ' '); - Engine.log('decreasing ' + supply); - var cur = Path.outfit[supply]; - cur = typeof cur == 'number' ? cur : 0; - if(cur > 0) { - Path.outfit[supply] = cur - 1; - Path.updateOutfitting(); - } - }, - - maxSupply: function() { - var supply = $(this).closest('.outfitRow').children('.row_key').text().replace('-', ' '); - Engine.log('maxing ' + supply); + Engine.log('increasing ' + supply + ' by up to ' + btn.data); var cur = Path.outfit[supply]; cur = typeof cur == 'number' ? cur : 0; if(Path.getFreeSpace() >= Path.getWeight(supply) && cur < Engine.getStore(supply)) { var maxExtraByWeight = Math.floor(Path.getFreeSpace() / Path.getWeight(supply)); - var maxExtraByStore = Engine.getStore(supply) - cur; - Path.outfit[supply] = cur + Math.min(maxExtraByWeight, maxExtraByStore); + var maxExtraByStore = Engine.getStore(supply) - cur; + var maxExtraByBtn = btn.data; + Path.outfit[supply] = cur + Math.min(maxExtraByBtn, Math.min(maxExtraByWeight, maxExtraByStore)); Path.updateOutfitting(); } }, - zeroSupply: function() { + decreaseSupply: function(btn) { var supply = $(this).closest('.outfitRow').children('.row_key').text().replace('-', ' '); - Engine.log('zeroing ' + supply); + Engine.log('decreasing ' + supply + ' by up to ' + btn.data); var cur = Path.outfit[supply]; cur = typeof cur == 'number' ? cur : 0; if(cur > 0) { - Path.outfit[supply] = 0; + Path.outfit[supply] = Math.max(0, cur - btn.data); Path.updateOutfitting(); } },