Skip to content

Commit

Permalink
Allow use to pick harbor generation strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
prevostc committed Jan 10, 2015
1 parent 5dcecf5 commit 6b96cdb
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 11 deletions.
9 changes: 6 additions & 3 deletions www/js/catan/js/generator/generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Catan.Generator.Map = {};

Catan.Generator.Map.generate = function (tileTrioScoreLimit) {
Catan.Generator.Map.generate = function (tileTrioScoreLimit, harborGenerationStrategyName) {
tileTrioScoreLimit = tileTrioScoreLimit || 12;

var lands, res, map;
Expand All @@ -18,8 +18,11 @@
res = Catan.Generator.Number.generate(map, tileTrioScoreLimit);
} while (!res);

Catan.Generator.Harbor.generateCoastBars(map);

if (harborGenerationStrategyName === 'coast-bars') {
Catan.Generator.Harbor.generateCoastBars(map);
} else {
Catan.Generator.Harbor.generate(map);
}
return map;
};

Expand Down
39 changes: 32 additions & 7 deletions www/js/controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,44 @@ angular.module('starter.controllers', [])
var canvas = document.querySelector('.canvas');
canvas.width = document.querySelector('.canvas-container').offsetWidth;
canvas.height = document.querySelector('.canvas-container').offsetHeight;
var map = Catan.Generator.Map.generate(Settings.getTileTrioScoreLimit());
var map = Catan.Generator.Map.generate(Settings.getTileTrioScoreLimit(), Settings.getHarborGenerationStrategy());
Catan.UI.drawMap(map, canvas);
};
})

.controller('SettingsCtrl', function($scope, Settings) {
$scope.tileTrioScoreLimitElements = [
{value: 11, title: 'High (slower)'},
{value: 12, title: 'Normal'},
{value: 13, title: 'Low (faster)'}
$scope.tileTrioScoreLimitOptions = [
{id: 11, label: 'High (slower)'},
{id: 12, label: 'Normal'},
{id: 13, label: 'Low (faster)'}
];
$scope.selectedItem = Settings.setTileTrioScoreLimit() || $scope.tileTrioScoreLimitElements[1];
var selectedTileTrioScoreLimitValue = Settings.getTileTrioScoreLimit();
$scope.selectedTileTrioScoreLimit = null;
for (var i = 0 ; i < $scope.tileTrioScoreLimitOptions.length ; i++) {
if ($scope.tileTrioScoreLimitOptions[i].id === selectedTileTrioScoreLimitValue) {
$scope.selectedTileTrioScoreLimit = $scope.tileTrioScoreLimitOptions[i];
}
}
$scope.updateTileTrioScoreLimit = function() {
Settings.setTileTrioScoreLimit(this.selectedItem.value);
Settings.setTileTrioScoreLimit(this.selectedTileTrioScoreLimit.id);
};
console.log($scope.selectedTileTrioScoreLimit);



$scope.harborGenerationStrategyOptions = [
{id: 'separate-tiles', label: 'Separate Tiles'},
{id: 'coast-bars', label: 'Coast Bars'}
];
var selectedHarborGenerationStrategyValue = Settings.getHarborGenerationStrategy();
$scope.selectedHarborGenerationStrategy = null;
for (i = 0 ; i < $scope.harborGenerationStrategyOptions.length ; i++) {
if ($scope.harborGenerationStrategyOptions[i].id === selectedHarborGenerationStrategyValue) {
$scope.selectedHarborGenerationStrategy = $scope.harborGenerationStrategyOptions[i];
}
}
$scope.updateHarborGenerationStrategy = function() {
Settings.setHarborGenerationStrategy(this.selectedHarborGenerationStrategy.id);
};
console.log($scope.selectedHarborGenerationStrategy);
});
7 changes: 7 additions & 0 deletions www/js/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ angular.module('starter.services', ['LocalStorageModule'])
},
setTileTrioScoreLimit: function (tileTrioScoreLimit) {
localStorageService.set('tileTrioScoreLimit', tileTrioScoreLimit);
},

getHarborGenerationStrategy: function () {
return localStorageService.get('harborGenerationStrategy') || 12;
},
setHarborGenerationStrategy: function (harborGenerationStrategy) {
localStorageService.set('harborGenerationStrategy', harborGenerationStrategy);
}
};
});
13 changes: 12 additions & 1 deletion www/templates/tab-settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,21 @@
<div class="input-label">
Map Fairness Level
</div>
<select ng-model="selectedItem" ng-change="updateTileTrioScoreLimit()" ng-options="element.title for element in tileTrioScoreLimitElements">
<select ng-model="selectedTileTrioScoreLimit"
ng-change="updateTileTrioScoreLimit()"
ng-options="option as option.label for option in tileTrioScoreLimitOptions">

</select>
</label>
<label class="item item-input item-select">
<div class="input-label">
Harbor Generation Strategy
</div>
<select ng-model="selectedHarborGenerationStrategy"
ng-change="updateHarborGenerationStrategy()"
ng-options="option as option.label for option in harborGenerationStrategyOptions">
</select>
</label>
</ion-list>
</ion-content>
</ion-view>

0 comments on commit 6b96cdb

Please sign in to comment.