landsandboat/scripts/tests/systems/interaction_framework.lua
sruon 6b4ef12dca xi_test: LSB test framework
Co-Authored-By: KnowOne134 <35616771+KnowOne134@users.noreply.github.com>
Co-Authored-By: InoUno <774909+InoUno@users.noreply.github.com>
Co-Authored-By: Corey <2593549+cocosolos@users.noreply.github.com>
2025-09-06 00:03:15 -06:00

38 lines
1.4 KiB
Lua

describe('Interaction Framework', function()
it('completes Shady Business quest with zinc ore trade', function()
---@type CClientEntityPair
local player = xi.test.world:spawnPlayer()
-- Set prerequisite: Beauty and the Galka quest must be completed
player:addQuest(xi.questLog.BASTOK, xi.quest.id.bastok.BEAUTY_AND_THE_GALKA)
player:completeQuest(xi.questLog.BASTOK, xi.quest.id.bastok.BEAUTY_AND_THE_GALKA)
-- Go to Port Bastok and talk to Talib
player:gotoZone(xi.zone.PORT_BASTOK)
player.entities:gotoAndTrigger('Talib', { eventId = 90 })
-- Verify quest was started
player.assert:hasQuest(xi.questLog.BASTOK, xi.quest.id.bastok.SHADY_BUSINESS)
-- Add 4 chunks of zinc ore to inventory
player:addItem(xi.item.CHUNK_OF_ZINC_ORE, 4)
-- Trade the zinc ore to complete the quest
player.actions:tradeNpc('Talib',
{
{
itemId = xi.item.CHUNK_OF_ZINC_ORE,
quantity = 4,
}
},
{ eventId = 91 })
-- Verify quest completion and rewards
player.assert
:hasCompletedQuest(xi.questLog.BASTOK, xi.quest.id.bastok.SHADY_BUSINESS)
:hasGil(350) -- Quest reward is 350 gil
-- Verify the zinc ore was consumed
player.assert.no:hasItem(xi.item.CHUNK_OF_ZINC_ORE)
end)
end)