- New Quest: if Kingpin is unaware Maria escaped with the player's help, he enlists the player to kill the DaSilvas

- Moved civ factions for mod compatibility (UC)


git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@2252 4f8fa57e-7814-0410-bad4-adc449f26b7c
This commit is contained in:
Flugente
2015-06-13 17:18:29 +00:00
parent 397a6091f3
commit 31edbbfb97
7 changed files with 252 additions and 23 deletions
+150 -8
View File
@@ -33,6 +33,7 @@ nQuests =
QUEST_23 = 23, -- Start quest 46, End quest 47
QUEST_24 = 24, -- Start quest 48, End quest 49
QUEST_KILL_DEIDRANNA = 25, -- Start quest 50, End quest 51
QUEST_KINGPIN_ANGEL_MARIA = 26,
-- max Quests 254
}
@@ -47,6 +48,9 @@ Profiles =
{
DYNAMO = 66,
CARMEN = 78,
KINGPIN = 86,
MARIA = 88,
ANGEL = 89,
MADAME = 107,
}
@@ -55,23 +59,37 @@ nHistory = {
HISTORY_QUEST_FINISHED = 16,
}
nFacts = {
Facts = {
FACT_MARIA_ESCAPE_NOTICED = 119,
FACT_ESTONI_REFUELLING_POSSIBLE = 277,
FACT_KINGPIN_DEAD = 308,
FACT_KINGPIN_IS_ENEMY = 359,
FACT_BOUNTYHUNTER_SECTOR_1 = 380,
FACT_BOUNTYHUNTER_SECTOR_2 = 381,
FACT_BOUNTYHUNTER_KILLED_1 = 382,
FACT_BOUNTYHUNTER_KILLED_2 = 383,
}
nEvents = {
EVENT_KINGPIN_BOUNTY_INITIAL = 85,
EVENT_KINGPIN_BOUNTY_END_KILLEDTHEM = 86,
EVENT_KINGPIN_BOUNTY_END_TIME_PASSED = 87,
}
local NO_PROFILE = 200
function InternalStartQuest( ubQuest, sSectorX, sSectorY, fUpdateHistory )
if ( CheckQuest(ubQuest) == qStatus.QUESTNOTSTARTED ) then
if ( CheckQuest(ubQuest) == qStatus.QUESTNOTSTARTED ) then
SetQuest( ubQuest, qStatus.QUESTINPROGRESS )
if ( fUpdateHistory == true) then
if ( is_networked == 0 ) then
SetHistoryFact( nHistory.HISTORY_QUEST_STARTED, ubQuest, GetWorldTotalMin(), sSectorX, sSectorY )
end
end
if ( fUpdateHistory == true) then
if ( is_networked == 0 ) then
SetHistoryFact( nHistory.HISTORY_QUEST_STARTED, ubQuest, GetWorldTotalMin(), sSectorX, sSectorY )
end
end
else
SetQuest( ubQuest, qStatus.QUESTINPROGRESS )
end
@@ -167,7 +185,131 @@ function InternalEndQuest( ubQuest, sSectorX, sSectorY, fUpdateHistory )
-- still in the brothel with Maria...
SetNPCData1(Profiles.MADAME, 0)
SetNPCData2(Profiles.MADAME, 0)
-- if the escape was not noticed, initiate 'bounty hunter' quest. Set a timer, at some point in the future, if we aren't hostile to him etc.,
if ( (CheckFact( Facts.FACT_MARIA_ESCAPE_NOTICED, 0 ) == false) and (CheckFact( Facts.FACT_KINGPIN_DEAD, 0 ) == false) and
(CheckFact( Facts.FACT_KINGPIN_IS_ENEMY, 0 ) == false) and (CheckMercIsDead ( Profiles.KINGPIN ) == false) ) then
-- start the quest
StartQuest( nQuests.QUEST_KINGPIN_ANGEL_MARIA, sSectorX, sSectorY )
-- set email from kingpin with a small delay
-- also set up the end of the quest in 7 days
AddFutureDayStrategicEvent(nEvents.EVENT_KINGPIN_BOUNTY_INITIAL, 120, 0, 0)
AddFutureDayStrategicEvent(nEvents.EVENT_KINGPIN_BOUNTY_END_TIME_PASSED, 120, 0, 7)
-- the silva siblings are placed in one of several sectors and hide there for a week
-- possible sectors: a11, b5, b6, b8, b12, b14, c3, d7
-- two groups of bounty hunters are hunting them and will be placed in those sectors (but not in the sector the DaSilvas are in)
-- if the player kills off all bounty hunters, the Silvas can escape after one week
-- select location randomly
local sector_silva = math.random(1, 8)
local sector_hunter1 = math.random(1, 8)
local sector_hunter2 = math.random(1, 8)
-- we have to make sure no sector is picked twice
while (sector_silva == sector_hunter1) do
sector_hunter1 = math.random(1, 8)
end
while (sector_silva == sector_hunter2 or sector_hunter1 == sector_hunter2) do
sector_hunter2 = math.random(1, 8)
end
if sector_silva == 1 then
-- A11
AddNPCtoSector (Profiles.MARIA,11,1,0)
AddNPCtoSector (Profiles.ANGEL,11,1,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 11245)
SetProfileStrategicInsertionData(Profiles.ANGEL, 10765)
elseif sector_silva == 2 then
-- B5
AddNPCtoSector (Profiles.MARIA,5,2,0)
AddNPCtoSector (Profiles.ANGEL,5,2,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 9050)
SetProfileStrategicInsertionData(Profiles.ANGEL, 8088)
elseif sector_silva == 3 then
-- B6
AddNPCtoSector (Profiles.MARIA,6,2,0)
AddNPCtoSector (Profiles.ANGEL,6,2,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 15585)
SetProfileStrategicInsertionData(Profiles.ANGEL, 15906)
elseif sector_silva == 4 then
-- B8
AddNPCtoSector (Profiles.MARIA,8,2,0)
AddNPCtoSector (Profiles.ANGEL,8,2,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 7092)
SetProfileStrategicInsertionData(Profiles.ANGEL, 7089)
elseif sector_silva == 5 then
-- B12
AddNPCtoSector (Profiles.MARIA,12,2,0)
AddNPCtoSector (Profiles.ANGEL,12,2,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 4870)
SetProfileStrategicInsertionData(Profiles.ANGEL, 4557)
elseif sector_silva == 6 then
-- B14
AddNPCtoSector (Profiles.MARIA,14,2,0)
AddNPCtoSector (Profiles.ANGEL,14,2,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 16685)
SetProfileStrategicInsertionData(Profiles.ANGEL, 16045)
elseif sector_silva == 7 then
-- C3
AddNPCtoSector (Profiles.MARIA,3,3,0)
AddNPCtoSector (Profiles.ANGEL,3,3,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 12345)
SetProfileStrategicInsertionData(Profiles.ANGEL, 12338)
elseif sector_silva == 8 then
-- D7
AddNPCtoSector (Profiles.MARIA,7,4,0)
AddNPCtoSector (Profiles.ANGEL,7,4,0)
SetProfileStrategicInsertionData(Profiles.MARIA, 19133)
SetProfileStrategicInsertionData(Profiles.ANGEL, 19766)
end
if sector_hunter1 == 1 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(11, 1) )
elseif sector_hunter1 == 2 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(5, 2) )
elseif sector_hunter1 == 3 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(6, 2) )
elseif sector_hunter1 == 4 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(8, 2) )
elseif sector_hunter1 == 5 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(12, 2) )
elseif sector_hunter1 == 6 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(14, 2) )
elseif sector_hunter1 == 7 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(3, 3) )
elseif sector_hunter1 == 8 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_1, SECTOR(7, 4) )
end
if sector_hunter2 == 1 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(11, 1) )
elseif sector_hunter2 == 2 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(5, 2) )
elseif sector_hunter2 == 3 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(6, 2) )
elseif sector_hunter2 == 4 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(8, 2) )
elseif sector_hunter2 == 5 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(12, 2) )
elseif sector_hunter2 == 6 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(14, 2) )
elseif sector_hunter2 == 7 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(3, 3) )
elseif sector_hunter2 == 8 then
SetFact(Facts.FACT_BOUNTYHUNTER_SECTOR_2, SECTOR(7, 4) )
end
end
end
if ( ubQuest == nQuests.QUEST_KINGPIN_ANGEL_MARIA ) then
-- once this quest is over, make sure Maria and Angel are gone
SetCharacterSectorX(Profiles.MARIA, 0)
SetCharacterSectorY(Profiles.MARIA, 0)
SetCharacterSectorX(Profiles.ANGEL, 0)
SetCharacterSectorY(Profiles.ANGEL, 0)
end
end