here goes 3 cheat talents (was part of weaponshield.lua) that will (i hope) greatly help any inexperienced cheater to forge their utmost foolishness in few moments! maybe i will someday be able to make all that look (and work) better... but i wouldn't hold your breath...
Code: Select all
newTalent{
name = "titan supremacy",
type = {"technique/shield-defense", 1},
require = techs_req1,
mode = "sustained",
no_energy = true,
points = 1,
no_npc_use = true, -- bwa-ha-ha-ha
tactical = { DEFEND = 2 },
getCooldownReduction = function(self, t) return util.bound(1) end,
activate = function(self, t)
self.unused_stats = self.unused_stats + 6
self.unused_talents = self.unused_talents + 4
self.unused_generics = self.unused_generics + 4
self.unused_talents_types = self.unused_talents_types + 1
self.unused_prodigies = self.unused_prodigies + 1
return {
max_life = self:addTemporaryValue("max_life", 80),
life_is = self:addTemporaryValue("life", 80),
life = self:addTemporaryValue("life_regen", 5),
max_mana = self:addTemporaryValue("max_mana", 50),
mana_is = self:addTemporaryValue("mana", 50),
mana = self:addTemporaryValue("mana_regen", 5),
max_stamina = self:addTemporaryValue("max_stamina", 50),
stamina_is = self:addTemporaryValue("stamina", 50),
stamina = self:addTemporaryValue("stamina_regen", 5),
max_air = self:addTemporaryValue("max_air", 20),
air_is = self:addTemporaryValue("air", 20),
air = self:addTemporaryValue("air_regen", 1),
vim = self:addTemporaryValue("max_vim", 20),
vim_regen = self:addTemporaryValue("vim_regen", 2),
max_psi = self:addTemporaryValue("max_psi", 20),
psi_regen = self:addTemporaryValue("psi_regen", 5),
max_equi = self:addTemporaryValue("max_equilibrium", 20),
equi = self:addTemporaryValue("equilibrium_regen", 5),
max_positive = self:addTemporaryValue("max_positive", 20),
fill = self:addTemporaryValue("positive_regen", 5),
max_negative = self:addTemporaryValue("max_negative", 20),
drain = self:addTemporaryValue("negative_regen", 5),
max_hate = self:addTemporaryValue("max_hate", 15),
hategain = self:addTemporaryValue("hate_regen", 5),
encumb = self:addTemporaryValue("max_encumber", 999),
speed = self:addTemporaryValue("global_speed_add", 2),
cresid = self:addTemporaryValue("resists_cap", {all=90}),
stats = self:addTemporaryValue("inc_stats", {
[self.STAT_STR] = 4,
[self.STAT_DEX] = 4,
[self.STAT_MAG] = 4,
[self.STAT_WIL] = 4,
[self.STAT_CUN] = 4,
[self.STAT_CON] = 4
}),
instakill = self:addTemporaryValue("instakill_immune", 5),
silence = self:addTemporaryValue("silence_immune", 5),
disarm = self:addTemporaryValue("disarm_immune", 5),
stone = self:addTemporaryValue("stone_immune", 5),
fear = self:addTemporaryValue("fear_immune", 5),
teleport = self:addTemporaryValue("teleport_immune", 5),
disease = self:addTemporaryValue("disease_immune", 5),
poison = self:addTemporaryValue("poison_immune", 5),
pin = self:addTemporaryValue("pin_immune", 5),
cut = self:addTemporaryValue("cut_immune", 5),
stun = self:addTemporaryValue("stun_immune", 5),
knock = self:addTemporaryValue("knockback_immune", 5),
blind = self:addTemporaryValue("blind_immune", 15),
confusion = self:addTemporaryValue("confusion_immune", 90),
dam = self:addTemporaryValue("melee_project", {
[DamageType.PHYSICAL] = 220,
}),
combat = self:addTemporaryValue("ranged_project", {
[DamageType.PHYSICAL] = 220,
} ),
per = self:addTemporaryValue("inc_damage", {
[DamageType.PHYSICAL] = 220,
}),
pen = self:addTemporaryValue("resists_pen", {
[DamageType.PHYSICAL] = 220,
}),
def = self:addTemporaryValue("combat_def", 18),
armor = self:addTemporaryValue("combat_armor", 8),
armor_hard = self:addTemporaryValue("combat_armor_hardiness", 8),
invis = self:addTemporaryValue("see_invisible", 5),
stealth = self:addTemporaryValue("see_stealth", 5),
spellpower = self:addTemporaryValue("combat_spellpower", 5),
mindpower = self:addTemporaryValue("combat_mindpower", 5),
atk = self:addTemporaryValue("combat_atk", 45),
apr = self:addTemporaryValue("combat_apr", 45),
pc = self:addTemporaryValue("combat_physcrit", 35),
sc = self:addTemporaryValue("combat_spellcrit", 35),
power = self:addTemporaryValue("combat_dam", 5),
esp_rad = self:addTemporaryValue("radius_esp", 5),
sight = self:addTemporaryValue("sight", 5),
phys = self:addTemporaryValue("resists", {
[DamageType.PHYSICAL] = 20,
[DamageType.LIGHTNING] = 20,
[DamageType.FIRE] = 20,
[DamageType.ICE] = 20,
[DamageType.COLD] = 20,
[DamageType.ARCANE] = 20,
[DamageType.DARKNESS] = 20,
[DamageType.LIGHT] = 20,
[DamageType.ACID] = 20,
[DamageType.TEMPORAL] = 20,
[DamageType.BLEED] = 20,
[DamageType.NATURE] = 20,
[DamageType.MIND] = 20,
[DamageType.BLIGHT] = 20,
[DamageType.CORRUPTED_BLOOD] = 20,
[DamageType.MANABURN] = 20,
[DamageType.GRAVITYPIN] = 20,
[DamageType.DRAINLIFE] = 20,
[DamageType.POISON] = 20,
[DamageType.FIREBURN] = 20
}),
eff = self:addTemporaryValue("damage_affinity", {
[DamageType.PHYSICAL] = 20,
}),
lite = self:addTemporaryValue("lite", 5),
pityId = self:addTemporaryValue("pity", 2),
cd = self:addTemporaryValue("spell_cooldown_reduction", 1),
self:removeEffectsFilter{type="magical", status="detrimental"},
self:removeEffectsFilter{type="physical", status="detrimental"},
}
end,
deactivate = function(self, t, p)
self:removeTemporaryValue("max_life", p.max_life)
self:removeTemporaryValue("life", p.life_is)
self:removeTemporaryValue("life_regen", p.life)
self:removeTemporaryValue("max_mana", p.max_mana)
self:removeTemporaryValue("mana", p.mana_is)
self:removeTemporaryValue("mana_regen", p.mana)
self:removeTemporaryValue("max_stamina", p.max_stamina)
self:removeTemporaryValue("stamina", p.stamina_is)
self:removeTemporaryValue("stamina_regen", p.stamina)
self:removeTemporaryValue("max_air", p.max_air)
self:removeTemporaryValue("air", p.air_is)
self:removeTemporaryValue("air_regen", p.air)
self:removeTemporaryValue("vim_regen", p.vim_regen)
self:removeTemporaryValue("max_vim", p.vim)
self:removeTemporaryValue("psi_regen", p.psi_regen)
self:removeTemporaryValue("max_psi", p.max_psi)
self:removeTemporaryValue("max_equilibrium", p.max_equi)
self:removeTemporaryValue("equilibrium_regen", p.equi)
self:removeTemporaryValue("max_positive", p.max_positive)
self:removeTemporaryValue("positive_regen", p.fill)
self:removeTemporaryValue("max_negative", p.max_negative)
self:removeTemporaryValue("negative_regen", p.drain)
self:removeTemporaryValue("max_hate", p.max_hate)
self:removeTemporaryValue("hate_regen", p.hategain)
self:removeTemporaryValue("inc_stats", p.stats)
self:removeTemporaryValue("max_encumber", p.encumb)
self:removeTemporaryValue("global_speed_add", p.speed)
self:removeTemporaryValue("instakill_immune", p.instakill)
self:removeTemporaryValue("silence_immune", p.silence)
self:removeTemporaryValue("disarm_immune", p.disarm)
self:removeTemporaryValue("stone_immune", p.stone)
self:removeTemporaryValue("fear_immune", p.fear)
self:removeTemporaryValue("teleport_immune", p.teleport)
self:removeTemporaryValue("disease_immune", p.disease)
self:removeTemporaryValue("poison_immune", p.poison)
self:removeTemporaryValue("cut_immune", p.cut)
self:removeTemporaryValue("pin_immune", p.pin)
self:removeTemporaryValue("stun_immune", p.stun)
self:removeTemporaryValue("knockback_immune", p.knock)
self:removeTemporaryValue("blind_immune", p.blind)
self:removeTemporaryValue("confusion_immune", p.confusion)
self:removeTemporaryValue("resists_cap", p.cresid)
self:removeTemporaryValue("resists", p.phys)
self:removeTemporaryValue("melee_project", p.dam)
self:removeTemporaryValue("ranged_project", p.combat)
self:removeTemporaryValue("inc_damage", p.per)
self:removeTemporaryValue("resists_pen", p.pen)
self:removeTemporaryValue("damage_affinity", p.eff)
self:removeTemporaryValue("combat_def", p.def)
self:removeTemporaryValue("combat_armor", p.armor)
self:removeTemporaryValue("combat_armor_hardiness", p.armor_hard)
self:removeTemporaryValue("see_invisible", p.invis)
self:removeTemporaryValue("see_stealth", p.stealth)
self:removeTemporaryValue("combat_spellpower", p.spellpower)
self:removeTemporaryValue("combat_mindpower", p.mindpower)
self:removeTemporaryValue("combat_atk", p.atk)
self:removeTemporaryValue("combat_apr", p.apr)
self:removeTemporaryValue("combat_physcrit", p.pc)
self:removeTemporaryValue("combat_spellcrit", p.sc)
self:removeTemporaryValue("combat_dam", p.power)
self:removeTemporaryValue("lite", p.lite)
self:removeTemporaryValue("pity", p.pityId)
self:removeTemporaryValue("spell_cooldown_reduction", p.cd)
-- self:removeTemporaryValue("talent_cd_reduction", p.cdred)
self:removeTemporaryValue("radius_esp", p.esp_rad)
self:removeTemporaryValue("sight", p.sight)
-- self:removeTemporaryValue("magicMap", p.mag_map)
return true
end,
info = function(self, t)
return ([[Titan Supremacy.]])
end,
}
newTalent{
name = "Titan Wrath",
type = {"technique/shield-defense", 1},
require = techs_req1,
points = 1,
random_ego = "attack",
no_energy = true,
no_npc_use = true, -- bwa-ha-ha-ha
tactical = { ATTACKAREA = 2 },
range = 30,
direct_hit = true,
reflectable = false,
requires_target = true,
getDamage = 25,
getTargetCount = 14,
action = function(self, t)
local tg = {type="bolt", range=self:getTalentRange(t), talent=t}
local fx, fy = self:getTarget(tg)
if not fx or not fy then return nil end
local nb = 14
local affected = {}
local first = nil
self:project(tg, fx, fy, function(dx, dy)
print("[Titan Wrath] targetting", fx, fy, "from", self.x, self.y)
local actor = game.level.map(dx, dy, Map.ACTOR)
if actor and not affected[actor] then
ignored = false
affected[actor] = true
first = actor
print("[Titan Wrath] looking for more targets", nb, " at ", dx, dy, "radius ", 35, "from", actor.name)
self:project({type="ball", selffire=false, x=dx, y=dy, radius=35, range=0}, dx, dy, function(bx, by)
local actor = game.level.map(bx, by, Map.ACTOR)
if actor and not affected[actor] and self:reactionToward(actor) < 0 then
print("[Titan Wrath] found possible actor", actor.name, bx, by, "distance", core.fov.distance(dx, dy, bx, by))
affected[actor] = true
end
end)
return true
end
end)
if not first then return end
local targets = { first }
affected[first] = nil
local possible_targets = table.listify(affected)
print("[Titan Wrath] Found targets:", #possible_targets)
for i = 2, nb do
if #possible_targets == 0 then break end
local act = rng.tableRemove(possible_targets)
targets[#targets+1] = act[1]
end
local sx, sy = self.x, self.y
for i, actor in ipairs(targets) do
local tgr = {type="beam", range=self:getTalentRange(t), selffire=false, talent=t, x=sx, y=sy}
print("[Titan Wrath] jumping from", sx, sy, "to", actor.x, actor.y)
self:project(tgr, actor.x, actor.y, DamageType.LIGHTNING_DAZE, {dam=25, daze=self:attr("lightning_daze_tempest") or 0})
self:project(tgr, actor.x, actor.y, DamageType.PHYSICAL, 25)
self:project(tgr, actor.x, actor.y, DamageType.MIND, 25)
self:project(tgr, actor.x, actor.y, DamageType.ACID, 25)
self:project(tgr, actor.x, actor.y, DamageType.LIGHTNING, 25)
self:project(tgr, actor.x, actor.y, DamageType.FIRE, 25)
self:project(tgr, actor.x, actor.y, DamageType.COLD, 25)
self:project(tgr, actor.x, actor.y, DamageType.LIGHT, 25)
self:project(tgr, actor.x, actor.y, DamageType.DARKNESS, 25)
self:project(tgr, actor.x, actor.y, DamageType.BLIGHT, 25)
self:project(tgr, actor.x, actor.y, DamageType.NATURE, 25)
self:project(tgr, actor.x, actor.y, DamageType.ARCANE, 25)
self:project(tgr, actor.x, actor.y, DamageType.TEMPORAL, 25)
self:project(tgr, actor.x, actor.y, DamageType.GRAVITY, 25)
self:project(tgr, actor.x, actor.y, DamageType.ACID_BLIND, 25)
self:project(tgr, actor.x, actor.y, DamageType.MANABURN, 25)
self:project(tgr, actor.x, actor.y, DamageType.SLIME, 25)
self:project(tgr, actor.x, actor.y, DamageType.INSIDIOUS_POISON, 25)
self:project(tgr, actor.x, actor.y, DamageType.ICE, 25)
self:project(tgr, actor.x, actor.y, DamageType.BLEED, 25)
self:project(tgr, actor.x, actor.y, DamageType.CORRUPTED_BLOOD, 25)
if core.shader.active() then game.level.map:particleEmitter(sx, sy, math.max(math.abs(actor.x-sx), math.abs(actor.y-sy)), "lightning_beam", {tx=actor.x-sx, ty=actor.y-sy}, {type="lightning"})
else game.level.map:particleEmitter(sx, sy, math.max(math.abs(actor.x-sx), math.abs(actor.y-sy)), "lightning_beam", {tx=actor.x-sx, ty=actor.y-sy})
end
sx, sy = actor.x, actor.y
end
game:playSoundNear(self, "talents/lightning")
return true
end,
info = function(self, t)
return ([[titan wrath]])
end,
}
newTalent{
name = "Titan Move",
type = {"technique/shield-defense", 1},
require = techs_req1,
no_energy = true,
no_npc_use = true, -- bwa-ha-ha-ha
points = 1,
is_spell = true,
is_teleport = true,
tactical = { CLOSEIN = 2 },
action = function(self, t)
self:incMoney(5)
local tg = {type="ball", nolock=true, pass_terrain=true, nowarning=true, range=120, radius=0, requires_knowledge=false}
x, y = self:getTarget(tg)
if not x then return nil end
local _ _, x, y = self:canProject(tg, x, y)
game.level.map:particleEmitter(self.x, self.y, 1, "teleport")
self:teleportRandom(x, y, 0)
game.level.map:particleEmitter(self.x, self.y, 1, "teleport")
return true
end,
info = function(self, t)
return ([[teleport]])
end,
}
newTalent{
name = "SupDig",
type = {"technique/shield-defense",1},
require = techs_req1,
points = 1,
random_ego = "utility",
no_energy = true,
range = 30,
reflectable = false,
no_npc_use = true,
radius = 40,
range = 40,
target = function(self, t) return {type="cone", range=0, radius=40, talent=t} end,
getDamage = 9999,
action = function(self, t)
local tg = self:getTalentTarget(t)
local x, y = self:getTarget(tg)
if not x or not y then return nil end
for i = 1, 40 do
self:project(tg, x, y, DamageType.DIG, {dist=40, dam=9999})
end
game:playSoundNear(self, "talents/earth")
return true
end,
info = function(self, t)
return ([[Digs up to %d grids into walls, trees or other impassable terrain]])
end,
}