Back to Index Page generated: Jan 7, 2025, 2:02:46 AM

Expansion Alien Systems

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 Adds flavour to non colonial systems based on inhabitant type Adds flavour to non colonial systems based on inhabitant type
Identifier oolite.oxp.redspear.alien_systems oolite.oxp.redspear.alien_systems
Title Alien Systems Alien Systems
Category Systems Systems
Author Redspear Redspear
Version 0.4 0.4
Tags
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/2/29/Oolite.oxp.redspear.alien_systems.oxz n/a
License CC-BY-NC-SA 4.0 CC-BY-NC-SA 4.0
File Size n/a
Upload date 1733257654

Documentation

Also read http://wiki.alioth.net/index.php/Alien%20Systems

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/alien_systems.js
this.name			= "alien_systems";
this.author			= "Redspear";
this.copyright		= "2022 Redspear";
this.licence		= "CC BY-NC-SA 4.0"; 
this.description	= "System variance by inhabitant type";
this.version		= "0.4";

"use strict";

this.startUp = function() {
	_alienVisa = 0;	//	set jump restrictions
	
	var msi = worldScripts.MarketScriptInterface_Main;
	msi.$addMarketInterface("system_local", "$updateLocalCommodity", this.name, "highest");
}

this.guiScreenChanged = function () {//	'fleshing' out the planet descriptions a bit	

	var hud0 = 0;	//	set up HUD removal when viewing f7 screen
		
	if (guiScreen === "GUI_SCREEN_SYSTEM_DATA") {	//	f7 screen accessed
		var sys = System.infoForSystem(galaxyNumber, player.ship.infoSystem);
		var desc = sys.description;
		var eco = sys.economy;
		var inhab = sys.inhabitants;
		var birds = /bird/i;
		var felines = /feline/i;
		var frogs = /frog/i;
		var humanoids = /humanoid/i;
		var insects = /insect/i;
		var lizards = /lizard/i;
		var lobsters = /lobster/i;
		var rodents = /rodent/i;
		
		player.ship.hudHidden = true;	//	hide HUD
		var hud0 = 1;
	
		if (inhab.match(birds)) {
			//	bird systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Sharp visual acuity tends to make for astute traders.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Birds are an ancient and aloof people with much to teach us and little inclination to do so.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Not all birds can fly but those that can tend to reason that being 'above' others is merely a statement of fact.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("Being asked to keep the eggs warm for a moment is an unlikely honour that few outsiders ever merit.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("According to local lore, there's nothing more masculine that singing a high note.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Avians particularly distrust humanoids. In this regard humanoids would tend to agree with them.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("One way or another, feathers tend to make for costly souvenirs.");
			}
		}
		
		if (inhab.match(felines))	{
			//	feline systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Felines have contributed more pirates, bounty hunters and freebooters to the spaceways than anyone else.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Felines tend to respect power, skill and ruthlessness. In this regard they're much like everyone else.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Lasers are popular here, always have been.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("When offered a dead tourist, the official GalCop recommendation is to graciously accept.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("Don't be put off by the locals' predatory demeanor, but don't ignore it either.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Felines tend to like rodents; a relationship that is seldom reciprocated.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("While rumours abound of successful trade deals involving offers to mate, they are mostly exaggerated.");
			}
		}
			
		if (inhab.match(frogs))	{
			//	frog systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Frogs are masters of the inscrutable stare.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Croak meters are popular gadgets for male and female frogs alike.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Visitors often complain about inaccessible stairways.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("The local cuisine is often somewhat challenging to the visitor's pallette.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("GalCop tourist advice describes the local Spawning Pools as follows: 'Best avoided'.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Frogs are highly variable in size, colour and aggression.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("The more diminuitive, insect trader is strongly advised to remain in their ship while docked here.");
			}
		}
			
		if (inhab.match(humanoids))	{
			//	humanoid systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Humanoids are a highly variable group, such that grouping them is difficult.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Humanoid origins are unclear and attempts at drawing attention to such are frequently considered unwise.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Prejudice might seem more unlikely on a world with such a diverse population but local ingenuity finds a way.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("Do you remember that scene from the cantina in a certain space opera? Some say it's not worth the trouble.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("GalCop advice describes the local welcome as such: 'absent by default'.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Humanoids aren't generally renowned for their friendliness. Of all the other groups, they dislike humans the most.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("Use of the following descriptors is forbidden: 'bastard', 'cross', 'hybrid', 'mongrel', 'mutant', and, of course, 'weirdo'.");
			}
		}
			
		else if (inhab.match(insects))	{
			// insect systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Insects are known for making limited cultural distinctions betwen visitors and slaves.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Once established, insect colonies grow rapidly.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Gruesome legends of visitors ascending 'sky towers' persist to this day, along with their grizzly endings.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("Flight, six limbs, powerful jaws and superb senses are sadly of limited use to insect comedians.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("GalCop advises that to avoid unwanted attention, travel with a lizard. GalCop further advises that to avoid being eaten, never travel with a lizard.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Insects tend to have a very practical outlook with regards to alien relations. They have little respect for anyone.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("It is rumoured that there are insect cells across the galaxy, secretly controlling the...");
			}
		}
			
		if (inhab.match(lizards))	{
			// lizard systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Lizards are often large and even more often indiscriminate in their dietary choices.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Lizards are an ancient and powerful group but seldom expansionist due to their particular climatic requirements.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("There's no reason to assume that a lizard might eat you but there's a very good reason not to rule it out.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("'The way to a lizard's stomach is through his heart', is an oft misunderstood local saying.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("Local cuisine is often described, somewhat disconcertingly, as 'inclusive'.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("The 'harmless' designation assigned to some lizard groups has recently been called into question after the disappearance of several GalCop diplomats.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("Trader's wisdom has it that all trading here should be concluded strictly post-dining.");
			}
		}
			
		if (inhab.match(lobsters))	{
			// lobster systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Lobsters have a reputation for being unhappy, especially with everyone else.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Water worlds tend to make the best lobster habitats. Xenobehaviouralists have hypothesised a correlation between their scarcity and Lobster 'hospitality'.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Your inconvenience is often their amusement.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("They say that if a lobster likes you then it was only a momentary lapse of judgement.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("Elasticated ties of all kinds are extremely hard to acquire here.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Lobster officials wish it to be known that they know things that you don't.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("Lobsters are unimpressed by pushy traders. Exactly when a lobster is impressed however has proved frustratingly difficult to discern.");
			}
		}
			
		if (inhab.match(rodents))	{
			// rodent systems
			if (player.ship.infoSystem < 36) {	
				mission.addMessageText("");
				mission.addMessageText("Rodents are a highly adaptable and opportunistic group.");
			}
			else if (player.ship.infoSystem < 72) {
				mission.addMessageText("");
				mission.addMessageText("Having an inhabitabnt type that could be classed as vermin in some systems is not without its issues.");
			}
			else if (player.ship.infoSystem < 108) {
				mission.addMessageText("");
				mission.addMessageText("Often badmouthed by other inhabitant types, rodents are not above using their reputation to their advantage.");
			}
			else if (player.ship.infoSystem < 144) {
				mission.addMessageText("");
				mission.addMessageText("Translation can be confusing where 'dirty' and 'stolen' are synonymous with 'homely' and 'treasured'.");
			}
			else if (player.ship.infoSystem < 180) {
				mission.addMessageText("");
				mission.addMessageText("All you can eat franchises tend to avoid worlds like this one.");
			}
			else if (player.ship.infoSystem < 216) {
				mission.addMessageText("");
				mission.addMessageText("Rodents find their way onto most worlds and outposts but here they are dominant.");
			}
			else {
				mission.addMessageText("");
				mission.addMessageText("It's not uncommom to agree a price with one rodent only to find the deal concluded by another and at a new price.");
			}
		}
	}
	else	{	//	not f7 screen
			if (hud0 = 1)	{	//	was f7 screen
			player.ship.hudHidden = false;	//	restore HUD
			}
		}
}


