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