SegmentDoors00.txt

This is a deck segment unlocking delay file for the human player in the sandbox. I have added my comments in dark red. These comments are based on my own analysis of the code and my experience in working with it. I do not have any special inside information from MuckyFoot about these files, and I may in some instances be wrong.

This file is not used in the sandbox. My guess is that it is not used because there is no way to unlock a segment on just one deck. The evident purpose of the file was to slow down expansion by requiring the player to wait a specified length of turns after opening one segment, before being allowed to open a further segment in that direction. But because the segments unlock on all three decks, the effect of the delay is not very effective. Imagine that you are opening all of the Tech Deck, and you must wait for the required amount of time between opening bulkheads. Well and good, you have done so and the delay appears to have served some purpose. But now you can open both of the other decks completely, without any delay, because the segments have been unlocked on all three decks each time you waited on the lowest deck. The existance of this file suggests to me that if the game had continued development, we might have had a segment unlock function that was deck specific.

;UNLOCKALLSSEGS*****************************************
:unlockallifoneplayer
if
	players = 1
then
	set unlock_all_segs 1
	disable
end

;SEGMENT000*************************************************
:SEGMENT000a
if
	segment00done < 1
	array ownsubdeck 0 > 0
then
	set unlocksegment01 (turn + 2880)
	set unlocksegment15 (turn + 2880)
	set segment00done 1
	disable
end

:SEGMENT000b
if
	segment00done < 1
	array ownmiddeck 0 > 0
then
	set unlocksegment01 (turn + 2880)
	set unlocksegment15 (turn + 2880)
	set segment00done 1
	disable
end

:SEGMENT000c
if
	segment00done < 1
	array ownsubdeck 0 > 0
then
	set unlocksegment01 (turn + 2880)
	set unlocksegment15 (turn + 2880)
	set segment00done 1
	disable
end

;SEGMENT001*************************************************
:SEGMENT001a
if
	segment01done < 1
	array ownsubdeck 1 > 0
then
	set unlocksegment00 (turn + 2880)
	set unlocksegment02 (turn + 2880)
	set segment01done 1
	disable
end

:SEGMENT001b
if
	segment01done < 1
	array ownmiddeck 1 > 0
then
	set unlocksegment00 (turn + 2880)
	set unlocksegment02 (turn + 2880)
	set segment01done 1
	disable
end

:SEGMENT001c
if
	segment01done < 1
	array ownsubdeck 1 > 0
then
	set unlocksegment00 (turn + 2880)
	set unlocksegment02 (turn + 2880)
	set segment01done 1
	disable
end

;SEGMENT002*************************************************
:SEGMENT002a
if
	segment02done < 1
	array ownsubdeck 2 > 0
then
	set unlocksegment01 (turn + 2880)
	set unlocksegment03 (turn + 2880)
	set segment02done 1
	disable
end

:SEGMENT002b
if
	segment02done < 1
	array ownmiddeck 2 > 0
then
	set unlocksegment01 (turn + 2880)
	set unlocksegment03 (turn + 2880)
	set segment02done 1
	disable
end

:SEGMENT002c
if
	segment02done < 1
	array ownsubdeck 2 > 0
then
	set unlocksegment01 (turn + 2880)
	set unlocksegment03 (turn + 2880)
	set segment02done 1
	disable
end

;SEGMENT003*************************************************
:SEGMENT003a
if
	segment03done < 1
	array ownsubdeck 3 > 0
then
	set unlocksegment02 (turn + 2880)
	set unlocksegment04 (turn + 2880)
	set segment03done 1
	disable
end

:SEGMENT003b
if
	segment03done < 1
	array ownmiddeck 3 > 0
then
	set unlocksegment02 (turn + 2880)
	set unlocksegment04 (turn + 2880)
	set segment03done 1
	disable
end

:SEGMENT003c
if
	segment03done < 1
	array ownsubdeck 3 > 0
then
	set unlocksegment02 (turn + 2880)
	set unlocksegment04 (turn + 2880)
	set segment03done 1
	disable
end

;SEGMENT004*************************************************
:SEGMENT004a
if
	segment04done < 1
	array ownsubdeck 4 > 0
then
	set unlocksegment03 (turn + 2880)
	set unlocksegment05 (turn + 2880)
	set segment04done 1
	disable
end

:SEGMENT004b
if
	segment04done < 1
	array ownmiddeck 4 > 0
then
	set unlocksegment03 (turn + 2880)
	set unlocksegment05 (turn + 2880)
	set segment04done 1
	disable
end

:SEGMENT004c
if
	segment04done < 1
	array ownsubdeck 4 > 0
then
	set unlocksegment03 (turn + 2880)
	set unlocksegment05 (turn + 2880)
	set segment04done 1
	disable
end

;SEGMENT005*************************************************
:SEGMENT005a
if
	segment05done < 1
	array ownsubdeck 5 > 0
then
	set unlocksegment04 (turn + 2880)
	set unlocksegment06 (turn + 2880)
	set segment05done 1
	disable
end

