- New "Into The Abyss" support added, #631

- Updated Manual with new "Abyss" information, #631
- Fixed a bug with JSON DB columns after _Cortex_ ORM plugin update
This commit is contained in:
Mark Friedrich
2018-06-03 22:13:47 +02:00
parent c805a2ea0c
commit d59fe133e2
25 changed files with 181 additions and 33 deletions

View File

@@ -1351,7 +1351,7 @@ class Setup extends Controller {
protected function getIndexData(\Base $f3){
// active DB and tables are required for obtain index data
if(!$this->databaseHasError){
//$categoryUniverseModel = Model\Universe\BasicUniverseModel::getNew('CategoryModel');
$categoryUniverseModel = Model\Universe\BasicUniverseModel::getNew('CategoryModel');
//$systemUniverseModel = Model\Universe\BasicUniverseModel::getNew('SystemModel');
$systemNeighbourModel = Model\BasicModel::getNew('SystemNeighbourModel');
$wormholeModel = Model\BasicModel::getNew('WormholeModel');
@@ -1378,7 +1378,7 @@ class Setup extends Controller {
'countBuild' => count((new Universe())->getSystemsIndex()),
'countAll' => $this->dbLib->getRowCount($systemUniverseModel->getTable(), 'UNIVERSE'),
'tooltip' => 'build up a static search index over all systems found on DB. Do not refresh page until import is complete (check progress)! Runtime: ~5min'
],
], */
'Structures' => [
'task' => [
[
@@ -1392,7 +1392,7 @@ class Setup extends Controller {
'countBuild' => $categoryUniverseModel->getById(65, 0)->getTypesCount(false),
'countAll' => (int)$f3->get('REQUIREMENTS.DATA.STRUCTURES'),
'tooltip' => 'import all structure types (e.g. Citadels) from ESI. Runtime: ~15s'
],
], /*
'Ships' => [
'task' => [
[

View File

@@ -64,6 +64,12 @@ class CcpSystemsMapper extends AbstractIterator {
$security = '';
if(
$iterator['constellation']['id'] >= 22000001 &&
$iterator['constellation']['id'] <= 22000025
){
// "Abyssal" system
$security = 'A';
}elseif(
$iterator['security'] == 7 ||
$iterator['security'] == 8 ||
$iterator['security'] == 9
@@ -105,13 +111,19 @@ class CcpSystemsMapper extends AbstractIterator {
$type = 'w-space';
$typeId = 1;
if(
$iterator['constellation']['id'] >= 22000001 &&
$iterator['constellation']['id'] <= 22000025
){
// "Abyssal" system
$type = 'a-space';
$typeId = 3;
}elseif(
$iterator['security'] == 7 ||
$iterator['security'] == 8 ||
$iterator['security'] == 9
){
$type = 'k-space';
$typeId = 2;
}
return [

View File

@@ -380,12 +380,12 @@ class Config extends \Prefab {
/**
* @param string $key
* @return mixed
* @return null|mixed
* @throws Exception\PathfinderException
*/
static function getPathfinderData($key = ''){
$hiveKey = self::HIVE_KEY_PATHFINDER . ($key ? '.' . strtoupper($key) : '');
$data = null; // make sure it is always defined
try{
if( !\Base::instance()->exists($hiveKey, $data) ){
throw new Exception\PathfinderException(sprintf(self::ERROR_CONF_PATHFINDER, $hiveKey));

View File

@@ -141,7 +141,7 @@ class ConnectionModel extends AbstractMapTrackingModel {
* @return int|number
*/
public function set_type($type){
$newTypes = (array)json_decode($type);
$newTypes = (array)$type;
// set EOL timestamp
if( !in_array('wh_eol', $newTypes) ){

View File

@@ -56,6 +56,12 @@ class ConnectionScopeModel extends BasicModel{
'name' => 'jumpbridge',
'label' => 'jumpbridge',
'connectorDefinition' => '[ "Straight", { "stub": [5, 5], "gap": 0 } ]'
],
[
'id' => 4,
'name' => 'abyssal',
'label' => 'abyssal',
'connectorDefinition' => '[ "Straight", { "stub": [5, 5], "gap": 0 } ]'
]
];

View File

@@ -31,11 +31,15 @@ class SystemTypeModel extends BasicModel {
protected static $tableData = [
[
'id' => 1,
'name' => 'w-space'
'name' => 'w-space' // Wormhole Space
],
[
'id' => 2,
'name' => 'k-space'
'name' => 'k-space' // Known Space
],
[
'id' => 3,
'name' => 'a-space' // Abyss Space
]
];

View File

@@ -200,6 +200,9 @@ define(['jquery'], ($) => {
security: {
class: 'pf-system-sec'
},
'A': {
class: 'pf-system-sec-abyssal'
},
'SH': {
class: 'pf-system-sec-unknown'
},
@@ -284,6 +287,12 @@ define(['jquery'], ($) => {
defaultMapScope: 'wh', // default scope for connection
// map connection types
connectionTypes: {
abyssal: {
cssClass: 'pf-map-connection-abyssal',
paintStyle: {
dashstyle: '0.5 2' // dotted line
}
},
jumpbridge: {
cssClass: 'pf-map-connection-jumpbridge',
paintStyle: {

View File

@@ -357,7 +357,6 @@ define([
if(!system){
// set system name or alias
let systemName = data.name;
if(
data.alias &&
data.alias !== ''
@@ -365,6 +364,12 @@ define([
systemName = data.alias;
}
let systemHeadClasses = [config.systemHeadNameClass];
// Abyssal system
if(data.type.id === 3){
systemHeadClasses.push(Util.config.fontTriglivianClass);
}
// get system info classes
let effectBasicClass = MapUtil.getEffectInfoForSystem('effect', 'class');
let effectName = MapUtil.getEffectInfoForSystem(data.effect, 'name');
@@ -372,7 +377,6 @@ define([
let secClass = Util.getSecurityClassForSystem(data.security);
system = $('<div>', {
// system
id: systemId,
class: config.systemClass
}).append(
@@ -385,7 +389,7 @@ define([
}),
// System name is editable
$('<span>', {
class: config.systemHeadNameClass
class: systemHeadClasses.join(' '),
}).attr('data-value', systemName),
// System locked status
$('<i>', {
@@ -1862,7 +1866,8 @@ define([
{icon: 'fa-filter', action: 'filter_scope', text: 'filter scope', subitems: [
{subIcon: '', subAction: 'filter_wh', subText: 'wormhole'},
{subIcon: '', subAction: 'filter_stargate', subText: 'stargate'},
{subIcon: '', subAction: 'filter_jumpbridge', subText: 'jumpbridge'}
{subIcon: '', subAction: 'filter_jumpbridge', subText: 'jumpbridge'},
{subIcon: '', subAction: 'filter_abyssal', subText: 'abyssal'}
]},
{icon: 'fa-sitemap', action: 'map', text: 'map', subitems: [
{subIcon: 'fa-edit', subAction: 'map_edit', subText: 'edit map'},
@@ -1904,7 +1909,7 @@ define([
{subIcon: 'fa-circle', subAction: 'status_critical', subText: 'stage 3 (critical)'}
]},
{divider: true, action: 'delete_connection'} ,
{divider: true, action: 'separator'} ,
{icon: 'fa-unlink', action: 'delete_connection', text: 'detach'}
]
};
@@ -1970,7 +1975,14 @@ define([
let scope = component.scope;
if(scope === 'stargate'){
if(scope === 'abyssal'){
hiddenOptions.push('frigate');
hiddenOptions.push('preserve_mass');
hiddenOptions.push('change_status');
hiddenOptions.push('change_scope');
hiddenOptions.push('separator');
}else if(scope === 'stargate'){
hiddenOptions.push('frigate');
hiddenOptions.push('preserve_mass');
hiddenOptions.push('change_status');
@@ -2037,6 +2049,9 @@ define([
if(component.data('filter_scope') === 'jumpbridge'){
activeOptions.push('filter_jumpbridge');
}
if(component.data('filter_scope') === 'abyssal'){
activeOptions.push('filter_abyssal');
}
}else if( component.hasClass(config.systemClass) ){
// active system menu entries
if(component.data('locked') === true){
@@ -2619,6 +2634,7 @@ define([
case 'filter_wh':
case 'filter_stargate':
case 'filter_jumpbridge':
case 'filter_abyssal':
// filter (show/hide)
let filterScope = action.split('_')[1];

View File

@@ -692,6 +692,9 @@ define([
case'stargate':
type = 'stargate';
break;
case'abyssal':
type = 'abyssal';
break;
default:
console.error('Connection scope "' + scope + '" unknown!');
}

View File

@@ -65,7 +65,10 @@ define([
// popover
popoverSmallClass: 'pf-popover-small', // class for "small" popover
popoverTriggerClass: 'pf-popover-trigger' // class for "popover" trigger elements
popoverTriggerClass: 'pf-popover-trigger', // class for "popover" trigger elements
// fonts
fontTriglivianClass: 'pf-triglivian' // class for "Triglivian" names (e.g. Abyssal systems)
};
let stopTimerCache = {}; // cache for stopwatch timer

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -200,6 +200,9 @@ define(['jquery'], ($) => {
security: {
class: 'pf-system-sec'
},
'A': {
class: 'pf-system-sec-abyssal'
},
'SH': {
class: 'pf-system-sec-unknown'
},
@@ -284,6 +287,12 @@ define(['jquery'], ($) => {
defaultMapScope: 'wh', // default scope for connection
// map connection types
connectionTypes: {
abyssal: {
cssClass: 'pf-map-connection-abyssal',
paintStyle: {
dashstyle: '0.5 2' // dotted line
}
},
jumpbridge: {
cssClass: 'pf-map-connection-jumpbridge',
paintStyle: {

View File

@@ -357,7 +357,6 @@ define([
if(!system){
// set system name or alias
let systemName = data.name;
if(
data.alias &&
data.alias !== ''
@@ -365,6 +364,12 @@ define([
systemName = data.alias;
}
let systemHeadClasses = [config.systemHeadNameClass];
// Abyssal system
if(data.type.id === 3){
systemHeadClasses.push(Util.config.fontTriglivianClass);
}
// get system info classes
let effectBasicClass = MapUtil.getEffectInfoForSystem('effect', 'class');
let effectName = MapUtil.getEffectInfoForSystem(data.effect, 'name');
@@ -372,7 +377,6 @@ define([
let secClass = Util.getSecurityClassForSystem(data.security);
system = $('<div>', {
// system
id: systemId,
class: config.systemClass
}).append(
@@ -385,7 +389,7 @@ define([
}),
// System name is editable
$('<span>', {
class: config.systemHeadNameClass
class: systemHeadClasses.join(' '),
}).attr('data-value', systemName),
// System locked status
$('<i>', {
@@ -1862,7 +1866,8 @@ define([
{icon: 'fa-filter', action: 'filter_scope', text: 'filter scope', subitems: [
{subIcon: '', subAction: 'filter_wh', subText: 'wormhole'},
{subIcon: '', subAction: 'filter_stargate', subText: 'stargate'},
{subIcon: '', subAction: 'filter_jumpbridge', subText: 'jumpbridge'}
{subIcon: '', subAction: 'filter_jumpbridge', subText: 'jumpbridge'},
{subIcon: '', subAction: 'filter_abyssal', subText: 'abyssal'}
]},
{icon: 'fa-sitemap', action: 'map', text: 'map', subitems: [
{subIcon: 'fa-edit', subAction: 'map_edit', subText: 'edit map'},
@@ -1904,7 +1909,7 @@ define([
{subIcon: 'fa-circle', subAction: 'status_critical', subText: 'stage 3 (critical)'}
]},
{divider: true, action: 'delete_connection'} ,
{divider: true, action: 'separator'} ,
{icon: 'fa-unlink', action: 'delete_connection', text: 'detach'}
]
};
@@ -1970,7 +1975,14 @@ define([
let scope = component.scope;
if(scope === 'stargate'){
if(scope === 'abyssal'){
hiddenOptions.push('frigate');
hiddenOptions.push('preserve_mass');
hiddenOptions.push('change_status');
hiddenOptions.push('change_scope');
hiddenOptions.push('separator');
}else if(scope === 'stargate'){
hiddenOptions.push('frigate');
hiddenOptions.push('preserve_mass');
hiddenOptions.push('change_status');
@@ -2037,6 +2049,9 @@ define([
if(component.data('filter_scope') === 'jumpbridge'){
activeOptions.push('filter_jumpbridge');
}
if(component.data('filter_scope') === 'abyssal'){
activeOptions.push('filter_abyssal');
}
}else if( component.hasClass(config.systemClass) ){
// active system menu entries
if(component.data('locked') === true){
@@ -2619,6 +2634,7 @@ define([
case 'filter_wh':
case 'filter_stargate':
case 'filter_jumpbridge':
case 'filter_abyssal':
// filter (show/hide)
let filterScope = action.split('_')[1];

View File

@@ -692,6 +692,9 @@ define([
case'stargate':
type = 'stargate';
break;
case'abyssal':
type = 'abyssal';
break;
default:
console.error('Connection scope "' + scope + '" unknown!');
}

View File

@@ -65,7 +65,10 @@ define([
// popover
popoverSmallClass: 'pf-popover-small', // class for "small" popover
popoverTriggerClass: 'pf-popover-trigger' // class for "popover" trigger elements
popoverTriggerClass: 'pf-popover-trigger', // class for "popover" trigger elements
// fonts
fontTriglivianClass: 'pf-triglivian' // class for "Triglivian" names (e.g. Abyssal systems)
};
let stopTimerCache = {}; // cache for stopwatch timer

View File

@@ -125,9 +125,11 @@
<li><span class="pf-system-sec-highSec">H</span> high security system<small> (<samp>1.0 - 0.5</samp>)</small></li>
<li><span class="pf-system-sec-lowSec">L</span> low security system<small> (<samp>0.4 - 0.1</samp>)</small></li>
<li><span class="pf-system-sec-nullSec">0.0</span> null security system<small> (<samp>0.0 - -1.0</samp>)</small></li>
<li><span class="pf-system-sec-high">C6, C5</span> high class wormhole <small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-mid">C4, C3</span> mid class wormhole <small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-low">C2, C1</span> low class wormhole <small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-high">C6, C5</span> high class wormhole<small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-mid">C4, C3</span> mid class wormhole<small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-low">C2, C1</span> low class wormhole<small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-unknown">SH</span> shattered wormhole<small> (<samp>-1.0</samp>)</small></li>
<li><span class="pf-system-sec-abyssal">A</span> abyss system<small> (<samp>-1.0</samp>)</small></li>
</ul>
<h4 id="pf-manual-scrollspy-anchor-system-status">System status</h4>
<p>
@@ -151,7 +153,7 @@
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-magnetar"></i> Magnetar</li>
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-redgiant"></i> Red Giant</li>
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-pulsar"></i> Pulsar</li>
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-wolfryet"></i> Wolfryet</li>
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-wolfrayet"></i> Wolf-Rayet</li>
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-cataclysmic"></i> Cataclysmic Variable</li>
<li><i class="fa-li fas fa-square fa-fw pf-system-effect-blackhole"></i> Blackhole</li>
</ul>
@@ -237,7 +239,8 @@
<ul class="list-unstyled" style=" margin-left: 10px;">
<li><div class="pf-fake-connection"></div> Wormhole<small> (Wormhole has not yet had its stability significantly disrupted)</small></li>
<li><div class="pf-fake-connection pf-map-connection-stargate"></div> Stargate<small> (Stargates are static <em>"K-space"</em> connections)</small></li>
<li><div class="pf-fake-connection pf-map-connection-jumpbridge"></div> Jumpbridge<small> (Jumpbridges are Player build <em>"K-space"</em> connections)</small></li>
<li><div class="pf-fake-connection pf-map-connection-jumpbridge"></div> Jumpbridge<small> (Jumpbridges are player build <em>"K-space"</em> connections)</small></li>
<li><div class="pf-fake-connection pf-map-connection-abyssal"></div> Abyssal<small> (abyssal zone entrance <em>"a-space"</em> connections)</small></li>
</ul>
<h4 id="pf-manual-scrollspy-anchor-connection-status">Connection status</h4>
<p>

View File

@@ -1,4 +1,5 @@
@import "_animation";
@import "_fonts";
@import "_main";
@import "_landing";
@import "_logo";

15
sass/layout/_fonts.scss Normal file
View File

@@ -0,0 +1,15 @@
@font-face {
font-family: 'Triglavian';
font-style: normal;
font-weight: 900;
src: url('#{$pf-font-path}/triglavian-regular.eot');
src: url('#{$pf-font-path}/triglavian-regular.eot?#iefix') format('embedded-opentype'),
url('#{$pf-font-path}/triglavian-regular.woff2') format('woff2'),
url('#{$pf-font-path}/triglavian-regular.woff') format('woff'),
url('#{$pf-font-path}/triglavian-regular.ttf') format('truetype');
}
.pf-triglivian {
font-family: 'Triglavian';
font-weight: 900;
}

View File

@@ -833,6 +833,10 @@ table{
color: $indigo;
}
.pf-system-sec-abyssal{
color: $pink;
}
// system status ==================================================================================
.pf-system-status-friendly{
@@ -929,6 +933,18 @@ table{
);
}
&.pf-map-connection-abyssal{
background-color: darken($pink-darker, 8%);
border-color: $gray;
background: repeating-linear-gradient(
to right,
darken($pink-darker, 8%),
darken($pink-darker, 8%) 5px,
$gray 5px,
$gray 10px
);
}
&.pf-map-connection-wh-eol{
border-color: $pink-dark;
}

View File

@@ -350,6 +350,7 @@ $mapWrapperMaxWidth: $mapWidth + 35px;
// ================================================================================================================
.pf-system-head-info{
text-align: right;
color: lighten($gray-light, 10%);
font-size: 10px;
line-height: 10px;
@@ -553,8 +554,14 @@ $mapWrapperMaxWidth: $mapWidth + 35px;
z-index: 80;
filter: drop-shadow( -3px 3px 4px rgba(0,0,0, 0.3));
path:first-child{
stroke: $gray-lightest; // hover style
&:not(.pf-map-connection-jumpbridge):not(.pf-map-connection-abyssal) path:first-child{
stroke: $gray-lightest; // hover style (outer SVG)
}
&.pf-map-connection-jumpbridge, &.pf-map-connection-abyssal{
path:nth-child(2){
stroke: $gray-lightest; // hover style (inner SVG)
}
}
}
@@ -565,6 +572,28 @@ $mapWrapperMaxWidth: $mapWidth + 35px;
}
}
svg.pf-map-connection-abyssal {
z-index: 40;
path:first-child{
stroke: rgba(255,255,255,0); // invisible border color
}
path:nth-child(2){
stroke: darken($pink-darker, 8%);
}
&:hover{
path:first-child{
stroke: rgba(255,255,255,0); // invisible border color
}
path:nth-child(2){
stroke: $gray-lightest;
}
}
}
svg.pf-map-connection-jumpbridge {
z-index: 50;