diff --git a/gamedir/Data-1.13/APBPConstants.ini b/gamedir/Data-1.13/APBPConstants.ini
index e25ad49b3..dd0753923 100644
--- a/gamedir/Data-1.13/APBPConstants.ini
+++ b/gamedir/Data-1.13/APBPConstants.ini
@@ -435,6 +435,26 @@ AP_INVENTORY_ARM = 20
;***********************************************************************
AP_SPOTTER = 20
+;***********************************************************************
+;* The APs for hacking a computer *
+;***********************************************************************
+AP_HACK = 300
+
+;***********************************************************************
+;* The APs for reading a file *
+;***********************************************************************
+AP_READFILE = 50
+
+;***********************************************************************
+;* The APs for drinking from a watertap *
+;***********************************************************************
+AP_WATERTAP = 20
+
+;***********************************************************************
+;* The APs buying soda from a vending machine *
+;***********************************************************************
+AP_SODAMACHINE = 30
+
[BPConstants]
;***********************************************************************
;* Ratio of breath points to 1 energy (default = 100) *
diff --git a/gamedir/Data-1.13/Scripts/Overhead.lua b/gamedir/Data-1.13/Scripts/Overhead.lua
index ef4380e06..44e35d6ba 100644
--- a/gamedir/Data-1.13/Scripts/Overhead.lua
+++ b/gamedir/Data-1.13/Scripts/Overhead.lua
@@ -164,6 +164,45 @@ SectorY =
MAP_ROW_P = 16,
}
+-- text colours
+FontColour =
+{
+ FONT_MCOLOR_DKWHITE = 134,
+ FONT_MCOLOR_LTYELLOW = 144,
+ FONT_MCOLOR_RED = 163,
+ FONT_MCOLOR_DKRED = 164,
+ FONT_MCOLOR_LTGREEN = 184,
+}
+
+-- these numbers aren't used in the code - we only use them in LUA
+Languages =
+{
+ LANGUAGE_ENGLISH = 0,
+ LANGUAGE_GERMAN = 1,
+ LANGUAGE_RUSSIAN = 2,
+ LANGUAGE_DUTCH = 3,
+ LANGUAGE_POLISH = 4,
+ LANGUAGE_FRENCH = 5,
+ LANGUAGE_ITALIAN = 6,
+ LANGUAGE_CHINESE = 7,
+}
+
+-- numbers for addressing which stat should get more experience
+StatTypes =
+{
+ HEALTHAMT = 1,
+ AGILAMT = 2,
+ DEXTAMT = 3,
+ WISDOMAMT = 4,
+ MEDICALAMT = 5,
+ EXPLODEAMT = 6,
+ MECHANAMT = 7,
+ MARKAMT = 8,
+ EXPERAMT = 9,
+ STRAMT = 10,
+ LDRAMT = 11,
+}
+
local iLoop
local aimLoop
@@ -337,4 +376,927 @@ function HandleAtNewGridNo( ProfileId )
end -- End what EPC
end -- End team
-end
\ No newline at end of file
+end
+
+ActionTypes =
+{
+ ACTIONTYPE_INVALID = 0,
+ ACTIONTYPE_HACKING = 1,
+ ACTIONTYPE_READFILE = 2,
+ ACTIONTYPE_WATERTAP = 3,
+}
+
+InfoTypes =
+{
+ INFO_TYPE_NORMAL = 0,
+ INFO_TYPE_VIP = 1,
+}
+
+-- We have an array of 1000 signed integers that a modder can use to set whatever data he wants.
+-- We simply set up some enums here to make it easier for us to remember what is what
+ModSpecificActions =
+{
+ -- |||||||||||||||||||||||||||||||||| computers |||||||||||||||||||||||||||||||||||||
+ -- Orta sublevel 1
+ COMPUTER_ORTA_BASEMENT_LAB1_SERVER = 0,
+ COMPUTER_ORTA_BASEMENT_LAB2_SERVER = 1,
+ COMPUTER_ORTA_BASEMENT_HALLWAY_SERVER = 2,
+ COMPUTER_ORTA_BASEMENT_LAB1_PC = 3,
+ COMPUTER_ORTA_BASEMENT_LAB2_PC = 4,
+ COMPUTER_ORTA_BASEMENT_CONTROL_CONSOLE_1 = 5,
+ COMPUTER_ORTA_BASEMENT_CONTROL_CONSOLE_2 = 6,
+ COMPUTER_ORTA_BASEMENT_ENTRANCE_CONSOLE_1 = 7,
+ COMPUTER_ORTA_BASEMENT_ENTRANCE_CONSOLE_2 = 8,
+
+ -- Orta
+ COMPUTER_ORTA_SERVER_1 = 9,
+ COMPUTER_ORTA_PC_1 = 10,
+
+ -- Balime
+ COMPUTER_BALIME_L12_MUSEUM_CONSOLE_1 = 11,
+ COMPUTER_BALIME_L12_MUSEUM_CONSOLE_2 = 12,
+
+ -- Drassen SAM
+ COMPUTER_DRASSENSAM_PC_1 = 13,
+ COMPUTER_DRASSENSAM_COMMANDCONSOLE = 14,
+
+ -- Chitzena SAM
+ COMPUTER_CHITZENASAM_PC_1 = 15,
+ COMPUTER_CHITZENASAM_PC_2 = 16,
+ COMPUTER_CHITZENASAM_COMMANDCONSOLE = 17,
+
+ -- central SAM
+ COMPUTER_CENTRALSAM_PC_1 = 18,
+ COMPUTER_CENTRALSAM_PC_2 = 19,
+ COMPUTER_CENTRALSAM_PC_3 = 20,
+ COMPUTER_CENTRALSAM_COMMANDCONSOLE = 21,
+
+ -- Meduna SAM
+ COMPUTER_MEDUNASAM_PC_1 = 22,
+ COMPUTER_MEDUNASAM_COMPUTERBANK_1 = 23,
+ COMPUTER_MEDUNASAM_COMMANDCONSOLE = 24,
+
+ -- Meduna palace
+ COMPUTER_MEDUNAPALACE_PC_1 = 25,
+ COMPUTER_MEDUNAPALACE_PC_2 = 26,
+ COMPUTER_MEDUNAPALACE_CONSOLE_1 = 27,
+ COMPUTER_MEDUNAPALACE_SERVER_1 = 28,
+
+ -- Alma storage
+ COMPUTER_ALMASTORAGE_PC_1 = 29,
+
+ -- Alma prison
+ COMPUTER_ALMAPRISON_PC_1 = 30,
+ COMPUTER_ALMAPRISON_PC_2 = 31,
+ COMPUTER_ALMAPRISON_PC_3 = 32,
+
+ -- Alma base
+ COMPUTER_ALMABASE_PC_KROTT = 33,
+ COMPUTER_ALMABASE_PC_BUREAU = 34,
+ COMPUTER_ALMABASE_PC_FILEROOM = 35,
+ COMPUTER_ALMABASE_CONSOLE_1 = 36,
+ COMPUTER_ALMABASE_CONSOLE_2 = 37,
+ COMPUTER_ALMABASE_CONSOLE_3 = 38,
+ COMPUTER_ALMABASE_CONSOLE_4 = 39,
+ COMPUTER_ALMABASE_CONSOLE_5 = 40,
+ COMPUTER_ALMABASE_CONSOLE_6 = 41,
+ -- |||||||||||||||||||||||||||||||||| computers |||||||||||||||||||||||||||||||||||||
+
+ -- |||||||||||||||||||||||||||||||||| books |||||||||||||||||||||||||||||||||||||
+ -- Orta sublevel 1
+ READING_ORTA_BASEMENT_BOOKSHELF_1 = 45,
+ READING_ORTA_BASEMENT_BOOKSHELF_2 = 46,
+ READING_ORTA_BASEMENT_BOOKSHELF_3 = 47,
+
+ -- Orta
+ READING_ORTA_BOOKSHELF_1 = 48,
+
+ -- San Mona
+ READING_SANMONA_KINGPIN_BOOKSHELF_1 = 49,
+
+ -- |||||||||||||||||||||||||||||||||| books |||||||||||||||||||||||||||||||||||||
+}
+
+-- General defines for various states
+ActionState =
+{
+ -- hacking
+ STATE_OK = 0, -- starting state, we can hack this
+ STATE_END = 1, -- computer is shut down and cannot be used
+ STATE_GAVEREWARD_OK = 2, -- computer is still useable, we already got whatever reward there was
+ STATE_GAVEREWARD_END = 3, -- computer is shut down and cannot be used, we already got whatever reward there was
+}
+
+-- handle the result of an interactive action that has a special id set for lua
+-- for more info, see InteractiveActions.xml
+function HandleInteractiveActionResult(sSectorX, sSectorY, bSectorZ, sGridNo, bLevel, ubID, usActionType, sLuaactionid, difficulty, skill )
+
+ if ( usActionType == ActionTypes.ACTIONTYPE_HACKING ) then
+
+ -- if computer is locked, we only get an error message
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_END ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Can't reach host, automated disconnect.")
+
+ return
+ -- we cannot access this anymore, but gained something previously
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_END ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Can't reach host, automated disconnect.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There probably wasn't anything else of interest on there anway.")
+
+ return
+ end
+
+ -- if we successfully hacked the Orta sublevel server that connects to Alma, hacking difficulty in Alma is lowered
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ORTA_BASEMENT_LAB2_SERVER) == ActionState.STATE_GAVEREWARD_OK) or (GetModderLUAFact(ModSpecificActions.COMPUTER_ORTA_BASEMENT_LAB2_SERVER) == ActionState.STATE_GAVEREWARD_END) ) then
+ if ( sSectorX == 13 and sSectorY == SectorY.MAP_ROW_H) then
+ difficulty = difficulty - 20
+ end
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_CENTRALSAM_PC_3) == ActionState.STATE_GAVEREWARD_OK) or (GetModderLUAFact(ModSpecificActions.COMPUTER_CENTRALSAM_PC_3) == ActionState.STATE_GAVEREWARD_END) ) then
+ if ( sSectorX == 4 and sSectorY == SectorY.MAP_ROW_N) then
+ difficulty = difficulty - 20
+ end
+ end
+
+ -- if skill >= difficulty, we succeed
+ successpts = skill - difficulty
+
+ -- if we fail very badly, shut down server
+ if ( successpts < - 30 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_END)
+ else
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+
+ return
+ -- if we just fail, give us a message
+ elseif ( successpts < 0 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Wrong password.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Logging you out.")
+
+ return
+ end
+
+ -- we need to remember this, so we know whether to give a reward later on
+ statebefore = GetModderLUAFact(sLuaactionid)
+
+ -- ORTA sublevel
+ -- info on Ernest's research (rocket rifle)
+ if ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_LAB1_SERVER ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The schematics of the rocket rifles are stored in here:")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Rocket rifle: personal infantry weapon based around 20mm rockets.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Each rifle holds one clip, with each containing 5 missiles.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There are several rocket variants:")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Armour-piercing")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- High-Explosive")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- High-Explosive Armour-piercing.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Cryogenic")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Even against armoured infantry the wounds caused by this weapon can be described as 'overkill'.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The weapon can also be used in an anti-material role with moderate to good success.")
+ end
+ -- this server is connected to Alma, hacking it lowers difficulty there
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_LAB2_SERVER ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You can still access the network.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This server is still connected to the Alma base network.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It will be difficult, but you try to install a backdoor.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Establishing connection to Alma mil-net")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Password: ********")
+
+ -- this is really, REALLY hard to do
+ if ( successpts > 80 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Password accepted.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... cd ~")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... chmod 777 *")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... chmod: You have no permission for this command")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... sudo chmod 777 *")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We successfully infiltrated the server, hacking in Alma base SAM will now be easier.")
+
+ -- if we are extremely good, we can reset some computers if they were locked in Alma
+ if ( successpts > 80 ) then
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_KROTT) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_KROTT, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_KROTT) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_KROTT, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_BUREAU) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_BUREAU, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_BUREAU) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_BUREAU, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_FILEROOM) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_FILEROOM, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_FILEROOM) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_PC_FILEROOM, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_1) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_1, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_1) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_1, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_2) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_2, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_2) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_2, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_3) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_3, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_3) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_3, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_4) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_4, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_4) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_4, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_5) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_5, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_5) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_5, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ if ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_6) == ActionState.STATE_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_6, ActionState.STATE_OK)
+ elseif ( (GetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_6) == ActionState.STATE_GAVEREWARD_END) ) then
+ SetModderLUAFact(ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_6, ActionState.STATE_GAVEREWARD_OK)
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We were also able to reset some locked workstations.")
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_END)
+ else
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "We failed to hack the server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Wrong password.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Logging you out.")
+ end
+ end
+ -- info on weapon tests
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_HALLWAY_SERVER ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Weapon test results are stored on this server.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "In later stages of the project, the weapon was tested on live inmates.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The tests were filmed... the cruel demonstrations are gruesome.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "If these videos were to be published, this might cause serious headache for the companies invovled.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You do not want to see that again.")
+ end
+ -- Ernest's PC
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_LAB1_PC ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You dig through Dr. Poppin's personal research.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It seems an even more advance version of the rocket rifle has been developed.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Several files seem to be missing... you can't find the weapon specifics.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The advanced version never developed further than the prototypes stage.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It is not known where those 2 prototypes are.")
+ end
+ -- money
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_LAB2_PC ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "A researcher is still logged in.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Perhaps you can divert some of the project's funds?")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing Project managing")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Identification: Poppins, E.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Initiating money transfer")
+
+ -- depending on how skilled we are, we get different amounts of money
+ AddTransactionToPlayersBook(1, 0, 1800, successpts * 40)
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've diverted project funds to our accounts!")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You play a bit of solitaire.")
+ end
+ -- hint on Dr. Kairns missing
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_CONTROL_CONSOLE_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "TO: ORTA HEAD OF SECURITY")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "FROM: ROYAL ADVISORY")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The absence of Dr. N. Kairns is simply unacceptable.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "As head of research, he cannot be replaced.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Your predecessor failed in properly securing him. Don't fail on returning him.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "That sounds rather harsh. This Dr. Kairns sounds interesting.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The remaining files seem rather boring.")
+ end
+ -- hint on secret weapons stash
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_CONTROL_CONSOLE_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This base seems to have different levels of clearance.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Some of the storage rooms are hevily fortified.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Explosives likely won't be enough, these doors require a key code.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It is likely the lead scientists or guards might have the key codes.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The files don't say what exactly is stored here though.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You wonder what secrets this base might contain.")
+ end
+ -- info: some of the secret weapons got away
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_ENTRANCE_CONSOLE_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "A log lists recent arrivals and departures to this base.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "For a long time, this base onyl received supplies.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "But recently, quite a few shipments were sent from here to Meduna.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The logs don't say what was shipped, but the destination was the royal guard HQ.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This does not sound encouraging.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It's a UNIX system... I know this!")
+ end
+ -- warning on poison gas trap
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_BASEMENT_ENTRANCE_CONSOLE_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You find a schematic of the bunker.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "In the next room is a small lab with toilet next to it.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Then there's the centrall hallway.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It seems there is some sort of gas trap installed in the hallway.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "On the left and right of it are two huge manufacturing halls.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The main hallway is then flanked by the security offices. They seem to be heaily staffed.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Behind another security door are the main labs, but you have no camera access.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There is nothing else on the console, you have to explore the base yourself.")
+ end
+ -- ORTA: bloodcats are studied here, so the computer has data on them
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_SERVER_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The server contains a manifest of the last months.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "A lot of resources arrive here for such a small observation post.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "In fact, a lot more than you see. You wonder where all of this equipment went.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Something is not right here...")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You see lists upon lists of equipment that has no use in observing giant cats.")
+ end
+ -- ORTA: bloodcats are studied here, so the computer has data on them
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ORTA_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This computer contains a lot of data on bloodcats physiology and behaviour.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It seems there is a huge pack of bloodcats in the east of Alma.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "In fact, the pack is so huge that this might become a security concern.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You find a lot of rare cat pictures, but that's about it. Nothing more to learn from this.")
+ end
+ -- BALIME: the museum security consoles tell us a bit about the museum
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_BALIME_L12_MUSEUM_CONSOLE_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The museum security system hasn't been upgraded for a few years.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "All cameras are in the same network, with one simple on/off switch.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It is likely the switch will be in this room.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The cameras give you a view of the museum, but that's it.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_BALIME_L12_MUSEUM_CONSOLE_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There is a list of all exhibits on the computer.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Most of it are old sculptures and bronze works.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "But the most prized item is definetely the Chalice of Chance .")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Apart from the chalice, the museum doesn't seem to have anything of interest.")
+ end
+ -- Drassen SAM: get info from the pc and use the comman console
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_DRASSENSAM_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "We've compromised an army personnel database!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decrypting files")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decryption complete")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing database")
+
+ -- give us info on troop movement
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+
+ -- if we are really good, more data
+ if ( successpts > 50 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ elseif ( successpts > 20 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We were able to learn of enemy movement thanks to the data!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_DRASSENSAM_COMMANDCONSOLE ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This seems to be the console that controls the SAM.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You have no idea how this works.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You decide to not touch anything, you might break something.")
+ end
+ -- Chitzena SAM: get info from the pc and use the comman console
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CHITZENASAM_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "We've compromised an army personnel database!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decrypting files")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decryption complete")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing database")
+
+ -- give us info on troop movement
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+
+ -- if we are really good, more data
+ if ( successpts > 50 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ elseif ( successpts > 20 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We were able to learn of enemy movement thanks to the data!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CHITZENASAM_PC_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Apparently, this is the computer of the commanding officer.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You are lucky. He forgot to log out when he left.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing Arulcan Army Financial Services")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Identification: Cpt. Gutierrez, A.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Initiating money transfer")
+
+ -- depending on how skilled we are, we get different amounts of money
+ AddTransactionToPlayersBook(1, 0, 1800, successpts * 30)
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've wired quite a bit of the commander's personal funds to our accounts!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The commander probably won't mind.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There is rather large connection of porn in here, but nothing you haven't seen before.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CHITZENASAM_COMMANDCONSOLE ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This seems to be the console that controls the SAM.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You have no idea how this works.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You decide to not touch anything, you might break something.")
+ end
+ -- central SAM: get info from the pc and use the command console
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CENTRALSAM_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "We've compromised an army personnel database!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decrypting files")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decryption complete")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing database")
+
+ -- give us info on troop movement
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+
+ -- if we are really good, more data
+ if ( successpts > 50 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ elseif ( successpts > 20 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We were able to learn of enemy movement thanks to the data!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CENTRALSAM_PC_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There is a plan on the base' security measures here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Apart from the garrison, there should be some extra mortar shells in some storage crates.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It also seems part of the compound contains a minefield!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There seems to be no way to deactivate it remotely.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You should avoid the south of the building.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You keep looking, but there is no detailed plan on the minefield here.")
+ end
+ -- hacking this pc lowers hacking difficulty in other places
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CENTRALSAM_PC_3 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems all of the SAM sites are connected to the Meduna SAM.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Perhaps you can hack it remotely?")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Establishing connection to Meduna air control")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Password: ********")
+
+ -- depending on how good we are, this might work
+ if ( successpts > 50 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Password accepted.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... cd ~")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... rm -rf *")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... rm: You have no permission for this command")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... sudo rm -rf *")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... ...")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We successfully hacked the server, hacking in Meduna SAM will now be easier.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_END)
+ else
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "We failed to hack the server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_CENTRALSAM_COMMANDCONSOLE ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This seems to be the console that controls the SAM.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You have no idea how this works.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You decide to not touch anything, you might break something.")
+ end
+ -- Meduna SAM: get info from the pc and use the command console
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNASAM_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "We've compromised an army personnel database!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decrypting files")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decryption complete")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing database")
+
+ -- give us info on troop movement
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+
+ -- if we are really good, more data
+ if ( successpts > 50 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ elseif ( successpts > 20 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We were able to learn of enemy movement thanks to the data!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNASAM_COMPUTERBANK_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This station keeps track of all aircraft arriving in Meduna airport.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Cargo planes from foreign countries seem to arrive frequently.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems the army is significantly employing foreign mercenaries.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNASAM_COMMANDCONSOLE ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This seems to be the console that controls the SAM.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You have no idea how this works.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You decide to not touch anything, you might break something.")
+ end
+ -- MEDUNA PALACE BUNKER
+ -- entrance desktop contains a list of important people allied to the queen
+ -- if you examine the names very closely, and also did so in Alma, you might learn something interesting here :-) (not yet implemented ingame)
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNAPALACE_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There are logs on who enters and leaves this bunker.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Quite a few dignitaries are listed here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- V. Garcia, businessman")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Cmdr. A. Morris, Tracona military")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- D. Harrows, Harrows Clothing Inc.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- A. Ricci, Ricci Mining and Exploration")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Major E. Tavarez, Cali military")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- D. Van Haussen, businessman")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Col. T. Meyers, US military")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Major J.A. Vargas, PG PMC")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- Dr. E. Poppins, R&D")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Being able to link these people to the regime might become useful.")
+ end
+ -- desktop, control room
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNAPALACE_PC_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "According to protocol, in the event of an emergency, the queen is to be moved to here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The existence of the bunker isn't common knowledge, and heavily fortified.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You see no immediate weakpoints.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "An occupying force will have to crush the entire garrison to take the bunker.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You quickly test your minesweeper skills. It's still top-notch!")
+ end
+ --
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNAPALACE_CONSOLE_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "There is a plan on the bunkers security measures here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The bunker two entries - one from the palace, one from an underground escape tunnel.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "A huge part of the bunker is off-limits to all but the queen's personal staff.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "There seems to be an active minefield in the hallway.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The controls should be around here somewhere.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "That minefield looks very nasty even from here.")
+ end
+ -- placeholder - until we have something more interesting, let's have this be a corrupted server
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_MEDUNAPALACE_SERVER_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing file.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... File corruption detected.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Ending session.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Whatever was on this server, the contents have been deleted. No way to make sense of it.")
+ end
+ -- ALMA storage
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMASTORAGE_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The contents of the storage builings are listed in here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- 1x M14")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- 1x FAMAS")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- several sets of armour")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- ammunition and grenades")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- experimental rocket ammo")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- several containers of fuel")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "- 9x ballistic missile")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Apart from the manifest, the computers contain nothing interesting.")
+ end
+
+ -- ALMA prison
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMAPRISON_PC_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The computer contains personnel files.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The guard units seem to shift every few weeks.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "You are able to deduct several troop movements.")
+
+ -- give us info on troop movement
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+
+ -- if we are really good, more data
+ if ( successpts > 40 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ elseif ( successpts > 10 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ end
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You've already downloaded the files.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMAPRISON_PC_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This prison is used by the army for detention of high-value inmates.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems detentions are also carried out here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You view some of the recordings. They are sickening.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Prisoners were regularly beaten, electrocuted, put on the rack...")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The list goes on and on.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "If these recordings were to be made public, the regime would get a lof of bad PR.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You've seen enough.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMAPRISON_PC_3 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The prison schematics are on this computer.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The barracks and offices are on the left.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The mess hall is in the center.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The inmates are all held in the right section.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It seems the entire inmate block can be flooded with poison gas remotely!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "The control switch is in a hallway leading from the offices to the mess hall.")
+ end
+ -- Alma base
+ -- the computer of Sgt. Krott has data on the secret weapons project
+ -- if you are good, you can retrieve the location of the project lead (a general)
+ -- keep in mind that this computer will be destroyed if the bomb goes off
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_PC_KROTT ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You see files about some top-secret weapons project.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems to be about some kind of new infantry weapon.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "You are able to pinpoint the location of the military project lead!")
+
+ AddInfo( InfoTypes.INFO_TYPE_VIP)
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You've already downloaded the files.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_PC_BUREAU ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You access the personal files of a Gen. Humphey.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "He seems to be the head of the army training program.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "His personal file suggests he is an 'advisor' of the US government.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Leaking this information might cause some diplomatic embarassment.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You browse the internet and find two new memes.")
+ end
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_PC_FILEROOM ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Quite a bit of pay was moved via this desktop.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "You attempt to divert some funds.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing Arulcan Army Financial Services")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Identification: Gen. Humphey, T.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Initiating money transfer")
+
+ -- depending on how skilled we are, we get different amounts of money
+ AddTransactionToPlayersBook(1, 0, 1800, successpts * 60)
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've wired quite a bit of the army's pay to our accounts!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It's not like they will need it much longer.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You search for more ways to wreak havoc, and post some witty comments on a messageboard.")
+ end
+ -- info on town layout
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_1 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You find a detailed of all military installations in Alma.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This base serves as a joint command/training facility.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "In the east there seems to be some sort of storage facility.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The army maintains it's own prison for high-value inmates in the south.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The population houses in the southeast, near the mine.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "If you could hold this base, this would be an excellent tra.")
+ end
+ -- warning that parts of the base blow up if you press the red switch
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_2 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Maintenance logs indicate that this base was recently upgraded.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems some sensitive material was recently delivered.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "A failsafe is rigged to blow them up, with the controls somewhere in this room.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Whatever the army is trying to protect is likely valuable.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "In your opinion, anyone boobytrapping their own base lacks a few screws.")
+ end
+ -- info in foreign mercs (Conrad, Iggy, Mike)
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_3 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This console has files on foreign mercenaries hired by the army.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Conrad Gillit, training supervisor")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Igmus Palkov, heavy weapons")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Mike [REDACTED], strike team CO")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Perhaps we can track down these mercenaries and get them to work for us.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Apart from Conrad, Iggy and Mike, no other foreign mercenaries stand out.")
+ end
+ -- info on suspected rebels
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_4 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You find old intelligence reports. This is intel on key rebel personnel.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Cordona, M. - Kill on sight")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Dasouza, C. - Kill on sight")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Marquez, S. - Neutralised")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Vargas, J. - [REDACTED]")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Valenciano, C. - Neutralised")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Dominguez, R. - Neutralised")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Rivas, M. - Presumed exile")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Serrano, A. - Neutralised")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Guzzo, D. - Kill on sight")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Portela, N. - Neutralised")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Casilla, A. - Neutralised")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Smythe, I. - Kill on sight")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "It seems the army has already eliminated most of the rebels. Only a handful remain.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The list of rebel losses makes for a grim read.")
+ end
+ -- info on enemy troop movement
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_5 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "We've compromised an army personnel database!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decrypting files")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Decryption complete")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Accessing database")
+
+ -- give us info on troop movement
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+
+ -- if we are really good, more data
+ if ( successpts > 50 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ elseif ( successpts > 20 ) then
+ AddInfo( InfoTypes.INFO_TYPE_NORMAL)
+ end
+
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We were able to learn of enemy movement thanks to the data!")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Unauthorised access detected")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Forcing disconnect from server")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "... Please contact your system administrator for guidance")
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "... Automated server disconnect")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_END)
+ end
+ -- files on rebellious population (Dynamo etc.)
+ elseif ( sLuaactionid == ModSpecificActions.COMPUTER_ALMABASE_CONSOLE_6 ) then
+ if ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Intelligence reports lists possible malcontents in Alma.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "While most of the populationis loyal to the queen, severe friction with the Duncan family remains.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "M. Duncan is the head of the Alma mine and as such irreplacable in the mid-term.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "His brother, G. Duncan, serves a term in Tixa for life for civil commotion and instigation.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Steps have been taken to replace Mr. Duncan as head miner for greater stability.")
+
+ SetModderLUAFact(sLuaactionid, ActionState.STATE_GAVEREWARD_OK)
+ elseif ( GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "No other reports draw your eye.")
+ end
+ end
+
+ -- We can gain experience/wisdom by hacking successfully.
+ -- give us the reward if the computer was pristine and we've now been given the
+ if ( ( statebefore == ActionState.STATE_OK ) and (GetModderLUAFact(sLuaactionid) == ActionState.STATE_GAVEREWARD_OK) ) then
+ rewardpts = difficulty / 6
+
+ -- award experience
+ GiveExp(ubID, StatTypes.EXPERAMT, rewardpts)
+ GiveExp(ubID, StatTypes.WISDOMAMT, rewardpts)
+ end
+
+ elseif ( usActionType == ActionTypes.ACTIONTYPE_READFILE ) then
+
+ -- if skill >= difficulty, we succeed
+ successpts = skill - difficulty
+
+ -- if we fail to understand this, tell us so
+ if ( successpts < 0 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_RED, "You can't make sense of any of this.")
+
+ return
+ end
+
+ -- ORTA SUBLEVEL
+ if ( sLuaactionid == ModSpecificActions.READING_ORTA_BASEMENT_BOOKSHELF_1 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "This bookshelf contains many textbooks on chemistry, applied physics and mechanics.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You read a bit, but quickly become bored.")
+
+ elseif ( sLuaactionid == ModSpecificActions.READING_ORTA_BASEMENT_BOOKSHELF_2 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems there was some research done on miniaturizing rockets.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "A rocket rifle would be small enough to be wielded by an ordinary infantryman.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Much effort was done to improve the accuracy of these rockets.")
+
+ elseif ( sLuaactionid == ModSpecificActions.READING_ORTA_BASEMENT_BOOKSHELF_3 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Quite a few books are about biometric encryption.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Whatever was researched here, someone wanted to make sure no one without clearance could use it.")
+
+ -- ORTA
+ elseif ( sLuaactionid == ModSpecificActions.READING_ORTA_BOOKSHELF_1 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The books contain extensive knowledge on giant predatory cats.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Dust has settled on the books. There aren't used much, it seems.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "That is odd. What else would you study here if not bloodcats?")
+
+ -- SAN Mona
+ -- kingpin
+ elseif ( sLuaactionid == ModSpecificActions.READING_SANMONA_KINGPIN_BOOKSHELF_1 ) then
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Kingpin seems to log quite a few business transactions in here.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "It seems he controls almost all of San Mona.")
+ SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "But none of the records explicitly state something criminal is going on.")
+ end
+ end
+end
+
diff --git a/gamedir/Data-1.13/TableData/Backgrounds.xml b/gamedir/Data-1.13/TableData/Backgrounds.xml
index 999db9148..d26c6ee70 100644
--- a/gamedir/Data-1.13/TableData/Backgrounds.xml
+++ b/gamedir/Data-1.13/TableData/Backgrounds.xml
@@ -92,6 +92,7 @@
0
0
0
+ 0
0
@@ -1173,24 +1174,16 @@
45
- Academic/Bomber
- Academic/Bomber
- Most of your knowledge comes from the books and secondhand reports
- and it didn't prepare you for a grim reality of a war zone as well as you thought.
- -3
- 6
- 5
+ Harvard graduate
+ Harvard graduate
+ University taught you many things, but combat isn't one of them.
+ -5
10
- 10
- -5
- -5
- 10
- 30
+ 20
1
- -3
-10
- -5
- -5
50
+ 60
1
1
@@ -2764,14 +2757,13 @@
Handyman
Handyman
Got something that needs fixing? Here's your man.
- 5
- 5
3
10
-5
-5
3
10
+ 50
1
1
@@ -3302,13 +3294,12 @@
Technical Wizard
Tech Whiz
No matter if it's a thirty years old junk or latest electronic
gadget, tech whiz can rewire, reassemble and reconfigure it with eyes closed.
- 8
- 8
-10
-5
-5
25
- 1
+ 1
+ 80
1
1
@@ -3607,11 +3598,11 @@
Circus Artist
Circus Artist
Let's hope you are as good evading bullets as you
are evading knifes while tied to a board.
- 10
- 8
- 4
- 3
- 10
+ 8
+ 10
+ 10
+ 20
+ 10
2
1
1
@@ -3988,16 +3979,16 @@
Metaviran Native
Metavira
The indigenous people of Metavira have adjusted to the hostile
jungle there. After the liberation, some joined the foreigners, and sought their luck elsewhere.
- -3
- 3
- 3
+ 5
+ -5
+ 5
-10
7
5
20
5
20
- 60
+ 70
1
1
@@ -4389,6 +4380,7 @@
20
-20
10
+ 20
1
1
1
@@ -4951,17 +4943,11 @@
Surveillance Expert
Surveillance Expert
A expert in both legal and illegal observation methods.
Curiously, his resume never states where he learned all this.
- 1
- 1
- 3
- 1
- 1
- 10
- 3
- 2
+ 15
+ 2
2
- 10
20
+ 30
1
1
@@ -5058,16 +5044,15 @@
Graduate/Bomber
Graduate/Bomber
Fresh outta school, with diploma still warm in a hand, it's time
to finally make yourself a living.
- 3
- 6
10
5
-5
30
1
- -5
+ -10
50
1
+ 10
1
1
diff --git a/gamedir/Data-1.13/TableData/Items/Food.xml b/gamedir/Data-1.13/TableData/Items/Food.xml
index 2cc6738ec..7a4fd12ef 100644
--- a/gamedir/Data-1.13/TableData/Items/Food.xml
+++ b/gamedir/Data-1.13/TableData/Items/Food.xml
@@ -280,4 +280,11 @@
1
0
+
+ 40
+ Soda
+ 0
+ 600
+ 0
+
diff --git a/gamedir/Data-1.13/TableData/Items/Items.xml b/gamedir/Data-1.13/TableData/Items/Items.xml
index 3224e3b31..0ecd54f82 100644
--- a/gamedir/Data-1.13/TableData/Items/Items.xml
+++ b/gamedir/Data-1.13/TableData/Items/Items.xml
@@ -32241,6 +32241,7 @@
1
1
100.0
+ 50
@@ -52158,4 +52159,30 @@
+ -
+ 1740
+ Soda
+ Soda
+ For a mix of industrial sugar and chemicals you don't really want to know, this sure is refreshing.
+ Soda
+ Not for sale through BR.
+ 268435456
+ 1
+ 1
+ 2
+ 27
+ 3
+ 1
+ 18
+ 3
+ 1
+ 1
+ 100.0
+ 40
+ 100
+ 134217728
+
+
+
+
\ No newline at end of file
diff --git a/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml b/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml
new file mode 100644
index 000000000..ddb21118d
--- /dev/null
+++ b/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml
@@ -0,0 +1,1033 @@
+
+
+
+
+
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 1
+ 40
+
+
+
+
+ m-furn3.sti
+ 0
+ 1
+ 2
+ 3
+ 1
+ 40
+
+
+ m-furn4.sti
+ 4
+ 5
+ 1
+ 40
+
+
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 1
+ 40
+
+
+ g-furn1.sti
+ 12
+ 13
+ 1
+ 40
+
+
+
+
+ control.sti
+ 2
+ 3
+ 1
+ 40
+
+
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 14445
+ 14285
+ 0
+ 1
+ 40
+ 0
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 13325
+ 13165
+ 0
+ 1
+ 100
+ 1
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 12696
+ 12856
+ 0
+ 1
+ 60
+ 2
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 13967
+ 13968
+ 0
+ 1
+ 40
+ 3
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 12847
+ 12848
+ 0
+ 1
+ 10
+ 4
+
+
+
+
+ K4
+ 1
+ g-furn1.sti
+ 12
+ 13
+ 14304
+ 14144
+ 0
+ 1
+ 10
+ 5
+
+
+
+
+ K4
+ 1
+ g-furn1.sti
+ 12
+ 13
+ 13984
+ 13824
+ 0
+ 1
+ 10
+ 6
+
+
+
+
+ K4
+ 1
+ g-furn1.sti
+ 12
+ 13
+ 14653
+ 14493
+ 1
+ 10
+ 7
+
+
+
+
+ K4
+ 1
+ g-furn1.sti
+ 12
+ 13
+ 14333
+ 14173
+ 0
+ 1
+ 10
+ 8
+
+
+
+
+
+
+ K4
+ 0
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 14783
+ 14623
+ 0
+ 1
+ 20
+ 9
+
+
+
+
+ K4
+ 0
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 13510
+ 13511
+ 0
+ 1
+ 20
+ 10
+
+
+
+
+
+
+ L12
+ 0
+ g-furn1.sti
+ 12
+ 13
+ 14424
+ 14264
+ 1
+ 10
+ 11
+
+
+
+
+ L12
+ 0
+ g-furn1.sti
+ 12
+ 13
+ 14104
+ 13944
+ 0
+ 1
+ 10
+ 12
+
+
+
+
+
+
+ D15
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 11937
+ 11777
+ 0
+ 1
+ 20
+ 13
+
+
+
+
+ D15
+ 0
+ control.sti
+ 2
+ 3
+ 11295
+ 11135
+ 0
+ 1
+ 10
+ 14
+
+
+
+
+
+
+ D2
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 10834
+ 10674
+ 0
+ 1
+ 30
+ 15
+
+
+
+
+ D2
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 9880
+ 9720
+ 0
+ 1
+ 10
+ 16
+
+
+
+
+ D2
+ 0
+ control.sti
+ 2
+ 3
+ 10195
+ 10196
+ 0
+ 1
+ 10
+ 17
+
+
+
+
+
+
+ I8
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 16395
+ 16235
+ 0
+ 1
+ 30
+ 18
+
+
+
+
+ I8
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 14635
+ 14475
+ 0
+ 1
+ 20
+ 19
+
+
+
+
+ I8
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 14167
+ 14168
+ 0
+ 1
+ 10
+ 20
+
+
+
+
+ I8
+ 0
+ control.sti
+ 2
+ 3
+ 16080
+ 15920
+ 0
+ 1
+ 10
+ 21
+
+
+
+
+
+
+ N4
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 12390
+ 12230
+ 0
+ 1
+ 30
+ 22
+
+
+
+
+ N4
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 12870
+ 12710
+ 0
+ 1
+ 30
+ 23
+
+
+
+
+ N4
+ 0
+ control.sti
+ 2
+ 3
+ 11913
+ 11912
+ 0
+ 1
+ 10
+ 24
+
+
+
+
+
+
+ P3
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 10640
+ 10641
+ 0
+ 1
+ 40
+ 25
+
+
+
+
+ P3
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 11251
+ 11252
+ 0
+ 1
+ 30
+ 26
+
+
+
+
+ P3
+ 1
+ o_furn.sti
+ 0
+ 1
+ 2
+ 3
+ 16
+ 11246
+ 11406
+ 0
+ 1
+ 30
+ 27
+
+
+
+
+ P3
+ 1
+ g-furn1.sti
+ 12
+ 13
+ 11410
+ 11570
+ 0
+ 1
+ 60
+ 28
+
+
+
+
+
+
+ H14
+ 0
+ m-furn3.sti
+ 0
+ 1
+ 2
+ 3
+ 19915
+ 19916
+ 0
+ 1
+ 10
+ 29
+
+
+
+
+
+
+ I13
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 11098
+ 10938
+ 0
+ 1
+ 30
+ 30
+
+
+
+
+ I13
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 10458
+ 10298
+ 0
+ 1
+ 40
+ 31
+
+
+
+
+ I13
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 10466
+ 10306
+ 0
+ 1
+ 20
+ 32
+
+
+
+
+
+
+ H13
+ 0
+ m-furn3.sti
+ 0
+ 1
+ 2
+ 3
+ 10473
+ 10474
+ 0
+ 1
+ 20
+ 33
+
+
+
+
+ H13
+ 0
+ m-furn3.sti
+ 0
+ 1
+ 2
+ 3
+ 11592
+ 11752
+ 0
+ 1
+ 40
+ 34
+
+
+
+
+ H13
+ 0
+ m-furn4.sti
+ 4
+ 5
+ 10812
+ 10813
+ 0
+ 1
+ 30
+ 35
+
+
+
+
+ H13
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 10959
+ 10799
+ 0
+ 1
+ 20
+ 36
+
+
+
+
+ H13
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 10319
+ 10159
+ 0
+ 1
+ 20
+ 37
+
+
+
+
+ H13
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 9999
+ 9839
+ 0
+ 1
+ 15
+ 38
+
+
+
+
+ H13
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 9362
+ 9363
+ 0
+ 1
+ 15
+ 39
+
+
+
+
+ H13
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 9364
+ 9365
+ 0
+ 1
+ 30
+ 40
+
+
+
+
+ H13
+ 0
+ m-furn2.sti
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 9368
+ 9369
+ 0
+ 1
+ 15
+ 41
+
+
+
+
+
+
+
+
+
+ m-furn3.sti
+ 7
+ 9
+ 2
+
+
+ m-furn4.sti
+ 7
+ 9
+ 2
+
+
+ jailstuf.sti
+ 21
+ 22
+ 2
+
+
+ jailstf3.sti
+ 21
+ 22
+ 2
+
+
+ o_furn.sti
+ 7
+ 9
+ 12
+ 13
+ 2
+
+
+
+ basefrn1.sti
+ 19
+ 20
+ 2
+
+
+ furn_7.sti
+ 11
+ 2
+
+
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 12
+ 13
+ 11416
+ 11417
+ 0
+ 2
+ 80
+ 45
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 12
+ 13
+ 11418
+ 11419
+ 0
+ 2
+ 80
+ 46
+
+
+
+
+ K4
+ 1
+ o_furn.sti
+ 12
+ 13
+ 13048
+ 12888
+ 0
+ 2
+ 80
+ 47
+
+
+
+
+
+
+ K4
+ 0
+ o_furn.sti
+ 12
+ 13
+ 13512
+ 13513
+ 0
+ 2
+ 40
+ 48
+
+
+
+
+
+
+ D5
+ 0
+ furn_7.sti
+ 11
+ 12609
+ 12449
+ 12289
+ 12129
+ 0
+ 2
+ 60
+ 49
+
+
+
+
+
+
+
+
+ m-furn1.sti
+ 22
+ 23
+ 3
+
+
+ furn_5.sti
+ 3
+ 7
+ 3
+
+
+ furn_6.sti
+ 6
+ 7
+ 12
+ 13
+ 3
+
+
+ furn_9.sti
+ 8
+ 9
+ 10
+ 11
+ 3
+
+
+ jailstuf.sti
+ 16
+ 17
+ 3
+
+
+ jailstf3.sti
+ 16
+ 17
+ 3
+
+
+
+
+
+ lawless.sti
+ 0
+ 4
+
+
+
+
+ m-furn1.sti
+ 1
+ 2
+ 3
+ 6
+
+
+
+ jailstf2.sti
+ 17
+ 6
+
+
+
+ m-cafe.sti
+ 4
+ 6
+
+
+
+
+ furn_9.sti
+ 12
+ 13
+ 6
+
+
+
+
+ furn_9.sti
+ 0
+ 1
+ 6
+
+
+
+
diff --git a/gamedir/Data/CURSORS/HACK.sti b/gamedir/Data/CURSORS/HACK.sti
new file mode 100644
index 000000000..f4e3b8c78
Binary files /dev/null and b/gamedir/Data/CURSORS/HACK.sti differ
diff --git a/gamedir/Data/CURSORS/HACK_R.sti b/gamedir/Data/CURSORS/HACK_R.sti
new file mode 100644
index 000000000..25c7f59f2
Binary files /dev/null and b/gamedir/Data/CURSORS/HACK_R.sti differ
diff --git a/gamedir/Data/CURSORS/readfile.sti b/gamedir/Data/CURSORS/readfile.sti
new file mode 100644
index 000000000..a8817cda3
Binary files /dev/null and b/gamedir/Data/CURSORS/readfile.sti differ
diff --git a/gamedir/Data/CURSORS/readfile_r.sti b/gamedir/Data/CURSORS/readfile_r.sti
new file mode 100644
index 000000000..a8817cda3
Binary files /dev/null and b/gamedir/Data/CURSORS/readfile_r.sti differ
diff --git a/gamedir/Data/CURSORS/sodamachine.sti b/gamedir/Data/CURSORS/sodamachine.sti
new file mode 100644
index 000000000..2fd657f3b
Binary files /dev/null and b/gamedir/Data/CURSORS/sodamachine.sti differ
diff --git a/gamedir/Data/CURSORS/sodamachine_r.sti b/gamedir/Data/CURSORS/sodamachine_r.sti
new file mode 100644
index 000000000..58c609b55
Binary files /dev/null and b/gamedir/Data/CURSORS/sodamachine_r.sti differ
diff --git a/gamedir/Data/CURSORS/watertap.sti b/gamedir/Data/CURSORS/watertap.sti
new file mode 100644
index 000000000..ef2e9ebea
Binary files /dev/null and b/gamedir/Data/CURSORS/watertap.sti differ
diff --git a/gamedir/Data/CURSORS/watertap_r.sti b/gamedir/Data/CURSORS/watertap_r.sti
new file mode 100644
index 000000000..58c609b55
Binary files /dev/null and b/gamedir/Data/CURSORS/watertap_r.sti differ
diff --git a/gamedir/Data/Sounds/book_pageturn1.wav b/gamedir/Data/Sounds/book_pageturn1.wav
new file mode 100644
index 000000000..797e44544
Binary files /dev/null and b/gamedir/Data/Sounds/book_pageturn1.wav differ
diff --git a/gamedir/Data/Sounds/keyboard_typing.wav b/gamedir/Data/Sounds/keyboard_typing.wav
new file mode 100644
index 000000000..f607e4636
Binary files /dev/null and b/gamedir/Data/Sounds/keyboard_typing.wav differ
diff --git a/gamedir/Data/Sounds/soda_machine.wav b/gamedir/Data/Sounds/soda_machine.wav
new file mode 100644
index 000000000..360305197
Binary files /dev/null and b/gamedir/Data/Sounds/soda_machine.wav differ
diff --git a/gamedir/Data/Sounds/watertap.wav b/gamedir/Data/Sounds/watertap.wav
new file mode 100644
index 000000000..947f39fa8
Binary files /dev/null and b/gamedir/Data/Sounds/watertap.wav differ