:SEGMENT005b
if
	segment05done < 1
	array ownmiddeck 5 > 0
then
	set unlocksegment04 (turn + 2880)
	set unlocksegment06 (turn + 2880)
	set segment05done 1
	disable
end

:SEGMENT005c
if
	segment05done < 1
	array ownsubdeck 5 > 0
then
	set unlocksegment04 (turn + 2880)
	set unlocksegment06 (turn + 2880)
	set segment05done 1
	disable
end

;SEGMENT006*************************************************
:SEGMENT006a
if
	segment06done < 1
	array ownsubdeck 6 > 0
then
	set unlocksegment05 (turn + 2880)
	set unlocksegment07 (turn + 2880)
	set segment06done 1
	disable
end

:SEGMENT006b
if
	segment06done < 1
	array ownmiddeck 6 > 0
then
	set unlocksegment05 (turn + 2880)
	set unlocksegment07 (turn + 2880)
	set segment06done 1
	disable
end

:SEGMENT006c
if
	segment06done < 1
	array ownsubdeck 6 > 0
then
	set unlocksegment05 (turn + 2880)
	set unlocksegment07 (turn + 2880)
	set segment06done 1
	disable
end

;SEGMENT007*************************************************
:SEGMENT007a
if
	segment07done < 1
	array ownsubdeck 7 > 0
then
	set unlocksegment06 (turn + 2880)
	set unlocksegment08 (turn + 2880)
	set segment07done 1
	disable
end

:SEGMENT007b
if
	segment07done < 1
	array ownmiddeck 7 > 0
then
	set unlocksegment06 (turn + 2880)
	set unlocksegment08 (turn + 2880)
	set segment07done 1
	disable
end

:SEGMENT007c
if
	segment07done < 1
	array ownsubdeck 7 > 0
then
	set unlocksegment06 (turn + 2880)
	set unlocksegment08 (turn + 2880)
	set segment07done 1
	disable
end

;SEGMENT008*************************************************
:SEGMENT008a
if
	segment08done < 1
	array ownsubdeck 8 > 0
then
	set unlocksegment07 (turn + 2880)
	set unlocksegment09 (turn + 2880)
	set segment08done 1
	disable
end

:SEGMENT008b
if
	segment08done < 1
	array ownmiddeck 8 > 0
then
	set unlocksegment07 (turn + 2880)
	set unlocksegment09 (turn + 2880)
	set segment08done 1
	disable
end

:SEGMENT008c
if
	segment08done < 1
	array ownsubdeck 8 > 0
then
	set unlocksegment07 (turn + 2880)
	set unlocksegment09 (turn + 2880)
	set segment08done 1
	disable
end

;SEGMENT009*************************************************
:SEGMENT009a
if
	segment09done < 1
	array ownsubdeck 9 > 0
then
	set unlocksegment08 (turn + 2880)
	set unlocksegment10 (turn + 2880)
	set segment09done 1
	disable
end

:SEGMENT009b
if
	segment09done < 1
	array ownmiddeck 9 > 0
then
	set unlocksegment08 (turn + 2880)
	set unlocksegment10 (turn + 2880)
	set segment09done 1
	disable
end

:SEGMENT009c
if
	segment09done < 1
	array ownsubdeck 9 > 0
then
	set unlocksegment08 (turn + 2880)
	set unlocksegment10 (turn + 2880)
	set segment09done 1
	disable
end

;SEGMENT010*************************************************
:SEGMENT010a
if
	segment10done < 1
	array ownsubdeck 10 > 0
then
	set unlocksegment09 (turn + 2880)
	set unlocksegment11 (turn + 2880)
	set segment10done 1
	disable
end

:SEGMENT010b
if
	segment10done < 1
	array ownmiddeck 10 > 0
then
	set unlocksegment09 (turn + 2880)
	set unlocksegment11 (turn + 2880)
	set segment10done 1
	disable
end

:SEGMENT010c
if
	segment10done < 1
	array ownsubdeck 10 > 0
then
	set unlocksegment09 (turn + 2880)
	set unlocksegment11 (turn + 2880)
	set segment10done 1
	disable
end

;SEGMENT011*************************************************
:SEGMENT011a
if
	segment11done < 1
	array ownsubdeck 11 > 0
then
	set unlocksegment10 (turn + 2880)
	set unlocksegment12 (turn + 2880)
	set segment11done 1
	disable
end

:SEGMENT011b
if
	segment11done < 1
	array ownmiddeck 11 > 0
then
	set unlocksegment10 (turn + 2880)
	set unlocksegment12 (turn + 2880)
	set segment11done 1
	disable
end

:SEGMENT011c
if
	segment11done < 1
	array ownsubdeck 11 > 0
then
	set unlocksegment10 (turn + 2880)
	set unlocksegment12 (turn + 2880)
	set segment11done 1
	disable
end

;SEGMENT012*************************************************
:SEGMENT012a
if
	segment12done < 1
	array ownsubdeck 12 > 0
then
	set unlocksegment11 (turn + 2880)
	set unlocksegment13 (turn + 2880)
	set segment12done 1
	disable
