To be honest they aren't exactly observations from in-game... I didn't notice these until I started browsing the code myself either (I frequently used Double Time Bonus and Greed without noticing). I did confirm them in-game.
The fixes would be just a few lines of change. For example, in Game.lua
-- time bonus (Golden Cards last 10 seconds longer)
if Game.CardsSelected[cards[11].index] then
self.GoldenEnableTime = self.GoldenEnableTime + 10
end
-- double time bonus (Golden Cards last 20 seconds longer)
if Game.CardsSelected[cards[12].index] then
--self.GoldenEnableTime = self.GoldenEnableTime + 20
end
to
-- double time bonus (Golden Cards last 20 seconds longer)
if Game.CardsSelected[cards[12].index] then
self.GoldenEnableTime = self.GoldenEnableTime + 20
else
-- time bonus (Golden Cards last 10 seconds longer)
if Game.CardsSelected[cards[11].index] then
self.GoldenEnableTime = self.GoldenEnableTime + 10
end
end
and in CActor.lua
if Game.StealHealth then
to
if Game.StealHealth and Player.Health < 250 then
I'm still baffled at Greed though. As you said the lines for adding gold are right next to each other, which makes it look like it's really intended to work like this. Ah well, greed is evil I guess.