this.shipWillEnterWitchspace = function() {
	Sound.stopMusic();
}

this.shipExitedWitchspace = function() {
    var birds = /bird/i;
    var felines = /feline/i;
    var frogs = /frog/i;
    var humanoids = /humanoid/i;
    var insects = /insect/i;
    var lizards = /lizard/i;
    var lobsters = /lobster/i;
    var rodents = /rodent/i;
    var colonials = /colonial/i;
	
	if(system.isInterstellarSpace)
	{
		Sound.playMusic("Reorte_Theme.ogg");
	}
    if(system.info.inhabitants.match(birds))
    {
		Sound.playMusic("Isinor_Theme.ogg");
		player.commsMessage("[bird-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.5) + Math.floor(Math.random() + 0.5) + Math.floor(Math.random() + 0.5) + Math.floor(Math.random() + 0.5) + Math.floor(Math.random() + 0.5));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 5;
				break;
			}
		}
    }
    if(system.info.inhabitants.match(felines))
    {
		Sound.playMusic("Tianve_Theme.ogg");
		player.commsMessage("[feline-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.3) + Math.floor(Math.random() + 0.3) + Math.floor(Math.random() + 0.3));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 3;
				break;
			}
		}
    }
    if(system.info.inhabitants.match(frogs))
    {
        Sound.playMusic("Lerelace_Theme.ogg");
		player.commsMessage("[frog-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.2) + Math.floor(Math.random() + 0.2));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 2;
				break;
			}
		}
    }
    if(system.info.inhabitants.match(humanoids))
    {
        Sound.playMusic("Leesti_Theme.ogg");
		player.commsMessage("[humanoid-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 4;
				break;
			}
		}
	}
    if(system.info.inhabitants.match(insects))
    {
        Sound.playMusic("Diso_Theme.ogg");
		player.commsMessage("[insect-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.3) + Math.floor(Math.random() + 0.3) + Math.floor(Math.random() + 0.3) + Math.floor(Math.random() + 0.3));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 3.5;
				break;
			}
		}
    }
    if(system.info.inhabitants.match(lizards))
    {
        Sound.playMusic("Tionisle_Theme.ogg");
		player.commsMessage("[lizard-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4) + Math.floor(Math.random() + 0.4));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 4.5;
				break;
			}
		}
    }
    if(system.info.inhabitants.match(lobsters))
    {
        Sound.playMusic("Zaonce_Theme.ogg");
		player.commsMessage("[lobster-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.2) + Math.floor(Math.random() + 0.2) + Math.floor(Math.random() + 0.2));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 2.5;
				break;
			}
		}
    }
    if(system.info.inhabitants.match(rodents))
    {
        Sound.playMusic("Teraed_Theme.ogg");
		player.commsMessage("[rodent-beacon-messsages]", 6);
		
		this.$updateLocalCommodity = function (goodDefinition, station, systemID) {
	
		if (!systemID || systemID == -1 || station) return goodDefinition;
		var new_stock; // stocking variation
	
		switch (goodDefinition.key) {
			case "alien_items":
				new_stock = (Math.floor(Math.random() + 0.1) + Math.floor(Math.random() + 0.1));
				if (new_stock < 0) { new_stock = 0 };
				goodDefinition.quantity = new_stock;
				goodDefinition.price *= 1.5;
				break;
			}
		}
    }	
}

