mirror of
https://github.com/1dot13/gamedir.git
synced 2026-07-22 13:40:25 +02:00
For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23144&goto=363478&#msg_363478 git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@2597 4f8fa57e-7814-0410-bad4-adc449f26b7c
3123 lines
157 KiB
Lua
3123 lines
157 KiB
Lua
local NPC_TALK_RADIUS = 4
|
|
local sDesiredMercDist
|
|
local NO_PROFILE = 200
|
|
|
|
Facts =
|
|
{
|
|
FACT_SKYRIDER_CLOSE_TO_CHOPPER = 43,
|
|
FACT_MARIA_ESCORTED_AT_LEATHER_SHOP = 117,
|
|
FACT_JOEY_NEAR_MARTHA = 110,
|
|
FACT_JOHN_ALIVE = 190,
|
|
FACT_MARY_OR_JOHN_ARRIVED = 192,
|
|
FACT_CHALICE_STOLEN = 184,
|
|
FACT_MARY_ALIVE = 187,
|
|
FACT_FIRST_ROBOT_DESTROYED = 203,
|
|
FACT_ROBOT_READY_SECOND_TIME = 205,
|
|
FACT_SECOND_ROBOT_DESTROYED = 206,
|
|
FACT_ESTONI_REFUELLING_POSSIBLE = 277,
|
|
FACT_KINGPIN_KNOWS_MONEY_GONE = 103,
|
|
FACT_PLAYER_REPAID_KINGPIN = 104,
|
|
FACT_KINGPIN_NOT_IN_OFFICE = 256,
|
|
FACT_PLAYER_KNOWS_ABOUT_BLOODCAT_LAIR = 335,
|
|
}
|
|
|
|
Attitude =
|
|
{
|
|
DEFENSIVE = 0,
|
|
BRAVESOLO = 1,
|
|
BRAVEAID = 2,
|
|
CUNNINGSOLO = 3,
|
|
CUNNINGAID = 4,
|
|
AGGRESSIVE = 5,
|
|
MAXATTITUDES = 6,
|
|
ATTACKSLAYONLY = 7,
|
|
}
|
|
|
|
Quests =
|
|
{
|
|
-- Quests ID -- BinaryData\QUESTS.EDT Record
|
|
QUEST_DELIVER_LETTER = 0, -- Start quest 0, End quest 1 - Deliver Letter
|
|
QUEST_FOOD_ROUTE = 1, -- Start quest 2, End quest 3 - Food Route
|
|
QUEST_KILL_TERRORISTS = 2, -- Start quest 4, End quest 5 - Terrorists
|
|
QUEST_KINGPIN_IDOL = 3, -- Start quest 6, End quest 7 - Kingpin Chalice
|
|
QUEST_KINGPIN_MONEY = 4, -- Start quest 8, End quest 9 - Kingpin Money
|
|
QUEST_RUNAWAY_JOEY = 5, -- Start quest 10, End quest 11 - Runaway Joey
|
|
QUEST_RESCUE_MARIA = 6, -- Start quest 12, End quest 13 - Rescue Maria
|
|
QUEST_CHITZENA_IDOL = 7, -- Start quest 14, End quest 15 - Chitzena Chalice
|
|
QUEST_HELD_IN_ALMA = 8, -- Start quest 16, End quest 17 - Held in Alma
|
|
QUEST_INTERROGATION = 9, -- Start quest 18, End quest 19 - Interogation
|
|
QUEST_ARMY_FARM = 10, -- Start quest 20, End quest 21 - Hillbilly Problem
|
|
QUEST_FIND_SCIENTIST = 11, -- Start quest 22, End quest 23 - Find Scientist
|
|
QUEST_DELIVER_VIDEO_CAMERA = 12, -- Start quest 24, End quest 25 - Deliver Video Camera
|
|
QUEST_BLOODCATS = 13, -- Start quest 26, End quest 27 - Blood Cats
|
|
QUEST_FIND_HERMIT = 14, -- Start quest 28, End quest 29 - Find Hermit
|
|
QUEST_CREATURES = 15, -- Start quest 30, End quest 31 - Creatures
|
|
QUEST_CHOPPER_PILOT = 16, -- Start quest 32, End quest 33 - Find Chopper Pilot
|
|
QUEST_ESCORT_SKYRIDER = 17, -- Start quest 34, End quest 35 - Escort SkyRider
|
|
QUEST_FREE_DYNAMO = 18, -- Start quest 36, End quest 37 - Free Dynamo
|
|
QUEST_ESCORT_TOURISTS = 19, -- Start quest 38, End quest 39 - Escort Tourists
|
|
QUEST_FREE_CHILDREN = 20, -- Start quest 40, End quest 41 - Doreen
|
|
QUEST_LEATHER_SHOP_DREAM = 21, -- Start quest 42, End quest 43 - Leather Shop Dream
|
|
QUEST_ESCORT_SHANK = 22, -- Start quest 44, End quest 45 - Escort Shank
|
|
QUEST_23 = 23, -- Start quest 46, End quest 47 - No 23 Yet
|
|
QUEST_24 = 24, -- Start quest 48, End quest 49 - No 24 Yet
|
|
QUEST_KILL_DEIDRANNA = 25, -- Start quest 50, End quest 51 - Kill Deidranna
|
|
|
|
-- max Quests 254
|
|
}
|
|
|
|
Profil =
|
|
{
|
|
BARRY = 0,
|
|
BLOOD = 1,
|
|
LYNX = 2,
|
|
GRIZZLY = 3,
|
|
VICKI = 4,
|
|
TREVOR = 5,
|
|
GRUNTY = 6,
|
|
IVAN = 7,
|
|
STEROID = 8,
|
|
IGOR = 9,
|
|
SHADOW = 10,
|
|
RED = 11,
|
|
REAPER = 12,
|
|
FIDEL = 13,
|
|
FOX = 14,
|
|
SIDNEY = 15,
|
|
GUS = 16,
|
|
BUNS = 17,
|
|
ICE = 18,
|
|
SPIDER = 19,
|
|
CLIFF = 20,
|
|
BULL = 21,
|
|
HITMAN = 22,
|
|
BUZZ = 23,
|
|
RAIDER = 24,
|
|
RAVEN = 25,
|
|
STATIC = 26,
|
|
LEN = 27,
|
|
DANNY = 28,
|
|
MAGIC = 29,
|
|
STEPHEN = 30,
|
|
SCULLY = 31,
|
|
MALICE = 32,
|
|
DRQ = 33,
|
|
NAILS = 34,
|
|
THOR = 35,
|
|
SCOPE = 36,
|
|
WOLF = 37,
|
|
MD = 38,
|
|
MELTDOWN = 39,
|
|
BIFF = 40,
|
|
HAYWIRE = 41,
|
|
GASKET = 42,
|
|
RAZOR = 43,
|
|
FLO = 44,
|
|
GUMPY = 45,
|
|
LARRY = 46,
|
|
LARRY_STONED = 47,
|
|
COUGAR = 48,
|
|
NUMB = 49,
|
|
BUBBA = 50,
|
|
MIGUEL = 57,
|
|
CARLOS = 58,
|
|
IRA = 59,
|
|
DIMITRI = 60,
|
|
DEVIN = 61,
|
|
ROBOT = 62,
|
|
HAMOUS = 63,
|
|
SLAY = 64,
|
|
DYNAMO = 66,
|
|
SHANK = 67,
|
|
IGGY = 68,
|
|
VINCE = 69,
|
|
CONRAD = 70,
|
|
MADDOG = 72,
|
|
DARREL = 73,
|
|
PERKO = 74,
|
|
DEIDRANNA = 75,
|
|
AUNTIE = 76,
|
|
CARMEN = 78,
|
|
JOE = 79,
|
|
STEVE = 80,
|
|
RAT = 81,
|
|
ANNIE = 82,
|
|
CHRIS = 83,
|
|
BOB = 84,
|
|
BRENDA = 85,
|
|
KINGPIN = 86,
|
|
DARREN = 87,
|
|
MARIA = 88,
|
|
ANGEL = 89,
|
|
JOEY = 90,
|
|
TONY = 91,
|
|
FRANK = 92,
|
|
SPIKE = 93,
|
|
DAMON = 94,
|
|
KYLE = 95,
|
|
MICKY = 96,
|
|
SKYRIDER = 97,
|
|
PABLO = 98,
|
|
SAL = 99,
|
|
FATHER = 100,
|
|
FATIMA = 101,
|
|
WARDEN = 102,
|
|
GORDON = 103,
|
|
GABBY = 104,
|
|
ERNEST = 105,
|
|
FRED = 106,
|
|
MADAME = 107,
|
|
YANNI = 108,
|
|
MARTHA = 109,
|
|
JOE = 110,
|
|
JASMIN = 111,
|
|
CHARLIE = 112,
|
|
JAKE = 113,
|
|
PACOS = 114,
|
|
DAVE = 115,
|
|
SKIPPER = 116,
|
|
HANS = 117,
|
|
JOHN = 118,
|
|
MARY = 119,
|
|
GENERAL = 120,
|
|
SERGEANT = 121,
|
|
ARMAND = 122,
|
|
LORA = 123,
|
|
FRANZ = 124,
|
|
HOWARD = 125,
|
|
SAM = 126,
|
|
ELDIN = 127,
|
|
ARNIE = 128,
|
|
TINA = 129,
|
|
FREDO = 130,
|
|
WALTER = 131,
|
|
JENNY = 132,
|
|
BILLY = 133,
|
|
BREWSTER = 134,
|
|
ELLIOT = 135,
|
|
DEREK = 136,
|
|
OLIVER = 137,
|
|
WALDO = 138,
|
|
DOREEN = 139,
|
|
JIM = 140,
|
|
JACK = 141,
|
|
OLAF = 142,
|
|
RAY = 143,
|
|
OLGA = 144,
|
|
TYRONE = 145,
|
|
MADLAB = 146,
|
|
KEITH = 147,
|
|
MATT = 148,
|
|
MIKE = 149,
|
|
DARYL = 150,
|
|
HERVE = 151,
|
|
PETER = 152,
|
|
ALBERTO = 153,
|
|
CARLO = 154,
|
|
MANNY = 155,
|
|
OSWALD = 156,
|
|
CALVIN = 157,
|
|
CARL = 158,
|
|
LAURA = 175,
|
|
GRACE = 176,
|
|
RUDOLF = 177,
|
|
SKITZ = 179,
|
|
BUNS_CHAOTIC = 215,
|
|
LEON = 222,
|
|
GARY = 223,
|
|
SPARKY = 224,
|
|
HURL = 227,
|
|
MOUSE = 245,
|
|
HECTOR = 246,
|
|
REV = 247,
|
|
STELLA = 248,
|
|
MOSES = 250,
|
|
TURTLE = 253,
|
|
}
|
|
|
|
What =
|
|
{
|
|
MERC_TYPE__PLAYER_CHARACTER = 0,
|
|
MERC_TYPE__AIM_MERC = 1,
|
|
MERC_TYPE__MERC = 2,
|
|
MERC_TYPE__NPC = 3,
|
|
MERC_TYPE__EPC = 4,
|
|
MERC_TYPE__NPC_WITH_UNEXTENDABLE_CONTRACT = 5,
|
|
MERC_TYPE__VEHICLE = 6,
|
|
}
|
|
|
|
Team =
|
|
{
|
|
OUR_TEAM = 0,
|
|
ENEMY_TEAM = 1,
|
|
CREATURE_TEAM = 2,
|
|
MILITIA_TEAM = 3,
|
|
CIV_TEAM = 4,
|
|
}
|
|
|
|
pQuest =
|
|
{
|
|
QUESTNOTSTARTED = 0,
|
|
QUESTINPROGRESS = 1,
|
|
QUESTDONE = 2,
|
|
}
|
|
|
|
Group =
|
|
{
|
|
NON_CIV_GROUP = 0,
|
|
REBEL_CIV_GROUP = 1,
|
|
KINGPIN_CIV_GROUP = 2,
|
|
SANMONA_ARMS_GROUP = 3,
|
|
ANGELS_GROUP = 4,
|
|
BEGGARS_CIV_GROUP = 5,
|
|
TOURISTS_CIV_GROUP = 6,
|
|
ALMA_MILITARY_CIV_GROUP = 7,
|
|
DOCTORS_CIV_GROUP = 8,
|
|
COUPLE1_CIV_GROUP = 9,
|
|
HICKS_CIV_GROUP = 10,
|
|
WARDEN_CIV_GROUP = 11,
|
|
JUNKYARD_CIV_GROUP = 12,
|
|
FACTORY_KIDS_GROUP = 13,
|
|
QUEENS_CIV_GROUP = 14,
|
|
}
|
|
|
|
Status =
|
|
{
|
|
CIV_GROUP_NEUTRAL = 0,
|
|
CIV_GROUP_WILL_EVENTUALLY_BECOME_HOSTILE = 1,
|
|
CIV_GROUP_WILL_BECOME_HOSTILE = 2,
|
|
CIV_GROUP_HOSTILE = 3,
|
|
}
|
|
|
|
SectorY =
|
|
{
|
|
MAP_ROW_A = 1,
|
|
MAP_ROW_B = 2,
|
|
MAP_ROW_C = 3,
|
|
MAP_ROW_D = 4,
|
|
MAP_ROW_E = 5,
|
|
MAP_ROW_F = 6,
|
|
MAP_ROW_G = 7,
|
|
MAP_ROW_H = 8,
|
|
MAP_ROW_I = 9,
|
|
MAP_ROW_J = 10,
|
|
MAP_ROW_K = 11,
|
|
MAP_ROW_L = 12,
|
|
MAP_ROW_M = 13,
|
|
MAP_ROW_N = 14,
|
|
MAP_ROW_O = 15,
|
|
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,
|
|
}
|
|
|
|
-- different teams
|
|
Teams =
|
|
{
|
|
ENEMY_TEAM = 1,
|
|
CREATURE_TEAM = 2,
|
|
MILITIA_TEAM = 3,
|
|
CIV_TEAM = 4,
|
|
}
|
|
|
|
-- (relevant) bodytypes
|
|
Bodytype =
|
|
{
|
|
REGMALE = 0,
|
|
BIGMALE = 1,
|
|
STOCKYMALE = 2,
|
|
REGFEMALE = 3,
|
|
FATCIV = 11,
|
|
MANCIV = 12,
|
|
MINICIV = 13,
|
|
DRESSCIV = 14,
|
|
HATKIDCIV = 15,
|
|
KIDCIV = 16,
|
|
CRIPPLECIV = 17,
|
|
}
|
|
|
|
local iLoop
|
|
local aimLoop
|
|
|
|
local HEARD_3_TURNS_AGO = -4
|
|
local HEARD_2_TURNS_AGO = -3
|
|
local HEARD_LAST_TURN = -2
|
|
local HEARD_THIS_TURN = -1
|
|
local NOT_HEARD_OR_SEEN = 0
|
|
local SEEN_CURRENTLY = 1
|
|
local SEEN_THIS_TURN = 2
|
|
local SEEN_LAST_TURN = 3
|
|
local SEEN_2_TURNS_AGO =4
|
|
local SEEN_3_TURNS_AGO = 5
|
|
|
|
-- local function
|
|
local function HandleJohnArrival( ID )
|
|
|
|
local ID2 = nil
|
|
local sDist
|
|
|
|
if ( not ID ) then
|
|
ID = FindSoldierByProfileID (Profil.JOHN)
|
|
if ( not ID ) then
|
|
return
|
|
end
|
|
end
|
|
|
|
if ( PythSpacesAway( ID,8228) < 40 ) then
|
|
|
|
if ( CheckFact( Facts.FACT_MARY_ALIVE, 0 ) == true ) then
|
|
ID2 = FindSoldierByProfileID( Profil.MARY )
|
|
if ( ID2 ) then
|
|
if ( PythSpacesAway( ID, GetNPCGridNo(ID2) ) > 8 ) then
|
|
-- Too far away!
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
SetFactTrue( Facts.FACT_MARY_OR_JOHN_ARRIVED )
|
|
ActionStopMerc(ID)
|
|
|
|
-- If Mary is alive/dead
|
|
if ( ID2 ) then
|
|
ActionStopMerc(ID2)
|
|
TriggerNPCRecord( ID, 13 )
|
|
else
|
|
TriggerNPCRecord( ID, 12 )
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
-- end local function
|
|
|
|
-- local function
|
|
local function HandleMaryArrival( ID )
|
|
|
|
local sDist
|
|
|
|
if ( not ID ) then
|
|
ID = FindSoldierByProfileID (Profil.MARY)
|
|
if ( not ID ) then
|
|
return
|
|
end
|
|
end
|
|
|
|
if ( CheckFact( Facts.FACT_JOHN_ALIVE,0) == true ) then
|
|
return
|
|
--new requirements: player close by
|
|
elseif ( PythSpacesAway( ID,8228) < 40 ) then
|
|
|
|
if ( not TileIsOutOfBounds ( ClosestPC( ID, sDist )) and sDist > NPC_TALK_RADIUS * 2 ) then
|
|
--too far away
|
|
return
|
|
end
|
|
|
|
SetFactTrue( Facts.FACT_MARY_OR_JOHN_ARRIVED )
|
|
ActionStopMerc(ID)
|
|
TriggerNPCRecord( ID, 13 )
|
|
end
|
|
|
|
end
|
|
-- end local function
|
|
|
|
function HandleAtNewGridNo( ProfileId )
|
|
|
|
if ( CheckFact ( Facts.FACT_ESTONI_REFUELLING_POSSIBLE, 0) == true and CheckQuest(Quests.QUEST_ESCORT_SHANK) == pQuest.QUESTINPROGRESS ) then
|
|
EndQuest( Quests.QUEST_ESCORT_SHANK, gWorldSectorX, gWorldSectorY )
|
|
end
|
|
|
|
TeamSoldier = FindSoldierTeam (ProfileId)
|
|
|
|
if ( TeamSoldier == Team.OUR_TEAM ) then -- Team
|
|
|
|
-- Kingping expecting visit from player (Sector D5)
|
|
-- The fact has to be TRUE. If FALSE then Kingpin attack the player.
|
|
if ( CheckFact( 98, ProfileId ) == false ) then
|
|
if ( NPCInRoomRange( ProfileId, 30, 39 ) == true and gWorldSectorX == 5 and gWorldSectorY == SectorY.MAP_ROW_D and gWorldSectorZ == 0 )then
|
|
|
|
for iLoop = GetTacticalStatusFirstID(Team.CIV_TEAM),GetTacticalStatusLastID(Team.CIV_TEAM) do
|
|
if ( CheckMercPtrsInSector (iLoop) == true and CheckMercPtrsInActive(iLoop) == true and CheckMercPtrsInCivilianGroup (iLoop) == 2 ) then
|
|
for aimLoop=GetTacticalStatusFirstID(Team.OUR_TEAM),GetTacticalStatusLastID(Team.OUR_TEAM) do
|
|
if ( CheckMercPtrsID1SeenID2(iLoop,aimLoop) == SEEN_CURRENTLY ) then
|
|
MakeMercPtrsHostile( iLoop )
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if ( CheckCombatMode == false ) then
|
|
EnterTeamCombatMode(Team.CIV_TEAM)
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
if ( WhatKindOfMercAmI (ProfileId) == What.MERC_TYPE__EPC ) then -- what EPC
|
|
|
|
-- Skyrider
|
|
if ( ProfileId == Profil.SKYRIDER and CheckNPCSectorBool( Profil.SKYRIDER, 13, SectorY.MAP_ROW_B, 0 ) == true and PythSpacesAway( Profil.SKYRIDER,8842 ) < 11 ) then
|
|
ActionStopMerc(Profil.SKYRIDER)
|
|
SetFactTrue( Facts.FACT_SKYRIDER_CLOSE_TO_CHOPPER )
|
|
TriggerNPCRecord( Profil.SKYRIDER, 15 )
|
|
SetUpHelicopterForPlayer( 13, SectorY.MAP_ROW_B, Profil.SKYRIDER, 163 ) -- 163 helicopter
|
|
|
|
-- Mary & John
|
|
elseif ( ( CheckNPCSectorBool( Profil.MARY, 13, SectorY.MAP_ROW_B, 0 ) == true ) or ( CheckNPCSectorBool( Profil.JOHN, 13, SectorY.MAP_ROW_B, 0 ) == true ) ) then
|
|
|
|
-- Mary
|
|
if ( ProfileId == Profil.MARY ) then
|
|
HandleMaryArrival( Profil.MARY )
|
|
-- John
|
|
elseif ( ProfileId == Profil.JOHN ) then
|
|
HandleJohnArrival( Profil.JOHN )
|
|
end
|
|
|
|
-- Maria
|
|
elseif ( ProfileId == Profil.MARIA and CheckNPCSectorBool( Profil.MARIA, 6, SectorY.MAP_ROW_C, 0) == true and CheckFact(Facts.FACT_MARIA_ESCORTED_AT_LEATHER_SHOP,Profil.MARIA) == true ) then
|
|
|
|
if ( NPCInRoom( Profil.ANGEL, 2 ) == true ) then
|
|
TriggerNPCRecord( Profil.ANGEL, 12 )
|
|
end
|
|
|
|
-- Joey
|
|
elseif ( ProfileId == Profil.JOEY and CheckNPCSectorBool( Profil.JOEY, 8, SectorY.MAP_ROW_G, 0) == true and CheckFact(Facts.FACT_JOEY_NEAR_MARTHA,0) == true ) then
|
|
ActionStopMerc(Profil.JOEY)
|
|
TriggerNPCRecord( Profil.JOEY, 9 )
|
|
end
|
|
|
|
-- Drassen stuff for John & Mary
|
|
elseif ( CheckQuest(Quests.QUEST_ESCORT_TOURISTS) == pQuest.QUESTINPROGRESS and ProfileIdsSectorX == 13 and ProfileIdsSectorY == SectorY.MAP_ROW_B and ProfileIdbSectorZ == 0 ) then
|
|
|
|
if ( CheckFact( Facts.FACT_JOHN_ALIVE, 0 ) == true ) then
|
|
HandleJohnArrival( nil )
|
|
else
|
|
HandleMaryArrival( nil )
|
|
end
|
|
|
|
elseif ( TeamSoldier == Team.CIV_TEAM and ProfileId ~= NO_PROFILE and CheckSoldierNeutral( ProfileId ) == true ) then
|
|
|
|
if ( ProfileId == Profil.JIM or ProfileId == Profil.JACK or ProfileId == Profil.OLAF or ProfileId == Profil.RAY or ProfileId == Profil.OLGA or ProfileId == Profil.TYRONE ) then
|
|
|
|
if ( not TileIsOutOfBounds( ClosestPC( ProfileId, sDesiredMercDist )) ) then
|
|
if ( sDesiredMercDist <= NPC_TALK_RADIUS * 2 ) then
|
|
CancelAIAction ( ProfileId )
|
|
AddToShouldBecomeHostileOrSayQuoteList( GetPlayerMercID(ProfileId) )
|
|
end
|
|
end
|
|
end
|
|
|
|
end -- End what EPC
|
|
end -- End team
|
|
end
|
|
|
|
ActionTypes =
|
|
{
|
|
ACTIONTYPE_INVALID = 0,
|
|
ACTIONTYPE_HACKING = 1,
|
|
ACTIONTYPE_READFILE = 2,
|
|
ACTIONTYPE_WATERTAP = 3,
|
|
ACTIONTYPE_SODAMACHINE = 4,
|
|
ACTIONTYPE_MINIGAME = 5,
|
|
ACTIONTYPE_VARIOUS = 6,
|
|
}
|
|
|
|
InfoTypes =
|
|
{
|
|
INFO_TYPE_NORMAL = 0,
|
|
INFO_TYPE_VIP = 1,
|
|
}
|
|
|
|
ScreenTypes =
|
|
{
|
|
MINIGAME = 30,
|
|
}
|
|
|
|
MiniGames =
|
|
{
|
|
TETRIS = 0,
|
|
PONG = 1,
|
|
PICTURE = 2,
|
|
}
|
|
|
|
-- luaactionids that aren't used in ModSpecificActions
|
|
InteractiveAction =
|
|
{
|
|
MINIGAME_TETRIS = 50,
|
|
MINIGAME_PONG = 51,
|
|
BILLIARD = 52,
|
|
TABLETENNIS = 53,
|
|
TOILET = 54,
|
|
TV = 55,
|
|
STEAL_CASHREGISTER = 56,
|
|
PICTURE_NEONTHECLUB = 57, -- Neon sign: 'The club'
|
|
PICTURE_NEONBEER = 58, -- Neon sign: 'Beer'
|
|
PICTURE_BEER = 59, -- Poster: 'Beer'
|
|
PICTURE_2xBEER = 60, -- 2-tile Poster: 'Beer'
|
|
PICTURE_PRIVATE = 61, -- Sign: 'Private'
|
|
PICTURE_XXXPITSTOP = 62, -- Neon Sign: 'XXX Pit Stop'
|
|
PICTURE_DELIVERY = 63, -- 2-tile Poster: 'Delivery'
|
|
PICTURE_GENERALSTORE = 64, -- 2-tile Poster: 'General Store'
|
|
PICTURE_SHADYLADY = 65, -- 2-tile Poster: 'Shady Lady'
|
|
}
|
|
|
|
-- 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 |||||||||||||||||||||||||||||||||||||
|
|
|
|
-- |||||||||||||||||||||||||||||||||| photo data |||||||||||||||||||||||||||||||||||||
|
|
PHOTO_FLAGS_BEGIN = 60,
|
|
|
|
PHOTO_FLAGS_GENERAL = 61,
|
|
PHOTO_FLAGS_WARDEN = 62,
|
|
PHOTO_FLAGS_ERNEST = 63,
|
|
PHOTO_FLAGS_ARMAND = 64,
|
|
PHOTO_FLAGS_KINGPIN = 65,
|
|
PHOTO_FLAGS_DARREN = 66,
|
|
PHOTO_FLAGS_TONY = 67,
|
|
PHOTO_FLAGS_JOE = 68,
|
|
PHOTO_FLAGS_MADLAB = 69,
|
|
PHOTO_FLAGS_MIKE = 70,
|
|
PHOTO_FLAGS_DEVIN = 71,
|
|
PHOTO_FLAGS_MICKY = 72,
|
|
PHOTO_FLAGS_CARMEN = 73,
|
|
|
|
PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE = 80,
|
|
PHOTO_FLAGS_ALMA_HQ_CONTROLROOM = 81,
|
|
PHOTO_FLAGS_ALMA_STORAGE_ROCKETS = 82,
|
|
PHOTO_FLAGS_ALMA_PRISON_TORTURE = 83,
|
|
PHOTO_FLAGS_TIXA_TORTURE = 84,
|
|
PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS = 85,
|
|
PHOTO_FLAGS_CREATURE_LVL3 = 86,
|
|
PHOTO_FLAGS_ORTA_LABS = 87,
|
|
PHOTO_FLAGS_ORTA_STORAGE = 88,
|
|
PHOTO_FLAGS_ORTA_MANUFACTURING = 89,
|
|
PHOTO_FLAGS_BALIME_MUSEUM = 90,
|
|
PHOTO_FLAGS_GRUMM_RADIOACTIVE = 91,
|
|
PHOTO_FLAGS_MEDUNA_ARENA = 92,
|
|
PHOTO_FLAGS_MEDUNA_BUNKER = 93,
|
|
|
|
PHOTO_FLAGS_SAM_DRASSEN = 94,
|
|
PHOTO_FLAGS_SAM_CHITZENA = 95,
|
|
PHOTO_FLAGS_SAM_CENTRAL = 96,
|
|
PHOTO_FLAGS_SAM_MEDUNA = 97,
|
|
|
|
PHOTO_FLAGS_END = 100,
|
|
-- |||||||||||||||||||||||||||||||||| photo data |||||||||||||||||||||||||||||||||||||
|
|
|
|
}
|
|
|
|
-- 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 involved.")
|
|
|
|
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 specified where the 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 MADLAB 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 heavily 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 only 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, "You have a bad feeling about this.")
|
|
|
|
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 heavily 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 command 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 intel
|
|
if ( successpts > 50 ) then
|
|
AddIntel( 15 )
|
|
elseif ( successpts > 20 ) then
|
|
AddIntel( 10 )
|
|
else
|
|
AddIntel( 5 )
|
|
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.")
|
|
|
|
samhackstatus = GetSamSiteHackStatus(sSectorX, sSectorY)
|
|
|
|
ourhack = 100 - 2 * successpts
|
|
|
|
if ( ourhack < 0 ) then
|
|
ourhack = 0
|
|
end
|
|
|
|
-- we can hack the SAM, decreasing its radius, or undo a previous hack
|
|
-- for simplicity, we will always hack a SAM if enemies are nearby - we are either infiltrating or fighting the enemy in those cases
|
|
-- otherwise, we obviously control the SAM, so try to unhack it
|
|
if ( NumNonPlayerTeamInSector(sSectorX, sSectorY, Teams.ENEMY_TEAM) > 0 ) then
|
|
if ( ourhack >= samhackstatus ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Someone already hacked this thing - and they broke it better than you could.")
|
|
else
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, ourhack)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've messed up the file system - they will need an expert to get this running again.")
|
|
end
|
|
else
|
|
if ( samhackstatus < 100 ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You attempt to unhack it.")
|
|
|
|
if ( ourhack <= samhackstatus ) then
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, 100)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We are successful, the targetting software is working again.")
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Whoever hacked the controls was more capable then we are - we cannot release the controls.")
|
|
end
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The software seems to work just fine, better not mess with it.")
|
|
end
|
|
end
|
|
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 intel
|
|
if ( successpts > 50 ) then
|
|
AddIntel( 15 )
|
|
elseif ( successpts > 20 ) then
|
|
AddIntel( 10 )
|
|
else
|
|
AddIntel( 5 )
|
|
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.")
|
|
|
|
samhackstatus = GetSamSiteHackStatus(sSectorX, sSectorY)
|
|
|
|
ourhack = 100 - 2 * successpts
|
|
|
|
if ( ourhack < 0 ) then
|
|
ourhack = 0
|
|
end
|
|
|
|
-- we can hack the SAM, decreasing its radius, or undo a previous hack
|
|
-- for simplicity, we will always hack a SAM if enemies are nearby - we are either infiltrating or figting the enemy in those cases
|
|
-- otherwise, we obviously control the SAM, so try to unhack it
|
|
if ( NumNonPlayerTeamInSector(sSectorX, sSectorY, Teams.ENEMY_TEAM) > 0 ) then
|
|
if ( ourhack >= samhackstatus ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Someone already hacked this thing - and they broke it better than you could.")
|
|
else
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, ourhack)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've messed up the file system - they will need an expert to get this running again.")
|
|
end
|
|
else
|
|
if ( samhackstatus < 100 ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You attempt to unhack it.")
|
|
|
|
if ( ourhack <= samhackstatus ) then
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, 100)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We are successful, the targetting software is working again.")
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Whoever hacked the controls was more capable then we are - we cannot release the controls.")
|
|
end
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The software seems to work just fine, better not mess with it.")
|
|
end
|
|
end
|
|
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 intel
|
|
if ( successpts > 50 ) then
|
|
AddIntel( 15 )
|
|
elseif ( successpts > 20 ) then
|
|
AddIntel( 10 )
|
|
else
|
|
AddIntel( 5 )
|
|
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.")
|
|
|
|
samhackstatus = GetSamSiteHackStatus(sSectorX, sSectorY)
|
|
|
|
ourhack = 100 - 2 * successpts
|
|
|
|
if ( ourhack < 0 ) then
|
|
ourhack = 0
|
|
end
|
|
|
|
-- we can hack the SAM, decreasing its radius, or undo a previous hack
|
|
-- for simplicity, we will always hack a SAM if enemies are nearby - we are either infiltrating or figting the enemy in those cases
|
|
-- otherwise, we obviously control the SAM, so try to unhack it
|
|
if ( NumNonPlayerTeamInSector(sSectorX, sSectorY, Teams.ENEMY_TEAM) > 0 ) then
|
|
if ( ourhack >= samhackstatus ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Someone already hacked this thing - and they broke it better than you could.")
|
|
else
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, ourhack)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've messed up the file system - they will need an expert to get this running again.")
|
|
end
|
|
else
|
|
if ( samhackstatus < 100 ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You attempt to unhack it.")
|
|
|
|
if ( ourhack <= samhackstatus ) then
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, 100)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We are successful, the targetting software is working again.")
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Whoever hacked the controls was more capable then we are - we cannot release the controls.")
|
|
end
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The software seems to work just fine, better not mess with it.")
|
|
end
|
|
end
|
|
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 intel
|
|
if ( successpts > 50 ) then
|
|
AddIntel( 15 )
|
|
elseif ( successpts > 20 ) then
|
|
AddIntel( 10 )
|
|
else
|
|
AddIntel( 5 )
|
|
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.")
|
|
|
|
samhackstatus = GetSamSiteHackStatus(sSectorX, sSectorY)
|
|
|
|
ourhack = 100 - 2 * successpts
|
|
|
|
if ( ourhack < 0 ) then
|
|
ourhack = 0
|
|
end
|
|
|
|
-- we can hack the SAM, decreasing its radius, or undo a previous hack
|
|
-- for simplicity, we will always hack a SAM if enemies are nearby - we are either infiltrating or figting the enemy in those cases
|
|
-- otherwise, we obviously control the SAM, so try to unhack it
|
|
if ( NumNonPlayerTeamInSector(sSectorX, sSectorY, Teams.ENEMY_TEAM) > 0 ) then
|
|
if ( ourhack >= samhackstatus ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Someone already hacked this thing - and they broke it better than you could.")
|
|
else
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, ourhack)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We've messed up the file system - they will need an expert to get this running again.")
|
|
end
|
|
else
|
|
if ( samhackstatus < 100 ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "You attempt to unhack it.")
|
|
|
|
if ( ourhack <= samhackstatus ) then
|
|
SetSamSiteHackStatus(sSectorX, sSectorY, 100)
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "We are successful, the targetting software is working again.")
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_RED, "Whoever hacked the controls was more capable then we are - we cannot release the controls.")
|
|
end
|
|
else
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "The software seems to work just fine, better not mess with it.")
|
|
end
|
|
end
|
|
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 has 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 intel
|
|
if ( successpts > 40 ) then
|
|
AddIntel( 40 )
|
|
elseif ( successpts > 10 ) then
|
|
AddIntel( 20 )
|
|
else
|
|
AddIntel( 10 )
|
|
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!")
|
|
|
|
AddIntel( 50 )
|
|
|
|
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 intel
|
|
if ( successpts > 50 ) then
|
|
AddIntel( 30 )
|
|
elseif ( successpts > 20 ) then
|
|
AddIntel( 20 )
|
|
else
|
|
AddIntel( 15 )
|
|
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
|
|
|
|
elseif ( usActionType == ActionTypes.ACTIONTYPE_MINIGAME ) then
|
|
|
|
-- for now, the only game we have is tetris
|
|
if ( sLuaactionid == InteractiveAction.MINIGAME_TETRIS ) then
|
|
|
|
-- playing a game costs $1
|
|
if ( SoldierSpendMoney(ubID, 1) == 1 ) then
|
|
|
|
SetMiniGameType(MiniGames.TETRIS)
|
|
SetPendingNewScreen(ScreenTypes.MINIGAME)
|
|
|
|
end
|
|
elseif ( sLuaactionid == InteractiveAction.MINIGAME_PONG ) then
|
|
|
|
-- playing a game costs $1
|
|
if ( SoldierSpendMoney(ubID, 1) == 1 ) then
|
|
|
|
SetMiniGameType(MiniGames.PONG)
|
|
SetPendingNewScreen(ScreenTypes.MINIGAME)
|
|
|
|
end
|
|
end
|
|
|
|
elseif ( usActionType == ActionTypes.ACTIONTYPE_VARIOUS ) then
|
|
|
|
if ( sLuaactionid == InteractiveAction.BILLIARD ) then
|
|
|
|
PlaySound("Sounds\\billiard.wav")
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.TABLETENNIS ) then
|
|
|
|
PlaySound("Sounds\\tabletennis.wav")
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.TOILET ) then
|
|
|
|
PlaySound("Sounds\\toilet.wav")
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.TV ) then
|
|
|
|
PlaySound("Sounds\\tvstatic.wav")
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.STEAL_CASHREGISTER ) then
|
|
|
|
PlaySound("Sounds\\cashregister.wav")
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_NEONTHECLUB ) then
|
|
|
|
-- The first argument is the path of a .png picture (any other format will be ignored).
|
|
-- The second argument determines whether we stretch the picture to fullscreen (1) or not (0). If the picture is larger than our screen, we stretch it anyway.
|
|
-- Only call this function from tactical (the call will be ignored otherwise).
|
|
DisplayPictureTactical("Interface\\neonsign_theclub.png", 1)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_NEONBEER ) then
|
|
|
|
DisplayPictureTactical("Interface\\neonsign_beer.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_BEER ) then
|
|
|
|
DisplayPictureTactical("Interface\\poster_beer1.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_2xBEER ) then
|
|
|
|
DisplayPictureTactical("Interface\\poster_yellow_green_bottle.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_PRIVATE ) then
|
|
|
|
DisplayPictureTactical("Interface\\kingpinclub_entrance.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_XXXPITSTOP ) then
|
|
|
|
DisplayPictureTactical("Interface\\neonsign_xxx.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_DELIVERY ) then
|
|
|
|
DisplayPictureTactical("Interface\\delivery.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_GENERALSTORE ) then
|
|
|
|
DisplayPictureTactical("Interface\\sign_generalstore.png", 0)
|
|
|
|
elseif ( sLuaactionid == InteractiveAction.PICTURE_SHADYLADY ) then
|
|
|
|
DisplayPictureTactical("Interface\\shady_lady.png", 0)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
-- states of a photo fact
|
|
PhotoFlag =
|
|
{
|
|
NONE = 0,
|
|
TAKEN = 1,
|
|
UPLOADED = 2,
|
|
VERIFIED = 3, -- the code only has one value for verification, but we use several ones for different results
|
|
VERIFIED_RESULT_2 = 4,
|
|
}
|
|
|
|
-- In this function we can define what and how many items a intel-based dealer should trade with, and how much an item is worth in intel
|
|
-- AddArmsDealerAdditionalIntelData takes 4 arguments:
|
|
-- usDealer: shopkeeper this is intended for
|
|
-- usItem: number of item
|
|
-- sIntelPrice: price of item in intel
|
|
-- sOptimalNumber: how many items the trader should have at maximum
|
|
function AddArmsDealerAdditionalIntelData()
|
|
|
|
-- price is affected by player progress - on higher progress items get cheaper (as they are less useful at that point)
|
|
progress = CurrentPlayerProgressPercentage()
|
|
ratio = (200.0 - progress) / 100.0
|
|
|
|
-- black market:
|
|
-- guns
|
|
AddArmsDealerAdditionalIntelDataItem(68, 337, 10 * ratio, 2) -- Five-Seven
|
|
AddArmsDealerAdditionalIntelDataItem(68, 663, 15 * ratio, 1) -- HK G11 PDW
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1073, 10 * ratio, 2) -- HK UCP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 673, 13 * ratio, 2) -- HK MP7A1
|
|
AddArmsDealerAdditionalIntelDataItem(68, 686, 20 * ratio, 1) -- Metal Storm Surf Zone
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1191, 25 * ratio, 1) -- Magpul PDR-D
|
|
AddArmsDealerAdditionalIntelDataItem(68, 65, 40 * ratio, 1) -- Auto Rocket Rifle
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1334, 27 * ratio, 1) -- AR57 6" Silenced
|
|
AddArmsDealerAdditionalIntelDataItem(68, 335, 40 * ratio, 1) -- Barret M82A2
|
|
AddArmsDealerAdditionalIntelDataItem(68, 676, 35 * ratio, 1) -- HL SL9SD
|
|
AddArmsDealerAdditionalIntelDataItem(68, 774, 50 * ratio, 1) -- VSSK Vychlop
|
|
AddArmsDealerAdditionalIntelDataItem(68, 605, 22 * ratio, 1) -- AICW
|
|
AddArmsDealerAdditionalIntelDataItem(68, 748, 22 * ratio, 2) -- XM-29 OICW
|
|
AddArmsDealerAdditionalIntelDataItem(68, 752, 20 * ratio, 1) -- XM-8 Sharpshooter
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1065, 23 * ratio, 1) -- Steyr AUG-A3
|
|
AddArmsDealerAdditionalIntelDataItem(68, 680, 16 * ratio, 1) -- Jackhammer Mk3A1
|
|
|
|
-- Ammo
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1455, 8 * ratio, 2) -- 5.7x28 100 AET
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1450, 8 * ratio, 2) -- 4.7x33 100 SAP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1460, 8 * ratio, 2) -- 4.6x30 100 AET
|
|
AddArmsDealerAdditionalIntelDataItem(68, 544, 5 * ratio, 2) -- 9mm MS 72 SAP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1518, 10 * ratio, 2) -- 6x35 100 AP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 113, 5 * ratio, 5) -- Minirocket 5 HEAP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1738, 10 * ratio, 2) -- Minirocket 5 Cryo
|
|
AddArmsDealerAdditionalIntelDataItem(68, 116, 5 * ratio, 4) -- .50 BMG 10 AP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 540, 3 * ratio, 4) -- 7.62x37 10 AP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1512, 7 * ratio, 3) -- 12.7x97 Subsonic 15 AP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1520, 10 * ratio, 2) -- 6.8x43 SPC 100 AP
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1423, 3 * ratio, 5) -- 12 gauge 25 Flechette
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1578, 1 * ratio, 10) -- Darts 1 Neurotoxin
|
|
|
|
-- Launchers
|
|
AddArmsDealerAdditionalIntelDataItem(68, 908, 20 * ratio, 1) -- XM-25 Grenade Launcher
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1736, 40 * ratio, 1) -- Strela-2
|
|
|
|
-- Grenades
|
|
AddArmsDealerAdditionalIntelDataItem(68, 957, 4 * ratio, 2) -- 20mm Thermobaric Clip
|
|
AddArmsDealerAdditionalIntelDataItem(68, 963, 4 * ratio, 2) -- 25mm Thermobaric Clip
|
|
AddArmsDealerAdditionalIntelDataItem(68, 970, 2 * ratio, 5) -- 40mm Thermobaric Grenade
|
|
AddArmsDealerAdditionalIntelDataItem(68, 978, 4 * ratio, 5) -- Thermobaric Rocket
|
|
AddArmsDealerAdditionalIntelDataItem(68, 987, 4 * ratio, 2) -- 40mm MS Thermobaric Clip
|
|
AddArmsDealerAdditionalIntelDataItem(68, 989, 4 * ratio, 2) -- 20mm Napalm Clip
|
|
AddArmsDealerAdditionalIntelDataItem(68, 990, 4 * ratio, 2) -- 25mm Napalm Clip
|
|
AddArmsDealerAdditionalIntelDataItem(68, 991, 1 * ratio, 5) -- 40mm Napalm Grenade
|
|
AddArmsDealerAdditionalIntelDataItem(68, 993, 4 * ratio, 2) -- 40mm MS Napalm Clip
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1737, 6 * ratio, 4) -- Strela-2 Missile
|
|
|
|
-- Explosives
|
|
AddArmsDealerAdditionalIntelDataItem(68, 951, 4 * ratio, 3) -- 60mm Mustard Gas Shell
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1523, 3 * ratio, 3) -- M18 Claymore
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1735, 3 * ratio, 4) -- TM-62P2 anti-tank Mine
|
|
|
|
-- Face items
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1025, 20 * ratio, 2) -- NVG Gen IV
|
|
|
|
-- Misc
|
|
AddArmsDealerAdditionalIntelDataItem(68, 216, 6 * ratio, 3) -- Compound 18
|
|
AddArmsDealerAdditionalIntelDataItem(68, 235, 2 * ratio, 4) -- Regeneration Booster
|
|
AddArmsDealerAdditionalIntelDataItem(68, 324, 50 * ratio, 1) -- X-Ray Detector
|
|
AddArmsDealerAdditionalIntelDataItem(68, 327, 11 * ratio, 2) -- Tank of gas
|
|
AddArmsDealerAdditionalIntelDataItem(68, 592, 3 * ratio, 2) -- Sniper Suppressor
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1026, 2 * ratio, 2) -- Trigger Group
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1538, 1 * ratio, 5) -- Stim
|
|
AddArmsDealerAdditionalIntelDataItem(68, 1744, 7 * ratio, 2) -- Ballistic Shield
|
|
|
|
end
|
|
|
|
function SetPhotoState( aIndex, aState )
|
|
|
|
if ( (aIndex >= ModSpecificActions.PHOTO_FLAGS_BEGIN) and (aIndex <= ModSpecificActions.PHOTO_FLAGS_END) and (aState >= PhotoFlag.NONE) and (aState <= PhotoFlag.VERIFIED_RESULT_2) ) then
|
|
|
|
SetModderLUAFact( aIndex, aState )
|
|
|
|
end
|
|
end
|
|
|
|
-- sSectorX, sSectorY, bSectorZ: sector coordinates
|
|
-- sGridNo: tile that we photographed. When we take a photo this function is run on all tiles we see in a 2-tile radius around where we clicked
|
|
-- bLevel: height level (floor or roof)
|
|
-- ubPhotographerProfile: profile of the merc taking the photo
|
|
-- room: if > 0, this tile is inside this room
|
|
-- usTargetProfile: if we photographed a NPC, this will be their profile number, otherwise NO_PROFILE
|
|
function AddPhotoData( sSectorX, sSectorY, bSectorZ, sGridNo, bLevel, ubPhotographerProfile, room, usTargetProfile )
|
|
|
|
if ( usTargetProfile ~= NO_PROFILE ) then
|
|
|
|
if ( usTargetProfile == Profil.GENERAL ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GENERAL) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the general.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_GENERAL, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.WARDEN ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_WARDEN) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the head warden.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_WARDEN, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.ERNEST ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ERNEST) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the head researcher.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ERNEST, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.ARMAND ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ARMAND) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Armand.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ARMAND, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.KINGPIN ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_KINGPIN) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Kingpin.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_KINGPIN, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.DARREN ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DARREN) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Darren.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_DARREN, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.TONY ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TONY) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Tony.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_TONY, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.JOE ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_JOE) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Joe.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_JOE, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.MADLAB ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MADLAB) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Dr. Kairns.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_MADLAB, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.MIKE ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MIKE) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Mike.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_MIKE, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.DEVIN ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DEVIN) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Devin.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_DEVIN, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.MICKY ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MICKY) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Micky.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_MICKY, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
elseif ( usTargetProfile == Profil.CARMEN ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CARMEN) < PhotoFlag.TAKEN ) then
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of Carmen.")
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_CARMEN, PhotoFlag.TAKEN )
|
|
end
|
|
|
|
end
|
|
|
|
elseif ( bSectorZ == 0 ) then
|
|
|
|
-- Cambria hospital morgue
|
|
if ( (sSectorY == SectorY.MAP_ROW_F) and (sSectorX == 8) ) then
|
|
|
|
if ((room == 70) or (room == 71) or (room == 72)) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the morgue.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Alma
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_H) and (sSectorX == 13) ) then
|
|
|
|
if ((room == 12) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the command center.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_H) and (sSectorX == 14) ) then
|
|
|
|
if ((room == 8) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the missile storage.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_I) and (sSectorX == 13) ) then
|
|
|
|
if ((room == 19) or (room == 20) or (room == 21)) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the torture room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Tixa
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_J) and (sSectorX == 9) ) then
|
|
|
|
if ((room == 19) or (room == 20) or (room == 21)) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the torture room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Balime
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_L) and (sSectorX == 12) ) then
|
|
|
|
if ((room == 37) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the museum's most prized exhibition.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Grumm
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_G) and (sSectorX == 2) ) then
|
|
|
|
if ((room == 1) or (room == 7) or (room == 8)) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the dangerous materials handled here.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Meduna
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_N) and (sSectorX == 5) ) then
|
|
|
|
if ((room == 17) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the royal lodge.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_N) and (sSectorX == 4) ) then
|
|
|
|
if ((room == 1) or (room == 2) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the control room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Drassen SAM
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_D) and (sSectorX == 15) ) then
|
|
|
|
if ((room == 2) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the control room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Chitzena SAM
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_D) and (sSectorX == 2) ) then
|
|
|
|
if ((room == 7) or (room == 8) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the control room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- central SAM
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_I) and (sSectorX == 8) ) then
|
|
|
|
if ((room == 16) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the control room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elseif ( bSectorZ == 1 ) then
|
|
|
|
-- Tixa
|
|
if ( (sSectorY == SectorY.MAP_ROW_J) and (sSectorX == 9) ) then
|
|
|
|
if ((room == 3) or (room == 9) or (room == 10) or (room == 12)) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the inhuman conditions here.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Orta
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_K) and (sSectorX == 4) ) then
|
|
|
|
if ((room == 13) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the stored and packaged experimental weaponry.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
elseif ((room == 11) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the manufacturing process.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
elseif ((room == 16) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_LABS) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the experiments in the laboratories.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_ORTA_LABS, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Meduna
|
|
elseif ( (sSectorY == SectorY.MAP_ROW_P) and (sSectorX == 3) ) then
|
|
|
|
if ((room == 24) ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of the bunker control room.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elseif ( bSectorZ == 3 ) then
|
|
|
|
-- only lvl 3 sectors are creature sectors (apart from a secret sector most players will never know of :-) ). So any location will do.
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3) < PhotoFlag.TAKEN ) then
|
|
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_DKWHITE, "Took a photo of... whatever THIS is.")
|
|
|
|
SetPhotoState( ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3, PhotoFlag.TAKEN )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
function GetPhotoData( aType )
|
|
|
|
if ( aType == PhotoFlag.TAKEN ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GENERAL) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_GENERAL, "Positive identification of the commanding officer of the Alma military base.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_WARDEN) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_WARDEN, "We've identified the director of Tixa.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ERNEST) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ERNEST, "We've identified the current head of research in Orta.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ARMAND) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ARMAND, "We've come across a wealthy industrialist in Balime.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_KINGPIN) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_KINGPIN, "We've identified the unofficial leader of San Mona - some kind of crime syndicate leader?") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DARREN) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_DARREN, "A photo of the possible second in command of the 'Kingpin' crime syndicate.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TONY) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TONY, "Contact with an arms dealer in San Mona has been established.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_JOE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_JOE, "Visual identification of the queen's personal head of security.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MADLAB) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MADLAB, "We managed to contact the former head researcher of the Orta research lab.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MIKE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MIKE, "Visual identification of a high-ranking mercenary in the queen's payroll.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DEVIN) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_DEVIN, "We took a photo of an arms dealer specialising in explosives.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MICKY) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MICKY, "A shady character in a bar mentioned an interest in animal parts.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CARMEN) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CARMEN, "We made the acquaintance of a head hunter.") end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE, "Photos of a filled morgue.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM, "Visuals detailing the control room of the Alma command center.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS, "Images taken in a storage facility show a number of artillery missiles.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE, "Images show a secret torture room in a military prison.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE, "We've documented a dedicated interrogation room in Tixa.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS, "Pictures seem to indicate systematic torture and killings in Tixa.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3, "We've come across some sort of... unknown animals.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_LABS) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_LABS, "Horrific experiments are undertaken in a secret government facility.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE, "Images show a storage room full of experimental weaponry.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING, "A remote facility is involved in the manufacturing of prototype weaponry.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM, "A museum showcases an important artifact.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE, "We have documented drastically unsafe working conditions in Grumm.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA, "It seems there is some sort of entertainment arena in Meduna.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER, "We managed to photograph the control room of the royal bunker.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN, "We documented the control center of a surface to air battery near Drassen.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA, "We documented the control center of a surface to air battery near Chitzena.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL, "We documented the control center of a surface to air battery near Cambria.") end
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA) == PhotoFlag.TAKEN ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA, "We documented the control center of a surface to air battery in Meduna.") end
|
|
|
|
elseif ( aType == PhotoFlag.VERIFIED ) then
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GENERAL) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_GENERAL, "General Theo Humphey is a former US officer. He is in charge of the Alma training facility. His intimate knowledge of the military could be valuable.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GENERAL) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_GENERAL, "General Theo Humphey was a former US officer. He was in charge of the Alma training facility. KIA.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_WARDEN) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_WARDEN, "Christine Woltz commands the Tixa correctional facility. Her knowledge of political prisoners could be a potential information goldmine.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_WARDEN) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_WARDEN, "Christine Woltz commanded the Tixa correctional facility. KIA.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ERNEST) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ERNEST, "Dr. Ernest Poppin is the current head researcher of Orta. He might have knowledge of important interna.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ERNEST) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ERNEST, "Dr. Ernest Poppin was Orta head of research before the lab fell. It is likely classified information was lost with his death.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ARMAND) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ARMAND, "Armand Ricci, board member of Ricci Mining Corp., was identified in Balime. Ricci mining is an important regional player, and rumoured to be heavily invested in Balime as well.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ARMAND) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ARMAND, "A board member of Ricci Mining Corp. was killed under unknwon circumstances. The company quickly issued a statement blaming the rebel uprising for this terrorist attack.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_KINGPIN) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_KINGPIN, "Peter Klauss commands the powerful San Mona crime syndicate. The relation of his ship to Deidranna is not fully understood and should be investigated further.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_KINGPIN) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_KINGPIN, "Peter Klauss led the San Mona syndicate. His death is likely to have shattered the syndicate.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DARREN) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_DARREN, "Darren Van Haussen is in charge of Kingpin's main club in San Mona. It is likely he is familiar with the syndicate's structure.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DARREN) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_DARREN, "Mr. Haussen was a high-level subordinate of Kinpin. KIA.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TONY) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TONY, "'Tony' is a well-stocked arms dealer operating in San Mona from behind a front shop. Though initially believed otherwise, he is not part of the 'Kingpin' syndicate. Whether he belongs to some other hitherto unknown organisation is unclear, but likely.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TONY) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TONY, "An international arms dealer operated in San Mona. His death will make it harder for irregular organisations to acquire weaponry.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_JOE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_JOE, "Joseph Papanus commands the queen's personal forces. What sparse information remains paints the picture of a very violent man. Due to his gambling addiction, it is believed that he could be motivated to seek new employment if significant monetary rewards are offered.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_JOE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_JOE, "Joseph Papanus was head of royal security. KIA.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MADLAB) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MADLAB, "Dr. Nathaniel Kairns was head researcher of Orta until he deserted. His motivation remains unclear, but he is likely to posess useful intel and skills.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MADLAB) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MADLAB, "Once the project lead of Orta, Dr. Nathaniel Kairns could have been a valuable source of intel.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MIKE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MIKE, "The former AIM mercenary 'Mike' has been identified as part of an elite division. This is a clear indicator that the army has stepped employment of outside forces significantly. It will likely lead to some consternation among parts of the mercenary world, AIM in particular.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MIKE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MIKE, "A veteran AIM member, 'Mike' was a high-ranking mercenary in royal services. His death will have deprived the army of one of their most competent officers.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DEVIN) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_DEVIN, "Devin Connell is more than just an arms dealer. Data reconciliation with MI5 revealed that he was linked to MI5 in some capacity. The exact details are disclosed, but his current business conduct might give some insight. It is possible he may also freelance as a mercenary from time to time.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_DEVIN) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_DEVIN, "Devin Connell was an arms dealer specialising in explosives. Rumours about a possible IRA connection could not be established or rejected.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MICKY) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MICKY, "The notorious arms dealer Micky O'Brien has been in the business for decades. He has switched to trading the rare animals parts of protected species for south-east asia buyers.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MICKY) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MICKY, "After decades of trading arms, Micky O'Brien finally ran out of luck in Arulco.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CARMEN) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CARMEN, "Carmen Dancio is a bounty hunter. He is currently in Arulco on the hunt for several targets on Interpol's 'Most Wanted' list. He is rather unscrupulous in achieving his targets.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CARMEN) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CARMEN, "A seasoned bounty hunter, Carmen Dancio, was killed before further contact could be established.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE, "Several images taken detail a morgue in a local hospital. The often borderline excessive wounds on the deceased concur with a widespread campaign of indiscriminate killings..")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE, "Several images taken detail a morgue in a local hospital. The often borderline excessive wounds on the deceased concur with a widespread campaign of indiscriminate killings. As the hospital was no longer under rebel control when the images were taken, goverment accountability is in question.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM, "High-definition photos of the army headquarter command center still have to be investigated painstakingly, but should deliver a wealth of information to analysts.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM, "High-definition pictures of the army headquarter command center in alma are available. The usefulness is put into question, however, as the rebels have already taken the facility.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS, "An army storage depot in Alma houses a number of rockets. This could possibly lead to identification of as-of-yet unknown artillery pieces the army might possess.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS, "An army storage depot in Alma houses a number of rockets. The regime denies responsibility and blames the rebels, who indeed control the depot, for subverting an arms embargo.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE, "Rebels obtained images of a dedicated torture room in a military prison. This gives further credence to claims of widespread human rights abuses in the country.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE, "Rebels claim images show a dedicated torture room in a military prison. As the facility is under their control, the culpability of the regime is put into question by outside parties.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE, "Dissidents claim that torture is so regular in a notorious prison that the regime has set up dedicated rooms for it. Images taken in secret paint a chilling picture indeed.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE, "Dissidents claim that torture is so regular in a notorious prison that the regime has set up dedicated rooms for it. The regime denies this and states that this 'is an obvious set-up by a terrorist gane no-one in their right mind would believe'.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS, "The images coming to us from a secret section of a remote prison are hard to stomach, even for veteran analysts. The limited material dissidents managed to smuggle outside reveals both malicious, wanton destruction and ignorance of even bare lip-service to human decency.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS, "Rebel photographers documented serious human rights abuses of staggering magnitude in a government prison. Regime sympathizers deny these allegations and point out that any loss of life is soley to blame on the rebels, who recently took the facility after fierce fighting.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3, "Scientists are baffled by images showing large, insect-like creatures from the caves of Arulco. Once the fighting has dies down, an expedition will want to research this.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3, "Scientists are baffled by images showing large, insect-like creatures from the caves of Arulco. As the rebels claim to have eradicated them, this is likely some kind of obscure hoax.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_LABS) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_LABS, "Images smuggled out of laboratory at an undisclosed location show bizarre images involving prisoners, giant cats and huge amounts of irradiated goo. Frankly, we're out of our depth here, but this is probably not good.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_LABS) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_LABS, "After taking a laboratory in fierce fighting, rebels leaked images, claiming there were experiments done involving live humans, large predatory cats and 'radioactive stuff'. We're honestly not sure how to proceed.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE, "Estimates of the regime's strength will likely have to be revised, as images clearly show huge numbers of some sort of missile-based assault rifle in storage.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE, "Dissidents claim a former government storage depot contained huge numbers of missile-based weaponry. As the facility is no longer under government control, this cannot be fully verfified.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING, "According to recent leaks, an underground facility is involved in the creation of experimental weapon systems. The exact nature of said systems has yet to be disclosed, but seems missile-based.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING, "A formerly regime-controlled facility was involved in weapons manufacturing, according to rebel sources. This is put into doubt by the fact that rebels might have altered the facility after taking it.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM, "Arulco's most important artifact, the Chalice of Chance, is on display in Balime. Dissidents protest against the sacrilege of removing it from the ruins of Chitzena in the first place.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM, "Arulco's most important artifact, the Chalice of Chance, was recently stolen from the Balime museum. The current whereabouts are unknown, this represents yet another loss for arulcan culture.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE, "Leaked images show clearly unsafe working conditions in the industrial city of Grumm. Irradiated equipment is used by workers without any sort of protection.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE, "Leaked images show clearly unsafe working conditions in the industrial city of Grumm. The regime denies any culpability and puts the blame soley on the rebels, who currently administer the region.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA, "In a bizarre twist, leaked photography from Meduna shows a small arena, fit for roman-style entertainment, including a luxurious lodge for the queen herself. This lavish display is in stark contrast with the often impoverished population.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER, "In a daring operation, rebels were able to obtain images of the command room of the queen's personal bunker. The paranoid security system prominently includes an active mine field.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER, "Before it was taken by the rebels, the queen's personal bunker control room housed elaborate security systems, including a mine field.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN, "Images leaked to us show details of a surface to air missile battery near Drassen. It can only be controlled via a command console, making that an obvious weakpoint.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN, "Rebels detailed the control center of a recently occupied anti-air installation in the north-east. It can be presumed that other installations use similar hardware.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA, "Images leaked to us show details of a surface to air missile battery near chitzena. The immediate placement at the coast is an obvious weakpoint, especially considering the lack of marine forces.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA, "Rebels detailed the control center of a recently occupied anti-air installation in the north-west. It can be presumed that other installations use similar hardware.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL, "Images leaked to us show details of a surface to air missile battery in the center of the country. While the placement of this installation yields overlapping air coverage on much of the country's airspace, this leaves the south-east of the country without any air coverage.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL, "The central anti-air installation was recently taken by rebels after fierce fighting. Apart from the sizeable garrison, it included mine-fields and internal gas deployment systems.")
|
|
end
|
|
|
|
if ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA) == PhotoFlag.VERIFIED ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA, "Images leaked to us show details of a heavily guarded surface to air missile battery in Meduna. It can only be controlled via a command console, making that an obvious weakpoint. It is unknown whether the different batteries are somehow linked to each other.")
|
|
elseif ( GetModderLUAFact(ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA) == PhotoFlag.VERIFIED_RESULT_2 ) then SetPhotoFactLaptopData(aType, ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA, "The anti-air battery in Meduna itself has fallen to the rebels. It is unknown whether there are any loyalist aircraft left against whom this could be used.")
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
function VerifyPhotoState(aIndex)
|
|
|
|
if ( (aIndex >= ModSpecificActions.PHOTO_FLAGS_BEGIN) and (aIndex <= ModSpecificActions.PHOTO_FLAGS_END) and (GetModderLUAFact(aIndex) == PhotoFlag.UPLOADED) ) then
|
|
|
|
if (aIndex == ModSpecificActions.PHOTO_FLAGS_GENERAL) then
|
|
|
|
if ( MercIsDead(Profil.GENERAL) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying General Theo Humphey. Amount lowered due to death.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 30 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying General Theo Humphey.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_WARDEN) then
|
|
|
|
if ( MercIsDead(Profil.WARDEN) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 7 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Christine Woltz. Amount lowered due to death.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Christine Woltz.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ERNEST) then
|
|
|
|
if ( MercIsDead(Profil.ERNEST) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Dr. Ernest Poppin. Amount lowered due to death.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 30 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Dr. Ernest Poppin.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ARMAND) then
|
|
|
|
if ( MercIsDead(Profil.ARMAND) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Armand Ricci. Amount lowered due to death.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Armand Ricci.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_KINGPIN) then
|
|
|
|
if ( MercIsDead(Profil.KINGPIN) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Peter Klauss. Amount lowered, as his organisation is effectively destroyed.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 25 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Peter Klauss.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_DARREN) then
|
|
|
|
if ( MercIsDead(Profil.DARREN) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 3 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Darren Van Haussen. Amount lowered as his death rendered the information obsolete.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Darren Van Haussen.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_TONY) then
|
|
|
|
if ( MercIsDead(Profil.TONY) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 12 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Tony. Amount lowered due to death.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Tony.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_JOE) then
|
|
|
|
if ( MercIsDead(Profil.JOE) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 4 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Joseph Papanus. Amount lowered as his death rendered the information obsolete.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Joseph Papanus.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_MADLAB) then
|
|
|
|
if ( MercIsDead(Profil.MADLAB) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Dr. Nathaniel Kairns. Amount lowered as his death removed a valuable source of intel.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 35 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Dr. Nathaniel Kairns.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_MIKE) then
|
|
|
|
if ( MercIsDead(Profil.MIKE) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 5 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Mike. Amount lowered as his death rendered the information obsolete.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Mike.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_DEVIN) then
|
|
|
|
if ( MercIsDead(Profil.DEVIN) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Devin Connell. Amount lowered as his death lowers possible interest from disclosed organisations.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Devin.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_MICKY) then
|
|
|
|
if ( MercIsDead(Profil.MICKY) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 4 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Micky O'Brien. Amount lowered as his death rendered the information obsolete.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Micky O'Brien.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_CARMEN) then
|
|
|
|
if ( MercIsDead(Profil.CARMEN) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 4 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Carmen Dancio. Amount lowered as his death rendered the information obsolete.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for identifying Carmen Dancio.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_CAMBRIA_HOSPITAL_MORGUE) then
|
|
|
|
if ( GetNumHostilesInSector(8, SectorY.MAP_ROW_F, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 14 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the conditions in Cambria hospital.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 7 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the conditions in Cambria hospital. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ALMA_HQ_CONTROLROOM) then
|
|
|
|
if ( GetNumHostilesInSector(13, SectorY.MAP_ROW_H, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the Alma military headquarter.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the Alma military headquarter. Amount lowered as informatino is now outdated due to the ousting of regime troops.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ALMA_STORAGE_ROCKETS) then
|
|
|
|
if ( GetNumHostilesInSector(14, SectorY.MAP_ROW_H, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the contents of a military depot in Alma.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the contents of a military depot in Alma. Amount lowered as information is now outdated due to the ousting of regime troops.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ALMA_PRISON_TORTURE) then
|
|
|
|
if ( GetNumHostilesInSector(13, SectorY.MAP_ROW_I, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting torture in a military prison.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 8 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting torture in a military prison. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE) then
|
|
|
|
if ( GetNumHostilesInSector(9, SectorY.MAP_ROW_J, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting torture in a prison.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 8 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting torture in a prison. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_TIXA_TORTURE_DOWNSTAIRS) then
|
|
|
|
if ( GetNumHostilesInSector(9, SectorY.MAP_ROW_J, 1) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 25 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting torture in a prison.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting torture in a prison. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_CREATURE_LVL3) then
|
|
|
|
if ( CheckQuest(Quests.QUEST_CREATURES) == pQuest.QUESTDONE ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting a nest of unknown creatures. Amount lowered as they have all been eradicated, making research impossible.")
|
|
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 40 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting a nest of unknown creatures.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ORTA_LABS) then
|
|
|
|
if ( GetNumHostilesInSector(9, SectorY.MAP_ROW_J, 1) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 15 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting bizarre experiments in secret lab.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting bizarre experiments in secret lab. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ORTA_STORAGE) then
|
|
|
|
if ( GetNumHostilesInSector(9, SectorY.MAP_ROW_J, 1) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 12 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for recording huge amounts of weaponry in army storage.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 4 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for recording huge amounts of weaponry in army storage. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_ORTA_MANUFACTURING) then
|
|
|
|
if ( GetNumHostilesInSector(9, SectorY.MAP_ROW_J, 1) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 14 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting a weapons manufacturing line.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 6 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting a weapons manufacturing line. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_BALIME_MUSEUM) then
|
|
|
|
if ( CheckFact( Facts.FACT_CHALICE_STOLEN, 0 ) == true ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 7 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for confirming a valuable artifact was in Balime. Amount lowered as its whereabouts are no longer known.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 20 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for confirming a valuable artifact is in Balime.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_GRUMM_RADIOACTIVE) then
|
|
|
|
if ( GetNumHostilesInSector(2, SectorY.MAP_ROW_G, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 10 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting unsafe working conditions in Grumm.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 4 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting unsafe working conditions in Grumm. Amount lowered as sector is no longer government-controlled, culpability for any crimes no longer undeniable.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_MEDUNA_ARENA) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 9 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the existence of a private arena for the queen's entertainment.")
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_MEDUNA_BUNKER) then
|
|
|
|
if ( GetNumHostilesInSector(3, SectorY.MAP_ROW_P, 1) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 30 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the layout of the royal bunker.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 8 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the layout of the royal bunker. Amount lowered as this is no longer relevant to the war effort.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_SAM_DRASSEN) then
|
|
|
|
if ( GetNumHostilesInSector(15, SectorY.MAP_ROW_D, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 12 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation near Drassen.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 6 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation near Drassen. Amount lowered as sector is no longer government-controlled and thus the information is outdated.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_SAM_CHITZENA) then
|
|
|
|
if ( GetNumHostilesInSector(2, SectorY.MAP_ROW_D, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 12 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation near Chitzena.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 6 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation near Chitzena. Amount lowered as sector is no longer government-controlled and thus the information is outdated.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_SAM_CENTRAL) then
|
|
|
|
if ( GetNumHostilesInSector(2, SectorY.MAP_ROW_D, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 14 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation near Cambria.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 7 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation near Cambria. Amount lowered as sector is no longer government-controlled and thus the information is outdated.")
|
|
|
|
end
|
|
|
|
elseif (aIndex == ModSpecificActions.PHOTO_FLAGS_SAM_MEDUNA) then
|
|
|
|
if ( GetNumHostilesInSector(4, SectorY.MAP_ROW_N, 0) ) then
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED )
|
|
AddIntel( 16 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation in Meduna.")
|
|
|
|
else
|
|
|
|
SetPhotoState( aIndex, PhotoFlag.VERIFIED_RESULT_2 )
|
|
AddIntel( 8 )
|
|
SetScreenMsg(FontColour.FONT_MCOLOR_LTGREEN, "Received RIS compensation for documenting the hard- and software of an anti-air installation in Meduna. Amount lowered as sector is no longer government-controlled and thus the information is outdated.")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- types of weather
|
|
Weather =
|
|
{
|
|
WEATHER_FORECAST_NORMAL = 0,
|
|
WEATHER_FORECAST_RAIN = 1,
|
|
WEATHER_FORECAST_THUNDERSHOWERS = 2,
|
|
WEATHER_FORECAST_SANDSTORM = 3,
|
|
WEATHER_FORECAST_SNOW = 4,
|
|
};
|
|
|
|
-- skills
|
|
Skill =
|
|
{
|
|
-- radio operator
|
|
SKILLS_RADIO_ARTILLERY = 0,
|
|
SKILLS_RADIO_JAM = 1,
|
|
SKILLS_RADIO_SCAN_FOR_JAM = 2,
|
|
SKILLS_RADIO_LISTEN = 3,
|
|
SKILLS_RADIO_CALLREINFORCEMENTS = 4,
|
|
SKILLS_RADIO_TURNOFF = 5,
|
|
SKILLS_RADIO_ACTIVATE_TURNCOATS_ALL = 6,
|
|
|
|
SKILLS_INTEL_CONCEAL = 7,
|
|
SKILLS_INTEL_GATHERINTEL = 8,
|
|
SKILLS_CREATE_TURNCOAT = 9,
|
|
SKILLS_ACTIVATE_TURNCOATS = 10,
|
|
SKILLS_ACTIVATE_TURNCOATS_ALL = 11,
|
|
|
|
-- various
|
|
SKILLS_SPOTTER = 12,
|
|
SKILLS_FOCUS = 13,
|
|
SKILLS_DRAG = 14,
|
|
};
|
|
|
|
-- Look up voicelines in Dialogue Control.h, only listing notable ones often used here
|
|
Voiceline =
|
|
{
|
|
QUOTE_SEE_ENEMY = 0,
|
|
QUOTE_HEARD_SOMETHING = 6,
|
|
QUOTE_SPOTTED_SOMETHING_ONE = 11,
|
|
QUOTE_SPOTTED_SOMETHING_TWO = 12,
|
|
QUOTE_OUT_OF_AMMO = 13,
|
|
QUOTE_TAKEN_A_BREATING = 21, -- took a lot of hits this turn
|
|
QUOTE_CLOSE_CALL = 22, -- almost hit by a projectile
|
|
QUOTE_NO_LINE_OF_FIRE = 23, -- really bad chance to hit target
|
|
QUOTE_KILLED_AN_ENEMY = 27,
|
|
QUOTE_HEADSHOT = 33,
|
|
QUOTE_STARTING_TO_WHINE = 40, -- complain: low morale
|
|
|
|
-- these three lines are played at random when we talk to one of our mercs. Despite the name they don't have any special meaning
|
|
QUOTE_NEGATIVE_COMPANY = 41,
|
|
QUOTE_SOCIAL_TRAIT = 44,
|
|
QUOTE_PASSING_DISLIKE = 45,
|
|
|
|
QUOTE_ENEMY_PRESENCE = 59,
|
|
QUOTE_WARNING_OUTSTANDING_ENEMY_AFTER_RT = 60,
|
|
QUOTE_SECTOR_SAFE = 65,
|
|
}
|
|
|
|
-- different dialogue action events
|
|
DialogueActionEvent =
|
|
{
|
|
ADE_DISCOVER_ROOM = 0, -- merc is the 1st one to explore this room, aData1 indicates the room in this event
|
|
ADE_DIALOGUE_REACTION = 1, -- someone else used a line, and we might answer to that, aData1 indicates the profile number in this event, aData2 indicates the specific voice line we react to, aData3 indicates whether this person has been recruited (1) or not(0)
|
|
ADE_MERC_ARRIVES = 2, -- a mercenary arrives in Arulco. aData1 is the profile of the arriving merc, aData2 is 1 if the player hasn't made contact with the rebels yet
|
|
ADE_SECTOR_COMMENTARY = 3, -- similar to the rebel's quotes, this is called upon visiting a sector for the first time (if no rebel does their quote first)
|
|
ADE_MERCHANT_CHAT = 4, -- we greet a merchant (used with non-profile merchants, in order to be a bit more lively), aData1 is the id of the merchant
|
|
ADE_DIALOGUE_NPC_FRIENDLY = 5, -- in a conversation, we can say something when clicking on a button
|
|
ADE_DIALOGUE_NPC_DIRECT = 6,
|
|
ADE_DIALOGUE_NPC_THREATEN = 7,
|
|
ADE_DIALOGUE_NPC_RECRUIT = 8,
|
|
ADE_DIALOGUE_NPC_REPEAT = 9,
|
|
ADE_DIALOGUE_RPC_RECRUIT_SUCCESS = 10, -- we've successfully recruited an RPC, and might comment on that
|
|
ADE_SEX = 11, -- does exactly what you think it does
|
|
ADE_WEATHERCHANGE = 12, -- the weather has changed in the current sector, and we can warn the player about that, aData1 is type of Weather
|
|
ADE_SKILL_RESULT = 13, -- we used a skill, and comment on the result, aData1 is of Skill, aData2 indicates whether it was a success (1) or failure (0)
|
|
ADE_GRENADEWARNING = 14, -- a delayed enemy grenade was dropped nearby, and we can shout a warning, aData1 is the itemnumber of the grenade
|
|
ADE_CONSUMEITEM = 15, -- we consumed an item, aData1 is the item index
|
|
ADE_NPC_DEATH = 16, -- someone died, aData1 is the profile of the dead NPC, aData2 the profile of the killer, aData3 the bodytype of the dead
|
|
ADE_WITNESS_GOOD = 17, -- similar to comment upon buddy doing good. aData1 is the profile of person, aData2 is 0 if we saw a kill, 1 if they passed a skill check (and we're less than 15 tiles away)
|
|
ADE_BANDAGE_PERFORM_BEGIN = 18, -- we bandage someone, aData1 is the profile of person
|
|
ADE_BANDAGE_PERFORM_END = 19, -- we finished bandaging someone, aData1 is the profile of person
|
|
ADE_BANDAGE_RECEIVE_BEGIN = 20, -- someone bandages us, aData1 is the profile of person
|
|
ADE_BANDAGE_RECEIVE_END = 21, -- someone finished bandaging us, aData1 is the profile of person
|
|
ADE_ZOMBIESRISE = 22, -- a new wave of zombies is spawned from corpses
|
|
ADE_SEXUALHARASSMENT = 23, -- the player wants to take the 'strip' command further than we are comfortable with
|
|
ADE_LOCKBOMB = 24, -- merc uses a shaped charge to blow the locks of a door, aData1 indicates whether it was a success (1) or failure (0)
|
|
ADE_SNIPERWARNING = 25, -- merc warns of sniper presence in this sector
|
|
ADE_BOMB_HAS_BEEN_PLANTED = 26, -- we planted a bomb/mine/etc., aData1 is the item index, aData2 indicates whether it was a success (1) or failure (0)
|
|
}
|
|
|
|
-- functions used here:
|
|
-- ubProfile: profile number of merc (don't change that unless you know what to do)
|
|
-- iFaceIndex: index (don't change that unless you know what to do)
|
|
-- path: path and name of soundfile we want to play (in .wav, .ogg or .mp3 format)
|
|
-- text: "Text that should appear"
|
|
-- SetAdditionalDialogue(ubProfile, iFaceIndex, path, text)
|
|
-- Do not use this function in any lua calls outside of HandleAdditionalDialogue(..)!
|
|
--
|
|
-- path: path and name of soundfile we want to play (in .wav or .ogg format)
|
|
-- volume: optional sound volume (65: medium volume, 127: loud), default 65
|
|
-- PlaySound(path, volume)
|
|
|
|
-- handle
|
|
-- sSectorX, sSectorY and bSectorZ indicate the sector coordinates
|
|
-- ubProfile is the merc for whom this is called
|
|
-- iFaceIndex is the face of the merc. DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU ARE DOING!
|
|
-- usEventNr indicates which event from DialogueActionEvent is used here
|
|
-- aData1, aData2, aData3 are additional data, see event description on what they do in each event
|
|
function HandleAdditionalDialogue(sSectorX, sSectorY, bSectorZ, ubProfile, iFaceIndex, usEventNr, aData1, aData2, aData3 )
|
|
|
|
if ( ubProfile == Profil.BUNS_CHAOTIC ) then
|
|
|
|
-- we can 'react' on what lines other people use
|
|
-- this happens when we are in the same sector, awake and concious
|
|
-- aData1 indicates the profile number in this event
|
|
-- aData2 indicates the specific voice line we react to
|
|
-- aData3 indicates whether this person has been recruited (1) or not(0)
|
|
if ( usEventNr == DialogueActionEvent.ADE_DIALOGUE_REACTION ) then
|
|
|
|
if ( aData1 == Profil.FRED ) then
|
|
|
|
if ( aData2 == 12 ) then SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//nicebutharmless.MP3", "Pleasant fellow, I suppose, but too honest for his own good.")
|
|
end
|
|
|
|
elseif ( aData1 == Profil.ELLIOT ) then
|
|
|
|
if ( aData2 == 0 ) then SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//elliot.mp3", "Death doesn't seem to have kept him from talking.")
|
|
end
|
|
|
|
end
|
|
|
|
-- similar to the rebel's quotes, this is called upon visiting a sector for the first time (if no rebel does their quote first)
|
|
elseif ( usEventNr == DialogueActionEvent.ADE_SECTOR_COMMENTARY ) then
|
|
|
|
-- surface sectors
|
|
if ( bSectorZ == 0 ) then
|
|
|
|
-- Alma base
|
|
if ( (sSectorX == 13) and (sSectorY == SectorY.MAP_ROW_H) ) then SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//almabase.mp3", "This must be where the savant has set up shop. Very impressive.")
|
|
|
|
-- Hicks farm
|
|
elseif ( (sSectorX == 10) and (sSectorY == SectorY.MAP_ROW_F) ) then SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//hicksfarm.ogg", "Nothing but crude brutes. The savant would not ally with them... at least... I hope not.")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- aData1 is the itemnumber of the grenade
|
|
elseif ( usEventNr == DialogueActionEvent.ADE_GRENADEWARNING ) then
|
|
|
|
SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//grenadewarning.ogg", "Be careful, it would probably burn your legs right off!")
|
|
|
|
-- someone died, aData1 is the profile of the dead NPC, aData2 the profile of the killer, aData3 the bodytype of the dead
|
|
elseif ( usEventNr == DialogueActionEvent.ADE_NPC_DEATH ) then
|
|
|
|
if ( aData2 == Profil.BUNS_CHAOTIC ) then SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//friendlyfire.MP3", "So sorry. I slipped.")
|
|
|
|
elseif ( (aData1 == Profil.BUZZ) or
|
|
(aData1 == Profil.MELTDOWN) or
|
|
(aData1 == Profil.ANNIE) or
|
|
(aData1 == Profil.MADAME) or
|
|
(aData1 == Profil.DOREEN) ) then
|
|
|
|
SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//likedfemaledeath.MP3", "Her blood will be avenged.")
|
|
|
|
elseif ( (aData1 == Profil.REAPER) or
|
|
(aData1 == Profil.HAYWIRE) or
|
|
(aData1 == Profil.RAZOR) or
|
|
(aData1 == Profil.SLAY) or
|
|
(aData1 == Profil.CARMEN) or
|
|
(aData1 == Profil.JOE) or
|
|
(aData1 == Profil.CHRIS) or
|
|
(aData1 == Profil.KINGPIN) or
|
|
(aData1 == Profil.MIKE) or
|
|
(aData1 == Profil.SKITZ) ) then
|
|
|
|
SetAdditionalDialogue(ubProfile, iFaceIndex, "Speech//Additional//Buns_chaotic//likedmaledeath.MP3", "Very sad. But he was weak.")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- Look up voicelines in Dialogue Control.h, only listing notable ones often used here
|
|
Voiceline =
|
|
{
|
|
QUOTE_SEE_ENEMY = 0,
|
|
QUOTE_KILLED_AN_ENEMY = 27,
|
|
|
|
-- these three lines are played at random when we talk to one of our mercs. Despite the name they don't have any special meaning
|
|
QUOTE_NEGATIVE_COMPANY = 41,
|
|
QUOTE_SOCIAL_TRAIT = 44,
|
|
QUOTE_PASSING_DISLIKE = 45,
|
|
|
|
QUOTE_ENEMY_PRESENCE = 59,
|
|
QUOTE_WARNING_OUTSTANDING_ENEMY_AFTER_RT = 60,
|
|
QUOTE_SECTOR_SAFE = 65,
|
|
}
|
|
|
|
-- This function is used to replace dialogue quotes with new ones. This way we can have more variety - a merc doesn't always use the same lines when something happens.
|
|
-- If a line isn't replaced, it plays normally, so it is a good idea to not always replace lines.
|
|
--
|
|
-- functions used here:
|
|
-- path: path and name of soundfile we want to play (in .wav, .ogg or .mp3 format)
|
|
-- text: "Text that should appear"
|
|
-- SetReplaceDialogue(path, text)
|
|
-- Do not use this function in any lua calls outside of HandleReplaceQuote(..)!
|
|
--
|
|
-- handle
|
|
-- ubProfile is the merc for whom this is called
|
|
-- usQuoteNum is the quote that the game wants to play
|
|
function HandleReplaceQuote( ubProfile, usQuoteNum )
|
|
|
|
|
|
|
|
end
|
|
|
|
-- functions used here:
|
|
--
|
|
-- path: path and name of soundfile we want to play (in .wav, .ogg or .mp3 format)
|
|
-- volume: optional sound volume (65: medium volume, 127: loud), default 65
|
|
-- PlaySound(path, volume)
|
|
|
|
-- handle
|
|
-- sSectorX, sSectorY and bSectorZ indicate the sector coordinates
|
|
-- ubMerchantID is the ID of the merchant for whom this is called
|
|
-- ubBodyType is the character model the merchant uses
|
|
-- usQuoteNum is the event of the dialogue that is supposed to be called
|
|
function HandleNPCMerchantQuote(sSectorX, sSectorY, bSectorZ, ubMerchantID, ubBodyType, usQuoteNum )
|
|
|
|
|
|
|
|
end |