Back to Index Page generated: Dec 20, 2024, 7:22:10 AM

Expansion Here be Dragons

Content

Warnings

  1. No version in dependency reference to oolite.oxp.SMax.ZeroMap:null
  2. Conflict Expansions mismatch between OXP Manifest and Expansion Manager at character position 0057 (DIGIT ZERO vs LATIN SMALL LETTER N)

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description This OXP is addition to Explorer's Club. It allows permanent access to F7 system info only for already visited systems and temporary access for system info in 7 LY range. This is ocean of unexplored worlds beyond you horizon now. This OXP is addition to Explorer's Club. It allows permanent access to F7 system info only for already visited systems and temporary access for system info in 7 LY range. This is ocean of unexplored worlds beyond you horizon now.
Identifier oolite.oxp.stranger.HereBeDragons oolite.oxp.stranger.HereBeDragons
Title Here be Dragons Here be Dragons
Category Mechanics Mechanics
Author stranger stranger
Version 1.1.0 1.1.0
Tags map, chart, concealment, system map, chart, concealment, system
Required Oolite Version
Maximum Oolite Version
Required Expansions
  • oolite.oxp.CaptMurphy.ExplorersClub:1.4.4
  • oolite.oxp.CaptMurphy.ExplorersClub:1.4.4
  • Optional Expansions
    Conflict Expansions
  • oolite.oxp.SMax.ZeroMap:0
  • oolite.oxp.SMax.ZeroMap:
  • Information URL http://aegidian.org/bb/viewtopic.php?f=4&t=19594 n/a
    Download URL https://wiki.alioth.net/img_auth.php/a/ac/HereBeDragons.oxz n/a
    License CC-BY-NC-SA 3.0 CC-BY-NC-SA 3.0
    File Size n/a
    Upload date 1705813261

    Documentation

    Also read http://wiki.alioth.net/index.php/Here%20be%20Dragons

    ReadMe & License.txt

    Here be Dragons OXP by Stranger
    
    This OXP is released under the Creative Commons Attribution - Non-Commercial - Share Alike 3.0 license.
    You are free to use and distribute this OXP on non-commercial basis. 
    Rebundling of this OXP within another distribution is permitted as long as it is unchanged.
    Any mods/derivatives of this OXP must be distributed under another names.
    The license information (either as this file or merged into a larger one) must be included in the OXP.
    
    --------------------------------------------------------------
    
    This OXP is addition to Explorer's Club. It allows permanent access system to info F7 only for already visited systems and temporary access for systems in 7 LY range. This is ocean of unexplored worlds beyond you horizon now.
    When you are docked in any station you have access to coordinates of unvisited systems beyond 7 LY horizon, you may plot route to these systems - that's all. No any clues for tech level, economy, government etc.
    When you are in flight any unvisited systems are hidden - you have only access for your ship's personal database.
    Jumping to new system adds info access for new systems in 7 LY range, but all these temporary contacts will be hidden again beyond 7 LY horizon.
    
    You need Explorer's Club installed to use this OXP!
    This OXP requires minimum Oolite 1.84.
    
    Compatibility issues
    
    This OXP is incompatible with ZeroMap (author SMax) due to conflicting functionality.
    This OXP may cause issues with generating missions onto unexplored systems in flight.
    Generating missions onto unexplored systems in docked state seems to work fine.
    Reports for any mission-related problems are welcomed!
    
    Credits
    
    Capt. Murphy & Wildeblood - fantastic Explorer's Club OXP
    commander vasig - idea of this OXP and stimulus for its reincarnation
    Wildeblood - for fixing issue with proper map generation for new pilot
    
    Version history:
    
    21.01.2024 - Version 1.1	Fixed issue with proper map generation for new pilot before save and load
    30.01.2019 - Version 1.0.2	Converted to OXZ	
    18.04.2018 - Version 1.0.1	Fixed missed dependency in manifest.plist.
    17.04.2018 - Version 1.0	Code edited to satisfy OXP Standards recommendations.
    				manifest.plist added.
    18.08.2017 - Version 0.9	Unexplored system on map concealed on this.StartUpComplete event to give System Makeup full assess for systems info.
    18.04.2017 - Version 0.8	Fixed hyperjump freeze issue caused by conflict with CargoTypeExtension-Dynamic script in New Cargoes OXP.
    07.09.2016 - Version 0.7	Fixed missing concealment reset after docking.
    07.09.2016 - Version 0.6	Unvisited systems beyond 7 LY horizon completely invisible in flight.
    29.07.2016 - Version 0.5	Map upgrade after jump to new system / new chart refined.
    22.07.2016 - Version 0.4	Code rewritten to implement concealment parameter for unvisited systems.
    22.12.2013 - Version 0.3	F7 screen available immediately after entering the system.
    20.12.2013 - Version 0.2	7 LY horizon info screen added. Public release.
    13.12.2013 - Version 0.1	Initial release (internal testing).
    

    Equipment

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

    Ships

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

    Models

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

    Scripts

    Path
    Scripts/here_be_dragons.js
    "use strict";
    this.name        = "Here be Dragons"; 
    this.author      = "Stranger."; 
    this.copyright   = "Stranger.";
    this.licence     = "CC BY-NC-SA 3.0"; 
    this.description = "Worldscript to block info for unvisited systems."; 
    this.version     = "1.1";
    
    this.startUpComplete = function()   // set map after System Makeup processed planet textures!
        {
        worldScripts["Explorers Club"].playerWillSaveGame();
        this.$explorerClub_data = JSON.parse(missionVariables.explorerClub_record);
        this.$setupSystemDisplay();
        this.$setupLocalDisplay();
        }
    
        this.shipLaunchedFromStation = this.shipExitedWitchspace = this.shipDockedWithStation = function()
        {
        if (system.isInterstellarSpace) return;
        this.$setupSystemDisplay();
        this.$setupLocalDisplay();
        }
    
    this.playerStartedJumpCountdown = function()
        {
        var g = system.info.galaxyID;    
        var t = player.ship.targetSystem;
        for (var i = 0; i < 256; i++)
            {
            System.infoForSystem(g, i).setProperty(2, "concealment", 200);      // temporary show all systems for New Cargoes
            }
        System.infoForSystem(g, system.ID).setProperty(2, "concealment", 0);    // restore complete data set for system of departure...
        System.infoForSystem(g, t).setProperty(2, "concealment", 0);            // ... and system of destination
        }
    
    this.playerCancelledJumpCountdown = this.playerJumpFailed = function()
        {
        if (system.isInterstellarSpace) return;
        this.$setupSystemDisplay();
        this.$setupLocalDisplay();    
        }
    
    this.guiScreenChanged = function(to,from)
        {
        if (guiScreen === "GUI_SCREEN_SYSTEM_DATA")
            {
            if (system.isInterstellarSpace) return;
            var g = system.info.galaxyID;
            var t = player.ship.targetSystem;
            if (system.ID == t) return;
            var target_range = System.infoForSystem(g, system.ID).distanceToSystem(System.infoForSystem(g, t));
            if ((this.$explorerClub_data[g].indexOf(t) === -1) && (target_range > 7))
                {
                mission.runScreen({title: "Access failed", message: "Commander,\n\nThis is unexplored section of Ooniverse!\n\nLocal database can't provide you reliable information for this system.\n\nVisit it at your own risk.", background: "Explorers_Club.png"});
                }
            }
        }
    
    this.$setupSystemDisplay = function()
        {
        var g = system.info.galaxyID;
        for (var i = 0; i < 256; i++)
            {
            if (this.$explorerClub_data[g].indexOf(i) != -1)
                {
                System.infoForSystem(g, i).setProperty(2, "concealment", 0);
                }
            else
                {
                if (player.ship.docked != true)
                    {
                    System.infoForSystem(g, i).setProperty(2, "concealment", 300);
                    }
                else
                    {
                    System.infoForSystem(g, i).setProperty(2, "concealment", 200);
                    }            
                }
            }    
        }
    
    this.$setupLocalDisplay = function()
        {
        var g = system.info.galaxyID;
        var l = System.infoForSystem(g, system.ID).systemsInRange();
        for (var j = 0; j < l.length; j++)
            {
            var m = l[j].systemID;
            System.infoForSystem(g, m).setProperty(2, "concealment", 0);
            }
        System.infoForSystem(g, system.ID).setProperty(2, "concealment", 0);
        }