You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.4 KiB

local API, _, L = ImmersionAPI, ...;
L.Inputs = {
accept = function(self)
local text = self.TalkBox.TextFrame.Text
local numActive = self.TitleButtons:GetNumActive()
if ( not self:IsModifierDown() and text:GetNumRemaining() > 1 and text:IsSequence() ) then
text:ForceNext()
elseif ( self.lastEvent == 'GOSSIP_SHOW' and numActive < 1 ) then
API:CloseGossip()
elseif ( self.lastEvent == 'GOSSIP_SHOW' and numActive == 1 ) then
API:SelectGossipOption(1)
elseif ( numActive > 1 ) then
self:SelectBestOption()
else
self.TalkBox:OnLeftClick()
end
end,
reset = function(self)
self.TalkBox.TextFrame.Text:RepeatTexts()
end,
goodbye = function(self)
API:CloseGossip()
API:CloseQuest()
end,
number = function(self, id)
if self.hasItems then
local choiceIterator = 0
for _, item in ipairs(self.TalkBox.Elements.Content.RewardsFrame.Buttons) do
if item:IsVisible() and item.type == 'choice' then
choiceIterator = choiceIterator + 1
if choiceIterator == id then
item:Click()
return
end
end
end
else
local button = self.TitleButtons.Buttons[id]
if button then
button.Hilite:SetAlpha(1)
button:Click()
button:OnLeave()
PlaySound(SOUNDKIT.IG_QUEST_LIST_SELECT)
end
end
end,
}
L.ModifierStates = {
SHIFT = IsShiftKeyDown;
CTRL = IsControlKeyDown;
ALT = IsAltKeyDown;
NOMOD = function() return false end;
}