diff --git a/game/engines/default/data/gfx/metal-ui/button_sel1.png b/game/engines/default/data/gfx/metal-ui/button_sel1.png index 84024fd45c6d2d7dd45741ce848acb69caa14d27..df310ebba59b03e84d4a841efaadc7f78674723a 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel1.png and b/game/engines/default/data/gfx/metal-ui/button_sel1.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel2.png b/game/engines/default/data/gfx/metal-ui/button_sel2.png index 80490c979142f9be9b4c33d64db8c859edff00e5..01918e11db8acc3088d3c26841472a04aca7f0ef 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel2.png and b/game/engines/default/data/gfx/metal-ui/button_sel2.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel3.png b/game/engines/default/data/gfx/metal-ui/button_sel3.png index 2b36e22ca5c0db56a4aa8044451d30337177f2e6..bb57189ce33536ecfd2cbacd4171da3e814da42c 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel3.png and b/game/engines/default/data/gfx/metal-ui/button_sel3.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel4.png b/game/engines/default/data/gfx/metal-ui/button_sel4.png index 3748d5f7458f207b3b7200d1fe853907f9691d65..75ffcf1ffc86bf32aed3aa8be098cfd77e615b12 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel4.png and b/game/engines/default/data/gfx/metal-ui/button_sel4.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel5.png b/game/engines/default/data/gfx/metal-ui/button_sel5.png index 2a03675556a4645a9c1733a02fb967556e09bb4b..11f8b48e9171b98910cc33399cf7520767ef071b 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel5.png and b/game/engines/default/data/gfx/metal-ui/button_sel5.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel6.png b/game/engines/default/data/gfx/metal-ui/button_sel6.png index 1fc0d7f740b4bca7e915d05f77d7e8892b4cf3a7..d62c413cb939bda591fed8f465481fd343e0a506 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel6.png and b/game/engines/default/data/gfx/metal-ui/button_sel6.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel7.png b/game/engines/default/data/gfx/metal-ui/button_sel7.png index 3cb79bd2878b4babe1ac41fc66d0ed68744be32a..4188109f6646f2c31aebf72e60aa2569df1e48ef 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel7.png and b/game/engines/default/data/gfx/metal-ui/button_sel7.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel8.png b/game/engines/default/data/gfx/metal-ui/button_sel8.png index 8f127091610d7de9fb7d5beedc3c660456cc0e8b..ca0b93e73ccae551363dcc633197299b15012012 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel8.png and b/game/engines/default/data/gfx/metal-ui/button_sel8.png differ diff --git a/game/engines/default/data/gfx/metal-ui/button_sel9.png b/game/engines/default/data/gfx/metal-ui/button_sel9.png index 3a37a9c601008a1050b148cbc71cf16c19c3ea56..0457798ea548f6616031b785daf0f2f0b8462dd9 100644 Binary files a/game/engines/default/data/gfx/metal-ui/button_sel9.png and b/game/engines/default/data/gfx/metal-ui/button_sel9.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel1.png b/game/engines/default/data/gfx/metal-ui/heading-sel1.png index 1ebbff53bbb77eca3123682d7b543f9251caa2ae..0fbc516f762e85adcf8433f0a67627e170755510 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel1.png and b/game/engines/default/data/gfx/metal-ui/heading-sel1.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel2.png b/game/engines/default/data/gfx/metal-ui/heading-sel2.png index 62367cc08e41624f8fe3cc073a3a0586c3a8af01..4fd94b838b28e8dc9679a1ca7735fd58bfe168fa 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel2.png and b/game/engines/default/data/gfx/metal-ui/heading-sel2.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel3.png b/game/engines/default/data/gfx/metal-ui/heading-sel3.png index b840b751a78a0500146f86de49e76e2010853dbb..16bce75537e8b6a243595a61ae97eed15ef5918f 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel3.png and b/game/engines/default/data/gfx/metal-ui/heading-sel3.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel4.png b/game/engines/default/data/gfx/metal-ui/heading-sel4.png index 947beb5bf9964d3cab0c2ec2c2351f89018a98d9..343df5755c73262174dff77d3399413d99a0115c 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel4.png and b/game/engines/default/data/gfx/metal-ui/heading-sel4.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel5.png b/game/engines/default/data/gfx/metal-ui/heading-sel5.png index 04f4c21230f708e3f6c37c90176e2fad65379526..230a85d426d2e6de05dee7e09f9512dc158a28fc 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel5.png and b/game/engines/default/data/gfx/metal-ui/heading-sel5.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel6.png b/game/engines/default/data/gfx/metal-ui/heading-sel6.png index 622bbb64da2f2c672f4a5ac7bb49ba29ae0e8dc3..bfacf9e87201f7fa9e6f8315eddf4e3b7e464936 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel6.png and b/game/engines/default/data/gfx/metal-ui/heading-sel6.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel7.png b/game/engines/default/data/gfx/metal-ui/heading-sel7.png index 7f0837d0488413e270ae63dcf8628795b5511e3b..654f6cdccab8ca20b4ae52825d9ea0a5f86f592b 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel7.png and b/game/engines/default/data/gfx/metal-ui/heading-sel7.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel8.png b/game/engines/default/data/gfx/metal-ui/heading-sel8.png index c4c6b326096f973b52f751e0a2a1536462c00e74..106baf97ac31f19d80b16fcf2ae0c2362e4d5af3 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel8.png and b/game/engines/default/data/gfx/metal-ui/heading-sel8.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading-sel9.png b/game/engines/default/data/gfx/metal-ui/heading-sel9.png index 65f516593e580b6ad5445aeaf4bb8f997f9ca024..1a1e0d49c0d5b1ba49b054da0df34eab10044e41 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading-sel9.png and b/game/engines/default/data/gfx/metal-ui/heading-sel9.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading1.png b/game/engines/default/data/gfx/metal-ui/heading1.png index b40dc3a37ee947ea49c340655f6424eb4bfe8fb5..fbd6f5a3be2cfb7120fe77be3c6bfdd0f18ff4dc 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading1.png and b/game/engines/default/data/gfx/metal-ui/heading1.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading2.png b/game/engines/default/data/gfx/metal-ui/heading2.png index 290697b3a72d3559b6ca519b187aea0c31473e1e..2c020a4f91cc2af9dea25feef832eeb1dfc2a07e 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading2.png and b/game/engines/default/data/gfx/metal-ui/heading2.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading3.png b/game/engines/default/data/gfx/metal-ui/heading3.png index 6b749e1ca37a23045d6116a386f2b683bb6a0875..17cacc9f8cc53015eb98f8346279abb77a55e7c0 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading3.png and b/game/engines/default/data/gfx/metal-ui/heading3.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading4.png b/game/engines/default/data/gfx/metal-ui/heading4.png index 216b7ddd5c367177b55d423fe718d42b4c412822..a76967b195cd4e05b99144c7cb15994e65b2c1c3 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading4.png and b/game/engines/default/data/gfx/metal-ui/heading4.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading5.png b/game/engines/default/data/gfx/metal-ui/heading5.png index c3e4fdc67128190b484d7048bfce85f938d16276..ba7069ab3c5f0123e22c25c61be97e42e7640c3a 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading5.png and b/game/engines/default/data/gfx/metal-ui/heading5.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading6.png b/game/engines/default/data/gfx/metal-ui/heading6.png index 9bdba55f06b45b7920de15c29b2488c010cef2ad..fe93cf83de74c5ed6a63e3c269f3ab0d8dbc074e 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading6.png and b/game/engines/default/data/gfx/metal-ui/heading6.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading7.png b/game/engines/default/data/gfx/metal-ui/heading7.png index 306bc50a9d3fa6234895c71cc55fff2e7b0bce75..c80452c6f9cf1006b46b2b1961fed2a72f3b7a41 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading7.png and b/game/engines/default/data/gfx/metal-ui/heading7.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading8.png b/game/engines/default/data/gfx/metal-ui/heading8.png index 5ea9669eba93ba751d9052a363c4918321ad45bc..b026a456c6aa228de823e6fd40201475da99740b 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading8.png and b/game/engines/default/data/gfx/metal-ui/heading8.png differ diff --git a/game/engines/default/data/gfx/metal-ui/heading9.png b/game/engines/default/data/gfx/metal-ui/heading9.png index efe939e55a3b48664a142a033c32d0e34ed63f6f..ef36aaa0b01e4a476a85cc6511ee32b4655e32fd 100644 Binary files a/game/engines/default/data/gfx/metal-ui/heading9.png and b/game/engines/default/data/gfx/metal-ui/heading9.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel1.png b/game/engines/default/data/gfx/metal-ui/textbox-sel1.png index ba6f34474bcbdb3e713331c99783adda0160e9da..528da57bbb15a3b533a894e07867edc52d6a896b 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel1.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel1.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel2.png b/game/engines/default/data/gfx/metal-ui/textbox-sel2.png index c1b6dceb8556dfe7ec0077fc2b593c3f8f9e54c9..220d48143038866034029d4c59eb73b6bdf03def 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel2.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel2.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel3.png b/game/engines/default/data/gfx/metal-ui/textbox-sel3.png index bee13becca58729e4a8241e00b4a36fae9c465fe..665a1523a39ec97f20168afc0e7a1349ada1caf9 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel3.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel3.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel4.png b/game/engines/default/data/gfx/metal-ui/textbox-sel4.png index 5edf3c5916694610605ae0511e63f91c2a2a6d0a..ba2160ef8aa676e81e7d0cae61ae3aae373fe76c 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel4.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel4.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel6.png b/game/engines/default/data/gfx/metal-ui/textbox-sel6.png index 0a999efae3022d3b5ec8081f53eba0b6a6227c8b..1fe3f0b4e75a11a0da6374c9094889680486d733 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel6.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel6.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel7.png b/game/engines/default/data/gfx/metal-ui/textbox-sel7.png index ea080fdc32dda7ef6c798c4edf46259293a6284d..d0e228ff084ec8a21cfe2812303029df8324e425 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel7.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel7.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel8.png b/game/engines/default/data/gfx/metal-ui/textbox-sel8.png index 01c1487ab49b71b741d6960d3b350e752805af74..7d4116f55a0f755297b83aaafdfb08180bee6b37 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel8.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel8.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox-sel9.png b/game/engines/default/data/gfx/metal-ui/textbox-sel9.png index bbe56b5ee49ca57fcec844ac319f74ccda87e442..36d1c44cc40f15a8c9b43ff538389bba6ba664b7 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox-sel9.png and b/game/engines/default/data/gfx/metal-ui/textbox-sel9.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox1.png b/game/engines/default/data/gfx/metal-ui/textbox1.png index 4498ce2db1f44bde38877b70f5aea8407edb156e..ba6f34474bcbdb3e713331c99783adda0160e9da 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox1.png and b/game/engines/default/data/gfx/metal-ui/textbox1.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox2.png b/game/engines/default/data/gfx/metal-ui/textbox2.png index 3babbb349bf58d2a967f37f80a795126823c2bd5..c1b6dceb8556dfe7ec0077fc2b593c3f8f9e54c9 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox2.png and b/game/engines/default/data/gfx/metal-ui/textbox2.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox3.png b/game/engines/default/data/gfx/metal-ui/textbox3.png index afc57c3d199e5ec1111c22d49bcbf0ddc6619539..bee13becca58729e4a8241e00b4a36fae9c465fe 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox3.png and b/game/engines/default/data/gfx/metal-ui/textbox3.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox4.png b/game/engines/default/data/gfx/metal-ui/textbox4.png index b6b4fcb2f6f611f4698da7ab74d357074c15f05d..5edf3c5916694610605ae0511e63f91c2a2a6d0a 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox4.png and b/game/engines/default/data/gfx/metal-ui/textbox4.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox5.png b/game/engines/default/data/gfx/metal-ui/textbox5.png index 1e25479fa6a4c9a49b8a1100324a3d1014507813..e5e95412ea3c312d6632f263d56de2aebffe3438 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox5.png and b/game/engines/default/data/gfx/metal-ui/textbox5.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox6.png b/game/engines/default/data/gfx/metal-ui/textbox6.png index 703388507cb8a3cd9dbd0a7e70e996954ce3dcf7..0a999efae3022d3b5ec8081f53eba0b6a6227c8b 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox6.png and b/game/engines/default/data/gfx/metal-ui/textbox6.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox7.png b/game/engines/default/data/gfx/metal-ui/textbox7.png index d69057100f2dadef564d73521a6386401e869fd8..ea080fdc32dda7ef6c798c4edf46259293a6284d 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox7.png and b/game/engines/default/data/gfx/metal-ui/textbox7.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox8.png b/game/engines/default/data/gfx/metal-ui/textbox8.png index c27a3f4b8abe8b73c9e37619017c41cf855cf72d..01c1487ab49b71b741d6960d3b350e752805af74 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox8.png and b/game/engines/default/data/gfx/metal-ui/textbox8.png differ diff --git a/game/engines/default/data/gfx/metal-ui/textbox9.png b/game/engines/default/data/gfx/metal-ui/textbox9.png index d4277ef0360fb1461229de5d955370dd7253067b..bbe56b5ee49ca57fcec844ac319f74ccda87e442 100644 Binary files a/game/engines/default/data/gfx/metal-ui/textbox9.png and b/game/engines/default/data/gfx/metal-ui/textbox9.png differ diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index afa07a8cf5d0dfe9888cf958e9d376e69b7847b7..1c46f2556a225afaf1b76125d3037461ec21ded3 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -2026,14 +2026,15 @@ end function _M:paradoxChanceModifier() local modifier = self:getWil() * 2 if self:knowTalent(self.T_PARADOX_MASTERY) then - modifier = modifier * (1 + (self:getTalentLevel(self.T_PARADOX_MASTERY)/10) or 0 ) + modifier = modifier * (1 + (self:getTalentLevel(self.T_PARADOX_MASTERY)/10) or 0) end --print("[Paradox] Will modifier: ", modifier, "::", self:getParadox()) return modifier end function _M:paradoxFailChance(pa) - local chance = math.pow(((self:getParadox() - self:paradoxChanceModifier())/200), 2)*((100 + self:combatFatigue()) / 100) + local total_paradox = self:getParadox() + (pa or 0) + local chance = (100 + 2*self:combatFatigue()) / 100 * math.pow((total_paradox - self:paradoxChanceModifier()) / 200, 2) if self:getParadox() < 200 then chance = 0 end --print("[Paradox] Fail chance: ", chance, "::", self:getParadox()) chance = util.bound(chance, 0, 100) @@ -2041,7 +2042,8 @@ function _M:paradoxFailChance(pa) end function _M:paradoxAnomalyChance(pa) - local chance = math.pow(((self:getParadox() - self:paradoxChanceModifier())/300), 3)*((100 + self:combatFatigue()) / 100) + local total_paradox = self:getParadox() + (pa or 0) + local chance = (100 + 2*self:combatFatigue()) / 100 * math.pow((total_paradox- self:paradoxChanceModifier()) / 300, 3) if self:getParadox() < 300 then chance = 0 end --print("[Paradox] Anomaly chance: ", chance, "::", self:getParadox()) chance = util.bound(chance, 0, 100) @@ -2049,7 +2051,8 @@ function _M:paradoxAnomalyChance(pa) end function _M:paradoxBackfireChance(pa) - local chance = math.pow (((self:getParadox() - self:paradoxChanceModifier())/400), 4)*((100 + self:combatFatigue()) / 100) + local total_paradox = self:getParadox() + (pa or 0) + local chance = (100 + 2*self:combatFatigue()) / 100 * math.pow((total_paradox - self:paradoxChanceModifier()) / 400, 4) if self:getParadox() < 400 then chance = 0 end --print("[Paradox] Backfire chance: ", chance, "::", self:getParadox()) chance = util.bound(chance, 0, 100) diff --git a/game/modules/tome/data/chats/chronomancy-see-threads.lua b/game/modules/tome/data/chats/chronomancy-see-threads.lua index 3203271d20a2b96c0567040ee0c5ac1309bcc0d3..cacd8910f6788aa96cf3fb9ec9ede9596e79e8ac 100644 --- a/game/modules/tome/data/chats/chronomancy-see-threads.lua +++ b/game/modules/tome/data/chats/chronomancy-see-threads.lua @@ -34,7 +34,7 @@ local function select(id) end newChat{ id="welcome", - text = [[You have lived ]]..turns..[[ in three different timelines. Which do you choose to be the real timeline?]], + text = [[You have lived ]]..turns..[[ turns in three different timelines. Which do you choose to be the real timeline?]], answers = { {"The first.", action=function(npc, player) select(1) end}, {"The second.", action=function(npc, player) select(2) end}, diff --git a/game/modules/tome/data/talents/chronomancy/age-manipulation.lua b/game/modules/tome/data/talents/chronomancy/age-manipulation.lua index b2d43f3b5dc8e7708af8c7fc1b9cf6a0c439c9d9..4c9e82722bf29063bc692550e713798ad5e7bd26 100644 --- a/game/modules/tome/data/talents/chronomancy/age-manipulation.lua +++ b/game/modules/tome/data/talents/chronomancy/age-manipulation.lua @@ -35,7 +35,7 @@ newTalent{ local tg = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="temporal_bolt"}} local x, y = self:getTarget(tg) if not x or not y then return nil end - x, y = checkBackfire(self, x, y) + x, y = checkBackfire(self, x, y, t.paradox) self:projectile(tg, x, y, DamageType.CLOCK, self:spellCrit(t.getDamage(self, t)), nil) game:playSoundNear(self, "talents/spell_generic2") diff --git a/game/modules/tome/data/talents/chronomancy/chronomancer.lua b/game/modules/tome/data/talents/chronomancy/chronomancer.lua index 1872e81d9728e2f18d8f68c960de3d7f587da3ab..f6a1317e1edeeaed63319b4b763e77f8acdafb86 100644 --- a/game/modules/tome/data/talents/chronomancy/chronomancer.lua +++ b/game/modules/tome/data/talents/chronomancy/chronomancer.lua @@ -102,8 +102,8 @@ temporal_req5 = { } -- Backfire Function; this does the actual backfire even though the chance is calculated in Actor -checkBackfire = function(self, x, y) - if self:paradoxBackfireChance() and not self:attr("no_paradox_fail") then +checkBackfire = function(self, x, y, pa) + if self:paradoxBackfireChance(pa) and not self:attr("no_paradox_fail") then game.logPlayer(self, "The fabric of spacetime ripples and your spell backfires!!") return self.x, self.y else diff --git a/game/modules/tome/data/talents/chronomancy/chronomancy.lua b/game/modules/tome/data/talents/chronomancy/chronomancy.lua index f7e8acd3b64751461326c4abf7ea707063133144..7e6abde2921fea3a3c696f718cf40f75493f34b7 100644 --- a/game/modules/tome/data/talents/chronomancy/chronomancy.lua +++ b/game/modules/tome/data/talents/chronomancy/chronomancy.lua @@ -108,7 +108,7 @@ newTalent{ paradox = 25, cooldown = 50, no_npc_use = true, - getDuration = function(self, t) return 4 + math.floor(self:getTalentLevel(t) * getParadoxModifier(self, pm)) end, + getDuration = function(self, t) return 4 + math.ceil((self:getTalentLevel(t) * 2) * getParadoxModifier(self, pm)) end, action = function(self, t) if checkTimeline(self) == true then return @@ -119,7 +119,8 @@ newTalent{ end, info = function(self, t) local duration = t.getDuration(self, t) - return ([[You peer %d turns into the future. Note that visions of your own death will still be fatal. + return ([[You peer into the future, allowing you to explore your surroundings for %d turns. When precognition expires you'll return to the point in time you first cast the spell. Note that visions of your own death can still be fatal. + This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. The duration will scale with your Paradox.]]):format(duration) end, } diff --git a/game/modules/tome/data/talents/chronomancy/energy.lua b/game/modules/tome/data/talents/chronomancy/energy.lua index e853252d53f7bee2a34e0d9797d303f5694c4901..ba06dcdfbb182e6bb6a6e7b065a85bc7f18dc616 100644 --- a/game/modules/tome/data/talents/chronomancy/energy.lua +++ b/game/modules/tome/data/talents/chronomancy/energy.lua @@ -101,7 +101,7 @@ newTalent{ local tx, ty = self:getTarget(tg) if not tx or not ty then return nil end local _ _, tx, ty = self:canProject(tg, tx, ty) - tx, ty = checkBackfire(self, tx, ty) + tx, ty = checkBackfire(self, tx, ty, t.paradox) local target = game.level.map(tx, ty, Map.ACTOR) if not target then return end diff --git a/game/modules/tome/data/talents/chronomancy/gravity.lua b/game/modules/tome/data/talents/chronomancy/gravity.lua index 773bc8f448cf3b9d0dfead108ee90bfabe8c08ba..cb601c34901bed023b431b0d696f6c976c98cc7b 100644 --- a/game/modules/tome/data/talents/chronomancy/gravity.lua +++ b/game/modules/tome/data/talents/chronomancy/gravity.lua @@ -76,7 +76,7 @@ newTalent{ local x, y = self:getTarget(tg) if not x or not y then return nil end local _ _, _, _, x, y = self:canProject(tg, x, y) - x, y = checkBackfire(self, x, y) + x, y = checkBackfire(self, x, y, t.paradox) local grids = self:project(tg, x, y, function(px, py) local target = game.level.map(px, py, Map.ACTOR) if not target then return end @@ -173,7 +173,7 @@ newTalent{ local x, y = self:getTarget(tg) if not x or not y then return nil end local _ _, _, _, x, y = self:canProject(tg, x, y) - x, y = checkBackfire(self, x, y) + x, y = checkBackfire(self, x, y, t.paradox) -- Add a lasting map effect game.level.map:addEffect(self, x, y, duration, diff --git a/game/modules/tome/data/talents/chronomancy/matter.lua b/game/modules/tome/data/talents/chronomancy/matter.lua index f2c3f648f6c6879dd986f3946e5046c8c7f4caf3..608ac005b51131c8c4c975d6dcfd0e74724a21fb 100644 --- a/game/modules/tome/data/talents/chronomancy/matter.lua +++ b/game/modules/tome/data/talents/chronomancy/matter.lua @@ -37,7 +37,7 @@ newTalent{ local tg = self:getTalentTarget(t) local x, y = self:getTarget(tg) if not x or not y then return nil end - x, y = checkBackfire(self, x, y) + x, y = checkBackfire(self, x, y, t.paradox) self:project(tg, x, y, DamageType.MATTER, self:spellCrit(t.getDamage(self, t))) local _ _, _, _, x, y = self:canProject(tg, x, y) game.level.map:particleEmitter(self.x, self.y, math.max(math.abs(x-self.x), math.abs(y-self.y)), "matter_beam", {tx=x-self.x, ty=y-self.y}) @@ -119,6 +119,7 @@ newTalent{ local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) if not x or not y then return nil end + x, y = checkBackfire(self, x, y, t.paradox) self:project(tg, x, y, function(px, py) local target = game.level.map(px, py, Map.ACTOR) if not target then return end @@ -158,7 +159,7 @@ newTalent{ local tg = self:getTalentTarget(t) local x, y, target = self:getTarget(tg) if not x or not y then return nil end - x, y = checkBackfire(self, x, y) + x, y = checkBackfire(self, x, y, t.paradox) -- bonus damage on targets with temporal destabilization local damage = t.getDamage(self, t) diff --git a/game/modules/tome/data/talents/chronomancy/paradox.lua b/game/modules/tome/data/talents/chronomancy/paradox.lua index 9dcb836e5c9c457b5ecf393b40512b73e5614b5e..ca87cfb95b0749a47d22046eec14ecc43bb4c1d8 100644 --- a/game/modules/tome/data/talents/chronomancy/paradox.lua +++ b/game/modules/tome/data/talents/chronomancy/paradox.lua @@ -108,6 +108,7 @@ newTalent{ local duration = t.getDuration(self, t) local power = t.getPower(self, t) return ([[Over the next %d turns you attempt to remove the target from the timeline. It's resistances will be reduced by %d%% and if you manage to kill it while the spell is in effect you'll be returned to the point in time you cast this spell and the target will be slain. + This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. The duration will scale with your Paradox and the resistance penalty will scale with your paradox and spellpower.]]) :format(duration, power) end, @@ -206,7 +207,8 @@ newTalent{ end, info = function(self, t) local duration = t.getDuration(self, t) - return ([[You summon your future self to fight alongside you for %d turns. + return ([[You summon your future self to fight alongside you for %d turns. At some point in the future you'll be pulled into the past to fight along side your past self after the initial effect ends. + This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. The duration will scale with your Paradox.]]):format(duration) end, } diff --git a/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua b/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua index 3c2d15a4c32203154bc856270f129ddaa6518d4a..3a065f004653dff2de2efd23fe307d0394af063e 100644 --- a/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua +++ b/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua @@ -61,6 +61,7 @@ newTalent{ local tg = {type="hit", range=self:getTalentRange(t)} local tx, ty, target = self:getTarget(tg) if not tx or not ty then return nil end + tx, ty = checkBackfire(self, tx, ty, t.paradox) if math.floor(core.fov.distance(self.x, self.y, tx, ty)) > self:getTalentRange(t) then return nil end if not self:canBe("teleport") or game.level.map.attrs(tx, ty, "no_teleport") or game.level.map.attrs(self.x, self.y, "no_teleport") then game.logSeen(self, "The spell fizzles!") @@ -165,6 +166,7 @@ newTalent{ local tg = self:getTalentTarget(t) local x, y = self:getTarget(tg) if not x or not y then return nil end + x, y = checkBackfire(self, x, y, t.paradox) local _ _, x, y = self:canProject(tg, x, y) if not self:canBe("teleport") or game.level.map.attrs(x, y, "no_teleport") then diff --git a/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua b/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua index ac1cd5b0bc545b752bc3a6e069efb803382339c8..53da006577fff69f75dcd223cdf1c229149ce70a 100644 --- a/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua +++ b/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua @@ -41,6 +41,7 @@ newTalent{ local tg = self:getTalentTarget(t) local x, y, target = self:getTarget(tg) if not x or not y then return nil end + x, y = checkBackfire(self, x, y, t.paradox) local __, x, y = self:canProject(tg, x, y) if not self:canBe("teleport") or game.level.map.attrs(x, y, "no_teleport") then diff --git a/game/modules/tome/data/talents/chronomancy/speed-control.lua b/game/modules/tome/data/talents/chronomancy/speed-control.lua index b14cdf045e116b67223538c3d64cb33e8d94f50a..a63450a8b30c37f21b26f86bab30a76066b8505d 100644 --- a/game/modules/tome/data/talents/chronomancy/speed-control.lua +++ b/game/modules/tome/data/talents/chronomancy/speed-control.lua @@ -70,7 +70,7 @@ newTalent{ local x, y = self:getTarget(tg) if not x or not y then return nil end local _ _, _, _, x, y = self:canProject(tg, x, y) - x, y = checkBackfire(self, x, y) + x, y = checkBackfire(self, x, y, t.paradox) local grids = self:project(tg, x, y, DamageType.STOP, t.getDuration(self, t)) self:project(tg, x, y, DamageType.TEMPORAL, self:spellCrit(t.getDamage(self, t))) @@ -111,8 +111,8 @@ newTalent{ local tg = self:getTalentTarget(t) local x, y = self:getTarget(tg) if not x or not y then return nil end + x, y = checkBackfire(self, x, y, t.paradox) local _ _, _, _, x, y = self:canProject(tg, x, y) - x, y = checkBackfire(self, x, y) -- Add a lasting map effect game.level.map:addEffect(self, x, y, t.getDuration(self, t), diff --git a/game/modules/tome/data/talents/chronomancy/timeline-threading.lua b/game/modules/tome/data/talents/chronomancy/timeline-threading.lua index b06fe5b463edf0c71aaa565f9f19370364559aad..3b940cc088f46d6a46db42f906ca5a3a331e1b9d 100644 --- a/game/modules/tome/data/talents/chronomancy/timeline-threading.lua +++ b/game/modules/tome/data/talents/chronomancy/timeline-threading.lua @@ -56,7 +56,7 @@ newTalent{ local tg = {type="beam", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) if not x or not y then return nil end - local _ _, x, y = self:canProject(tg, x, y) + local _ _, x, y = self:canProject(tg, x, y, t.paradox) x, y = checkBackfire(self, x, y) self:project(tg, x, y, DamageType.RETHREAD, self:spellCrit(t.getDamage(self, t))) game.level.map:particleEmitter(self.x, self.y, tg.radius, "temporalbeam", {tx=x-self.x, ty=y-self.y}) @@ -163,9 +163,10 @@ newTalent{ type = {"chronomancy/timeline-threading", 4}, require = chrono_req_high4, points = 5, - paradox = 100, + paradox = 50, cooldown = 50, no_npc_use = true, + no_energy = true, getDuration = function(self, t) return 4 + math.floor(self:getTalentLevel(t) * getParadoxModifier(self, pm)) end, action = function(self, t) if checkTimeline(self) == true then @@ -176,7 +177,9 @@ newTalent{ end, info = function(self, t) local duration = t.getDuration(self, t) - return ([[You peer %d turns into three different possible futures and then follow one of them into the present. Note that seeing visions of your own death is fatal.]]) + return ([[You peer into three possible futures, allowing you to explore each for %d turns. When the effect expires you'll choose which of the three futures becomes your present. Note that seeing visions of your own death can still be fatal + This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. + This spell takes no time to cast.]]) :format(duration) end, } diff --git a/game/modules/tome/data/talents/chronomancy/timetravel.lua b/game/modules/tome/data/talents/chronomancy/timetravel.lua index d2e24dfa812781d1f899df736e9687f91ef91415..f292e9f4e5ebfde789db7974b7934aab092db556 100644 --- a/game/modules/tome/data/talents/chronomancy/timetravel.lua +++ b/game/modules/tome/data/talents/chronomancy/timetravel.lua @@ -36,8 +36,8 @@ newTalent{ local tg = {type="hit", range=self:getTalentRange(t), talent=t} local tx, ty, target = self:getTarget(tg) if not tx or not ty then return nil end + tx, ty = checkBackfire(self, tx, ty, t.paradox) local _ _, tx, ty = self:canProject(tg, tx, ty) - tx, ty = checkBackfire(self, tx, ty) if tx then target = game.level.map(tx, ty, engine.Map.ACTOR) end @@ -206,6 +206,7 @@ newTalent{ info = function(self, t) local count = t.getAnomalyCount(self, t) return ([[This powerful spell allows you to mark a point in time that you can later return to by casting Revision (which you'll automatically learn upon learning this spell). Maintaining such a doorway causes constant strain on the spacetime continuum and can possibly trigger an anomaly (using your current anomaly chance) once every %d turns. + This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. Additional talent points will increase the time between anomaly checks.]]): format(count) end, diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index 40ee9c9f6279892fe8b197b72dbe741c2f7ca109..73cf790adff860dbe44ba7e5e3f866cbc467252b 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -699,7 +699,6 @@ newInscription{ local tx, ty, target = self:getTarget(tg) if not tx or not ty then return nil end local _ _, tx, ty = self:canProject(tg, tx, ty) - tx, ty = checkBackfire(self, tx, ty) if tx then target = game.level.map(tx, ty, engine.Map.ACTOR) end diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua index e0dfc40ec152de9a715f6fbf114e191411f9b258..e8a6ac34e1e85f4253f22cd57a1f70059487253e 100644 --- a/game/modules/tome/data/timed_effects.lua +++ b/game/modules/tome/data/timed_effects.lua @@ -3318,8 +3318,8 @@ newEffect{ type = "magical", status = "detrimental", parameters = { }, - on_gain = function(self, err) return "#Target# is returned to a much younger state!" end, - on_lose = function(self, err) return "#Target# has regained its natural age." end, + on_gain = function(self, err) return "#Target# is returned to a much younger state!", "+Turn Back the Clock" end, + on_lose = function(self, err) return "#Target# has regained its natural age.", "-Turn Back the Clock" end, activate = function(self, eff) eff.stat = self:addTemporaryValue("inc_stats", { [Stats.STAT_STR] =-eff.power,