Back to Index Page generated: Nov 12, 2024, 11:02:04 PM

Expansion Feudal States

Content

Warnings

  1. Found XML equipment list
  2. XML script list found

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description Adds challenges, missions, promotions, tournaments, ships and stations to the leading feudal systems. Adds challenges, missions, promotions, tournaments, ships and stations to the leading feudal systems.
Identifier oolite.oxp.Ramirez.FeudalStates oolite.oxp.Ramirez.FeudalStates
Title Feudal States Feudal States
Category Systems Systems
Author Ramirez Ramirez
Version 1.16.3 1.16.3
Tags
Required Oolite Version
Maximum Oolite Version
Required Expansions
  • oolite.oxp.Thargoid.Planetfall:1.51
  • oolite.oxp.Thargoid.Planetfall:1.51
  • Optional Expansions
    Conflict Expansions
    Information URL http://wiki.alioth.net/index.php/Feudal_States n/a
    Download URL https://wiki.alioth.net/img_auth.php/4/4c/Feudal_States_1.16.3.oxz n/a
    License CC BY-NC-SA 3 CC BY-NC-SA 3
    File Size n/a
    Upload date 1610873298

    Documentation

    Also read http://wiki.alioth.net/index.php/Feudal%20States

    Equipment

    Name Visible Cost [deci-credits] Tech-Level
    Flare Mine yes 0 100+
    Energy Bomb (disabled) yes 0 100+
    Cloaking Device (disabled) yes 0 100+
    Witchdrive Fuel Injectors (disabled) yes 0 100+

    Ships

    Name
    Ritter-Class Jaeger (Aniseres)
    Freiherr-Class Korvette (Aniseres)
    Prinz-Class Zerstoerer (Aniseres)
    Ritter-Class Jaeger (Ansois)
    Freiherr-Class Korvette (Ansois)
    Prinz-Class Zerstoerer (Ansois)
    Ritter-Class Jaeger (Aronar)
    Freiherr-Class Korvette (Aronar)
    Prinz-Class Zerstoerer (Aronar)
    Ritter-Class Jaeger (Arries)
    Freiherr-Class Korvette (Arries)
    Prinz-Class Zerstoerer (Arries)
    Ritter-Class Jaeger (Atbiarxe)
    Freiherr-Class Korvette (Atbiarxe)
    Prinz-Class Zerstoerer (Atbiarxe)
    Ritter-Class Jaeger (Atlaar)
    Freiherr-Class Korvette (Atlaar)
    Prinz-Class Zerstoerer (Atlaar)
    Ritter-Class Jaeger (Bedierat)
    Freiherr-Class Korvette (Bedierat)
    Prinz-Class Zerstoerer (Bedierat)
    Ritter-Class Jaeger (Biarandi)
    Freiherr-Class Korvette (Biarandi)
    Prinz-Class Zerstoerer (Biarandi)
    Ritter-Class Jaeger (Ceorat)
    Freiherr-Class Korvette (Ceorat)
    Prinz-Class Zerstoerer (Ceorat)
    Ritter-Class Jaeger (Dierlabe)
    Freiherr-Class Korvette (Dierlabe)
    Prinz-Class Zerstoerer (Dierlabe)
    Ritter-Class Jaeger (Digebiti)
    Freiherr-Class Korvette (Digebiti)
    Prinz-Class Zerstoerer (Digebiti)
    Ritter-Class Jaeger (Diqudi)
    Freiherr-Class Korvette (Diqudi)
    Prinz-Class Zerstoerer (Diqudi)
    Ritter-Class Jaeger (Ededleen)
    Freiherr-Class Korvette (Ededleen)
    Prinz-Class Zerstoerer (Ededleen)
    Ritter-Class Jaeger (Edzaon)
    Freiherr-Class Korvette (Edzaon)
    Prinz-Class Zerstoerer (Edzaon)
    Ritter-Class Jaeger (Enbirare)
    Freiherr-Class Korvette (Enbirare)
    Prinz-Class Zerstoerer (Enbirare)
    Ritter-Class Jaeger (Enlaonus)
    Freiherr-Class Korvette (Enlaonus)
    Prinz-Class Zerstoerer (Enlaonus)
    Ritter-Class Jaeger (Erinain)
    Freiherr-Class Korvette (Erinain)
    Prinz-Class Zerstoerer (Erinain)
    Ritter-Class Jaeger (Erlaened)
    Freiherr-Class Korvette (Erlaened)
    Prinz-Class Zerstoerer (Erlaened)
    Ritter-Class Jaeger (Erxearis)
    Freiherr-Class Korvette (Erxearis)
    Prinz-Class Zerstoerer (Erxearis)
    Ritter-Class Jaeger (Esceso)
    Freiherr-Class Korvette (Esceso)
    Prinz-Class Zerstoerer (Esceso)
    Ritter-Class Jaeger (Esredice)
    Freiherr-Class Korvette (Esredice)
    Prinz-Class Zerstoerer (Esredice)
    Ritter-Class Jaeger (Essoza)
    Freiherr-Class Korvette (Essoza)
    Prinz-Class Zerstoerer (Mainon)
    Feudal Freighter
    Feudal Freighter
    Asp MkII
    Feudal Freighter
    Feudal Freighter
    Tournament Buoy
    feudal-cargo
    Target Drone
    Target Drone
    feudal-drone-2
    feudal-drone-3
    feudal-drone-4
    feudal-drone-5
    Escape capsule
    feudal-extra-asteroid1
    feudal-extra-asteroid2
    feudal-extra-asteroid3
    feudal-extra-asteroid4
    feudal-extra-asteroid5
    feudal-extra-asteroid6
    Fer de Lance
    Signal Flare
    Signal Flare
    Jumpgate
    Jumpgate
    Royal Hunting Lodge
    feudal-hunting-lodge-dock
    feudal-hunting-lodge-dock
    feudal-hunting-tower-turret
    Ball Turret
    Ritter-Klasse Jaeger
    Freiherr-Klasse Korvette
    feudal-mine
    Feudal Freighter
    Royal Court
    Prinz Klasse Zerstoerer
    Prinz-Class Zerstoerer Gun
    feudal-prince-gun-blue
    feudal-prince-gun-green
    feudal-prince-gun-magenta
    feudal-prince-gun-orange
    feudal-prince-gun-red
    feudal-prince-gun-white
    feudal-prince-gun-yellow
    Feudal Freighter
    Target Shield
    Shield Pod
    Tournament Shield
    feudal-splinter
    Ritter-Class Jaeger (Geinona)
    Freiherr-Class Korvette (Geinona)
    Prinz-Class Zerstoerer (Geinona)
    Ritter-Class Jaeger (Gelaed)
    Freiherr-Class Korvette (Gelaed)
    Prinz-Class Zerstoerer (Gelaed)
    Ritter-Class Jaeger (Inrearbi)
    Freiherr-Class Korvette (Inrearbi)
    Prinz-Class Zerstoerer (Inrearbi)
    Ritter-Class Jaeger (Israra)
    Freiherr-Class Korvette (Israra)
    Prinz-Class Zerstoerer (Israra)
    Ritter-Class Jaeger (Issoinen)
    Freiherr-Class Korvette (Issoinen)
    Prinz-Class Zerstoerer (Issoinen)
    Ritter-Class Jaeger (Mainon)
    Freiherr-Class Korvette (Mainon)
    Prinz-Class Zerstoerer (Mainon)
    Ritter-Class Jaeger (Mazare)
    Freiherr-Class Korvette (Mazare)
    Prinz-Class Zerstoerer (Mazare)
    Ritter-Class Jaeger (Oneded)
    Freiherr-Class Korvette (Oneded)
    Prinz-Class Zerstoerer (Oneded)
    Ritter-Class Jaeger (Onente)
    Freiherr-Class Korvette (Onente)
    Prinz-Class Zerstoerer (Onente)
    Ritter-Class Jaeger (Onertius)
    Freiherr-Class Korvette (Onertius)
    Prinz-Class Zerstoerer (Onertius)
    Ritter-Class Jaeger (Onusorle)
    Freiherr-Class Korvette (Onusorle)
    Prinz-Class Zerstoerer (Onusorle)
    Ritter-Class Jaeger (Oreseren)
    Freiherr-Class Korvette (Oreseren)
    Prinz-Class Zerstoerer (Oreseren)
    Ritter-Class Jaeger (Orverace)
    Freiherr-Class Korvette (Orverace)
    Prinz-Class Zerstoerer (Orverace)
    Ritter-Class Jaeger (Qurexein)
    Freiherr-Class Korvette (Qurexein)
    Prinz-Class Zerstoerer (Qurexein)
    Ritter-Class Jaeger (Qutecete)
    Freiherr-Class Korvette (Qutecete)
    Prinz-Class Zerstoerer (Qutecete)
    Ritter-Class Jaeger (Rabiarce)
    Freiherr-Class Korvette (Rabiarce)
    Prinz-Class Zerstoerer (Rabiarce)
    Ritter-Class Jaeger (Reenus)
    Freiherr-Class Korvette (Reenus)
    Prinz-Class Zerstoerer (Reenus)
    Ritter-Class Jaeger (Resoisbe)
    Freiherr-Class Korvette (Resoisbe)
    Prinz-Class Zerstoerer (Resoisbe)
    Ritter-Class Jaeger (Ridivexe)
    Freiherr-Class Korvette (Ridivexe)
    Prinz-Class Zerstoerer (Ridivexe)
    rigged-asteroid-1
    rigged-asteroid-2
    Ritter-Class Jaeger (Rileaa)
    Freiherr-Class Korvette (Rileaa)
    Prinz-Class Zerstoerer (Rileaa)
    Ritter-Class Jaeger (Rizace)
    Freiherr-Class Korvette (Rizace)
    Prinz-Class Zerstoerer (Rizace)
    Ritter-Class Jaeger (Sogeve)
    Freiherr-Class Korvette (Sogeve)
    Prinz-Class Zerstoerer (Sogeve)
    Ritter-Class Jaeger (Teususdi)
    Freiherr-Class Korvette (Teususdi)
    Prinz-Class Zerstoerer (Teususdi)
    Ritter-Class Jaeger (Tibecea)
    Freiherr-Class Korvette (Tibecea)
    Prinz-Class Zerstoerer (Tibecea)
    Ritter-Class Jaeger (Tibedied)
    Freiherr-Class Korvette (Tibedied)
    Prinz-Class Zerstoerer (Tibedied)
    Ritter-Class Jaeger (Tiuson)
    Freiherr-Class Korvette (Tiuson)
    Prinz-Class Zerstoerer (Tiuson)
    Ritter-Class Jaeger (Usedge)
    Freiherr-Class Korvette (Usedge)
    Prinz-Class Zerstoerer (Usedge)
    Ritter-Class Jaeger (Usteer)
    Freiherr-Class Korvette (Usteer)
    Prinz-Class Zerstoerer (Usteer)
    Ritter-Class Jaeger (Zagearbe)
    Freiherr-Class Korvette (Zagearbe)
    Prinz-Class Zerstoerer (Zagearbe)

    Models

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

    Scripts

    Path
    Scripts/feudal-buoy.js
    this.name = "feudal-buoy.js";
    this.author = "Ramirez";
    this.copyright = "January 2013";
    this.description = "Script used by feudal Tournament Buoys to monitor and send instructions to ships";
    this.version = "3.0";
    
    this.shipSpawned = function()
    {if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
    this.ship.switchAI("nullAI.plist")}
    
    this.logDetails = function()
    
    {
    //log('running scan...')
    var list = system.allShips
    for (var i=0; i<list.length; i++)
        
        {
        var list2 = list[i].roles  
        var housearray = new Array()
        housearray[0] = "Aronar"
        housearray[1] = "Geinona"
        housearray[2] = "Tibedied"
        housearray[3] = "Tibecea"
        housearray[4] = "Esredice"
        housearray[5] = "Edzaon"
        housearray[6] = "Onusorle"
        housearray[7] = "Oreseren"
        housearray[8] = "Digebiti"
        housearray[9] = "Gelaed"
        housearray[10] = "Ededleen"
        
        housearray[11] = "Ridivexe"
        housearray[12] = "Bedierat"
        housearray[13] = "Esceso"
        housearray[14] = "Erlaened"
        housearray[15] = "Usedge"
        housearray[16] = "Rabiarce"
        housearray[17] = "Orverace"
        housearray[18] = "Reenus"
        housearray[19] = "Israra"
        housearray[20] = "Issoinen"
        housearray[21] = "Arries"
        housearray[22] = "Oneded"
        
        housearray[23] = "Biarandi"
        housearray[24] = "Usteer"
        housearray[25] = "Qurexein"
        housearray[26] = "Erinain"
        housearray[27] = "Ansois"
        housearray[28] = "Ceorat"
        housearray[29] = "Teususdi"
        housearray[30] = "Diqudi"
        housearray[31] = "Sogeve"
        housearray[32] = "Resoisbe"
        housearray[33] = "Atlaar"
        housearray[34] = "Enbirare"
    
        housearray[35] = "Zagearbe"
        housearray[36] = "Rizace"
        housearray[37] = "Atbiarxe"
        housearray[38] = "Enlaonus"
        housearray[39] = "Tiuson"
        housearray[40] = "Erxearis"
    
        housearray[41] = "Essoza"
        housearray[42] = "Mainon"
        housearray[43] = "Qutecete"
        housearray[44] = "Aniseres"
        housearray[45] = "Onertius"
        housearray[46] = "Dierlabe"
        housearray[47] = "Rileaa"
        housearray[48] = "Onente"
        housearray[49] = "Mazare"
        housearray[49] = "Inrearbi"
    
        //log('house array established')
        
       for (var j=0; j<housearray.length; j++)
       {
          
          if(list[i].AI == "feudal-meleeAI.plist")
          
          {
           if (list2.indexOf(housearray[j]+"-knight")!=-1)
           {
             
             
            missionVariables.feudal_tournament_opponent_role = housearray[j]+"-knight"
            missionVariables.feudal_tournament_opponent_house = housearray[j]
            missionVariables.feudal_tournament_opponent_rank_no = 1  
            log([missionVariables.feudal_tournament_opponent_role])
            list[i].switchAI("feudal-challengerhomeAI.plist") 
            }
        
        if (list2.indexOf(housearray[j]+"-lord")!=-1)
        {   missionVariables.feudal_tournament_opponent_role = housearray[j]+"-lord"
            missionVariables.feudal_tournament_opponent_house = housearray[j]
            missionVariables.feudal_tournament_opponent_rank_no = 2
            list[i].switchAI("feudal-challengerhomeAI.plist")
            //log([missionVariables.feudal_tournament_opponent_role])
        }
        if (list2.indexOf(housearray[j]+"-prince")!=-1)
        {   missionVariables.feudal_tournament_opponent_role = housearray[j]+"-prince"
            missionVariables.feudal_tournament_opponent_house = housearray[j]
            missionVariables.feudal_tournament_opponent_rank_no = 3
            list[i].switchAI("feudal-challengerhomeAI.plist")
            //log([missionVariables.feudal_tournament_opponent_role])
        }
          }
        
        }}
    }
    
    
    
    
    
    
    
    this.checkDistanceToPlayer = function()
    {if(player.ship.position.distanceTo(this.ship) < 5000)
        {   ++missionVariables.feudal_tournament_kills
            player.commsMessage("Great shot! Score: "+[missionVariables.feudal_tournament_kills]+" out of 10.")}            
                    
       else
            player.commsMessage("Foul shot. Score: "+[missionVariables.feudal_tournament_kills]+" out of 10")
       }
    
    
    Scripts/feudal-cargo.js
    this.name = "feudal-cargo.js";
    this.author = "Ramirez";
    this.copyright = "November 2010";
    this.description = "Ship script cargo in fuedal missions";
    this.version = "2.0";
    
    this.shipSpawned = function ()
    
    {if(this.ship.displayName == this.ship.name)
            this.ship.displayName = expandDescription("[mission_feudal_mission_house] [mission_feudal_mission_commodity] shipment") // Show the ID of the cargo container
    }
    
    this.shipWasScooped = function (whom)
    
        {   if(missionVariables.feudal_mission == "RAID_SUCCESS")
        
            {   if(whom == player.ship)
    				{
                    missionVariables.feudal_mission_cargocount = (++ missionVariables.feudal_mission_cargocount)
                    }
    
                else return
            }
                
                
            if(missionVariables.feudal_mission == "ESCORT_FAIL")
        
            {   if(whom == player.ship)
    		
                    missionVariables.feudal_mission_cargocount = (++ missionVariables.feudal_mission_cargocount)
                    
                else return
            }
            
           
        }
    Scripts/feudal-challenge.js
    this.name = "feudal-challenge.js";
    this.author = "Ramirez";
    this.copyright = "October 2012";
    this.description = "World script for setting up feudal challenges";
    this.version = "9.0";
    
    // Event handlers
    
    this.startUp = function()
    {if(!missionVariables.feudal_planetinfo)
    	 {missionVariables.feudal_planetinfo = "SET"
    	 this.setPlanetOverrides()}
    	 
    if(missionVariables.feudal_planetinfo.indexOf(galaxyNumber) == -1)
    	{this.setPlanetOverrides()}
    }
    
    this.shipDockedWithStation = function()
    {this.missionScreens()}
    
    this.guiScreenChanged = function()
    {if(guiScreen == "GUI_SCREEN_MARKET")
    this.missionScreens()}
    
    
    //defining possible ships
    
    this.defineChallengerShips = function()
    
    	{ 	if(missionVariables.feudal_challenger_ship == "Ritter-Class Jaeger")
    		missionVariables.feudal_challenger_role = [missionVariables.feudal_challenger_house]+"-knight"
    	
    		if(missionVariables.feudal_challenger_ship == "Freiherr-Class Korvette")
    		missionVariables.feudal_challenger_role = [missionVariables.feudal_challenger_house]+"-lord"
    
    		if(missionVariables.feudal_challenger_ship == "Prinz-Class Zerstoerer")
    		missionVariables.feudal_challenger_role = [missionVariables.feudal_challenger_house]+"-prince"
    	}
    	
    this.defineChallengerGender = function() // pick a gender and house
    
    {	
    	 for (var i=0; i<5; i++) missionVariables.feudal_challenger_house = expandDescription("[feudal_house_"+[galaxyNumber]+"]")
    	missionVariables.feudal_challenger_gender = expandDescription("[feudal_gender]")
    		
    		if(missionVariables.feudal_challenger_gender == "he")
    		{	
    			missionVariables.feudal_challenger_level1_title = "Sir"
    			missionVariables.feudal_challenger_level2_title = "Lord"
    		}									       
    		
    		if(missionVariables.feudal_challenger_gender == "she")
    		{	
    			missionVariables.feudal_challenger_level1_title = "Lady"
    			missionVariables.feudal_challenger_level2_title = "Lady"	
    		}	
    }
    			
    this.defineChallengerDetails = function()		
    	{
    		this.challengerProb = (Math.random())
    		{		
    			if(this.challengerProb < 0.65)
    			
    					{	
    					
    					missionVariables.feudal_challenger_title = missionVariables.feudal_challenger_level1_title
    					missionVariables.feudal_challenger_rank = "knight"
    					missionVariables.feudal_challenger_ship = "Ritter-Class Jaeger"
    					missionVariables.feudal_challenger_text = "feudal_challenger_text_level1"
    					missionVariables.feudal_challenger_rank_no = 1
    					missionVariables.feudal_challenger_score = 600 + (Math.floor(Math.random()*300))
    					this.feudalChallengerRating = missionVariables.feudal_challenger_score*375*300*2*25/15
    					}
    					
    			if(this.challengerProb >= 0.65 && this.challengerProb < 0.90)
    				
    					{
    					missionVariables.feudal_challenger_title = missionVariables.feudal_challenger_level2_title
    					missionVariables.feudal_challenger_rank = player.rankGenerator_feudal_middle_rank
    					missionVariables.feudal_challenger_ship = "Freiherr-Class Korvette"
    					missionVariables.feudal_challenger_text = "feudal_challenger_text_level2"
    					missionVariables.feudal_challenger_rank_no = 2
    					missionVariables.feudal_challenger_score = 900 + (Math.floor(Math.random()*1000))
    					this.feudalChallengerRating = missionVariables.feudal_challenger_score*360*750*4*32/25
    					}
    					
    			if(this.challengerProb >= 0.90)
    				
    					{
    					missionVariables.feudal_challenger_title = missionVariables.feudal_challenger_level2_title
    					missionVariables.feudal_challenger_rank = player.rankGenerator_feudal_high_rank
    					missionVariables.feudal_challenger_ship = "Prinz-Class Zerstoerer"
    					missionVariables.feudal_challenger_text = "feudal_challenger_text_level3"
    					missionVariables.feudal_challenger_rank_no = 3
    					missionVariables.feudal_challenger_score = 1500 + (Math.floor(Math.random()*2000))
    					this.feudalChallengerRating = missionVariables.feudal_challenger_score*400*1100*4*50/35
    					}			
    		}
    }							       
    		
    this.defineChallengerOdds = function()
    
    	{
    		missionVariables.feudal_challenger_odds = Math.round(this.feudalChallengerRating*100/(50*player.ship.maxSpeed*player.ship.maxEnergy*player.ship.thrust*player.ship.missileCapacity))/100 
    		
    		if(missionVariables.feudal_challenger_odds > 10)
    		missionVariables.feudal_challenger_odds = 10
    		
    		missionVariables.feudal_challenger_return = Math.round(missionVariables.feudal_challenger_odds*100)
    	}
    	
    this.defineGeneratorInputs = function()
    
    {
    	player.rankGenerator_house = missionVariables.feudal_challenger_house
    	player.rankGenerator_gender = missionVariables.feudal_challenger_gender
    	
    }
    
    this.defineGeneratorOutputs = function()
    
    {	
    	missionVariables.feudal_challenger_of = player.rankGenerator_of
    	missionVariables.feudal_challenger_firstname = player.rankGenerator_feudal_firstname
    	missionVariables.feudal_challenger_lastname = player.rankGenerator_feudal_lastname
    	
    }
    
    this.feudalChallengeOffer = function()
    
    {	
    		this.defineChallengerGender()
    		this.defineGeneratorInputs()
    		player.feudalRankGenerator()
    		this.defineChallengerDetails()
    		this.defineGeneratorOutputs()
    		this.defineChallengerShips()
    		this.defineChallengerOdds()
    		missionVariables.feudal_challenger_offer = "CHALLENGE_OFFERED"
    		missionVariables.feudal_player_credits = Math.round(player.credits*100)/100 
    }
    
    this.resetChallenger = function()
    {	missionVariables.feudal_challenger_title = null
    	missionVariables.feudal_challenger_gender = null
    	missionVariables.feudal_challenger_firstname= null
    	missionVariables.feudal_challenger_lastname = null
    	missionVariables.feudal_challenger_rank = null
    	missionVariables.feudal_challenger_ship = null
    	missionVariables.feudal_challenger_text = null
    	missionVariables.feudal_challenger_rank_no = null
    	missionVariables.feudal_challenger_score = null
    	missionVariables.feudal_challenger_odds = null
    	missionVariables.feudal_challenger_return = null
    	missionVariables.feudal_challenger_stake = null
    	missionVariables.feudal_challenger_page = null
    	missionVariables.feudal_challenger_house = null
    	missionVariables.feudal_challenger_of = null
    	missionVariables.feudal_challenger_level1_title = null
    	missionVariables.feudal_challenger_level2_title = null
    	missionVariables.feudal_challenger_role = null
    	player.rankGenerator_house = null
    	player.rankGenerator_gender = null
    	missionVariables.feudal_challenger_eligible = null
    }
    
    
    this.checkPlayerShip = function()
    {
    	this.playerSubentities = player.ship.subEntities
    	this.playerSubentitiesString = playerSubentities.toString();
    	if(playerSubentitiesString.indexOf("turret") != -1)
    	missionVariables.feudal_challenger_eligible = "FALSE"
    }
    
    // Mission screens
    
    this.missionScreens = function()
    
        {   if(guiScreen == "GUI_SCREEN_MISSION" || !player.ship.docked) return;
        
    	if(player.ship.dockedStation.hasRole("feudal-hunting-lodge") && (missionVariables.feudal_tournament_home != system.name))
    	
    	
    	{	if(guiScreen == "GUI_SCREEN_MARKET")		 
    	
    		{
    			
    		this.checkPlayerShip()	
    		
    			
    		if(!missionVariables.feudal_challenger || missionVariables.feudal_challenger == "NONE_SET")
    		{
    		  
    		  if(missionVariables.feudal_challenger_count > 5)
    		  {mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_nomore"})} 
    		  
    		  else
    		  
    		  {this.resetChallenger()
    					missionVariables.feudal_challenger_page = "1"
    					this.feudalChallengeOffer()
    					mission.runScreen({title: "Royal Hunting Lodge", messageKey: [missionVariables.feudal_challenger_text], model: [missionVariables.feudal_challenger_role],
                                    choicesKey: "feudal_challenger_board_choices"}, this.choiceEvaluation);}}
    					
    		
    		
    		if(missionVariables.feudal_challenger_offer == "CHALLENGE_DEFERRED")
    			{
    			
    			mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_accepted_text", choicesKey: "feudal_challenger_launch_choices"}, this.choiceEvaluation);
    			missionVariables.feudal_challenger_offer = "CHALLENGE_LAUNCH"}
    		
    		}
    		
    		if(missionVariables.feudal_challenger == "RUNNING")	   
    			{
    			mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_forfeit"})	
    			missionVariables.feudal_challenger = "NONE_SET"
    			this.resetChallenger()
    			this.restoreSystems()}
    			
    		if(missionVariables.feudal_challenger == "FORFEIT")	   
    			{
    			mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_forfeit-alt"})
    			missionVariables.feudal_challenger = "NONE_SET"
    			this.resetChallenger()
    			this.restoreSystems()}
    
    
    		if(missionVariables.feudal_challenger == "VICTORY")
    			{
    			mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_victory", music: "feudal-music.ogg"})
    			player.credits += missionVariables.feudal_challenger_stake
    			player.credits += missionVariables.feudal_challenger_return
    			missionVariables.feudal_challenger = "NONE_SET"
    			this.resetChallenger()
    			this.restoreSystems()}
    		
    	}
    		
    	if(player.ship.dockedStation.isMainStation)
    		{if(missionVariables.feudal_challenger == "RUNNING" || missionVariables.feudal_challenger == "FORFEIT")
    		{missionVariables.feudal_challenger = "NONE_SET"
    		this.resetChallenger()
    		this.restoreSystems()
    		player.commsMessage("Feudal Hunting Lodge: You have forfeited the challenge.")}}
    }	
        
    this.choiceEvaluation = function(choice)
    
    	{
    		if(missionVariables.feudal_challenger_offer == "CHALLENGE_OFFERED")
    			
    				{	
    					if(missionVariables.feudal_challenger_page == "1")
    								
    						{	if(choice == "accept_challenger")	
    					
    							{	
    								if(missionVariables.feudal_challenger_odds > 0.2)
    								{mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_bet_text", choicesKey: "feudal_challenger_bet_choices", model: [missionVariables.feudal_challenger_role]}, this.choiceEvaluation);
    								missionVariables.feudal_challenger_offer = "CHALLENGE_BET"}
    								
    								if(missionVariables.feudal_challenger_odds <= 0.5)
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_low_odds"});
    								
    								if(missionVariables.feudal_challenger_eligible == "FALSE")
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_ineligible"});
    							}
    					
    							if(choice == "decline_challenger")	
    			
    							{	
    								missionVariables.feudal_challenger_page = "2"
    								missionVariables.feudal_challenger_offer = null	
    								choice = null
    								this.feudalChallengeOffer()
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: [missionVariables.feudal_challenger_text], choicesKey: "feudal_challenger_board_choices", model: [missionVariables.feudal_challenger_role]}, this.choiceEvaluation);
    							}	
    					
    							if(choice == "exit_challenger")		
    								{missionVariables.feudal_challenger = "NONE_SET"
    								missionVariables.feudal_challenger_offer = null
    								this.resetChallenger()
    								return}
    						}
    							
    					if(missionVariables.feudal_challenger_page == "2")
    								
    						{	if(choice == "accept_challenger")
    					
    							{	
    								if(missionVariables.feudal_challenger_odds > 0.2)
    								{mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_bet_text", choicesKey: "feudal_challenger_bet_choices", model: [missionVariables.feudal_challenger_role]}, this.choiceEvaluation);
    								missionVariables.feudal_challenger_offer = "CHALLENGE_BET"}
    								
    								if(missionVariables.feudal_challenger_odds <= 0.2)
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_low_odds"});
    								
    								if(missionVariables.feudal_challenger_eligible == "FALSE")
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_ineligible"});
    							}
    					
    							if(choice == "decline_challenger")	
    			
    							{	
    								missionVariables.feudal_challenger_page = "3"
    								missionVariables.feudal_challenger_offer = null
    								choice = null
    								this.feudalChallengeOffer()
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: [missionVariables.feudal_challenger_text], choicesKey: "feudal_challenger_board_choices_alt", model: [missionVariables.feudal_challenger_role]}, this.choiceEvaluation);
    								missionVariables.feudal_challenger_page = "3"
    							}	
    					
    							if(choice == "exit_challenger")		
    								{missionVariables.feudal_challenger = "NONE_SET"
    								missionVariables.feudal_challenger_offer = null
    								this.resetChallenger()
    								return}
    						}	
    						
    					if(missionVariables.feudal_challenger_page == "3")
    								
    						{	if(choice == "accept_challenger")
    					
    							{	
    								if(missionVariables.feudal_challenger_odds > 0.2)
    								{mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_bet_text", choicesKey: "feudal_challenger_bet_choices", model: [missionVariables.feudal_challenger_role]}, this.choiceEvaluation);
    								missionVariables.feudal_challenger_offer = "CHALLENGE_BET"}
    								
    								if(missionVariables.feudal_challenger_odds <= 0.2)
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_low_odds"});
    								
    								if(missionVariables.feudal_challenger_eligible == "FALSE")
    								mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_ineligible"});
    							}
    					
    							if(choice == "decline_challenger")	
    			
    							{
    								missionVariables.feudal_challenger_page = "1"			
    								missionVariables.feudal_challenger = "NONE_SET"
    								missionVariables.feudal_challenger_offer = null
    								choice = null
    								this.resetChallenger()
    							}	
    					
    							if(choice == "exit_challenger")		
    								{missionVariables.feudal_challenger = "NONE_SET"
    								missionVariables.feudal_challenger_offer = null
    								this.resetChallenger()
    								
    								return}
    						}			
    				}
    			
    		if(missionVariables.feudal_challenger_offer == "CHALLENGE_BET")
    			
    				{	if(choice == "bet100")
    				
    					{	if(player.credits >= 100)
    					
    						{	missionVariables.feudal_challenger_offer = "CHALLENGE_LAUNCH"
    							missionVariables.feudal_challenger_stake = 100
    							missionVariables.feudal_challenger_return = Math.round([missionVariables.feudal_challenger_stake]*[missionVariables.feudal_challenger_odds])
    							mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_accepted_text", choicesKey: "feudal_challenger_launch_choices"}, this.choiceEvaluation);
    							player.credits -= 100
    							missionVariables.feudal_challenger = "ACCEPTED"
    
    						}
    						
    						else
    							
    						mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_refused", choicesKey: "feudal_challenger_bet_choices"}, this.choiceEvaluation);
    					}	
    						
    					if(choice == "bet1000")
    					
    					{	if(player.credits >= 1000)
    					
    						{	missionVariables.feudal_challenger_offer = "CHALLENGE_LAUNCH"
    							missionVariables.feudal_challenger_stake = 1000
    							missionVariables.feudal_challenger_return = Math.round([missionVariables.feudal_challenger_stake]*[missionVariables.feudal_challenger_odds])
    							mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_accepted_text", choicesKey: "feudal_challenger_launch_choices"}, this.choiceEvaluation);
    							player.credits -= 1000
    							missionVariables.feudal_challenger = "ACCEPTED"
    						}
    						
    						else
    						
    	
    							mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_refused", choicesKey: "feudal_challenger_bet_choices"}, this.choiceEvaluation);
    						
    					}	
    					
    					if(choice == "bet10000")
    					
    					{	if(player.credits >= 10000)
    						
    						{	missionVariables.feudal_challenger_offer = "CHALLENGE_LAUNCH"
    							missionVariables.feudal_challenger_stake = 10000
    							missionVariables.feudal_challenger_return = Math.round([missionVariables.feudal_challenger_stake]*[missionVariables.feudal_challenger_odds])
    							mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_accepted_text", choicesKey: "feudal_challenger_launch_choices"}, this.choiceEvaluation);
    							player.credits -= 10000
    							missionVariables.feudal_challenger = "ACCEPTED"
    						}
    						
    						else
    						mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_refused", choicesKey: "feudal_challenger_bet_choices"}, this.choiceEvaluation);
    						
    					}
    					
    					if(choice == "betcancel")
    						{missionVariables.feudal_challenger_offer = "CHALLENGE_OFFERED"
    						mission.runScreen({title: "Royal Hunting Lodge", messageKey: [missionVariables.feudal_challenger_text], choicesKey: "feudal_challenger_board_choices", model: [missionVariables.feudal_challenger_role]}, this.choiceEvaluation);
    						}	
    				}		
    				
    		if(missionVariables.feudal_challenger_offer == "CHALLENGE_LAUNCH")
    				
    				{	if(choice == "begin_challenge")
    				
    						{	missionVariables.feudal_challenger = "RUNNING"
    							missionVariables.feudal_challenger_offer = null
    							player.ship.launch()
    							++missionVariables.feudal_challenger_count
    							
    						}
    						
    						
    					if(choice == "defer_challenge")
    				
    						{
    							mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_challenger_deferred"});
    							missionVariables.feudal_challenger_offer = "CHALLENGE_DEFERRED"	
    						}	
    				}
    	}			
    
    	
    // ship appearance on launching
    	
    this.shipWillLaunchFromStation = function()
    
    {	this.setUpSystem()
    
    	if(missionVariables.feudal_challenger == "RUNNING")
    	{	system.legacy_addShipsAtPrecisely([missionVariables.feudal_challenger_role], 1, "wsm", [0, 120100, 0])
    		this.disableSystems()}
    		else
    	if(missionVariables.feudal_challenger_offer != "CHALLENGE_DEFERRED")
    	missionVariables.feudal_challenger = "NONE_SET"
    }
    this.shipWillExitWitchspace = function()
    {	this.setUpSystem()
    	missionVariables.feudal_challenger_count = 0 
    	if(missionVariables.feudal_challenger == "RUNNING" || missionVariables.feudal_challenger == "FORFEIT" || missionVariables.feudal_challenger_offer == "DEFERRED")
    		{missionVariables.feudal_challenger = "NONE_SET"
    		missionVariables.feudal_challenger_offer = null
    		missionVariables.feudal_challenger_stake = null
    		player.commsMessage("Feudal challenge has been forfeit.")
    		this.restoreSystems()}	
    
    	
    	if(missionVariables.feudal_challenger == "VICTORY")
    		{missionVariables.feudal_challenger = "NONE_SET"
    		missionVariables.feudal_challenger_offer = null
    		missionVariables.feudal_challenger_stake = null
    		this.restoreSystems()}	
    }
    
    
    
    
    
    
    this.setPlanetOverrides = function()
    {	missionVariables.feudal_planetinfo = missionVariables.feudal_planetinfo+galaxyNumber
    	for (var i=0; i<256; i++)
    	{if(System.infoForSystem(galaxyNumber,[i]).government == 1)
    	
    			{if(galaxyNumber = 0 && System.infoForSystem(galaxyNumber,[i]).techlevel >= 7 || galaxyNumber == 1 && System.infoForSystem(galaxyNumber,[i]).techlevel >= 5 ||
    				galaxyNumber == 2 && System.infoForSystem(galaxyNumber,[i]).techlevel >= 7 || galaxyNumber == 4 && System.infoForSystem(galaxyNumber,[i]).techlevel >= 7 ||
    				galaxyNumber == 5 && System.infoForSystem(galaxyNumber,[i]).techlevel >= 8)
    				{System.infoForSystem(galaxyNumber,[i]).description = System.infoForSystem(galaxyNumber,[i]).description + " Note that this system is a member of the Feudal States."}
    			}
    	}	
    }
    
    
    this.playerEnteredNewGalaxy = function()
    {	if(missionVariables.feudal_planetinfo.indexOf(galaxyNumber) == -1)
    	this.setPlanetOverrides()}
    
    this.setUpSystem = function()
    {
    	if(system.government == 1)
    	
    	{
    	
    		if(galaxyNumber == 0 && system.techLevel >=7 || galaxyNumber == 1 && system.techLevel >= 5 || galaxyNumber == 2 && system.techLevel >= 7 || galaxyNumber == 4 && system.techLevel >=7 || galaxyNumber == 5 && system.techLevel >=8)
    
    		{
    		var currentLocationNo = system.ID
    		var currentLocationName = System.systemNameForID ([currentLocationNo])
    		
    		if(system.countShipsWithRole("feudal-hunting-lodge") == 0)
    		system.legacy_addShipsAtPrecisely("feudal-hunting-lodge", 1, "wsm", [0, 100000, 0])
    		
    		if(system.countShipsWithRole("feudal-buoy") == 0)
    		system.legacy_addShipsAtPrecisely("feudal-buoy", 1, "wsm", [0, 122000, 0])
    		
    		
    		if(missionVariables.feudal_tournament_home != system.name && system.countShipsWithRole("feudal-knight") == 0)  
    		{system.legacy_addShipsWithinRadius([currentLocationName]+"-knight", 4, "wsm", [0, 100000, 0], 10000)
    		system.legacy_addSystemShips([currentLocationName]+"-lord", 2, 0.8)
    		system.legacy_addSystemShips("feudal-knight", 3, 0.6)}
    		}
    	}
    }
    
    
    
    this.disableSystems = function()
    {
    	if(player.ship.equipmentStatus("EQ_CLOAKING_DEVICE") == "EQUIPMENT_OK")
    		{	player.ship.removeEquipment("EQ_CLOAKING_DEVICE")
    			player.ship.awardEquipment("EQ_FS_CLOAK_PLACEHOLDER")
    			player.consoleMessage("Cloaking Device disabled")
    		}
    		
    	if(player.ship.equipmentStatus("EQ_ENERGY_BOMB") == "EQUIPMENT_OK")
    		{	player.ship.removeEquipment("EQ_ENERGY_BOMB")
    			player.ship.awardEquipment("EQ_FS_BOMB_PLACEHOLDER")
    			player.consoleMessage("Energy Bomb disabled")
    		}
    		
    	this.storeMissileArray = player.ship.missiles;
    	player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
    	player.ship.awardEquipment("EQ_FEUDAL_FLARE_MINE")
    }
    
    this.restoreSystems = function()
    
    {	if(player.ship.equipmentStatus("EQ_FS_CLOAK_PLACEHOLDER") == "EQUIPMENT_OK")
    		{	player.ship.removeEquipment("EQ_FS_CLOAK_PLACEHOLDER")
    			player.ship.awardEquipment("EQ_CLOAKING_DEVICE")
    			player.consoleMessage("Cloaking Device re-enabled")
    		}
    		
    	if(player.ship.equipmentStatus("EQ_FS_BOMB_PLACEHOLDER") == "EQUIPMENT_OK")
    		{	player.ship.removeEquipment("EQ_FS_BOMB_PLACEHOLDER")
    			player.ship.awardEquipment("EQ_ENERGY_BOMB")
    			player.consoleMessage("Energy Bomb re-enabled")
    		}
    	
    	player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
    	for(restoreCounter = 0;restoreCounter<this.storeMissileArray.length;restoreCounter++)
            {player.ship.awardEquipment(this.storeMissileArray[restoreCounter].equipmentKey);}
    }
    Scripts/feudal-escape-pod.js
    this.name = "feudal-escape-pod.js";
    this.author = "Ramirez";
    this.copyright = "November 2010";
    this.description = "Ship script for feudal escape pods";
    this.version = "2.0";
    
    this.shipSpawned = function ()
    {
    	if(missionVariables.feudal_mission == "RANSOM_RUNNING")
    	
    		{	if(this.ship.displayName == this.ship.name)
    			this.ship.displayName = expandDescription("[mission_feudal_mission_rank] [mission_feudal_mission_of] [mission_feudal_mission_house]") // Show the ID of the execution target
    		}
    	if(missionVariables.feudal_challenger == "RUNNING")
    		{
    		if(this.ship.displayName == this.ship.name)	
                            {
                                  if(missionVariables.feudal_challenger_rank_no == 1)
                                  this.ship.displayName = expandDescription("[mission_feudal_challenger_title] [mission_feudal_challenger_firstname] [mission_feudal_challenger_lastname]")
                            
                                  else
                                  this.ship.displayName = expandDescription("[mission_feudal_challenger_rank] [mission_feudal_challenger_of] [mission_feudal_challenger_house]")
                            }
    		}
    }
    
    this.shipWasScooped = function (whom)
    		{ if(whom == player.ship)
    		
    		{if(missionVariables.feudal_mission == "RANSOM_RUNNING")
    			{missionVariables.feudal_mission = "RANSOM_SUCCESS" 
    			mission.unmarkSystem([missionVariables.feudal_mission_location_no], "feudal-mission.js")}
    		}
    		}
    
    this.shipDied = function ()
    		
    		
    		{if(missionVariables.feudal_mission == "RANSOM_RUNNING")
    			{missionVariables.feudal_mission = "RANSOM_FAIL" 
    			mission.unmarkSystem([missionVariables.feudal_mission_location_no], "feudal-mission.js")}                
    		}	
    
    		
    Scripts/feudal-flare.js
    this.name = "feudal-flare.js";
    this.author = "Ramirez";
    this.copyright = "April 2011";
    this.description = "Script used by a signal flare to yield a feudal challenge to an opponent";
    this.version = "1.1";
    
    this.yieldToOpponent = function()
    {player.commsMessage("Challenge yielded", 5)
    missionVariables.feudal_challenger = "FORFEIT"}
    Scripts/feudal-jumpgate.js
    this.name = "feudal-jumpgate.js";
    this.author = "Ramirez";
    this.copyright = "November 2012";
    this.description = "Script used by Cascade tournament event to teleport player to asteroid field";
    this.version = "2.0";
    
    
    
    this.checkDistance = function()
    {if(player.ship.position.distanceTo(this.ship) < 200)
    
        {   var homedestination = system.shipsWithRole("feudal-gate-home")[0]
            var awaydestination = system.shipsWithRole("feudal-gate-away")[0]
            player.commsMessage('Jump Initiated')
            
            if(this.ship.primaryRole == "feudal-gate-home")
            {
                player.ship.position = awaydestination.position.add([0, 0, 500])
                player.ship.orientation = awaydestination.orientation  
            }
            
            if(this.ship.primaryRole == "feudal-gate-away")
            { 
                player.ship.position = homedestination.position.add([0, 0, 500])
                player.ship.orientation = homedestination.orientation
            }      
        }
    }
    
    
    Scripts/feudal-mine.js
    this.name = "feudal-mine.js";
    this.author = "Ramirez";
    this.copyright = "August 2009";
    this.description = "Script used by feudal mines";
    this.version = "1.0";
    
    
    
    this.checkDistanceToPlayer = function()
    {if(player.ship.position.distanceTo(this.ship) < 4000)
        {   
            this.ship.commsMessage("WARNING: Mine activated.")
            this.ship.reactToAIMessage("TARGET_FOUND")}            
                    
    }
    
    this.shipDied = function()
    {this.ship.spawn("feudal-splinter", 30)}
    
    Scripts/feudal-mission.js
    this.name = "feudal-mission.js";
    this.author = "Ramirez";
    this.copyright = "December 2011";
    this.description = "World script for setting up feudal missions";
    this.version = "9.0";
    
    
    
    this.startUp = function()
    {
    this.thePlayerShip = player.ship
    }
    
    this.missionScreenEnded = function()
    {
    	if(!player.ship.docked) return;
    	
    	this.feudalMissionScreens	
    }
    
    this.shipDockedWithStation = function()
    
    {
    	if(!player.ship.docked) return;
    	this.feudalMissionScreens()	
    }
    
    this.guiScreenChanged = function()
    
    {	if(guiScreen == "GUI_SCREEN_MARKET")
    	this.feudalMissionScreens()
    }
    
    this.resetMissionVariables = function()
    {missionVariables.feudal_mission_location_no = null
    missionVariables.feudal_mission_location_name = null
    missionVariables.feudal_mission_commodity = null
    missionVariables.feudal_mission_reward = null
    missionVariables.feudal_mission_house = null
    missionVariables.feudal_mission_gender = null
    missionVariables.feudal_mission_role = null
    missionVariables.feudal_mission_ship = null
    }
    
    this.defineMissionLocationNo = function() // Define system number for missions if required, based on selected house
    
    	{missionVariables.feudal_mission_location_no = System.systemIDForName([missionVariables.feudal_mission_house])}
    
    this.defineMissionHouse = function() // Randomly select a House related to the mission; reject any where house equals current location
    	
    	{missionVariables.feudal_mission_house = expandDescription("[feudal_house_"+[galaxyNumber]+"]")
    		
    		if(missionVariables.feudal_mission_house == system.name)
    			{this.defineMissionHouse()}
    			else return}
    
    this.defineMissionLocation = function() // Define system name for missions if required, based on system number
    	{missionVariables.feudal_mission_location = System.systemNameForID([missionVariables.feudal_mission_location_no])}
    
    this.defineMissionCommodity = function() // Define any commodities associated with the mission
    	{missionVariables.feudal_mission_commodity = expandDescription("[feudal_commodity]")}
    		
    this.defineMissionHome = function() // Defines the home for any feudal missions and ultimately the player's feudal rank
    	{missionVariables.feudal_mission_home = system.name}
    
    
    this.defineFeudalDelivery = function() // Defines all variables needed for a feudal delivery mission
    {	this.defineMissionHouse()
    	this.defineMissionLocationNo()
    	this.defineMissionHome()
    	this.defineMissionCommodity()
    	missionVariables.feudal_mission_reward = 1000 + (Math.floor(Math.random()*10))*101	
    }
    
    
    this.feudalTributeOffer = function()
    {	
    	this.defineFeudalTribute()
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_tribute", music: "feudal-music.ogg", background: "redeagle.png", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    	missionVariables.feudal_mission_offer = "TRIBUTE_OFFER"
    }
    
    this.defineFeudalTribute = function()
    {	this.defineMissionHome()
    	missionVariables.feudal_mission_reward = 300 + (Math.floor(Math.random()*10))*101	
    	missionVariables.feudal_mission_location_no = (Math.floor(Math.random()*256));
    	
    	if(System.infoForSystem(galaxyNumber,[missionVariables.feudal_mission_location_no]).government == 1 && System.infoForSystem(galaxyNumber,[missionVariables.feudal_mission_location_no]).techlevel < 5)
    	{missionVariables.feudal_mission_location_name = System.infoForSystem(galaxyNumber,[missionVariables.feudal_mission_location_no]).name}	
    	else
    	this.defineFeudalTribute()	
    }
    
    this.feudalTributeChoice = function()   
    
    {	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_accepted"})
    	missionVariables.feudal_mission = "TRIBUTE_RUNNING"
    	mission.setInstructionsKey("feudal_mission_tribute_instructions")
    	mission.markSystem([missionVariables.feudal_mission_location_no])
    }
    
    this.defineFeudalRansom = function()
    {		
    	this.defineMissionGender()
    	this.defineMissionHouse()
    	this.defineGeneratorInputs()
    	player.rankGenerator_level = 3
    	player.feudalRankGenerator()
    	this.defineGeneratorOutputs()
    	missionVariables.feudal_mission_rank = player.rankGenerator_feudal_high_rank
    	this.defineMissionLocationNo()
    	this.defineMissionHome()
    	missionVariables.feudal_mission_reward = (Math.floor(Math.random()*4))*3050 + 5000	
    }
    
    this.feudalRansomOffer = function()
    {	
    	this.defineFeudalRansom()
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_ransom", music: "feudal-music.ogg", background: "redeagle.png", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    	missionVariables.feudal_mission_offer = "RANSOM_OFFER"
    }
    		
    this.feudalRansomChoice = function()
    
    {	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_accepted"})
    	missionVariables.feudal_mission = "RANSOM_RUNNING"
    	mission.setInstructionsKey("feudal_mission_ransom_instructions")
    	mission.markSystem([missionVariables.feudal_mission_location_no])
    }
    
    this.feudalDeliveryOffer = function ()
    {
    	this.defineFeudalDelivery()
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_delivery", background: "redeagle.png", music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    	//mission.runMissionScreen("feudal_mission_delivery", "redeagle.png", "feudal_mission_choices", null, "feudal-music.ogg")
    	missionVariables.feudal_mission_offer = "DELIVERY_OFFER"	
    }
    
    this.feudalDeliveryChoice = function ()   
    
    {	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_accepted"})
    	missionVariables.feudal_mission = "DELIVERY_RUNNING"
    	mission.setInstructionsKey("feudal_mission_delivery_instructions")
    	mission.markSystem([missionVariables.feudal_mission_location_no])
    }
    
    
    
    this.feudalExecutionOffer = function ()
    			
    {
    	this.defineFeudalExecution()
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_execution", background: "redeagle.png", music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    	//mission.runMissionScreen("feudal_mission_execution", "redeagle.png", "feudal_mission_choices", null, "feudal-music.ogg")
    	missionVariables.feudal_mission_offer = "EXECUTION_OFFER"	
    }
    	
    this.feudalExecutionChoice = function ()	
    {	
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_accepted"})
    	missionVariables.feudal_mission = "EXECUTION_RUNNING"
    	mission.setInstructionsKey("feudal_mission_execution_instructions")
    	mission.markSystem([missionVariables.feudal_mission_location_no])
    }	
    	
    this.feudalRaidOffer = function ()
    {
    	this.defineFeudalRaid()
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_raid", background: "redeagle.png", music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    	//mission.runMissionScreen("feudal_mission_raid", "redeagle.png", "feudal_mission_choices", null, "feudal-music.ogg")
    	missionVariables.feudal_mission_offer = "RAID_OFFER"
    	
    }
    
    this.feudalRaidChoice = function ()
    {			
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_accepted"})
    	missionVariables.feudal_mission = "RAID_RUNNING"
    	mission.setInstructionsKey("feudal_mission_raid_instructions")
    	mission.markSystem([missionVariables.feudal_mission_location_no])
    	missionVariables.feudal_mission_cargocount = 0
    }
    
    this.feudalEscortOffer = function()
    { 
    	this.defineFeudalEscort()
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_escort", background: "redeagle.png", music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    	missionVariables.feudal_mission_offer = "ESCORT_OFFER"
    }
    
    this.feudalEscortChoice = function()	
    {	
    	mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_accepted"})
    	missionVariables.feudal_mission = "ESCORT_RUNNING"
    	mission.setInstructionsKey("feudal_mission_escort_instructions")
    	mission.markSystem([missionVariables.feudal_mission_location_no])
    	missionVariables.feudal_mission_cargocount = 0
    	missionVariables.feudal_mission_killcount = 0
    }
    
    this.defineFeudalRaid = function()
    
    {
    	missionVariables.feudal_mission_location_no = (Math.floor(Math.random()*256));
    	missionVariables.feudal_mission_ship = expandDescription("[feudal_freighter]")
    	this.defineMissionHouse()
    	this.defineMissionLocation()
    	this.defineMissionCommodity()
    	this.defineMissionHome()
    	this.defineMissionRole()
    	missionVariables.feudal_mission_reward = 3000 + (Math.floor(Math.random()*10))*97
    }
    
    
    this.defineFeudalExecution = function()
    {	
    	missionVariables.feudal_mission_location_no = (Math.floor(Math.random()*256));
    	missionVariables.feudal_mission_ship = expandDescription("[feudal_fighter]")
    	missionVariables.feudal_mission_house = system.name
    	this.defineMissionGender()
    	this.defineMissionRole()
    	player.rankGenerator_level = 2
    	this.defineGeneratorInputs()
    	player.feudalRankGenerator()
    	this.defineGeneratorOutputs()
    	this.defineMissionLocation()
    	missionVariables.feudal_mission_reward = 8000 + (Math.floor(Math.random()*10))*52
    }
    
    this.defineGeneratorInputs = function()
    {
    	player.rankGenerator_house = missionVariables.feudal_mission_house
    	player.rankGenerator_gender = missionVariables.feudal_mission_gender	
    }
    
    this.defineGeneratorOutputs = function()
    {
    	missionVariables.feudal_mission_firstname = player.rankGenerator_feudal_firstname
    	missionVariables.feudal_mission_lastname = player.rankGenerator_feudal_lastname
    	missionVariables.feudal_mission_of = player.rankGenerator_of
    }
    
    this.defineFeudalEscort = function()
    {	missionVariables.feudal_mission_location_no = (Math.floor(Math.random()*256));
    	missionVariables.feudal_mission_ship = expandDescription("[feudal_freighter]")
    	this.defineMissionLocation()
    	this.defineMissionHouse()
    	this.defineMissionRole()
    	this.defineMissionCommodity()
    	this.defineMissionHome()
    	missionVariables.feudal_mission_reward = 8000 + (Math.floor(Math.random()*10))*48
    }
    
    this.defineMissionGender = function() // define gender and basic ranks for mission target
    
    	{	missionVariables.feudal_mission_gender = expandDescription("[feudal_gender]")
    		  
    		if(missionVariables.feudal_mission_gender == "he")
    		{	
    			missionVariables.feudal_mission_level1_title = "Sir"
    			missionVariables.feudal_mission_level2_title = "Lord"
    		}									       
    		
    		if(missionVariables.feudal_mission_gender == "she")
    		
    		{	
    			missionVariables.feudal_mission_level1_title = "Lady"
    			missionVariables.feudal_mission_level2_title = "Lady"	
    		}
    	}
    	
    //   define the necessary ship role based on the ship name that has been selected by mission variables
    
    this.defineMissionRole = function()
    
    {	
    		if(missionVariables.feudal_mission_ship == "Python Cruiser")
    		missionVariables.feudal_mission_role = "feudal-python"
    		
    		if(missionVariables.feudal_mission_ship == "Anaconda Freighter")
    		missionVariables.feudal_mission_role = "feudal-anaconda"
    		
    		if(missionVariables.feudal_mission_ship == "Boa")
    		missionVariables.feudal_mission_role = "feudal-boa"
    		
    		if(missionVariables.feudal_mission_ship == "Boa Class Cruiser")
    		missionVariables.feudal_mission_role = "feudal-boa2"
    		
    		if(missionVariables.feudal_mission_ship == "Adder")
    		missionVariables.feudal_mission_role = "feudal-adder"
    		
    		if(missionVariables.feudal_mission_ship == "Moray")
    		missionVariables.feudal_mission_role = "feudal-moray"
    		
    		if(missionVariables.feudal_mission_ship == "Fer-de-Lance")
    		missionVariables.feudal_mission_role = "feudal-ferdelance"
    		
    		if(missionVariables.feudal_mission_ship == "Asp Mark II")
    		missionVariables.feudal_mission_role = "feudal-asp"
    }
    
    
    this.feudalMissionScreens = function()
    
    {  	if(guiScreen == "GUI_SCREEN_MISSION" || !player.ship.docked) return;
    	if(missionVariables.feudal_mission_offer) return;
    	
    	if(this.thePlayerShip.dockedStation.hasRole("planetFall_feudalStates"))
    
    		{		
    			if(guiScreen == "GUI_SCREEN_MARKET")
    			
    			{	
    				if(!missionVariables.feudal_mission && !missionVariables.feudal_player_rank_no)		 
    			
    				{	this.feudalTributeOffer()
    					missionVariables.feudal_score = 0
    					// for new starters, offer a delivery only and initialise score
    				}
    				
    				
    				if(missionVariables.feudal_mission == "NONE_SET")
    			
    				{
    					this.feudalMissionProb = (Math.random())
    				
    					if(!missionVariables.feudal_player_rank_no)
    						
    						if(this.feudalMissionProb <= 0.5)
    						this.feudalDeliveryOffer()
    						
    						else
    						
    						this.feudalTributeOffer()
    							
    					if(missionVariables.feudal_player_rank_no == 1 && missionVariables.feudal_mission_home == system.name) 
    							
    					{	
    						if(this.feudalMissionProb <= 0.4)
    						this.feudalRaidOffer()
    						
    						if(this.feudalMissionProb > 0.4 && this.feudalMissionProb <= 0.7)
    						this.feudalDeliveryOffer()						
    
    						if(this.feudalMissionProb > 0.9)
    						this.feudalTributeOffer()
    					
    						if(this.feudalMissionProb > 0.7 && this.feudalMissionProb <= 0.9)
    						this.feudalEscortOffer()
    						
    					}
    				
    			
    					if(missionVariables.feudal_player_rank_no == 2 && missionVariables.feudal_mission_home == system.name)
    								
    					{
    			
    					if(this.feudalMissionProb <= 0.65)
    					this.feudalRaidOffer()
    						
    					if(this.feudalMissionProb > 0.65 && this.feudalMissionProb <= 0.8)
    					this.feudalEscortOffer()
    						
    					if(this.feudalMissionProb >= 0.8)
    					this.feudalExecutionOffer()
    					}
    			
    		
    					if(missionVariables.feudal_player_rank_no == 3 && missionVariables.feudal_mission_home == system.name)		
    					{	
    					
    					if(this.feudalMissionProb <= 0.10)
    					this.feudalRaidOffer()
    						
    					if(this.feudalMissionProb >0.10 && this.feudalMissionProb <= 0.8)
    					this.feudalRansomOffer()
    						
    					if(this.feudalMissionProb >= 0.8)
    					this.feudalExecutionOffer()	
    					}
    			
    					if(missionVariables.feudal_player_rank_no >= 4 && missionVariables.feudal_mission_home == system.name)		
    				
    					{
    					if(this.feudalMissionProb <= 0.10)
    					this.feudalRaidOffer()
    						
    					if(this.feudalMissionProb > 0.10 && this.feudalMissionProb <= 0.5)
    					this.feudalEscortOffer()
    					
    					if(this.feudalMissionProb >0.5 && this.feudalMissionProb <= 0.8)
    					this.feudalRansomOffer()
    						
    					if(this.feudalMissionProb >= 0.8 && this.feudalMissionProb < 0.9)
    					this.feudalExecutionOffer()
    					
    					if(this.feudalMissionProb >= 0.9)
    					this.feudalDeliveryOffer()
    					}
    				
    				}
    		
    				if(missionVariables.feudal_mission == "DELIVERY_DECLINED")
    					{mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_delivery", background: "redeagle.png",
    					music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);	
    					missionVariables.feudal_mission_offer = "DELIVERY_OFFER"}
    					
    				if(missionVariables.feudal_mission == "TRIBUTE_DECLINED")
    					{mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_tribute", background: "redeagle.png",
    					music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);	
    					missionVariables.feudal_mission_offer = "TRIBUTE_OFFER"}
    					
    				if(missionVariables.feudal_mission == "RANSOM_DECLINED")
    					{mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_ransom", background: "redeagle.png",
    					music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);		
    					missionVariables.feudal_mission_offer = "RANSOM_OFFER"}
    					
    				if(missionVariables.feudal_mission == "RAID_DECLINED")
    					{mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_raid", background: "redeagle.png",
    					music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    					missionVariables.feudal_mission_offer = "RAID_OFFER"}
    					
    				if(missionVariables.feudal_mission == "EXECUTION_DECLINED")
    					{mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_execution", background: "redeagle.png",
    					music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    					missionVariables.feudal_mission_offer = "EXECUTION_OFFER"}
    					
    				if(missionVariables.feudal_mission == "ESCORT_DECLINED")
    					{mission.runScreen({title: "Royal Court", messageKey: "feudal_mission_escort", background: "redeagle.png",
    					music: "feudal-music.ogg", choicesKey: "feudal_mission_choices"}, this.choiceEvaluation);
    					missionVariables.feudal_mission_offer = "ESCORT_OFFER"}
    			
    			}
    			
    		
    			
    			
    			// standard responses for missions returning to the Royal Court without market screen
    			
    			
    		if((missionVariables.feudal_mission == "DELIVERY_RUNNING" && system.ID == [missionVariables.feudal_mission_location_no]))	  
    			
    				{	mission.runScreen({messageKey:"feudal_mission_deliverysuccess"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_score += 2
    					missionVariables.feudal_mission = "NONE_SET"
    					mission.setInstructionsKey(null)
    					player.credits += missionVariables.feudal_mission_reward}
    					
    							
    		if(missionVariables.feudal_mission == "TRIBUTE_COLLECTED" && (missionVariables.feudal_mission_home == system.name)) 	  
    			
    				{	mission.runScreen({messageKey:"feudal_mission_tributesuccess"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_score += 1
    					missionVariables.feudal_mission = "NONE_SET"
    					player.credits += missionVariables.feudal_mission_reward
    					mission.setInstructionsKey(null)}
    			
    		if(missionVariables.feudal_mission == "RAID_SUCCESS" && (missionVariables.feudal_mission_home == system.name)) 
    					
    					{	if(missionVariables.feudal_mission_cargocount == 18)
    				
    						{	player.credits += missionVariables.feudal_mission_reward
    							mission.runScreen({messageKey: "feudal_mission_raid_bigsuccess"})
    							mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    							missionVariables.feudal_mission = "NONE_SET"
    							missionVariables.feudal_score += 10
    							mission.setInstructionsKey(null)
    						}
    				
    						if(missionVariables.feudal_mission_cargocount < 18 && missionVariables.feudal_mission_cargocount > 6)
    						{	missionVariables.feudal_mission_reward = Math.floor(missionVariables.feudal_mission_reward*0.8)				
    							player.credits += (missionVariables.feudal_mission_reward)
    							mission.runScreen({messageKey: "feudal_mission_raid_success"})
    							mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    							missionVariables.feudal_mission = "NONE_SET"
    							missionVariables.feudal_score += 5
    							mission.setInstructionsKey(null)
    						}
    				
    						if(missionVariables.feudal_mission_cargocount <= 6)
    						{	mission.runScreen({messageKey: "feudal_mission_raid_smallsuccess"})
    							mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    							missionVariables.feudal_mission = "NONE_SET"
    							missionVariables.feudal_score += 3
    							mission.setInstructionsKey(null)
    						}
    					
    						if(missionVariables.feudal_mission_cargocount == 0)
    						{	
    							mission.runScreen({messageKey: "feudal_mission_raid_fail"})
    							mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    							missionVariables.feudal_mission = "NONE_SET"
    							mission.setInstructionsKey(null)
    						}
    					}		
    		
    		if(missionVariables.feudal_mission == "RANSOM_SUCCESS" && (missionVariables.feudal_mission_home == system.name)) 
    			
    				{	player.credits += missionVariables.feudal_mission_reward
    					mission.runScreen({messageKey: "feudal_mission_ransom_success"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_mission = "NONE_SET"
    					missionVariables.feudal_score += 20
    					mission.setInstructionsKey(null)
    				}
    				
    		if(missionVariables.feudal_mission == "RANSOM_FAIL" && (missionVariables.feudal_mission_home == system.name))
    			
    				{	
    					mission.runScreen({messageKey: "feudal_mission_ransom_fail"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_mission = "NONE_SET"
    					missionVariables.feudal_score -= 15
    					mission.setInstructionsKey(null)
    				}
    			
    		}
    	
    		// Responses that don't end at the Royal Court
    		
    		
    			if((missionVariables.feudal_mission == "TRIBUTE_RUNNING" && system.ID == [missionVariables.feudal_mission_location_no]))	  
    			
    				{	mission.runScreen({messageKey:"feudal_mission_tributecollected"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_mission = "TRIBUTE_COLLECTED"}
    
    
    
    			if(missionVariables.feudal_mission == "EXECUTION_SUCCESS")		
    			
    				{	mission.runScreen({messageKey: "feudal_mission_executionsuccess"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_mission = "NONE_SET"
    					missionVariables.feudal_score += 20
    					mission.setInstructionsKey(null)
    					player.credits += missionVariables.feudal_mission_reward
    				}
    				
    			if(missionVariables.feudal_mission == "EXECUTION_PARTIALSUCCESS")		
    			
    				{	missionVariables.feudal_mission_reward = Math.floor(missionVariables.feudal_mission_reward*0.4)
    					mission.runScreen({messageKey: "feudal_mission_executionpartialsuccess"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					player.credits += missionVariables.feudal_mission_reward
    					missionVariables.feudal_mission = "NONE_SET"
    					missionVariables.feudal_score += 10
    					mission.setInstructionsKey(null)
    				}
    			
    			if(missionVariables.feudal_mission == "ESCORT_SUCCESS" && system.ID == [missionVariables.feudal_mission_location_no])
    			
    				{	player.credits += missionVariables.feudal_mission_reward
    					mission.runScreen({messageKey:"feudal_mission_escort_success"})
    					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    					missionVariables.feudal_mission = "NONE_SET"
    					missionVariables.feudal_score += 20
    					mission.setInstructionsKey(null)
    				}
    				
    			if(missionVariables.feudal_mission == "ESCORT_FAIL" && system.ID == [missionVariables.feudal_mission_location_no])
    			
    				{	if(missionVariables.feudal_mission_cargocount >=12)
    			
    					{	missionVariables.feudal_mission_reward = Math.floor(missionVariables.feudal_mission_reward*0.75)
    						player.credits += missionVariables.feudal_mission_reward
    						mission.runScreen({messageKey:"feudal_mission_escort_partialsuccess"})
    						mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    						missionVariables.feudal_mission = "NONE_SET"
    						missionVariables.feudal_score += 10
    						mission.setInstructionsKey(null)	
    					}
    					
    					if(missionVariables.feudal_mission_cargocount >= 6 && missionVariables.feudal_mission_cargocount < 12) 
    			
    					{	missionVariables.feudal_mission_reward = Math.floor(missionVariables.feudal_mission_reward*0.5)	
    						mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    						player.credits += missionVariables.feudal_mission_reward
    						mission.runScreen({messageKey:"feudal_mission_escort_partialsuccess"})
    						missionVariables.feudal_mission = "NONE_SET"
    						missionVariables.feudal_score += 5
    						mission.setInstructionsKey(null)
    					}
    						
    					if(missionVariables.feudal_mission_cargocount < 6)
    			
    					{	mission.runScreen({messageKey:"feudal_mission_escort_fail"})
    						mission.unmarkSystem([missionVariables.feudal_mission_location_no])
    						missionVariables.feudal_mission = "NONE_SET"
    						missionVariables.feudal_score -= 10
    						mission.setInstructionsKey(null)
    					}
    				
    		}
    	}
    		
    
    this.choiceEvaluation = function(choice)
    
    	{
    		
    			if(missionVariables.feudal_mission_offer == "DELIVERY_OFFER")
    			 
    			 
    				{	if(choice == "accept_mission")
    					
    					{this.feudalDeliveryChoice()
    					missionVariables.feudal_mission_offer = null}
    			
    					if(choice == "decline_mission")
    					{missionVariables.feudal_mission = "DELIVERY_DECLINED"
    					missionVariables.feudal_mission_offer = null}
    				}
    			
    			if(missionVariables.feudal_mission_offer == "TRIBUTE_OFFER")
    			 
    			 
    				{	if(choice == "accept_mission")
    					
    					{this.feudalTributeChoice()
    					missionVariables.feudal_mission_offer = null}
    			
    					if(choice == "decline_mission")
    					{missionVariables.feudal_mission = "TRIBUTE_DECLINED"
    					missionVariables.feudal_mission_offer = null}
    				}
    				
    			if(missionVariables.feudal_mission_offer == "EXECUTION_OFFER")	
    			
    				{ 	if(choice == "accept_mission")	// acceptance for an execution mission
    					{this.feudalExecutionChoice()
    					missionVariables.feudal_mission_offer = null}
    				
    					if(choice == "decline_mission")
    					{missionVariables.feudal_mission = "EXECUTION_DECLINED"
    					missionVariables.feudal_mission_offer = null
    					}
    				}
    				
    			if(missionVariables.feudal_mission_offer == "RAID_OFFER")
    				{	
    				if(choice == "accept_mission")
    				
    					{this.feudalRaidChoice()
    					missionVariables.feudal_mission_offer = null}
    						
    				if(choice == "decline_mission")
    					{missionVariables.feudal_mission = "RAID_DECLINED"
    					missionVariables.feudal_mission_offer = null}
    				}
    			
    			if(missionVariables.feudal_mission_offer == "ESCORT_OFFER")	
    			
    				{ 	if(choice == "accept_mission")
    					{this.feudalEscortChoice()
    					missionVariables.feudal_mission_offer = null}
    				
    					if(choice == "decline_mission")
    					{missionVariables.feudal_mission = "ESCORT_DECLINED"
    					missionVariables.feudal_mission_offer = null}
    				}
    				
    			if(missionVariables.feudal_mission_offer == "RANSOM_OFFER")	
    			
    				{ 	if(choice == "accept_mission")
    					{this.feudalRansomChoice()
    					missionVariables.feudal_mission_offer = null}
    				
    					if(choice == "decline_mission")
    					{missionVariables.feudal_mission = "RANSOM_DECLINED"
    					missionVariables.feudal_mission_offer = null}		
    				}
    	}
    
    // ship appearance on launching
    	
    this.shipWillLaunchFromStation = function()
    
    {if(missionVariables.feudal_mission_offer)
    missionVariables.feudal_mission_offer = null}
    
    // witchspace exit conditions
    
    this.shipExitedWitchspace = function()
    {	
    			
    	if(missionVariables.feudal_mission == "DELIVERY_RUNNING")
    	
    		{	if(Math.random() <= 0.25)
    			system.legacy_addSystemShips("pirate", 4, 0.1)}
    	
    	if(missionVariables.feudal_mission == "RAID_RUNNING" && system.ID == [missionVariables.feudal_mission_location_no])
    	
    		{	system.legacy_addSystemShips([missionVariables.feudal_mission_role], 3, 0.5) // populate the system with the raid target along with some knights
    			system.legacy_addSystemShips([missionVariables.feudal_mission_house]+"-knight", 12, 0.5)}
    
    	if(missionVariables.feudal_mission == "EXECUTION_RUNNING" && system.ID == [missionVariables.feudal_mission_location_no])
    	
    		system.legacy_addSystemShips([missionVariables.feudal_mission_role], 1, 0.8) // populate the system with the execution target
    		
    		
    	if(missionVariables.feudal_mission == "ESCORT_RUNNING" && system.ID == [missionVariables.feudal_mission_location_no])
    		{	system.legacy_addSystemShips([missionVariables.feudal_mission_role], 3, 0.6) // populate the system with the freighter to be escorted
    			system.legacy_addSystemShips([missionVariables.feudal_mission_home]+"-knight", 12, 0.6) // add some knights from the home side to support the freighter
    			system.legacy_addSystemShips([missionVariables.feudal_mission_house]+"-knight", 7, 0.8) // add some knights from enemy side
    			system.legacy_addSystemShips([missionVariables.feudal_mission_house]+"-lord", 1, 0.8) // add some lords from the enemy side
    		}
    		
    	if(missionVariables.feudal_mission == "RANSOM_RUNNING" && system.ID == [missionVariables.feudal_mission_location_no])
    
    		{system.legacy_addShipsAtPrecisely([missionVariables.feudal_mission_house]+"-prince", 1, "wsm", [0, 115000, 0])// add the ransom target
    		
    		}				
    						
    	
    	if(missionVariables.feudal_mission)
    	{if(missionVariables.feudal_mission.indexOf("DECLINED") > 1)
    	{missionVariables.feudal_mission = "NONE_SET"
    	mission.setInstructionsKey(null)
    	this.resetMissionVariables()}}
    }
    
    
    this.playerEnteredNewGalaxy = function()
    {	missionVariables.feudal_mission = "NONE_SET"
    	mission.setInstructionsKey(null)
    	this.resetMissionVariables()
    	
    }
    
    
    Scripts/feudal-planetfall.js
    this.name		= "feudal-planetfall.js";
    this.author		= "Thargoid/Ramirez";
    this.copyright		= "Creative Commons: attribution, non-commercial, sharealike.";
    this.description	= "Locations for Feudal States";
    this.version		= "3.0";
    
    this.shipWillLaunchFromStation = this.shipWillExitWitchspace = function()
    	{
    	if(system.government == 1)
    	
    		{if(galaxyNumber == 0 && system.techLevel >=7 || galaxyNumber == 1 && system.techLevel >= 5 || galaxyNumber == 2 && system.techLevel >= 7 || galaxyNumber == 4 && system.techLevel >=7 || galaxyNumber == 5 && system.techLevel >=8)
    			{if(worldScripts.PlanetFall)
    				worldScripts.PlanetFall.planetFallOverride = true; // set the override, so only external OXP locations appear
    			}
    		}
    	}
    
    this.shipWillEnterWitchspace = function()
    	{
    	if(system.government == 1)
    		{if(galaxyNumber == 0 && system.techLevel >=7 || galaxyNumber == 1 && system.techLevel >= 5 || galaxyNumber == 2 && system.techLevel >= 7 || galaxyNumber == 4 && system.techLevel >=7 || galaxyNumber == 5 && system.techLevel >=8)
    			{if(worldScripts.PlanetFall) 
    				worldScripts.PlanetFall.planetFallOverride = false; // set things back to normal
    		}
    	}
    }
    
    Scripts/feudal-promotion.js
    this.name = "feudal-promotion.js";
    this.author = "Ramirez";
    this.copyright = "October 2012";
    this.description = "World script for handling a player's feudal rank and promotions";
    this.version = "6.0";
    
    
    // Event handlers
    
    this.shipDockedWithStation = function()
    
    {	
    	this.missionScreens()
    }
    
    
    this.guiScreenChanged = function()
    
    {	if(guiScreen == "GUI_SCREEN_MISSION")  
    	this.missionScreens()
    }
    
    // Mission Screens	
    
    this.missionScreens = function()
    {
    
    if(guiScreen == "GUI_SCREEN_MISSION" || !player.ship.docked) return;
    
    if(player.ship.dockedStation.hasRole("planetFall_feudalStates"))
    {				
    			
    
    if(missionVariables.feudal_promotion_jumpcount == null)
    
    {	if(!missionVariables.feudal_player_rank_no && missionVariables.feudal_score > 4)		
    	{	
    		mission.runScreen({messageKey: "feudal_knight_promotion", background: "redeagle.png", choicesKey: "feudal_rank_choices"}, this.choiceEvaluation)
    		missionVariables.feudal_promotion_offer = "KNIGHT_OFFERED"}
    	
    	
    	if(missionVariables.feudal_mission_home_galaxy !== galaxyNumber && missionVariables.feudal_player_rank_no >= 1)
    	{
    		mission.runScreen({messageKey: "feudal_promotion_transfer", background: "redeagle.png", choicesKey: "feudal_transfer_choices"}, this.choiceEvaluation)
    		missionVariables.feudal_promotion_offer = "TRANSFER_OFFERED"}
    
    }
    
    if(missionVariables.feudal_player_rank_no == 1 && missionVariables.feudal_score > 39)
    
    		{
    		++missionVariables.feudal_player_rank_no
    		this.defineGeneratorInputs()
    		player.feudalRankGenerator()
    		this.defineGeneratorOutputs()
    		missionVariables.feudal_promotion_date = clock.clockString
    		mission.runScreen({messageKey: "feudal_baron_promotion", background: "redeagle.png"})
    		mission.setInstructionsKey("feudal_rank_details")
    		missionVariables.feudal_promotion_jumpcount = null
    		}
    		
    if(missionVariables.feudal_player_rank_no == 2 && missionVariables.feudal_score > 99)
    
    		{
    		++missionVariables.feudal_player_rank_no
    		this.defineGeneratorInputs()
    		player.feudalRankGenerator()
    		this.defineGeneratorOutputs()
    		missionVariables.feudal_promotion_date = clock.clockString
    		mission.runScreen({messageKey: "feudal_further_promotion", background: "redeagle.png"})
    		mission.setInstructionsKey("feudal_rank_details")
    		missionVariables.feudal_promotion_jumpcount = null
    		}
    		
    if(missionVariables.feudal_player_rank_no == 3 && missionVariables.feudal_score > 179)
    
    		{
    		++missionVariables.feudal_player_rank_no
    		this.defineGeneratorInputs()
    		player.feudalRankGenerator()
    		this.defineGeneratorOutputs()
    		missionVariables.feudal_promotion_date = clock.clockString
    		mission.runScreen({messageKey: "feudal_further_promotion", background: "redeagle.png"})
    		mission.setInstructionsKey("feudal_rank_details")
    		missionVariables.feudal_promotion_jumpcount = null
    		}
    		
    if(missionVariables.feudal_player_rank_no == 4 && missionVariables.feudal_score > 279)
    		{
    		++missionVariables.feudal_player_rank_no
    		this.defineGeneratorInputs()
    		player.feudalRankGenerator()
    		this.defineGeneratorOutputs()
    		missionVariables.feudal_promotion_date = clock.clockString
    		mission.runScreen({messageKey: "feudal_further_promotion", background: "redeagle.png"})
    		mission.setInstructionsKey("feudal_rank_details")
    		missionVariables.feudal_promotion_jumpcount = null
    		}	
    		
    		
    if(missionVariables.feudal_player_rank_no == 5 && missionVariables.feudal_score > 399)
    		{
    		++missionVariables.feudal_player_rank_no
    		this.defineGeneratorInputs()
    		player.feudalRankGenerator()
    		this.defineGeneratorOutputs()
    		missionVariables.feudal_promotion_date = clock.clockString
    		mission.runScreen({messageKey: "feudal_duke_promotion", background: "redeagle.png"})
    		mission.setInstructionsKey("feudal_rank_details")
    		missionVariables.feudal_promotion_jumpcount = null
    		}	
    }
    }
    // Choice evaluations
    
    this.choiceEvaluation = function(choice)
    	{
    		if(missionVariables.feudal_promotion_offer == "KNIGHT_OFFERED")
    			
    				
    			{	if(choice == "accept_rank_male")	
    						{		
    							missionVariables.feudal_promotion_offer = null
    							missionVariables.feudal_mission_home = system.name
    							missionVariables.feudal_mission_home_galaxy = galaxyNumber
    							missionVariables.feudal_player_rank_no = 1
    							missionVariables.feudal_player_rank = "Knight"
    							missionVariables.feudal_player_title = "Sir"
    							missionVariables.feudal_player_title_peer = "Lord"
    							missionVariables.feudal_player_of = "of"
    							missionVariables.feudal_player_gender = "he"
    							mission.runScreen({messageKey: "feudal_promotion_knightaccept", background: "redeagle.png"})
    							mission.setInstructionsKey("feudal_rank_details")
    							missionVariables.feudal_tournament_jumpcount = 0
    							}
    				if(choice == "accept_rank_female")
    						{	missionVariables.feudal_promotion_offer = null
    							missionVariables.feudal_mission_home = system.name
    							missionVariables.feudal_mission_home_galaxy = galaxyNumber
    							missionVariables.feudal_player_rank_no = 1
    							missionVariables.feudal_player_title = "Lady"
    							missionVariables.feudal_player_title_peer = "Lady"
    							missionVariables.feudal_player_rank = "Knight"
    							missionVariables.feudal_player_of = "of"
    							missionVariables.feudal_player_gender = "she"
    							mission.runScreen({messageKey: "feudal_promotion_knightaccept", background: "redeagle.png"})
    							mission.setInstructionsKey("feudal_rank_details")
    							missionVariables.feudal_tournament_jumpcount = 0
    						}	
    				if(choice == "decline_rank")
    						{	missionVariables.feudal_promotion_offer = null
    							mission.runScreen({messageKey: "feudal_promotion_knightdecline", background: "redeagle.png"})
    							}	
    			}
    		
    		if(missionVariables.feudal_promotion_offer == "TRANSFER_OFFERED")
    		
    				if(choice == "accept_transfer")	
    						{		
    							
    							missionVariables.feudal_promotion_offer = null
    							missionVariables.feudal_mission_home = system.name
    							missionVariables.feudal_mission_home_galaxy = galaxyNumber
    							
    							if(missionVariables.feudal_player_rank_no == 1)
    							{	
    								mission.runScreen({messageKey: "feudal_accept_knight_transfer", background: "redeagle.png"})
    								mission.setInstructionsKey("feudal_rank_details")	
    							}
    							
    							if(missionVariables.feudal_player_rank_no > 1)
    							{
    								this.defineGeneratorInputs()
    								player.feudalRankGenerator()
    								this.defineGeneratorOutputs()
    								mission.runScreen({messageKey: "feudal_accept_transfer", background: "redeagle.png"})
    							}
    							
    							mission.setInstructionsKey("feudal_rank_details")
    							missionVariables.feudal_tournament_jumpcount = null
    						}
    				if(choice == "decline_transfer")	
    						{	missionVariables.feudal_promotion_offer = null
    							mission.runScreen({messageKey: "feudal_promotion_knightdecline", background: "redeagle.png"})		
    							missionVariables.feudal_promotion_jumpcount = 0}	
    		
    	}
    		
    // Supporting functions
    
    this.defineGeneratorInputs = function()
    {
    	player.rankGenerator_gender = missionVariables.feudal_player_gender
    	player.rankGenerator_house = missionVariables.feudal_mission_home
    	player.rankGenerator_level = missionVariables.feudal_player_rank_no
    }
    
    this.defineGeneratorOutputs = function()
    {	
    	missionVariables.feudal_player_of = player.rankGenerator_of
    	missionVariables.feudal_player_rank = player.rankGenerator_feudal_specific_rank	
    }
    
    
    	
    this.shipWillExitWitchspace = function()
    {	
    	if(missionVariables.feudal_promotion_jumpcount != null)
    	missionVariables.feudal_promotion_jumpcount = null
    }
    
    Scripts/feudal-ranks.js
    this.name = "feudal-ranks.js";
    this.author = "Ramirez";
    this.copyright = "March 2013";
    this.description = "Script used to generate ranks and names for feudal characters";
    this.version = "5.0";
    
    player.feudalRankGenerator = this.feudalRankGenerator = function()
    
    {
        
        if(player.rankGenerator_house == "Geinona" || player.rankGenerator_house == "Bedierat" || player.rankGenerator_house == "Qurexein" || player.rankGenerator_house == "Sogeve")
        {var rankGenerator_language = "spanish"
        player.rankGenerator_of = "de"}
        
        if(player.rankGenerator_house == "Oreseren" || player.rankGenerator_house == "Aronar" ||
           player.rankGenerator_house == "Arries" || player.rankGenerator_house == "Orverace" || player.rankGenerator_house == "Ismaan" || player.rankGenerator_house == "Ansois"
           || player.rankGenerator_house == "Atlaar")
        {var rankGenerator_language = "dutch"
        player.rankGenerator_of = "van"}
        
        if(player.rankGenerator_house == "Digebiti" || player.rankGenerator_house == "Edzaon"
           || player.rankGenerator_house == "Usedge" || player.rankGenerator_house == "Israra" || player.rankGenerator_house == "Esceso" ||
           player.rankGenerator_house == "Dirateri" ||
           player.rankGenerator_house == "Onarmala" || player.rankGenerator_house == "Usteer")
        {var rankGenerator_language = "english"
        player.rankGenerator_of = "of"}
    
        if(player.rankGenerator_house == "Esredice" || player.rankGenerator_house == "Ededleen" || player.rankGenerator_house == "Reenus" ||
           player.rankGenerator_house == "Oneded" || player.rankGenerator_house == "Gexean" || player.rankGenerator_house == "Erinain" || player.rankGenerator_house == "Enbirare")
        {var rankGenerator_language = "german"
        player.rankGenerator_of = "von"}
        
        if(player.rankGenerator_house == "Gelaed" || player.rankGenerator_house == "Ridivexe" || player.rankGenerator_house == "Maedrebe" || player.rankGenerator_house == "Ceorat"
           || player.rankGenerator_house == "Biarandi")
        {var rankGenerator_language = "french"
        player.rankGenerator_of = "de"}
    
        if(player.rankGenerator_house == "Onusorle" || player.rankGenerator_house == "Tibedied" || player.rankGenerator_house == "Issoinen" || player.rankGenerator_house == "Erlaened" ||
           player.rankGenerator_house == "Atlaeser" || player.rankGenerator_house == "Onorti" || player.rankGenerator_house == "Resoisbe")
        {var rankGenerator_language = "swedish"
        player.rankGenerator_of = "af"}
        
        if(player.rankGenerator_house == "Tibecea" || player.rankGenerator_house == "Tiso" || player.rankGenerator_house == "Rabiarce" || player.rankGenerator_house == "Teususdi" || player.rankGenerator_house == "Diqudi")
        {var rankGenerator_language = "italian"
        player.rankGenerator_of = "di"}
        
        if(galaxyNumber == 4)
        {var rankGenerator_language = "russian"
        player.rankGenerator_of = "of"}
        
      if(galaxyNumber == 5)
        {var rankGenerator_language = "japanese"
        player.rankGenerator_of = "of"}
        
           
        player.rankGenerator_feudal_middle_rank = expandDescription("[feudal_middle_"+[rankGenerator_language]+"_"+[player.rankGenerator_gender]+"_rank]"); 
        player.rankGenerator_feudal_high_rank = expandDescription("[feudal_high_"+[rankGenerator_language]+"_"+[player.rankGenerator_gender]+"_rank]");    
        
        
        if(player.rankGenerator_level)
        {player.rankGenerator_feudal_specific_rank = expandDescription("[feudal_level"+[player.rankGenerator_level]+"_"+[rankGenerator_language]+"_"+[player.rankGenerator_gender]+"_rank]");}
         
        player.rankGenerator_feudal_firstname = expandDescription("[feudal_firstname_"+[rankGenerator_language]+"_"+[player.rankGenerator_gender]+"]");
        
        if(rankGenerator_language == "russian" && player.rankGenerator_gender == "she")
        player.rankGenerator_feudal_lastname = expandDescription("[feudal_lastname_"+[rankGenerator_language]+"]")+"a";
       
        else
        player.rankGenerator_feudal_lastname = expandDescription("[feudal_lastname_"+[rankGenerator_language]+"]");
    }
    
    
    
    
    
    Scripts/feudal-target.js
    this.name = "feudal-target.js";
    this.author = "Ramirez";
    this.copyright = "March 2013";
    this.description = "Ship script for targets of feudal missions and challenges; checks roles, sets IDs, AIs and death actions as appropriate";
    this.version = "1.6";
    
    
    this.zeroEscorts = function()
    { 
    
    
    if(this.ship.escorts.length > 0)
       {   
    	  this.ship.escorts[0].remove();
    	  //log('escort removed')
       }
       
    if(this.ship.escorts.length == 0)
       {this.zETimer.stop()
       //log('timer stopped')
    }
    } 
    
    this.shipSpawned = function ()// set up IDs and AIs for targets
    {
    
    	if(missionVariables.feudal_mission == "NONE_SET")
     		{this.zETimer = new Timer(this,this.zeroEscorts,null,0.2);} 
    
          if(missionVariables.feudal_mission == "EXECUTION_RUNNING" && this.ship.primaryRole == [missionVariables.feudal_mission_role])
    	
    		{	if(this.ship.displayName == this.ship.name)
    			this.ship.displayName = expandDescription("[mission_feudal_mission_level1_title] [mission_feudal_mission_firstname] [mission_feudal_mission_lastname]") // Show the ID of the execution target
    		}
    			//also in future set an AI specific to the EXECUTION mission
    		
    	if(missionVariables.feudal_mission == "RANSOM_RUNNING")
    	
             {	if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-prince")
    			{
    			   {this.zETimer = new Timer(this,this.zeroEscorts,null,0.2);} 
    					
    			   if(this.ship.displayName == this.ship.name)
    				  {this.ship.displayName = expandDescription("[mission_feudal_mission_rank] [mission_feudal_mission_of] [mission_feudal_mission_house]")}
    			   }
                                    
                if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-knight")
                      { this.ship.switchAI("feudal-escortAI.plist") }
                   }
    
    	if(missionVariables.feudal_mission == "RAID_RUNNING")
    	
    	  {  if(this.ship.primaryRole == missionVariables.feudal_mission_role) 
    			{
    			   this.zETimer = new Timer(this,this.zeroEscorts,null,0.2)
                    
    			   if(this.ship.displayName == this.ship.name) 
    						{   this.ship.displayName = expandDescription("[mission_feudal_mission_house] [mission_feudal_mission_commodity] convoy")} // Show the ID of the raid target 			    
                            }
                      if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-knight")
    				  {this.ship.switchAI("feudal-escortAI.plist")}
    	  }
    	
    	 if(missionVariables.feudal_mission == "ESCORT_RUNNING")
    	
    		{	if(this.ship.primaryRole == missionVariables.feudal_mission_role)
    				{
    					{this.zETimer=new Timer(this,this.zeroEscorts,null,0.2);} 
    					
    					if(this.ship.displayName == this.ship.name)
    						{	this.ship.displayName = expandDescription("[mission_feudal_mission_home] [mission_feudal_mission_commodity] convoy")} // Show the ID of the freighter to be escorted			
    				}	
    	
    		
    			if(this.ship.primaryRole == [missionVariables.feudal_mission_home]+"-knight") // home knights to protect escort
    			{     this.ship.switchAI("feudal-escortAI.plist")
                         if(this.ship.displayName == this.ship.name)
    						{	this.ship.displayName = expandDescription("[mission_feudal_mission_home] Knight (friendly)") // Show the ID of the friendly knight	
    						}
                            }
                           		
    			if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-knight") // enemy knights to find and attack escort
    			{     this.ship.switchAI("feudal-raidAI.plist")
                            
                         if(this.ship.displayName == this.ship.name)
    						{	this.ship.displayName = expandDescription("[mission_feudal_mission_house] Knight (enemy)")} // Show the ID of the enemy knight			
                }
    					
    			
    			if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-lord") // enemy lords to attack escort
    			{     this.ship.switchAI("feudal-raidAI.plist")
                      if(this.ship.displayName == this.ship.name)
    						{	this.ship.displayName = expandDescription("[mission_feudal_mission_house] Lord (enemy)")} // Show the ID of the enemy lord		
                }
    				
    		}
             
             if(missionVariables.feudal_challenger == "RUNNING" && this.ship.primaryRole == [missionVariables.feudal_challenger_role])
    	
    		 {	if(this.ship.displayName == this.ship.name)
    			
                {this.ship.awardEquipment("EQ_MISSILE_REMOVAL")
    			this.zETimer=new Timer(this,this.zeroEscorts,null,0.2);
    
                if(missionVariables.feudal_challenger_rank_no == 1)
                   {this.ship.switchAI("feudal-challenger1AI.plist")
                   this.ship.displayName = expandDescription("[mission_feudal_challenger_title] [mission_feudal_challenger_firstname] [mission_feudal_challenger_lastname]")}         
                   else
                   {this.ship.displayName = expandDescription("[mission_feudal_challenger_rank] [mission_feudal_challenger_of] [mission_feudal_challenger_house]")
    			   this.ship.switchAI("feudal-challenger2AI.plist")}
                }     
             }
                    
             if(missionVariables.feudal_tournament == "EVENT3_RUNNING")
             
             {if(this.ship.primaryRole == "feudal-knight" || "feudal-lord" || "feudal-prince")
                 {this.ship.switchAI("feudal-quartetAI.plist")
                 this.ship.fuel = 0	  
                 {this.zETimer = new Timer(this,this.zeroEscorts,null,0.2);}       
                 }
               if(this.ship.primaryRole == "feudal-drone")
                 this.ship.switchAI("pirateAI.plist")
             }
               if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
             {   this.ship.switchAI("feudal-meleeAI.plist")
    		     {this.zETimer=new Timer(this,this.zeroEscorts,null,0.2);}
                 }        
             
             if(missionVariables.feudal_tournament == "EVENT6_RUNNING")
             {  this.ship.switchAI("feudal-challenger2AI.plist")
    			{this.zETimer=new Timer(this,this.zeroEscorts,null,0.2);}
                this.ship.fuel = 100
                this.ship.displayName = expandDescription("[mission_feudal_tournament_opponent_text]")
             }        
    }
    
    this.shipDied = function(whom)
    
    {      
             
                   if(missionVariables.feudal_tournament == "EVENT1_RUNNING") 
                   {if(this.ship.primaryRole == "feudal-shield")
                   {var buoy = system.shipsWithRole("feudal-buoy")[0]
                   this.ship.target = buoy
                   this.ship.target.switchAI("feudal-buoy-checkAI.plist")}
                   }         
             
                   if(missionVariables.feudal_tournament == "EVENT2_RUNNING")
                   {++missionVariables.feudal_tournament_kills
                   player.commsMessage("Stage "+ [missionVariables.feudal_tournament_kills]+" destroyed.")
                
                   {  if (this.ship.primaryRole == "feudal-drone-1")
                            this.ship.spawn("feudal-drone-2", 1)
                   
                      if (this.ship.primaryRole == "feudal-drone-2")
                            this.ship.spawn("feudal-drone-3", 1)
    
                      if (this.ship.primaryRole == "feudal-drone-3")
                            this.ship.spawn("feudal-drone-4", 1)
    
                      if (this.ship.primaryRole == "feudal-drone-4")
                            this.ship.spawn("feudal-drone-5", 1)
                   }
                   }
                   
                   if(missionVariables.feudal_tournament == "EVENT4_RUNNING")
                         if(this.ship.primaryRole == "feudal-shield-pod")
                         this.ship.spawn("feudal-small-shield", 1)   
                   
                   if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
                   {               
                      if(this.ship.AI == "feudal-meleeAI.plist")
                      {--missionVariables.feudal_tournament_ships
                   
                         if(missionVariables.feudal_tournament_ships > 2)
                           player.commsMessage(this.ship.name+" destroyed. "+missionVariables.feudal_tournament_ships+" competitors remaining.")
                   
                         else   
                      
                      {var buoy = system.shipsWithRole("feudal-buoy")[0]
                      this.ship.target = buoy
                      this.ship.target.switchAI("feudal-buoy-logAI.plist")
                      player.commsMessage(this.ship.name+" destroyed. Two competitors remaining.  Please return to the Hunting Lodge")
                      }
                      
                   } 
                   }
                   
                   if(missionVariables.feudal_tournament == "EVENT6_RUNNING")
                   ++missionVariables.feudal_tournament_kills
                  
                   if(missionVariables.feudal_mission == "EXECUTION_RUNNING" && this.ship.primaryRole == [missionVariables.feudal_mission_role])
    			   {  if(whom == player.ship)
    				  	missionVariables.feudal_mission = "EXECUTION_SUCCESS" // set the mission variable to success
    				  	else
    				   	missionVariables.feudal_mission = "EXECUTION_PARTIAL" // have a partial success where the player is awarded fewer points
    			   }
    
    		 if(missionVariables.feudal_mission == "RAID_RUNNING" || missionVariables.feudal_mission == "RAID_SUCCESS")
    		 
    		 {
    		if(this.ship.primaryRole == missionVariables.feudal_mission_role)	// if it's a raid, get the target ship to spawn some of the selected commodity
    		{this.ship.spawn("feudal-cargo", 6)
    		missionVariables.feudal_mission = "RAID_SUCCESS"
    		mission.setInstructionsKey("feudal_mission_raid_return", "feudal-mission.js")}
    		 }
    
    		if(missionVariables.feudal_mission == "RANSOM_RUNNING" && this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-prince")
    	
                      {this.ship.spawn("feudal-escape-pod", 1)}
    		
    	       if(missionVariables.feudal_mission == "ESCORT_RUNNING" && this.ship.primaryRole == missionVariables.feudal_mission_role)	// if it's an escort mission, get the target ship to spawn some of the selected commodity
    		{this.ship.spawn("feudal-cargo", 6)
    		missionVariables.feudal_mission = "ESCORT_FAIL"
    		player.commsMessage("One of the freighters has been destroyed!", 6)}
    		
    	       if(missionVariables.feudal_mission == "ESCORT_RUNNING" && this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-knight")
                    missionVariables.feudal_mission_killcount += 1
                    
                   if(missionVariables.feudal_mission == "ESCORT_RUNNING" && missionVariables.feudal_mission_killcount == 10)
                   {missionVariables.feudal_mission = "ESCORT_SUCCESS"
                   player.commsMessage("The enemy knights have been destroyed.  We can take it from here.")}
                   
                   if(missionVariables.feudal_challenger == "VICTORY")
                   {this.ship.spawn("feudal-escape-pod", 1)
                   missionVariables.feudal_challenger = "FORFEIT"}
                   
                    if(missionVariables.feudal_challenger == "RUNNING")
                   {this.ship.spawn("feudal-escape-pod", 1)
                   missionVariables.feudal_challenger = "VICTORY"}
    		
    		//award player points if they shoot enemy ships at any time during a mission
    		
    	       	if(whom == player.ship)
    		
    			{	if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-knight")
    					{missionVariables.feudal_score += 1}
    
    				if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-lord")
    					missionVariables.feudal_score += 5
    				
    				if(this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-prince")
    					{missionVariables.feudal_score += 20}
    			}
                   }
                    
    
    this.shipBeingAttacked = function()
    
    {  if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
          {if(this.ship.energy > 1000)
          this.ship.energy = 500}
    }
    
    this.shipEnteredStationAegis = function(station)
    
    	{	if(missionVariables.feudal_mission == "ESCORT_RUNNING" && this.ship.primaryRole == missionVariables.feudal_mission_role)
    
    		{	missionVariables.feudal_mission = "ESCORT_SUCCESS"
    			this.ship.commsMessage("Thanks, Commander.  We've made it to the station in one piece.  We can take it from here.", 6) 
    		}
    		  if((missionVariables.feudal_mission == "ESCORT_RUNNING" || missionVariables.feudal_mission == "ESCORT_SUCCESS") && this.ship.primaryRole == [missionVariables.feudal_mission_house]+"-knight")  
    	       {	this.ship.commsMessage("Let's get out of here!", 6) 
    			//log('knight entering aegis')
    			this.ship.switchAI("route1traderAI.plist")
    	       }
    	}
            
    this.shipEnergyIsLow = function()
       {   if(missionVariables.feudal_challenger == "RUNNING" && this.ship.primaryRole == [missionVariables.feudal_challenger_role])
    	{this.ship.spawn("feudal-flare", 1);
          this.ship.commsMessage(expandDescription("[feudal-yield]"))
          this.ship.switchAI("feudal-challengerhomeAI.plist")
          missionVariables.feudal_challenger = "VICTORY"}
          
          if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
             {
                if(this.ship.AI == "feudal-meleeAI.plist")
                {if(Math.random() < 0.25)
                {this.ship.switchAI("feudal-challengerhomeAI.plist")
                --missionVariables.feudal_tournament_ships
                
                if(missionVariables.feudal_tournament_ships > 2)
                      {player.commsMessage(this.ship.name+" surrendered. "+missionVariables.feudal_tournament_ships+" competitors remaining.")
                      this.ship.displayName = this.ship.name+" (Surrendered)"}
                   
                   else   
                      
                      {var buoy = system.shipsWithRole("feudal-buoy")[0]
                      this.ship.target = buoy
                      this.ship.target.switchAI("feudal-buoy-logAI.plist")
                      this.ship.displayName = this.ship.name+" (Surrendered)"
                      player.commsMessage(this.ship.name+" surrended. Two competitors remaining.  Please return to the Hunting Lodge")
                      }
                }
          }}
       }      
    this.shipTargetLost = function()
       {    if(missionVariables.feudal_challenger == "RUNNING")
             this.ship.switchAI("feudal-challengerhomeAI.plist")}
    
    this.checkDistance = function()
    {if(player.ship.position.distanceTo(this.ship) < 5000)
       {this.ship.target = player.ship;
       this.ship.reactToAIMessage("FOUND_PLAYER")}
       }
    
    this.shipWasScooped = function (whom)
       { if(this.ship.primaryRole == "feudal-drone" && whom == player.ship )
    		
             {  if(missionVariables.feudal_tournament == "EVENT3_RUNNING")
                    {++missionVariables.feudal_tournament_scoops
                    player.commsMessage("Target drone collected.  Return to the Hunting Lodge.")}                     
             }         
          if(this.ship.primaryRole == "feudal-small-shield" && whom == player.ship )         
             
             {if(missionVariables.feudal_tournament == "EVENT4_RUNNING")
                    {++missionVariables.feudal_tournament_scoops
                    player.commsMessage("Score: " + [missionVariables.feudal_tournament_scoops] + " out of 10")}                     
                    }         
             }
                    
                
       
    
    Scripts/feudal-tournament.js
    this.name = "feudal-tournament.js";
    this.author = "Ramirez";
    this.copyright = "October 2012";
    this.description = "World script for setting up feudal tournaments";
    this.version = "10.0";
    
    // Event handlers
    
    this.shipDockedWithStation = function()
    
    {	
    	this.missionScreens()
    }
    
    this.missionScreenEnded = function()
    {
    	if(!player.ship.docked) return;
    			
    }
    
    this.guiScreenChanged = function()
    
    {	if(guiScreen == "GUI_SCREEN_MARKET")
    	this.missionScreens()
    }
    
    this.defineTournamentHome = function()
    {missionVariables.feudal_tournament_home = expandDescription("[feudal_house_"+[galaxyNumber]+"]")}
    
    this.checkPlayerShip = function()
    {
    	this.playerSubentities = player.ship.subEntities
    	this.playerSubentitiesString = playerSubentities.toString();
    	if(playerSubentitiesString.indexOf("turret") != -1)
    	missionVariables.feudal_tournament_eligible = "FALSE"
    }
    
    
    // Mission screens
    
    this.missionScreens = function()
    
        {   if(guiScreen == "GUI_SCREEN_MISSION" || !player.ship.docked) return;
    	
    	if(!missionVariables.feudal_tournament_offer && !missionVariables.feudal_tournament)
    	{
    		if(galaxyNumber <= 2 || galaxyNumber == 4 || galaxyNumber == 5)
    			{if(missionVariables.feudal_tournament_jumpcount > 50)
    		
    		
    			{	this.defineTournamentHome()
    				mission.runScreen({title: "Incoming Message", messageKey: "feudal_tournament_announcement", background: "redeagle.png"})
    				missionVariables.feudal_tournament_offer = "TOURNAMENT_OPEN"
    				mission.setInstructionsKey("feudal_tournament_location")
    				missionVariables.feudal_tournament_deadline = clock.days + 30}
    			}
    	}
    	
    	if(missionVariables.feudal_tournament_offer == "TOURNAMENT_OPEN")
    	{
    		if(missionVariables.feudal_tournament_deadline)
    		
    		{	if(clock.days > missionVariables.feudal_tournament_deadline)
    		
    			{	this.defineTournamentGender()
    				this.defineTournamentOpponentHouse()
    				missionVariables.feudal_tournament_opponent_rank_no = Math.floor(Math.random()*2 + 1)
    				this.defineTournamentInputs()
    				player.feudalRankGenerator()
    				this.defineTournamentOutputs()
    				mission.runScreen({title: "Incoming Message", messageKey: "feudal_tournament_winner", background: "redeagle.png"})
    				this.resetTournament()
    				mission.setInstructionsKey(null)
    				missionVariables.feudal_tournament_deadline = null
    			}
    	}
    	}
    	
    	if(player.ship.dockedStation.hasRole("feudal-hunting-lodge") && missionVariables.feudal_tournament_home == system.name)
    		{	
    		if(guiScreen == "GUI_SCREEN_MARKET")		 
    		{
    			if(missionVariables.feudal_tournament_offer == "TOURNAMENT_OPEN")	
    				{
    				this.checkPlayerShip()
    				
    				if(missionVariables.feudal_tournament_eligible == "FALSE")
    				{mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_ineligible"});}
    				
    				if(!missionVariables.feudal_tournament_eligible)
    				{mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_offer", background: "redeagle.png", music: "feudal_music.ogg", choicesKey: "feudal_tournament_choices"}, this.choiceEvaluation)	
    				missionVariables.feudal_tournament_offer = "TOURNAMENT_OFFERED"}
    				
    				}
    			
    			if(missionVariables.feudal_tournament_offer == "EVENT_BRIEFING")
    				{
    				mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_"+[missionVariables.feudal_tournament], choicesKey: "feudal_tournament_event_choices"}, this.choiceEvaluation)
    				mission.setInstructionsKey("feudal_tournament_"+[missionVariables.feudal_tournament]+"_briefing")}		
    		
    			if(missionVariables.feudal_tournament_offer == "EVENT_DECLINED")
    				{		
    				mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_"+[missionVariables.feudal_tournament], choicesKey: "feudal_tournament_event_choices"}, this.choiceEvaluation)
    				missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    				mission.setInstructionsKey("feudal_tournament_"+[missionVariables.feudal_tournament]+"_briefing")}
    		}
    		if(missionVariables.feudal_tournament == "EVENT1_RUNNING")
    		{	
    			
    			if(missionVariables.feudal_tournament_kills >= 8)
    				
    			{
    				mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT1_PASSED"})
    				missionVariables.feudal_tournament = "EVENT2"
    				missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    				missionVariables.feudal_tournament_kills = null
    				this.restoreMissiles()
    			}
    			
    			else
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT1_FAILED"})
    				this.resetTournament()
    				this.restoreMissiles()}
    		}
    			
    		if(missionVariables.feudal_tournament == "EVENT2_RUNNING")
    		{	
    			if(player.ship.equipmentStatus("EQ_FS_BOMB_PLACEHOLDER") == "EQUIPMENT_OK")
    					{	player.ship.removeEquipment("EQ_FS_BOMB_PLACEHOLDER")
    						player.ship.awardEquipment("EQ_ENERGY_BOMB")
    						player.consoleMessage("Energy Bomb re-enabled")}
    
    			if(missionVariables.feudal_tournament_kills >= 4)
    				
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT2_PASSED"})
    				missionVariables.feudal_tournament = "EVENT3"
    				missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    				missionVariables.feudal_tournament_kills = null
    				this.restoreMissiles()
    			}
    			
    			else
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT2_FAILED"})
    				this.resetTournament()
    				this.restoreMissiles()
    			}
    		}
    		
    		
    		if(missionVariables.feudal_tournament == "EVENT3_RUNNING")
    		{
    			if(player.ship.equipmentStatus("EQ_FS_INJECTION_PLACEHOLDER", "EQUIPMENT_OK"))
    			{	player.ship.removeEquipment("EQ_FS_INJECTION_PLACEHOLDER")
    				player.ship.awardEquipment("EQ_FUEL_INJECTION")
    				player.consoleMessage("Fuel Injectors re-enabled")}
    				
    		
    			if(missionVariables.feudal_tournament_scoops >=1)
    			
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT3_PASSED"})
    				missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    				missionVariables.feudal_tournament = "EVENT4"
    				missionVariables.feudal_tournament_scoops = null}
    			
    			else
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT3_FAILED"})
    				this.resetTournament()}
    		}
    		
    		if(missionVariables.feudal_tournament == "EVENT4_RUNNING")
    		{
    			if(missionVariables.feudal_tournament_scoops >=8)
    			
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT4_PASSED"})
    				missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    				missionVariables.feudal_tournament = "EVENT5"
    				missionVariables.feudal_tournament_scoops = null
    				this.restoreMissiles()}
    			
    			else
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT4_FAILED"})
    				this.resetTournament()
    				this.restoreMissiles()}
    		}
    		
    		if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
    		{
    			if(player.ship.equipmentStatus("EQ_FS_BOMB_PLACEHOLDER") == "EQUIPMENT_OK")
    					{	player.ship.removeEquipment("EQ_FS_BOMB_PLACEHOLDER")
    						player.ship.awardEquipment("EQ_ENERGY_BOMB")
    						player.consoleMessage("Energy Bomb re-enabled")}
    						
    						
    			if(missionVariables.feudal_tournament_ships <= 2)
    			
    			{	this.defineTournamentGender()
    				this.defineTournamentInputs()
    				player.feudalRankGenerator()
    				this.defineTournamentOutputs()
    				mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT5_PASSED"})
    				missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    				missionVariables.feudal_tournament = "EVENT6"
    				missionVariables.feudal_tournament_ships = null}
    			
    			else
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT5_FAILED"})
    				this.resetTournament()}	
    		}
    		
    		if(missionVariables.feudal_tournament == "EVENT6_RUNNING")
    		{
    			if(player.ship.equipmentStatus("EQ_FS_BOMB_PLACEHOLDER") == "EQUIPMENT_OK")
    					{	player.ship.removeEquipment("EQ_FS_BOMB_PLACEHOLDER")
    						player.ship.awardEquipment("EQ_ENERGY_BOMB")
    						player.consoleMessage("Energy Bomb re-enabled")}
    			
    			if(missionVariables.feudal_tournament_kills == 1)
    			
    			{	
    				mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT6_PASSED"})
    				missionVariables.feudal_tournament_offer = null
    				missionVariables.feudal_tournament = null
    				missionVariables.feudal_tournament_kills = null
    				missionVariables.feudal_score += 100
    				player.credits += 100000
    				this.resetTournament()
    				this.restoreMissiles()}
    			
    			else
    			{	mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_EVENT6_FAILED"})
    				this.resetTournament()
    				this.restoreMissiles()}	
    		}
    	}	
        }
        
        
    this.removeMissiles = function()
    {this.storeMissileArray = player.ship.missiles;
    player.ship.awardEquipment("EQ_MISSILE_REMOVAL")}
    
    
    this.restoreMissiles = function()
    {player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
    	for(restoreCounter = 0;restoreCounter<this.storeMissileArray.length;restoreCounter++)
            {player.ship.awardEquipment(this.storeMissileArray[restoreCounter].equipmentKey);}
    }
    
    this.choiceEvaluation = function(choice)
    	{
    		if(missionVariables.feudal_tournament_offer == "TOURNAMENT_OFFERED")
    			
    				
    			{	if(choice == "enter_tournament")	
    					
    							{	
    								missionVariables.feudal_tournament = "EVENT1"
    								missionVariables.feudal_tournament_offer = "EVENT_BRIEFING"
    								mission.runScreen({title: "Royal Hunting Lodge", background: "redeagle.png", messageKey: "feudal_tournament_"+[missionVariables.feudal_tournament], choicesKey: "feudal_tournament_event_choices"}, this.choiceEvaluation)
    								mission.setInstructionsKey("feudal_tournament_"+[missionVariables.feudal_tournament]+"_briefing")
    								missionVariables.feudal_tournament_deadline = null
    							}
    					
    				if(choice == "decline_tournament")	
    			
    							{
    								mission.runScreen({title: "Royal Hunting Lodge", background: "redeagle.png", messageKey: "feudal_tournament_declined"})
    								this.resetTournament()
    								return
    							}
    			}
    					
    		if(missionVariables.feudal_tournament_offer == "EVENT_BRIEFING")
    			{
    				if(choice == "defer_event")
    					{mission.runScreen({title: "Royal Hunting Lodge", messageKey: "feudal_tournament_deferred"})
    					missionVariables.feudal_tournament_offer = "EVENT_DECLINED"
    					}
    				
    				if(missionVariables.feudal_tournament == "EVENT1")			
    				{	if(choice == "begin_event")
    					{missionVariables.feudal_tournament = "EVENT1_RUNNING"
    					missionVariables.feudal_tournament_offer = null
    					missionVariables.feudal_tournament_kills = 0
    					this.removeMissiles()
    					player.ship.launch()
    					}		
    				}
    				
    				if(missionVariables.feudal_tournament == "EVENT2")			
    				{	if(choice == "begin_event")
    					{missionVariables.feudal_tournament = "EVENT2_RUNNING"
    					missionVariables.feudal_tournament_offer = null
    					missionVariables.feudal_tournament_kills = 0
    					this.removeMissiles()
    					if(player.ship.equipmentStatus("EQ_ENERGY_BOMB") == "EQUIPMENT_OK")
    					{	player.ship.removeEquipment("EQ_ENERGY_BOMB")
    						player.ship.awardEquipment("EQ_FS_BOMB_PLACEHOLDER")
    						player.consoleMessage("Energy Bomb disabled")}
    					player.ship.launch()
    					}		
    				}
    				
    				if(missionVariables.feudal_tournament == "EVENT3")			
    				{	if(choice == "begin_event")
    					{missionVariables.feudal_tournament = "EVENT3_RUNNING"
    					missionVariables.feudal_tournament_offer = null
    					missionVariables.feudal_tournament_scoops = 0
    					player.ship.launch()
    					}		
    				}
    				
    				if(missionVariables.feudal_tournament == "EVENT4")			
    				{	if(choice == "begin_event")
    					{missionVariables.feudal_tournament = "EVENT4_RUNNING"
    					missionVariables.feudal_tournament_offer = null
    					missionVariables.feudal_tournament_scoops = 0
    					player.ship.launch()
    					}		
    				}
    				
    				if(missionVariables.feudal_tournament == "EVENT5")			
    				{	if(choice == "begin_event")
    					{missionVariables.feudal_tournament = "EVENT5_RUNNING"
    					missionVariables.feudal_tournament_offer = null
    					missionVariables.feudal_tournament_ships = 100
    					if(player.ship.equipmentStatus("EQ_ENERGY_BOMB") == "EQUIPMENT_OK")
    					{	player.ship.removeEquipment("EQ_ENERGY_BOMB")
    						player.ship.awardEquipment("EQ_FS_BOMB_PLACEHOLDER")
    						player.consoleMessage("Energy Bomb disabled")}
    					player.ship.launch()
    					}		
    				}
    				
    				if(missionVariables.feudal_tournament == "EVENT6")			
    				{	if(choice == "begin_event")
    					{missionVariables.feudal_tournament = "EVENT6_RUNNING"
    					missionVariables.feudal_tournament_offer = null
    					missionVariables.feudal_tournament_kills = 0
    					if(player.ship.equipmentStatus("EQ_ENERGY_BOMB") == "EQUIPMENT_OK")
    					{	player.ship.removeEquipment("EQ_ENERGY_BOMB")
    						player.ship.awardEquipment("EQ_FS_BOMB_PLACEHOLDER")
    						player.consoleMessage("Energy Bomb disabled")}
    					this.removeMissiles()
    					player.ship.launch()
    					}		
    				}	
    			}	
    	}				
    // ship appearance on launching	
    this.shipWillLaunchFromStation = function()
    
    {	
    	
    	
    	if(missionVariables.feudal_tournament_offer == "TOURNAMENT_OFFERED")
    	missionVariables.feudal_tournament_offer = "TOURNAMENT_OPEN"
    	
    	
    	
    	if(missionVariables.feudal_tournament == "EVENT1_RUNNING")
    		
    		{system.legacy_addShipsWithinRadius("feudal-shield", 10, "wsm", [0, 122000, 0], 23000)}
    	
    	if(missionVariables.feudal_tournament == "EVENT2_RUNNING")
    		{system.legacy_addShipsWithinRadius("feudal-drone-1", 1, "wsm", [0, 122000, 0], 5000)}
    		
    	if(missionVariables.feudal_tournament == "EVENT3_RUNNING")
    		{
    			if(player.ship.equipmentStatus("EQ_FUEL_INJECTION") == "EQUIPMENT_OK")
    			{	player.ship.removeEquipment("EQ_FUEL_INJECTION")
    				player.ship.awardEquipment("EQ_FS_INJECTION_PLACEHOLDER")
    				player.consoleMessage("Fuel Injectors disabled")}
    		system.legacy_addShipsWithinRadius("feudal-drone", 1, "wsm", [0, 122000, 0], 2000)
    		system.addShips(expandDescription("[feudal_house_"+[galaxyNumber]+"]")+"-knight", 1, player.ship.position, 5000)
    		system.addShips(expandDescription("[feudal_house_"+[galaxyNumber]+"]")+"-prince", 1, player.ship.position, 5000)
    		system.addShips(expandDescription("[feudal_house_"+[galaxyNumber]+"]")+"-lord", 1, player.ship.position, 5000)
    		}
    	
    	
    	if(missionVariables.feudal_tournament == "EVENT4_RUNNING")
    		{
    		system.legacy_addShipsAtPrecisely("feudal-gate-away", 1, "wsu", [0, 0, -2.05])
    		system.legacy_addShipsWithinRadius("feudal-gate-home", 1, "wsm", [0, 122000, 0], 20000)
    		system.legacy_addShipsWithinRadius("new-asteroid", 64, "wsu", [0, 0, -2.01], 25000)
    		system.legacy_addShipsWithinRadius("new-asteroid", 64, "wsu", [0, 0, -2.01], 12000)
    		system.legacy_addShipsWithinRadius("new-asteroid", 32, "wsu", [0, 0, -2.01], 12000)
    		system.legacy_addShipsWithinRadius("feudal-mine", 16, "wsu", [0, 0, -2.01], 12000)
    		system.legacy_addShipsWithinRadius("feudal-mine", 16, "wsu", [0, 0, -2.01], 25000)
    		system.legacy_addShipsWithinRadius("feudal-mine", 16, "wsu", [0, 0, -2.01], 25000)
    		system.legacy_addShipsWithinRadius("new-asteroid", 32, "wsu", [0, 0, -2.01], 12000)
    		system.legacy_addShipsWithinRadius("new-asteroid", 32, "wsu", [0, 0, -2.01], 12000)
    		system.legacy_addShipsWithinRadius("feudal-shield-pod", 10, "wsu", [0, 0, -2.01], 12000)
    		}
    	
    	if(missionVariables.feudal_tournament == "EVENT5_RUNNING")
    	
    	{	
    		system.legacy_addShipsWithinRadius(expandDescription("[feudal_house_"+[galaxyNumber]+"]")+"-knight", 49, "wsm", [0, 122000, 0], 10000)
    		system.legacy_addShipsWithinRadius(expandDescription("[feudal_house_"+[galaxyNumber]+"]")+"-lord", 30, "wsm", [0, 122000, 0], 10000)
    		system.legacy_addShipsWithinRadius(expandDescription("[feudal_house_"+[galaxyNumber]+"]")+"-prince", 20, "wsm", [0, 122000, 0], 10000)
    	}
    	
    	if(missionVariables.feudal_tournament == "EVENT6_RUNNING")
    	
    	{	
    		system.legacy_addShipsWithinRadius([missionVariables.feudal_tournament_opponent_role], 1, "wsm", [0, 122000, 0], 5000)
    	}
    		
    }
    this.shipWillExitWitchspace = function()
    {	
    	
    	if(missionVariables.feudal_tournament_jumpcount != null)
    	++missionVariables.feudal_tournament_jumpcount
    	
    	if(missionVariables.feudal_tournament == "EVENT1_RUNNING" || missionVariables.feudal_tournament == "EVENT2_RUNNING" || missionVariables.feudal_tournament == "EVENT4_RUNNING" || missionVariables.feudal_tournament == "EVENT6_RUNNING")
    	{this.resetTournament()
    	player.commsMessage("Tournament event has been forfeit.")}
    
    	if(missionVariables.feudal_tournament == "EVENT3_RUNNING")
    	{this.resetTournament()
    	player.commsMessage("Tournament event has been forfeit.")
    	if(player.ship.equipmentStatus("EQ_FS_INJECTION_PLACEHOLDER") == "EQUIPMENT_OK")
    		{
    			player.ship.removeEquipment("EQ_FS_INJECTION_PLACEHOLDER")
    			player.ship.awardEquipment("EQ_FUEL_INJECTION")
    			player.consoleMessage("Fuel Injectors re-enabled")}			
    		}
    		
    	if(missionVariables.feudal_tournament == "EVENT5_RUNNING" || missionVariables.feudal_tournament == "EVENT6_RUNNING")
    	{this.resetTournament()
    	player.commsMessage("Tournament event has been forfeit.")
    	if(player.ship.equipmentStatus("EQ_FS_BOMB_PLACEHOLDER") == "EQUIPMENT_OK")
    		{
    			player.ship.removeEquipment("EQ_FS_BOMB_PLACEHOLDER")
    			player.ship.awardEquipment("EQ_ENERGY_BOMB")
    			player.consoleMessage("Energy Bomb re-enabled")}			
    		}
    	
    }
    
    
    this.playerEnteredNewGalaxy = function()
    {	
    	
    	if(missionVariables.feudal_player_rank_no >= 1)
    	this.resetTournament()
    }
    
    this.resetTournament = function()
    
    {
    	missionVariables.feudal_tournament = null
    	missionVariables.feudal_tournament_offer = null
    	mission.setInstructionsKey(null)
    	missionVariables.feudal_tournament_kills = null
    	missionVariables.feudal_tournament_home = null
    	missionVariables.feudal_tournament_scoops = null
    	missionVariables.feudal_tournament_ships = null
    	missionVariables.feudal_tournament_opponent_role = null
    	missionVariables.feudal_tournament_opponent_gender = null
    	missionVariables.feudal_tournament_opponent_house = null		
    	missionVariables.feudal_tournament_opponent_title = null
    	missionVariables.feudal_tournament_opponent_firstname = null
    	missionVariables.feudal_tournament_opponent_lastname = null
    	missionVariables.feudal_tournament_opponent_of = null
    	missionVariables.feudal_tournament_opponent_rank_no = null
    	missionVariables.feudal_tournament_opponent_rank = null
    	missionVariables.feudal_tournament_opponent_text = null
    	missionVariables.feudal_tournament_jumpcount = 0
    	missionVariables.feudal_tournament_deadline = null
    }
    
    this.defineTournamentGender = function() // pick a gender and select basic titles
    {	missionVariables.feudal_tournament_opponent_gender = expandDescription("[feudal_gender]")
    		
    		if(missionVariables.feudal_tournament_opponent_gender == "he")
    		{	
    			if(missionVariables.feudal_tournament_opponent_rank_no == 1)
                            missionVariables.feudal_tournament_opponent_title = "Sir"
                            
    			if(missionVariables.feudal_tournament_opponent_rank_no == 2)
                            missionVariables.feudal_tournament_opponent_title = "Lord"
    		}									       
    		
    		if(missionVariables.feudal_tournament_opponent_gender == "she")	
    			missionVariables.feudal_tournament_opponent_title = "Lady"			
    }
    
    this.defineTournamentOpponentHouse = function()
    {missionVariables.feudal_tournament_opponent_house = expandDescription("[feudal_house_"+[galaxyNumber]+"]")
    if(missionVariables.feudal_tournament_opponent_house == missionVariables.feudal_tournament_home)
    this.defineTournamentOpponentHouse
    }
    
    this.defineTournamentInputs = function()
    {	
    	player.rankGenerator_house = missionVariables.feudal_tournament_opponent_house
    	player.rankGenerator_gender = missionVariables.feudal_tournament_opponent_gender		
    }
    
    this.defineTournamentOutputs = function()
    {	
    	missionVariables.feudal_tournament_opponent_firstname = player.rankGenerator_feudal_firstname
    	missionVariables.feudal_tournament_opponent_lastname = player.rankGenerator_feudal_lastname
    	missionVariables.feudal_tournament_opponent_of = player.rankGenerator_of
    	//log(missionVariables.feudal_tournament_opponent_rank_no)
    	
    	if(missionVariables.feudal_tournament_opponent_rank_no == 1)
    	missionVariables.feudal_tournament_opponent_text = missionVariables.feudal_tournament_opponent_title+" "+missionVariables.feudal_tournament_opponent_firstname+" "+missionVariables.feudal_tournament_opponent_lastname+" of the House of "+missionVariables.feudal_tournament_opponent_house
    	
    	if(missionVariables.feudal_tournament_opponent_rank_no == 2)
    	{missionVariables.feudal_tournament_opponent_rank = [player.rankGenerator_feudal_middle_rank]
    	missionVariables.feudal_tournament_opponent_text = missionVariables.feudal_tournament_opponent_firstname+" "+missionVariables.feudal_tournament_opponent_lastname+", "+missionVariables.feudal_tournament_opponent_rank+" "+missionVariables.feudal_tournament_opponent_of+" "+missionVariables.feudal_tournament_opponent_house+","}
    	
    	if(missionVariables.feudal_tournament_opponent_rank_no == 3)
    	   {missionVariables.feudal_tournament_opponent_rank = [player.rankGenerator_feudal_high_rank]
    	missionVariables.feudal_tournament_opponent_text = missionVariables.feudal_tournament_opponent_firstname+" "+missionVariables.feudal_tournament_opponent_lastname+", "+missionVariables.feudal_tournament_opponent_rank+" "+missionVariables.feudal_tournament_opponent_of+" "+missionVariables.feudal_tournament_opponent_house+","}
    }