Prevent double-adjusting food tooltips while eating
This commit is contained in:
parent
dea670a975
commit
5e35bb73fe
1 changed files with 10 additions and 2 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
local adjusted = {}
|
||||||
|
|
||||||
local function adjustFoodNotPicky(item)
|
local function adjustFoodNotPicky(item)
|
||||||
-- Cancel out any negative effects
|
-- Cancel out any negative effects
|
||||||
if item:getUnhappyChange() > 0 then
|
if item:getUnhappyChange() > 0 then
|
||||||
|
|
@ -112,7 +114,9 @@ function ISToolTipInv:render()
|
||||||
local origUnhappyChange
|
local origUnhappyChange
|
||||||
local origBoredomChange
|
local origBoredomChange
|
||||||
|
|
||||||
if self.item:IsFood() then
|
isAdjusted = adjusted[self.item:getType()]
|
||||||
|
|
||||||
|
if self.item:IsFood() and not isAdjusted then
|
||||||
origUnhappyChange = self.item:getUnhappyChangeUnmodified()
|
origUnhappyChange = self.item:getUnhappyChangeUnmodified()
|
||||||
origBoredomChange = self.item:getBoredomChangeUnmodified()
|
origBoredomChange = self.item:getBoredomChangeUnmodified()
|
||||||
|
|
||||||
|
|
@ -133,7 +137,7 @@ function ISToolTipInv:render()
|
||||||
-- Call original function
|
-- Call original function
|
||||||
base_tooltip_render(self)
|
base_tooltip_render(self)
|
||||||
|
|
||||||
if self.item:IsFood() then
|
if self.item:IsFood() and not isAdjusted then
|
||||||
-- Reset food effects
|
-- Reset food effects
|
||||||
self.item:setUnhappyChange(origUnhappyChange)
|
self.item:setUnhappyChange(origUnhappyChange)
|
||||||
self.item:setBoredomChange(origBoredomChange)
|
self.item:setBoredomChange(origBoredomChange)
|
||||||
|
|
@ -151,8 +155,10 @@ function ISEatFoodAction:start()
|
||||||
local traits = self.character:getTraits()
|
local traits = self.character:getTraits()
|
||||||
if traits:contains("NotAPickyEater") then
|
if traits:contains("NotAPickyEater") then
|
||||||
adjustFoodNotPicky(self.item)
|
adjustFoodNotPicky(self.item)
|
||||||
|
adjusted[self.item:getType()] = true
|
||||||
elseif traits:contains("RefinedPalate") then
|
elseif traits:contains("RefinedPalate") then
|
||||||
adjustFoodVeryPicky(self.item, self.percentage)
|
adjustFoodVeryPicky(self.item, self.percentage)
|
||||||
|
adjusted[self.item:getType()] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Call original function
|
-- Call original function
|
||||||
|
|
@ -173,6 +179,7 @@ function ISEatFoodAction:stop()
|
||||||
local adjust = 1 - (self.proportion * percentage)
|
local adjust = 1 - (self.proportion * percentage)
|
||||||
self.item:setUnhappyChange(self.origUnhappyChange * adjust)
|
self.item:setUnhappyChange(self.origUnhappyChange * adjust)
|
||||||
self.item:setBoredomChange(self.origBoredomChange * adjust)
|
self.item:setBoredomChange(self.origBoredomChange * adjust)
|
||||||
|
adjusted[self.item:getType()] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
local base_eat_perform = ISEatFoodAction.perform
|
local base_eat_perform = ISEatFoodAction.perform
|
||||||
|
|
@ -185,4 +192,5 @@ function ISEatFoodAction:perform()
|
||||||
local adjust = 1 - self.proportion
|
local adjust = 1 - self.proportion
|
||||||
self.item:setUnhappyChange(self.origUnhappyChange * adjust)
|
self.item:setUnhappyChange(self.origUnhappyChange * adjust)
|
||||||
self.item:setBoredomChange(self.origBoredomChange * adjust)
|
self.item:setBoredomChange(self.origBoredomChange * adjust)
|
||||||
|
adjusted[self.item:getType()] = nil
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue