chmod all files, rsync for deploy, cdn support, build page borked

This commit is contained in:
Colin McLeod
2015-05-25 17:36:48 -07:00
parent 7bab67deff
commit 0a7494ebcb
148 changed files with 150 additions and 153 deletions

View File

@@ -10,7 +10,7 @@
# Activate mod_expires for this directory
ExpiresActive on
ExpiresDefault "access plus 365 days"
ExpiresDefault "access"
ExpiresByType text/html "access"
ExpiresByType application/json "access"
</IfModule>

0
README.md Normal file → Executable file
View File

0
app/icons/coriolis.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 852 B

After

Width:  |  Height:  |  Size: 852 B

0
app/icons/github-mark.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
app/icons/mount-F.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 417 B

After

Width:  |  Height:  |  Size: 417 B

0
app/icons/mount-G.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

0
app/icons/mount-T.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 326 B

0
app/images/bay-1920x1080.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

0
app/images/deep-space-1920x1080.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

0
app/images/logo/android-chrome-144x144.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

0
app/images/logo/android-chrome-192x192.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

0
app/images/logo/android-chrome-72x72.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
app/images/logo/android-chrome-96x96.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

0
app/images/logo/apple-touch-icon-114x114.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

0
app/images/logo/apple-touch-icon-120x120.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

0
app/images/logo/apple-touch-icon-144x144.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

0
app/images/logo/apple-touch-icon-152x152.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

0
app/images/logo/apple-touch-icon-180x180.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

0
app/images/logo/apple-touch-icon-76x76.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
app/images/logo/apple-touch-icon-precomposed.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

0
app/images/logo/apple-touch-icon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

0
app/images/logo/browserconfig.xml Normal file → Executable file
View File

0
app/images/logo/favicon-194x194.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

0
app/images/logo/favicon-96x96.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
app/images/logo/favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 361 KiB

0
app/images/logo/manifest.json Normal file → Executable file
View File

0
app/images/logo/mstile-144x144.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

0
app/images/logo/mstile-150x150.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

0
app/images/logo/mstile-310x150.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

0
app/images/logo/mstile-310x310.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

0
app/images/logo/mstile-70x70.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

1
app/index.html Normal file → Executable file
View File

@@ -1,7 +1,6 @@
<!DOCTYPE html>
<html ng-app="app" ng-strict-di="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title ng-bind="title">Coriolis</title>
<link rel="stylesheet" href="/app.css">
<link rel="apple-touch-icon" sizes="76x76" href="/images/logo/apple-touch-icon-76x76.png">

0
app/js/app.js Normal file → Executable file
View File

0
app/js/config.js Normal file → Executable file
View File

19
app/js/controllers/controller-comparison.js Normal file → Executable file
View File

@@ -18,7 +18,7 @@ angular.module('app').controller('ComparisonController', ['lodash', '$rootScope'
*/
$scope.addBuild = function (shipId, buildName, code) {
var data = Ships[shipId]; // Get ship properties
var code = code? code : Persist.builds[shipId][buildName]; // Retrieve build code if not passed
code = code? code : Persist.builds[shipId][buildName]; // Retrieve build code if not passed
var b = new Ship(shipId, data.properties, data.slots); // Create a new Ship instance
Serializer.toShip(b, code); // Populate components from code
// Extend ship instance and add properties below
@@ -153,7 +153,7 @@ angular.module('app').controller('ComparisonController', ['lodash', '$rootScope'
$scope.desc
);
return $state.href('comparison', {code: code}, {absolute:true});
};
}
/* Event listeners */
$scope.$on('close', function() {
@@ -161,20 +161,21 @@ angular.module('app').controller('ComparisonController', ['lodash', '$rootScope'
});
/* Initialization */
var shipId, buildName, comparisonData;
if ($scope.compareMode) {
if ($scope.name == 'all') {
for (var shipId in Persist.builds) {
for (var buildName in Persist.builds[shipId]) {
for (shipId in Persist.builds) {
for (buildName in Persist.builds[shipId]) {
$scope.addBuild(shipId, buildName);
}
}
} else {
for (var shipId in Persist.builds) {
for (var buildName in Persist.builds[shipId]) {
for (shipId in Persist.builds) {
for (buildName in Persist.builds[shipId]) {
$scope.unusedBuilds.push({id: shipId, buildName: buildName, name: Ships[shipId].properties.name});
}
}
var comparisonData = Persist.getComparison($scope.name);
comparisonData = Persist.getComparison($scope.name);
if (comparisonData) {
defaultFacets = comparisonData.facets;
comparisonData.builds.forEach(function (b) {
@@ -185,9 +186,9 @@ angular.module('app').controller('ComparisonController', ['lodash', '$rootScope'
}
} else {
try {
var comparisonData = Serializer.toComparison($stateParams.code);
comparisonData = Serializer.toComparison($stateParams.code);
defaultFacets = comparisonData.f;
$scope.name = comparisonData.n
$scope.name = comparisonData.n;
$scope.predicate = comparisonData.p;
$scope.desc = comparisonData.d;
comparisonData.b.forEach(function (build) {

0
app/js/controllers/controller-delete.js Normal file → Executable file
View File

0
app/js/controllers/controller-error.js Normal file → Executable file
View File

0
app/js/controllers/controller-export.js Normal file → Executable file
View File

0
app/js/controllers/controller-import.js Normal file → Executable file
View File

0
app/js/controllers/controller-link.js Normal file → Executable file
View File

0
app/js/controllers/controller-modal.js Normal file → Executable file
View File

0
app/js/controllers/controller-outfit.js Normal file → Executable file
View File

0
app/js/controllers/controller-shipyard.js Normal file → Executable file
View File

0
app/js/directives/directive-area-chart.js Normal file → Executable file
View File

4
app/js/directives/directive-bar-chart.js Normal file → Executable file
View File

@@ -1,4 +1,4 @@
angular.module('app').directive('barChart', ['$rootScope', function ($rootScope) {
angular.module('app').directive('barChart', function () {
function bName (build) {
return build.buildName + '\n' + build.name;
@@ -118,4 +118,4 @@ angular.module('app').directive('barChart', ['$rootScope', function ($rootScope)
}
};
}]);
});

0
app/js/directives/directive-comparison-table.js Normal file → Executable file
View File

0
app/js/directives/directive-component-select.js Normal file → Executable file
View File

0
app/js/directives/directive-header.js Normal file → Executable file
View File

0
app/js/directives/directive-slot-hardpoint.js Normal file → Executable file
View File

0
app/js/directives/directive-slot-internal.js Normal file → Executable file
View File

14
app/js/factory-utils.js Normal file → Executable file
View File

@@ -12,12 +12,12 @@ angular.module('app').factory('Utils', ['$state','$http', function ($state, $htt
}
function comparisonBBCode(facets, builds, link) {
var colCount = 2, i,j,k, l = [];
var colCount = 2, b, i, j, k, f, fl, p, pl, l = [];
for (i = 0; i < facets.length; i++) {
if (facets[i].active) {
var f = facets[i];
var p = f.props;
f = facets[i];
p = f.props;
if (p.length == 1) {
l.push('[th][B][COLOR=#FF8C0D]', f.title, '[/COLOR][/B][/th]');
@@ -33,15 +33,15 @@ angular.module('app').factory('Utils', ['$state','$http', function ($state, $htt
l.push('[/tr]\n');
for (i = 0; i < builds.length; i++) {
var b = builds[i];
b = builds[i];
//var href = $state.href('outfit',{shipId: b.id, code: b.code, bn: b.buildName}, {absolute: true});
l.push('[tr][td]', b.name,'[/td][td]', b.buildName ,'[/td]');
for (j = 0, fl = facets.length; j < fl; j++) {
if (facets[j].active) {
var f = facets[j];
var p = f.props;
for (var k = 0, pl = p.length; k < pl; k++) {
f = facets[j];
p = f.props;
for (k = 0, pl = p.length; k < pl; k++) {
l.push('[td="align: right"]', f.fmt(b[p[k]]), ' [size=-2]', f.unit, '[/size][/td]');
}
}

8
app/js/service-persist.js Normal file → Executable file
View File

@@ -90,10 +90,10 @@ angular.module('app').service('Persist', ['$window','lodash', function ($window,
this.comparisons[name] = {
facets: facets,
builds: _.map(builds, function (b) { return {shipId: b.id, buildName: b.buildName }; })
}
};
localStorage.setItem(LS_KEY_COMPARISONS, angular.toJson(this.comparisons));
this.state.hasComparisons = true;
}
};
/**
* [getComparison description]
@@ -105,7 +105,7 @@ angular.module('app').service('Persist', ['$window','lodash', function ($window,
return this.comparisons[name];
}
return null;
}
};
/**
* Removes the comparison from localstorage.
@@ -117,7 +117,7 @@ angular.module('app').service('Persist', ['$window','lodash', function ($window,
localStorage.setItem(LS_KEY_COMPARISONS, angular.toJson(this.comparisons));
this.state.hasComparisons = Object.keys(this.comparisons).length > 0;
}
}
};
/**
* Delete all builds and comparisons from localStorage

4
app/js/service-serializer.js Normal file → Executable file
View File

@@ -68,11 +68,11 @@ angular.module('app').service('Serializer', ['lodash', function (_) {
p: predicate,
d: desc? 1 : 0
})).replace(/\//g,'-');
}
};
this.toComparison = function (code) {
return angular.fromJson(LZString.decompressFromBase64(code.replace(/-/g,'/')));
}
};
/**
* Utility function to retrieve a safe string for selected component for a slot.

0
app/js/shipyard/factory-component-set.js Normal file → Executable file
View File

0
app/js/shipyard/factory-ship.js Normal file → Executable file
View File

0
app/js/shipyard/module-shipyard.js Normal file → Executable file
View File

0
app/js/shipyard/service-components.js Normal file → Executable file
View File

0
app/less/app.less Normal file → Executable file
View File

0
app/less/background-images.less Normal file → Executable file
View File

0
app/less/buttons.less Normal file → Executable file
View File

0
app/less/chart-tooltip.less Normal file → Executable file
View File

0
app/less/charts.less Normal file → Executable file
View File

6
app/less/colors.less Normal file → Executable file
View File

@@ -20,6 +20,12 @@
@secondary-bg: fadeout(darken(@secondary, @bgDarken), @bgTransparency); // Brown background
@warning-bg: fadeout(darken(@warning, @bgDarken), @bgTransparency); // Dark Red
.fg {
color: @fg;
fill: @fg;
}
.disabled {
color: @disabled;
fill: @disabled;

0
app/less/comparison.less Normal file → Executable file
View File

0
app/less/error.less Normal file → Executable file
View File

0
app/less/fonts.less Normal file → Executable file
View File

2
app/less/header.less Normal file → Executable file
View File

@@ -80,7 +80,7 @@ header {
text-decoration: none;
&.name {
font-family: Helvetica, sans-serif;
font-family: Helvetica, Arial, sans-serif;
}
&:visited {

0
app/less/icons.less Normal file → Executable file
View File

4
app/less/list.less Normal file → Executable file
View File

@@ -68,8 +68,4 @@
}
}
&:nth-child(n+2) {
border-top: 1px solid @primary;
}
}

0
app/less/modal.less Normal file → Executable file
View File

19
app/less/outfit.less Normal file → Executable file
View File

@@ -17,15 +17,13 @@
input {
background: none;
color: @primary-disabled;
outline: none;
line-height: 1.5em;
font-size: 0.8em;
border: 1px solid @primary-disabled;
box-sizing: border-box;
display: inline-block;
padding: 0.5em;
&:hover, &:focus {
&:focus {
border: 1px solid @primary;
color: @primary;
}
@@ -54,13 +52,12 @@
#summary {
.user-select-none();
float: right;
min-width: 40em;
margin: 0.25em;
border-top: 2px solid @primary;
border-bottom: 2px solid @primary;
background-color: @primary-bg;
text-align: left;
margin: 0;
border-collapse: collapse;
tbody td {
padding: 0 0.5em;
}
}
.toggle {

0
app/less/select.less Normal file → Executable file
View File

0
app/less/shipyard.less Normal file → Executable file
View File

0
app/less/slot.less Normal file → Executable file
View File

0
app/less/sortable.less Normal file → Executable file
View File

0
app/less/table.less Normal file → Executable file
View File

16
app/less/utilities.less Normal file → Executable file
View File

@@ -29,3 +29,19 @@
-ms-user-select: none;
user-select: none;
}
.vertical {
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}

2
app/views/_header.html Normal file → Executable file
View File

@@ -58,6 +58,4 @@
</div>
</div>
<!-- <a href="#" class="r" target="_blank" title="Reddit Thread"><svg class="icon xl"><use xlink:href="#reddit"></use></svg></a> -->
</header>

0
app/views/_modal.html Normal file → Executable file
View File

0
app/views/_slot-hardpoint.html Normal file → Executable file
View File

2
app/views/_slot-internal.html Normal file → Executable file
View File

@@ -9,6 +9,8 @@
<div class="l" ng-if="c.c.bins">{{c.c.bins}} <u>Bins</u></div>
<div class="l" ng-if="c.c.rate">Rate: {{$r.fRound4(c.c.rate/1000)}} <u>T/s</u></div>
<div class="l" ng-if="c.c.ammo">Ammo: {{c.c.ammo}}</div>
<div class="l" ng-if="c.c.cells">Cells: {{c.c.cells}}</div>
<div class="l" ng-if="c.c.recharge">Recharge: {{c.c.recharge}} <u>Mj</u></div>
<div class="l" ng-if="c.c.repair">Repair: {{c.c.repair}}</div>
<div class="l" ng-if="c.c.range">{{c.c.range}} <u>KM</u></div>
<div class="l" ng-if="c.c.rangeRating">Range: {{c.c.rangeRating}}</div>

5
app/views/modal-about.html Normal file → Executable file
View File

@@ -4,8 +4,13 @@
<p>Coriolis was created for non-commercial purposes. It is not endorsed by nor reflects the views or opinions of Frontier Developments.</p>
<div>
<a class="l" style="margin: 0.4em" href="https://github.com/cmmcleod/coriolis" target="_blank" title="Coriolis Github Project">
<svg class="icon fg xl"><use xlink:href="#github-mark"></use></svg>
</a>
<h2>Github</h2>
<a href="https://github.com/cmmcleod/coriolis" target="_blank" title="Coriolis Github Project">github.com/cmmcleod/coriolis</a>
</div>
<p>
Coriolis is an open source project. Checkout the list of upcoming features and to-do list on github.
Any and all contributions and feedback are welcome. If you encounter any bugs please report them and provide as much detail as possible.

0
app/views/modal-delete.html Normal file → Executable file
View File

2
app/views/modal-export.html Normal file → Executable file
View File

@@ -1,5 +1,5 @@
<h2 ng-bind="title"></h2>
<div>
<textarea class="cb json" ng-focus="onTextClick($event)" ng-bind="export"></textarea>
<textarea class="cb json" ng-click="onTextClick($event)" ng-bind="export"></textarea>
</div>
<button class="r dismiss" ng-click="dismiss()">Close</button>

0
app/views/modal-import.html Normal file → Executable file
View File

4
app/views/modal-link.html Normal file → Executable file
View File

@@ -1,9 +1,9 @@
<h2>Permalink</h2>
<br>
<h3>URL</h3>
<input ng-model="url" size="70" ng-focus="onTextClick($event)">
<input ng-model="url" size="70" ng-click="onTextClick($event)">
<br><br>
<h3>Shortened</h3>
<input ng-model="shortenedUrl" size="25" ng-focus="onTextClick($event)">
<input ng-model="shortenedUrl" size="25" ng-click="onTextClick($event)">
<br><br>
<button class="r dismiss" ng-click="dismiss()">Close</button>

2
app/views/page-comparison.html Normal file → Executable file
View File

@@ -48,7 +48,7 @@
<table>
<thead><tr><th colspan="2">Available</th></tr></thead>
<tbody>
<tr ng-repeat="b in unusedBuilds | orderBy:'[0]'" ng-click="addBuild(b.id, b.buildName)">
<tr ng-repeat="b in unusedBuilds | orderBy:'name'" ng-click="addBuild(b.id, b.buildName)">
<td class="tl" ng-bind="b.name"></td><td class="tl" ng-bind="b.buildName"></td>
</tr>
</tbody>

0
app/views/page-error.html Normal file → Executable file
View File

142
app/views/page-outfit.html Normal file → Executable file
View File

@@ -1,6 +1,58 @@
<div id="outfit">
<div id="overview" class="list">
<h1 ng-bind="ship.name"></h1>
<div id="build">
<input ng-model="buildName" ng-change="bnChange()" placeholder="Enter Build Name" maxlength="50" />
<button ng-click="saveBuild()" ng-disabled="!buildName || savedCode && code == savedCode">
<svg class="icon lg "><use xlink:href="#floppy-disk"></use></svg> Save
</button>
<button ng-click="reloadBuild()" ng-disabled="!savedCode || code == savedCode">
<svg class="icon lg"><use xlink:href="#spinner11"></use></svg> Reload
</button>
<button class="danger" ng-click="deleteBuild()" ng-disabled="!savedCode">
<svg class="icon lg"><use xlink:href="#bin"></use></svg>
</button>
<button ui-sref="outfit({shipId: ship.id,code:null, bn: buildName})" ng-disabled="!code">
<svg class="icon lg"><use xlink:href="#switch"></use></svg> Reset
</button>
<button ng-disabled="!code">
<svg class="icon lg"><use xlink:href="#embed"></use></svg> Forum
</button>
</div>
</div>
<table id="summary">
<thead>
<tr class="main">
<th colspan="3">Manuverability</th><th colspan="2">Mass</th><th rowspan="2">Cargo</th><th rowspan="2">Fuel</th>
<th rowspan="2">Armour</th><th rowspan="2">Shields</th><th colspan="2">Jump Range</th><th rowspan="2">Insurance</th><th rowspan="2">Cost</th>
</tr>
<tr>
<th>Agility</th><th>Thrusters</th><th>Boost</th><th class="lft">Unladen</th><th>Laden</th><th>Unladen</th><th>Laden</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ship.agility}}/10</td>
<td>{{fRound(ship.speed)}} <u>m/s</u></td>
<td>{{fRound(ship.boost)}} <u>m/s</u></td>
<td>{{fRound(ship.unladenMass)}} <u>T</u></td>
<td>{{fRound(ship.ladenMass)}} <u>T</u></td>
<td>{{fRound(ship.cargoCapacity)}} <u>T</u></td>
<td>{{fRound(ship.fuelCapacity)}} <u>T</u></td>
<td>{{ship.armourTotal}} ({{ship.armour}} + {{ship.armourAdded}})</td>
<td>{{fRound(ship.shieldStrength)}} <u>Mj</u> ({{fRPct(ship.shieldMultiplier)}})</td>
<td>{{fRound(ship.unladenJumpRange)}} <u>LY</u></td>
<td>{{fRound(ship.ladenJumpRange)}} <u>LY</u></td>
<td>{{fCrd(ship.totalCost * insurance.current.pct)}} <u>CR</u></td>
<td>{{fCrd(ship.totalCost)}} <u>CR</u></td>
</tr>
</tbody>
</table>
<div id="hardpoints" class="slot-group">
<h1>HardPoints</h1>
<h1 class="vertical">HardPoints</h1>
<div class="slot" ng-repeat="h in ship.hardpoints" ng-click="selectSlot($event, h)" ng-class="{selected: selectedSlot==h}">
<div slot-hardpoint class="details" hp="h" size="HPC[h.maxClass]" lbl="hgMap[h.c.grp]"></div>
<div class="select" ng-class="{hardpoint: h.maxClass > 0}" ng-if="selectedSlot==h" ng-click="select('h',h,$event)">
@@ -8,7 +60,6 @@
</div>
</div>
</div>
</div>
<div id="standard" class="slot-group">
<h1>Standard</h1>
@@ -80,9 +131,9 @@
<div class="l">Power Distributor</div>
<div class="r">{{pd.id}}</div>
<div class="cb"></div>
<div class="l">Sys: {{pd.c.weaponcapacity}} <u>Mj</u> {{pd.c.weaponrecharge}} <u>Mj/s</u></div>
<div class="l">Wep: {{pd.c.systemcapacity}} <u>Mj</u> {{pd.c.systemrecharge}} <u>Mj/s</u></div>
<div class="l">Eng: {{pd.c.enginecapacity}} <u>Mj</u> {{pd.c.enginerecharge}}<u>Mj/s</u></div>
<div class="l">Sys: {{pd.c.weaponcapacity}} <u>Mj</u> / {{pd.c.weaponrecharge}} <u>MW</u></div>
<div class="l">Wep: {{pd.c.systemcapacity}} <u>Mj</u> / {{pd.c.systemrecharge}} <u>MW</u></div>
<div class="l">Eng: {{pd.c.enginecapacity}} <u>Mj</u> / {{pd.c.enginerecharge}} <u>MW</u></div>
<div class="r cr">{{pd.c.mass}} <u>T</u></div>
</div>
<div component-select class="select" s="pd" opts="availCS.common[4]" ng-if="selectedSlot==pd" ng-click="select('c',pd,$event)"></div>
@@ -119,71 +170,7 @@
</div>
</div>
<div id="summary">
<div id="overview" class="list">
<h1 ng-bind="ship.name"></h1>
<div id="build">
<input ng-model="buildName" ng-change="bnChange()" placeholder="Enter Build Name" maxlength="50" />
<button ng-click="saveBuild()" ng-disabled="!buildName || savedCode && code == savedCode">
<svg class="icon lg "><use xlink:href="#floppy-disk"></use></svg> Save
</button>
<button ng-click="reloadBuild()" ng-disabled="!savedCode || code == savedCode">
<svg class="icon lg"><use xlink:href="#spinner11"></use></svg> Load
</button>
<button class="danger" ng-click="deleteBuild()" ng-disabled="!savedCode">
<svg class="icon lg"><use xlink:href="#bin"></use></svg>
</button>
<button ui-sref="outfit({shipId: ship.id,code:null, bn: buildName})" ng-disabled="!code">
<svg class="icon lg"><use xlink:href="#switch"></use></svg> Reset
</button>
</div>
</div>
<div class="list">
<div class="header">Maneuverability</div>
<div class="summary">
<div class="item"><div class="lbl">Boost</div><div class="val">{{fRound(ship.boost)}} <u>m/s</u></div></div>
<div class="item"><div class="lbl">Speed</div><div class="val">{{fRound(ship.speed)}} <u>m/s</u></div></div>
<div class="item"><div class="lbl">Agility</div><div class="val">{{ship.agility}} / 10</div></div>
</div>
</div>
<div class="list">
<div class="header">Shields</div>
<div class="summary">
<!-- TODO: Implement Shield Recharge rate
<div class="item"><div class="lbl">Recharge Rate</div><div class="val">{{fRound(0)}} <u>Mj/s</u></div></div>
/-->
<div class="item"><div class="lbl">Strength</div><div class="val">{{fRound(ship.shieldStrength)}} <u>Mj</u></div></div>
<div class="item"><div class="lbl">Multiplier</div><div class="val">{{fRPct(ship.shieldMultiplier)}}</div></div>
</div>
</div>
<div class="list">
<div class="header">Armor</div>
<div class="summary">
<div class="item"><div class="lbl">Total</div><div class="val">{{ship.armourTotal}}</div></div>
<div class="item"><div class="lbl">Added</div><div class="val">{{ship.armourAdded}}</div></div>
<div class="item"><div class="lbl">Base</div><div class="val">{{ship.armour}}</div></div>
</div>
</div>
<div class="list">
<div class="header">Mass</div>
<div class="summary">
<div class="item"><div class="lbl">Laden</div><div class="val">{{fRound(ship.ladenMass)}} <u>T</u></div></div>
<div class="item"><div class="lbl">Unladen</div><div class="val">{{fRound(ship.unladenMass)}} <u>T</u></div></div>
</div>
</div>
<div class="list">
<div class="header">Capacity</div>
<div class="summary">
<div class="item"><div class="lbl">Cargo</div><div class="val">{{fRound(ship.cargoCapacity)}} <u>T</u></div></div>
<div class="item"><div class="lbl">Fuel</div><div class="val">{{fRound(ship.fuelCapacity)}} <u>T</u></div></div>
</div>
</div>
<div class="cb">
<div class="list" ship="ship">
<div class="header toggle" ng-click="powerExp = !powerExp">Power Use</div>
<div class="items" ng-if="!powerExp">
@@ -224,22 +211,11 @@
</div>
<div class="list">
<div class="header toggle" ng-click="rangeExp = !rangeExp">Jump Range</div>
<div class="items cen" ng-if="!rangeExp">
<div class="header toggle">Jump Range</div>
<div class="items cen">
<div class="chart" area-chart config="jrChart" series="jrSeries" width="500" height="250"></div>
</div>
<div class="summary toggle" ng-click="rangeExp = !rangeExp">
<div class="item">
<div class="lbl">Laden</div>
<div class="val">{{fRound(ship.ladenJumpRange)}} <u>LY</u></div>
</div>
<div class="item">
<div class="lbl">Unladen</div>
<div class="val">{{fRound(ship.unladenJumpRange)}} <u>LY</u></div>
</div>
</div>
</div>
<div class="list">
<div class="header toggle" ng-click="costsExpanded = !costsExpanded">Costs</div>
<div class="items" ng-if="!costsExpanded">

0
app/views/page-shipyard.html Normal file → Executable file
View File

0
bower.json Normal file → Executable file
View File

0
data/components/bulkheads.json Normal file → Executable file
View File

0
data/components/common/frame_shift_drive.json Normal file → Executable file
View File

0
data/components/common/fuel_tank.json Normal file → Executable file
View File

0
data/components/common/life_support.json Normal file → Executable file
View File

0
data/components/common/power_distributor.json Normal file → Executable file
View File

0
data/components/common/power_plant.json Normal file → Executable file
View File

0
data/components/common/sensors.json Normal file → Executable file
View File

0
data/components/common/thrusters.json Normal file → Executable file
View File

0
data/components/hardpoints/beam_laser.json Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More