end

:SEGMENT012b
if
	segment12done < 1
	array ownmiddeck 12 > 0
then
	set unlocksegment11 (turn + 2880)
	set unlocksegment13 (turn + 2880)
	set segment12done 1
	disable
end

:SEGMENT012c
if
	segment12done < 1
	array ownsubdeck 12 > 0
then
	set unlocksegment11 (turn + 2880)
	set unlocksegment13 (turn + 2880)
	set segment12done 1
	disable
end

;SEGMENT013*************************************************
:SEGMENT013a
if
	segment13done < 1
	array ownsubdeck 13 > 0
then
	set unlocksegment12 (turn + 2880)
	set unlocksegment14 (turn + 2880)
	set segment13done 1
	disable
end

:SEGMENT013b
if
	segment13done < 1
	array ownmiddeck 13 > 0
then
	set unlocksegment12 (turn + 2880)
	set unlocksegment14 (turn + 2880)
	set segment13done 1
	disable
end

:SEGMENT013c
if
	segment13done < 1
	array ownsubdeck 13 > 0
then
	set unlocksegment12 (turn + 2880)
	set unlocksegment14 (turn + 2880)
	set segment13done 1
	disable
end

;SEGMENT014*************************************************
:SEGMENT014a
if
	segment14done < 1
	array ownsubdeck 14 > 0
then
	set unlocksegment13 (turn + 2880)
	set unlocksegment15 (turn + 2880)
	set segment14done 1
	disable
end

:SEGMENT014b
if
	segment14done < 1
	array ownmiddeck 14 > 0
then
	set unlocksegment13 (turn + 2880)
	set unlocksegment15 (turn + 2880)
	set segment14done 1
	disable
end

:SEGMENT014c
if
	segment14done < 1
	array ownsubdeck 14 > 0
then
	set unlocksegment13 (turn + 2880)
	set unlocksegment15 (turn + 2880)
	set segment14done 1
	disable
end

;SEGMENT015*************************************************
:SEGMENT015a
if
	segment15done < 1
	array ownsubdeck 15 > 0
then
	set unlocksegment14 (turn + 2880)
	set unlocksegment00 (turn + 2880)
	set segment15done 1
	disable
end

:SEGMENT015b
if
	segment15done < 1
	array ownmiddeck 15 > 0
then
	set unlocksegment14 (turn + 2880)
	set unlocksegment00 (turn + 2880)
	set segment15done 1
	disable
end

:SEGMENT015c
if
	segment15done < 1
	array ownsubdeck 15 > 0
then
	set unlocksegment14 (turn + 2880)
	set unlocksegment00 (turn + 2880)
	set segment15done 1
	disable
end


;**************************************************************
:UNLOCKSEGMENT00
if
	turn > unlocksegment00
	unlocksegment00 > 0
then
	unlock 0
	disable
end

:UNLOCKSEGMENT01
if
	turn > unlocksegment01
	unlocksegment01 > 0
then
	unlock 1
	disable
end

:UNLOCKSEGMENT02
if
	turn > unlocksegment02
	unlocksegment02 > 0
then
	unlock 2
	disable
end

:UNLOCKSEGMENT03
if
	turn > unlocksegment03
	unlocksegment03 > 0
then
	unlock 3
	disable
end

:UNLOCKSEGMENT04
if
	turn > unlocksegment04
	unlocksegment04 > 0
then
	unlock 4
	disable
end

:UNLOCKSEGMENT05
if
	turn > unlocksegment05
	unlocksegment05 > 0
then
	unlock 5
	disable
end

:UNLOCKSEGMENT06
if
	turn > unlocksegment06
	unlocksegment06 > 0
then
	unlock 6
	disable
end

:UNLOCKSEGMENT07
if
	turn > unlocksegment07
	unlocksegment07 > 0
then
	unlock 7
	disable
end

:UNLOCKSEGMENT08
if
	turn > unlocksegment08
	unlocksegment08 > 0
then
	unlock 8
	disable
end

:UNLOCKSEGMENT09
if
	turn > unlocksegment09
	unlocksegment09 > 0
then
	unlock 9
	disable
end

:UNLOCKSEGMENT10
if
	turn > unlocksegment10
	unlocksegment10 > 0
then
	unlock 10
	disable
end

:UNLOCKSEGMENT11
if
	turn > unlocksegment11
	unlocksegment11 > 0
then
	unlock 11
	disable
end

:UNLOCKSEGMENT12
if
	turn > unlocksegment12
	unlocksegment12 > 0
then
	unlock 12
	disable
end

:UNLOCKSEGMENT13
if
	turn > unlocksegment13
	unlocksegment13 > 0
then
	unlock 13
	disable
end

:UNLOCKSEGMENT14
if
	turn > unlocksegment14
	unlocksegment14 > 0
then
	unlock 14
	disable
end

:UNLOCKSEGMENT15
if
	turn > unlocksegment15
	unlocksegment15 > 0
then
	unlock 15
	disable
end