this.shipEnteredPlanetaryVicinity = function(entity)
{
	if(entity.isSun) {
		Sound.playMusic("Lave_Theme.ogg");
		_alienVisa = 1;
	}
}

this.shipExitedPlanetaryVicinity = function(entity)
{
    if(entity.isSun) {
		_alienVisa = 0;
	}
}

this.playerStartedJumpCountdown = function(type)
{
	if (type = "standard") {
		if (System.infoForSystem(galaxyNumber, player.ship.targetSystem).inhabitants.match(/colonial/i)) {
			player.consoleMessage ("Colonial Target System");	//	no visa required
		}
		else {
		if (manifest.alien_items > 0) {
			player.ship.cancelHyperspaceCountdown();
			player.consoleMessage ("Target System Valid");	//	valid 'visa'
		}
		else {
		if (_alienVisa == 0) {
			player.ship.cancelHyperspaceCountdown();
			player.consoleMessage ("Target System Restricted");	//	nice try human scum! :-p
		}
		else {
			player.consoleMessage ("Target System...");
			player.consoleMessage ("... Accepted");	//	visa test... dodged
		}
		}
	}
	}
}

this.shipEnteredStationAegis = function(station) {
    if (station.isMainStation) {
		Sound.stopMusic();
        this.$startTimer();
	var birds = /bird/i;
    var felines = /feline/i;
    var frogs = /frog/i;
    var humanoids = /humanoid/i;
    var insects = /insect/i;
    var lizards = /lizard/i;
    var lobsters = /lobster/i;
    var rodents = /rodent/i;
    var colonials = /colonial/i;
	
    if(system.info.inhabitants.match(birds))
    {
		Sound.playMusic("Isinor_Theme.ogg");
    }
    if(system.info.inhabitants.match(felines))
    {
		Sound.playMusic("Tianve_Theme.ogg");
    }
    if(system.info.inhabitants.match(frogs))
    {
        Sound.playMusic("Lave_Theme.ogg");
    }
    if(system.info.inhabitants.match(humanoids))
    {
        Sound.playMusic("Leesti_Theme.ogg");
    }
    if(system.info.inhabitants.match(insects))
    {
        Sound.playMusic("Diso_Theme.ogg");
    }
    if(system.info.inhabitants.match(lizards))
    {
        Sound.playMusic("Tionisle_Theme.ogg");
    }
    if(system.info.inhabitants.match(lobsters))
    {
        Sound.playMusic("Zaonce_Theme.ogg");
    }
    if(system.info.inhabitants.match(rodents))
    {
        Sound.playMusic("Teread_Theme.ogg");
    }
    }
}

