Back to Index Page generated: May 8, 2024, 6:16:03 AM

Expansion Solos Alt Stations

Content

Warnings

  1. Information URL mismatch between OXP Manifest and Expansion Manager string length at character position 0

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description Alternate Coriolis, Dodecahedron and Icosahedron stations Alternate Coriolis, Dodecahedron and Icosahedron stations
Identifier oolite.oxp.redspear.solos_alt_stations oolite.oxp.redspear.solos_alt_stations
Title Solos Alt Stations Solos Alt Stations
Category Dockables Dockables
Author pagroove, Griff, CaptSolo, Redspear pagroove, Griff, CaptSolo, Redspear
Version 1.4 1.4
Tags Stations Stations
Required Oolite Version
Maximum Oolite Version
Required Expansions
Optional Expansions
Conflict Expansions
Information URL n/a
Download URL https://wiki.alioth.net/img_auth.php/3/33/Oolite.redspear.solos_alt_stations.oxz n/a
License CC-BY-NC-SA 3.0 CC-BY-NC-SA 3.0
File Size n/a
Upload date 1669849753

Documentation

Also read http://wiki.alioth.net/index.php/Solos%20Alt%20Stations

ReadMe.txt

Solo's Alternate Main Stations 

Credits:
Original Models by Griff: Coriolis, Dodecahedron, Icosahedron, and Docking Bay
Fragment and vertex shader files by Griff

Original OXP: P. A. Groove Stations v1.3
Metaforce Coriolis
GASEC Blue Dodo
FrontierTech Worldranger ICO

Repackaged OXP by CaptSolo:
New descriptions.plist and shiplibrary.plist for Oolite Ship Library preview
New shipdata.plist for compatibility with Oolite's core AI's and roles. 
Retextured: Diffuse + specular map, normal + glow map for the Coriolis, Dodo, and Ico
Script and AIs added as well as new descriptions and library text by Redspear.

License: CC-BY-NC-SA 3.0

Equipment

This expansion declares no equipment. This may be related to warnings.

Ships

Name
Proto-Coriolis Station
GalCop 'Friendship' Station
GalCop 'Wonder' Station
alt-stations_dockingbay

Models

This expansion declares no models. This may be related to warnings.

Scripts

Path
Scripts/solo_alt_conditions.js
"use strict";
this.name = "solos_alt_conditions";
this.author = "Redspear";
this.copyright = "CC-by-nc-sa-3.0";
this.description = "Determines where alt stations will appear";
this.version = "1.2";

"use strict";

this.allowSpawnShip = function(shipKey) {
    if (shipKey == "alt-coriolis_station") {
        if (system.info.economy =="2" || system.info.economy =="7") {
             return true; // Limited to 'poor' economies
        } else {
             return false; // Otherwise not allowed
        }
    }
	if (shipKey == "alt-dodo_station" || shipKey == "alt-ico_station") {
        if (system.info.inhabitants != "Human Colonials") {
             return true; // Limited to 'alien' systems
        } else {
             return false; // Otherwise not allowed
        }
    }
    return true; // Allows other stations to appear
}

this.shipEnteredStationAegis = function(station) {
    if (station.isMainStation) {
        this.$startTimer();
    }
}

this.shipLaunchedFromStation = function(station) {
    if (station.isMainStation) {
        this.$startTimer();
    }
}

this.shipExitedStationAegis = function(station) {
    if (station.isMainStation) {
        this.$stopTimer();
    }
}

this.shipDockedWithStation = function(station) {
    if (station.isMainStation) {
        this.$stopTimer();
    }
}

this.shipDied = function() {
    this.$stopTimer();
}

this.$startTimer = function $startTimer () {
    this.$stopTimer(); // make sure we stop the timer if it's already running
    this._myTimer = new Timer(this, this.$sendMessageTimer, 30, 90); // first timer will fire after 30 sec, but after that will fire every 90 secs
}

this.$stopTimer = function $stopTimer () {
    if (this._myTimer && this._myTimer.isRunning) this._myTimer.stop();
}

this.$sendMessageTimer = function $sendMessageTimer () {
    var p = player.ship;
    var stn = system.mainStation;
    var dist = p.position.distanceTo(stn.position);
    if (dist < stn.scannerRange) { // only send a message if the player is less than scanner range
        if (p.alertCondition != 3) { // only send if the player is not at condition red
            this.$sendStationMessage();
        }
    }
}

this.$sendStationMessage = function $sendStationMessage () {
	
    if(station.shipKey == "alt-dodo_station")
    {
        system.mainStation.commsMessage("[friendship-messages]");
    }
    if(station.shipKey == "alt-ico_station")
    {
        system.mainStation.commsMessage("[wonder-messages]");
    }	
}