diff --git a/game.cpp b/game.cpp index b6effc65..44f541b9 100644 --- a/game.cpp +++ b/game.cpp @@ -7281,7 +7281,7 @@ EX bool collectItem(cell *c2, bool telekinesis IS(false)) { it = itOrbSpeed; } if(c2->land == laAsteroids) oc = 10; - if(markOrb(itOrbIntensity)) oc = oc * 6 / 5; + if(markOrb(itOrbIntensity)) oc = intensify(oc); if(!items[it]) items[it]++; items[it] += oc; } diff --git a/help.cpp b/help.cpp index 55243e2e..5392457b 100644 --- a/help.cpp +++ b/help.cpp @@ -354,6 +354,9 @@ EX string generateHelpForItem(eItem it) { if(it == itOrbWinter) help += XLAT("\n\nThis orb also allows you to collect items encased in ice."); + + if(it == itOrbIntensity && inv::on) + help += XLAT("\n\nIn the Orb Strategy Mode, the effect is increased to +100%."); if(it == itOrbEmpathy) { int cnt = 0; diff --git a/orbs.cpp b/orbs.cpp index c68548ab..2f0ecfa7 100644 --- a/orbs.cpp +++ b/orbs.cpp @@ -69,12 +69,16 @@ EX void empathyMove(const movei& mi) { } } +EX int intensify(int val) { + return inv::on ? 2 * val : val * 6 / 5; + } + EX bool reduceOrbPower(eItem it, int cap) { if(items[it] && (lastorbused[it] || (it == itOrbShield && items[it]>3) || !markOrb(itOrbTime))) { items[it] -= multi::activePlayers(); if(isHaunted(cwt.at->land)) survivalist = false; if(items[it] < 0) items[it] = 0; - if(items[it] > cap && markOrb(itOrbIntensity)) cap = cap * 6 / 5; + if(items[it] > cap && markOrb(itOrbIntensity)) cap = intensify(cap); if(items[it] > cap && timerghost) items[it] = cap; if(items[it] == 0 && it == itOrbLove) princess::bringBack(); @@ -1377,7 +1381,7 @@ EX int orbcharges(eItem it) { case itOrbChoice: return 60; case itOrbIntensity: - return 50; + return inv::on ? 150 : 50; case itOrbWinter: // "pickup-winter" return inv::on ? 45 : 30; break;