Skip to content
Snippets Groups Projects
Commit f200b2f6 authored by dg's avatar dg
Browse files

mooooar

git-svn-id: http://svn.net-core.org/repos/t-engine4@5597 51575b47-30f0-44d4-a5cc-537603b46e54
parent fdcb2d58
No related branches found
No related tags found
No related merge requests found
......@@ -328,14 +328,18 @@ end
-- You do *NOT* need this, this is used by the engine.Map class automatically.<br/>
-- *DO NOT TOUCH!!!*
function _M:getMapObjects(tiles, mos, z)
local tgt = self
if self.replace_display then tgt = self.replace_display end
local i = -1
local nextz = 0
local mo, dz, lm
local last_mo
repeat
i = i + 1
mo, dz, lm = self:makeMapObject(tiles, 1+i)
mo, dz, lm = tgt:makeMapObject(tiles, 1+i)
if mo then
if i == 0 then self._mo = mo end
if dz then mos[dz] = mo
else mos[z + nextz] = mo nextz = nextz + 1 end
last_mo = lm
......
game/modules/tome/data/gfx/talents/temporal_form.png

4.16 KiB

......@@ -86,6 +86,7 @@ newTalent{
range = 10,
direct_hit = true,
type_no_req = true,
cooldown = 1,
getTargetCount = function(self, t) return math.ceil(self:getParadox()/50) end,
getRange = function(self, t) return math.ceil(self:getParadox()/100) end,
message = "@Source@ has caused a hiccup in the fabric of spacetime.",
......@@ -240,6 +241,7 @@ newTalent{
type = {"chronomancy/anomalies", 1},
points = 1,
type_no_req = true,
cooldown = 1,
getDamage = function(self, t) return getAnomalyDamage(self)/4 end,
getDuration = function(self, t) return math.ceil (self:getParadox()/50) end,
message = "A temporal storm rages around @Source@.",
......
......@@ -95,3 +95,23 @@ uberTalent{
:format()
end,
}
uberTalent{
name = "Temporal Form",
cooldown = 30,
require = { special={desc="Dealt over 50000 temporal damage and visited an out-of-time zone", fct=function(self) return
self.damage_log and (self.damage_log[DamageType.TEMPORAL] and self.damage_log[DamageType.TEMPORAL] >= 50000) and self:attr("temporal_touched", 1)
end} },
no_energy = true,
action = function(self, t)
self:setEffect(self.EFF_TEMPORAL_FORM, 7, {})
return true
end,
info = function(self, t)
return ([[You can wrap temporal threads around you, assuming the form of a telugoroth for 7 turns.
While in this form you gain pinning, bleeding, blindness and stun immunity, 30%% temporal resistance and 20%% temporal resistance penetration.
You also are able to cast two anomalies: Anomaly Rearrange and Anomaly Temporal Storm.
Transforming in this form will increase your paradox by 600 and revert it back at the end of the effect.]])
:format()
end,
}
\ No newline at end of file
......@@ -1985,3 +1985,43 @@ newEffect{
end)
end,
}
newEffect{
name = "TEMPORAL_FORM", image = "talents/temporal_form.png",
desc = "Temporal Form",
long_desc = function(self, eff) return ("The target is assumes the form of a telugoroth."):format() end,
type = "magical",
subtype = { temporal=true },
status = "beneficial",
parameters = {},
on_gain = function(self, err) return "#Target# threads time as a shell!", "+Temporal Form" end,
on_lose = function(self, err) return "#Target# is no longer embeded in time.", "-Temporal Form" end,
activate = function(self, eff)
self:effectTemporaryValue(eff, "stun_immune", 1)
self:effectTemporaryValue(eff, "pin_immune", 1)
self:effectTemporaryValue(eff, "cut_immune", 1)
self:effectTemporaryValue(eff, "blind_immune", 1)
self:effectTemporaryValue(eff, "resists", {[DamageType.TEMPORAL] = 30})
self:effectTemporaryValue(eff, "resists_pen", {[DamageType.TEMPORAL] = 20})
self:effectTemporaryValue(eff, "talent_cd_reduction", {[self.T_ANOMALY_REARRANGE] = -4, [self.T_ANOMALY_TEMPORAL_STORM] = -4})
self:learnTalent(self.T_ANOMALY_REARRANGE, true)
self:learnTalent(self.T_ANOMALY_TEMPORAL_STORM, true)
self:incParadox(600)
self.replace_display = mod.class.Actor.new{
image = "npc/elemental_temporal_telugoroth.png",
shader = "shadow_simulacrum",
shader_args = { color = {0.2, 0.1, 0.8}, base = 0.5, time_factor = 500 },
}
self:removeAllMOs()
game.level.map:updateMap(self.x, self.y)
end,
deactivate = function(self, eff)
self:incParadox(-600)
self:unlearnTalent(self.T_ANOMALY_REARRANGE)
self:unlearnTalent(self.T_ANOMALY_TEMPORAL_STORM)
self.replace_display = nil
self:removeAllMOs()
game.level.map:updateMap(self.x, self.y)
end,
}
\ No newline at end of file
......@@ -60,6 +60,10 @@ return {
} },
},
on_enter = function()
game.player:attr("temporal_touched", 1)
end,
post_process = function(level)
local Map = require "engine.Map"
level.background_particle = require("engine.Particles").new("starfield", 1, {width=Map.viewport.width, height=Map.viewport.height})
......
......@@ -124,6 +124,8 @@ return {
end,
on_enter = function(lev, old_lev, newzone)
game.player:attr("temporal_touched", 1)
local Dialog = require("engine.ui.Dialog")
if lev == 1 and not game.level.shown_warning then
Dialog:simplePopup("Temporal Rift", "Space and time distort and lose meaning as you pass through the rift. This place is alien.")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment