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
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;
|
|
}
|
|
|