Interaction - Mission: When Wills Collide

This commit is contained in:
claywar 2022-08-13 15:28:38 -04:00
parent bfd72b951f
commit 36e95d9cf4
No known key found for this signature in database
GPG key ID: B4D54C9CB79530F0
5 changed files with 180 additions and 2 deletions

View file

@ -368,7 +368,7 @@ xi.mission.id =
PILLAR_OF_HOPE = 42, -- ±
GLIMMER_OF_LIFE = 43, -- ±
TIME_SLIPS_AWAY = 44, -- ±
WHEN_WILLS_COLLIDE = 45,
WHEN_WILLS_COLLIDE = 45, -- ±
WHISPERS_OF_DAWN = 46,
A_DREAMY_INTERLUDE = 47,
CAIT_IN_THE_WOODS = 48,

View file

@ -0,0 +1,126 @@
-----------------------------------
-- When Wills Collide
-- Wings of the Goddess Mission 46
-----------------------------------
-- !addmission 5 45
-- Veridical Conflux : !pos -142.279 -6.749 585.239 89
-----------------------------------
require('scripts/globals/items')
require('scripts/globals/keyitems')
require('scripts/globals/missions')
require('scripts/globals/interaction/mission')
require('scripts/globals/zone')
-----------------------------------
local mission = Mission:new(xi.mission.log_id.WOTG, xi.mission.id.wotg.WHEN_WILLS_COLLIDE)
mission.reward =
{
nextMission = { xi.mission.log_id.WOTG, xi.mission.id.wotg.WHISPERS_OF_DAWN },
}
mission.sections =
{
{
check = function(player, currentMission, missionStatus, vars)
return currentMission == mission.missionId
end,
[xi.zone.GRAUBERG_S] =
{
['Veridical_Conflux'] =
{
onTrade = function(player, npc, trade)
if
not player:hasKeyItem(xi.ki.BOTTLED_PUNCH_BUG) and
npcUtil.tradeHasExactly(trade, xi.items.PUNCH_BUG)
then
return mission:progressEvent(42, 76, 0, 1267351, 120, 0, 8323092, 0, 0)
end
end,
onTrigger = function(player, npc)
if player:hasKeyItem(xi.ki.BOTTLED_PUNCH_BUG) then
return mission:event(29, 89, 6)
else
return mission:event(41, 89, 23, 1756)
end
end,
},
onEventFinish =
{
[29] = function(player, csid, option, npc)
if option == 99 then
player:setPos(-700.042, 0.4, -441.301, 192, xi.zone.WALK_OF_ECHOES)
end
end,
[42] = function(player, csid, option, npc)
npcUtil.giveKeyItem(player, xi.ki.BOTTLED_PUNCH_BUG)
end,
},
},
[xi.zone.WALK_OF_ECHOES] =
{
['Ornate_Door'] =
{
onTrigger = function(player, npc)
-- NOTE: BCNM Entry Event: 32000, Params 0, 300, 200, 1 following
-- the status 0 event below. Status of 1, along with the Bottled
-- Punch Bug KI is required, and KI is lost on entry.
if mission:getVar(player, 'Status') == 0 then
return mission:progressEvent(1)
end
end,
},
onZoneIn =
{
function(player, prevZone)
if mission:getVar(player, 'Status') == 2 then
return 2
end
end,
},
onEventUpdate =
{
[1] = function(player, csid, option, npc)
if option == 5 then
player:updateEvent(12, 10, 305, 196, 320, 847, 450, 1)
end
end,
[2] = function(player, csid, option, npc)
if option == 5 then
player:updateEvent(119, 10, 305, 196, 320, 847, 450, 0)
end
end,
},
onEventFinish =
{
[1] = function(player, csid, option, npc)
mission:setVar(player, 'Status', 1)
end,
[2] = function(player, csid, option, npc)
mission:complete(player)
end,
[32001] = function(player, csid, option, npc)
-- TODO: Add battlefieldWin localVar, and check here once the ID has been
-- implemented.
mission:setVar(player, 'Status', 2)
player:setPos(-700.063, -17.6, -331.903, 64, xi.zone.WALK_OF_ECHOES)
end,
},
},
},
}
return mission

View file

@ -0,0 +1,28 @@
-----------------------------------
-- Area : Pashhow Marshlands [S] (90)
-- NPC : Corroded Gate
-----------------------------------
require("scripts/globals/zone")
-----------------------------------
local entity = {}
entity.onTrade = function(player, npc, trade)
end
entity.onTrigger = function(player, npc)
player:startEvent(102)
end
entity.onEventUpdate = function(player, csid, option)
end
entity.onEventFinish = function(player, csid, option)
if
csid == 102 and
option == 1
then
player:setPos(-297.365, 1.7, 96.049, 0, xi.zone.BEADEAUX_S)
end
end
return entity

View file

@ -0,0 +1,24 @@
-----------------------------------
-- Area: Walk Of Echoes
-- NPC: Veridical Conflux (Grauberg S Exit)
-- !pos -699 0 -442 182
-----------------------------------
local entity = {}
entity.onTrade = function(player, npc, trade)
end
entity.onTrigger = function(player, npc)
player:startEvent(3)
end
entity.onEventUpdate = function(player, csid, option)
end
entity.onEventFinish = function(player, csid, option)
if csid == 3 and option == 99 then
player:setPos(-142.915, -6.75, 580.452, 96, xi.zone.GRAUBERG_S)
end
end
return entity

View file

@ -21653,7 +21653,7 @@ INSERT INTO `npc_list` VALUES (17523314,'blank',' ',0,0.000,0.000,0.000,0,40
INSERT INTO `npc_list` VALUES (17523315,'blank','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1);
INSERT INTO `npc_list` VALUES (17523316,'blank',' ',0,0.000,0.000,0.000,0,40,40,0,0,0,6,27,0x0000340000000000000000000000000000000000,32,NULL,1);
INSERT INTO `npc_list` VALUES (17523317,'blank',' ',0,0.000,0.000,0.000,0,40,40,0,0,0,6,27,0x0000340000000000000000000000000000000000,32,NULL,1);
INSERT INTO `npc_list` VALUES (17523318,'Veridical_Conflux','Veridical Conflux',192,-700.074,0.399,-444.099,32769,50,50,0,0,96,0,3,0x0000110900000000000000000000000000000000,2,NULL,1);
INSERT INTO `npc_list` VALUES (17523318,'Veridical_Conflux_G','Veridical Conflux',192,-700.074,0.399,-444.099,32769,50,50,0,0,96,0,3,0x0000110900000000000000000000000000000000,2,NULL,1);
INSERT INTO `npc_list` VALUES (17523319,'blank',' ',215,-702.325,0.399,-481.664,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,NULL,1);
INSERT INTO `npc_list` VALUES (17523320,'Regal_Pawprints','Regal Pawprints',61,-704.643,-17.600,-324.424,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,NULL,1);
INSERT INTO `npc_list` VALUES (17523321,'blank',' ',0,0.000,0.000,0.000,0,40,40,0,0,0,6,27,0x0000340000000000000000000000000000000000,32,NULL,1);