this.shipLaunchedFromStation = function(station) {
    if (station.isMainStation) {
        this.$startTimer();
	var birds = /bird/i;
    var felines = /feline/i;
    var frogs = /frog/i;
    var humanoids = /humanoid/i;
    var insects = /insect/i;
    var lizards = /lizard/i;
    var lobsters = /lobster/i;
    var rodents = /rodent/i;
    var colonials = /colonial/i;
	
    if(system.info.inhabitants.match(birds))
    {
		Sound.playMusic("Isinor_Theme.ogg");
    }
    if(system.info.inhabitants.match(felines))
    {
		Sound.playMusic("Tianve_Theme.ogg");
    }
    if(system.info.inhabitants.match(frogs))
    {
        Sound.playMusic("Lave_Theme.ogg");
    }
    if(system.info.inhabitants.match(humanoids))
    {
        Sound.playMusic("Leesti_Theme.ogg");
    }
    if(system.info.inhabitants.match(insects))
    {
        Sound.playMusic("Diso_Theme.ogg");
    }
    if(system.info.inhabitants.match(lizards))
    {
        Sound.playMusic("Tionisle_Theme.ogg");
    }
    if(system.info.inhabitants.match(lobsters))
    {
        Sound.playMusic("Zaonce_Theme.ogg");
    }
    if(system.info.inhabitants.match(rodents))
    {
        Sound.playMusic("Teread_Theme.ogg");
    }
    }
}

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(); // safety check
    this._myTimer = new Timer(this, this.$sendMessageTimer, 60, 120); // first and subsequent
}

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 within scanner range
        if (p.alertCondition != 3) { // only send if the player is not at condition red
            this.$sendStationMessage();
        }
    }
}

this.$sendStationMessage = function $sendStationMessage () {
    var birds = /bird/i;
    var felines = /feline/i;
    var frogs = /frog/i;
    var humanoids = /humanoid/i;
    var insects = /insect/i;
    var lizards = /lizard/i;
    var lobsters = /lobster/i;
    var rodents = /rodent/i;
    var colonials = /colonial/i;
	
    if(system.info.inhabitants.match(birds) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[bird-messages]", 6);
    }
    if(system.info.inhabitants.match(felines) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[feline-messages]", 6);
    }
    if(system.info.inhabitants.match(frogs) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[frog-messages]", 6);
    }
    if(system.info.inhabitants.match(humanoids) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[humanoid-messages]", 6);
    }
    if(system.info.inhabitants.match(insects) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[insect-messages]", 6);
    }
    if(system.info.inhabitants.match(lizards) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[lizard-messages]", 6);
    }
    if(system.info.inhabitants.match(lobsters) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[lobster-messages]", 6);
    }
    if(system.info.inhabitants.match(rodents) && system.techLevel < 12)
    {
        system.mainStation.commsMessage("[rodent-messages]", 6);
    }		
}