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

Complex traps are never auto-activated, they all need a trigger

git-svn-id: http://svn.net-core.org/repos/t-engine4@5424 51575b47-30f0-44d4-a5cc-537603b46e54
parent c9bfe87c
No related branches found
No related tags found
No related merge requests found
......@@ -77,7 +77,7 @@ end
--- Forces the tooltip to pop with the given text
function _M:tooltipDisplayAtMap(x, y, text, extra, force, nb_keyframes)
self.tooltip:displayAtMap(nil, nil, x, y, text, force, nb_keyframes)
if extra then
if extra and type(extra) == "table" then
if extra.up then self.tooltip.last_display_y = self.tooltip.last_display_y - self.tooltip.h end
end
self.tooltip_x = {}
......
......@@ -415,7 +415,7 @@ newEntity{
newEntity{
power_source = {nature=true},
name = "huntsmen's ", prefix=true, instant_resolve=true,
name = "huntsmans ", prefix=true, instant_resolve=true,
keywords = {hunt=true},
level_range = {1, 50},
rarity = 10,
......
......@@ -92,11 +92,9 @@ newEntity{ base = "TRAP_COMPLEX",
end
end
self.list = list
game.level:addEntity(self)
self.on_added = nil
end,
dammode = rng.table{engine.DamageType.ARCANE_SILENCE, engine.DamageType.DARKSTUN, engine.DamageType.COLDNEVERMOVE},
all_know = true,
dam = resolvers.mbonus_level(300, 5),
mag = resolvers.mbonus(200, 30),
combatSpellpower = function(self) return mod.class.interface.Combat:rescaleCombatStats(self.mag) end,
......@@ -105,6 +103,8 @@ newEntity{ base = "TRAP_COMPLEX",
local dammode = self.dammode
while dammode == self.dammode do dammode = rng.table{engine.DamageType.ARCANE_SILENCE, engine.DamageType.DARKSTUN, engine.DamageType.COLDNEVERMOVE} end
self.dammode = dammode
if not self.added_to_level then game.level:addEntity(self) self.added_to_level = true end
end
return true
end,
......@@ -144,12 +144,14 @@ newEntity{ base = "TRAP_COMPLEX",
on_added = function(self, level, x, y)
self.x, self.y = x, y
self.rad = rng.range(2, 8)
game.level:addEntity(self)
self.on_added = nil
end,
dam = resolvers.mbonus_level(450, 30),
triggered = function(self, x, y, who)
self:firePoison()
if self:reactionToward(who) < 0 then
if not self.added_to_level then game.level:addEntity(self) self.added_to_level = true end
self:firePoison()
end
return true
end,
disarmed = function(self, x, y, who)
......@@ -166,7 +168,7 @@ newEntity{ base = "TRAP_COMPLEX",
self.rad,
5, nil,
{type="vapour"},
nil, 0, 0
nil, 0, 100
)
self:useEnergy(game.energy_to_act * 7)
self.nb = self.nb - 1
......@@ -199,6 +201,8 @@ newEntity{ base = "TRAP_COMPLEX",
message = "Flames start to appear arround @target@.",
dam = resolvers.mbonus_level(300, 15),
triggered = function(self, x, y, who)
if self:reactionToward(who) >= 0 then return end
local ps, p = {}, self.points or {}
self.x, self.y = x, y
self:project({type="ball", radius=3}, x, y, function(px, py)
......
......@@ -76,18 +76,24 @@ newTalent{
-- Reset Dream Smith talents
if hit then
local trigger_discharge = false
local nb = self:getTalentLevel(t) >= 5 and 2 or 1
for tid, cd in pairs(self.talents_cd) do
local tt = self:getTalentFromId(tid)
if tt.type[1]=="psionic/dream-smith" then
if tt.type[1]=="psionic/dream-smith" and nb > 0 then
self.talents_cd[tid] = 0
trigger_discharge = true
nb = nb - 1
end
end
if rng.percent(50) then
game.level.map:particleEmitter(self.x, self.y, 1, "generic_charge", {rm=225, rM=255, gm=0, gM=0, bm=0, bM=0, am=35, aM=90})
elseif hit then
game.level.map:particleEmitter(self.x, self.y, 1, "generic_charge", {rm=225, rM=255, gm=225, gM=255, bm=0, bM=0, am=35, aM=90})
if hit and trigger_discharge then
if rng.percent(50) then
game.level.map:particleEmitter(self.x, self.y, 1, "generic_charge", {rm=225, rM=255, gm=0, gM=0, bm=0, bM=0, am=35, aM=90})
else
game.level.map:particleEmitter(self.x, self.y, 1, "generic_charge", {rm=225, rM=255, gm=225, gM=255, bm=0, bM=0, am=35, aM=90})
end
game:playSoundNear(self, "talents/heal")
end
game:playSoundNear(self, "talents/heal")
end
return true
......@@ -99,7 +105,8 @@ newTalent{
local weapon_atk = useDreamHammer(self).atk
local weapon_apr = useDreamHammer(self).apr
local weapon_crit = useDreamHammer(self).physcrit
return ([[Smith a hammer from the dream forge and strike a nearby foe, inflicting %d%% weapon damage. If the attack hits it will bring all Dream Smith talents off cooldown.
return ([[Smith a hammer from the dream forge and strike a nearby foe, inflicting %d%% weapon damage. If the attack hits it will bring one random Dream Smith talent off cooldown.
At talent level five you'll bring a second random talent off cooldown.
The base power, accuracy, armour penetration, and critical strike chance of the weapon will scale with your mindpower.
Current Dream Hammer Stats
......@@ -171,7 +178,7 @@ newTalent{
info = function(self, t)
local damage = t.getDamage(self, t)
local attack_bonus = t.getAttack(self, t)
return ([[Throw your Dream Hammer at a distant target, inflicting %d%% weapon damage on all creatures between you and it. After reaching it's destination the Dream Hammer will return, potentially hitting creatures a second time.
return ([[Throw your Dream Hammer at a distant location, inflicting %d%% weapon damage on all targets between you and it. After reaching it's destination the Dream Hammer will return, potentially hitting targets a second time.
Learning this talent increases the accuracy of your Dream Hammer by %d.]]):format(damage * 100, attack_bonus)
end,
}
......
......@@ -40,12 +40,12 @@ function _M:init(title, inven, filter, action, actor)
select=function(item, force) self:select(item, force) end,
select_tab=function(item) self:select(item) end,
}
self.c_inven.c_inven.on_focus_change = function(ui_self, status) if status == true then game.tooltip:erase() end end
self.key.any_key = function(sym)
-- Control resets the tooltip
if sym == self.key._LCTRL or sym == self.key._RCTRL then
if sym == self.key._LCTRL or sym == self.key._RCTRL then
local ctrl = core.key.modState("ctrl")
if self.prev_ctrl ~= ctrl then self:select(self.cur_item, true) end
self.prev_ctrl = ctrl
......@@ -78,6 +78,7 @@ end
function _M:select(item, force)
if self.cur_item == item and not force then return end
if not item then return end
if item.last_display_x and item.object then
if not item.desc or force then item.desc = item.object:getDesc({do_color=true}, self.actor:getInven(item.object:wornInven())) end
self.c_desc:switchItem(item, item.desc, true)
......
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