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

finishing touches to arcane blades

git-svn-id: http://svn.net-core.org/repos/t-engine4@579 51575b47-30f0-44d4-a5cc-537603b46e54
parent 956c7cdb
No related branches found
No related tags found
No related merge requests found
......@@ -436,6 +436,11 @@ function _M:combatDamage(weapon)
add = add + (self:getStat(stat) - 10) * 0.7 * mod
end
end
if self:knowTalent(Talents.T_ARCANE_DESTRUCTION) then
add = add + self:combatSpellpower() * self:getTalentLevel(Talents.T_ARCANE_DESTRUCTION) / 9
end
local talented_mod = self:combatCheckTraining(weapon)
return self.combat_dam + (weapon.dam or 1) * (1 + talented_mod / 4) + add
end
......@@ -445,7 +450,7 @@ function _M:combatSpellpower(mod)
mod = mod or 1
local add = 0
if self:knowTalent(self.T_ARCANE_DEXTERITY) then
add = (20 + self:getTalentLevel(self.T_ARCANE_DEXTERITY) * 7) * self:getDex() / 100
add = (15 + self:getTalentLevel(self.T_ARCANE_DEXTERITY) * 5) * self:getDex() / 100
end
return (self.combat_spellpower + add + self:getMag() * 0.7) * mod
end
......
......@@ -117,7 +117,7 @@ newBirthDescriptor{
name = "Arcane Blade",
desc = {
"The Arcane Blade is a warrior who has been touched by the gift of magic.",
"Their use of magic is innate and they never really studied it.",
"Their use of magic is innate and they never really studied it, as such they do not naturally regenerate mana and must use external means of recharging.",
"They can cast spells from a limited selection but have the unique capacity to 'channel' their attack spells through their melee attacks.",
"They are adept of two handed weapons for the sheer destruction they can bring.",
"Their most important stats are: Strength, Dexterity and Magic",
......@@ -145,8 +145,9 @@ newBirthDescriptor{
copy = {
max_life = 100,
life_rating = 9,
mana_rating = 8,
stamina_rating = 8,
mana_rating = 6,
stamina_rating = 6,
mana_regen = 0,
resolvers.equip{ id=true,
{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
{type="armor", subtype="light", name="rough leather armour", autoreq=true},
......
......@@ -21,7 +21,7 @@ newEntity{
name = "Novice mage",
type = "harmless", subtype = "quest", unique = true,
level_range = {1, 10},
rarity = 4,
rarity = 3,
coords = {{ x=10, y=23, likelymap={
[[ 11111111 ]],
[[ 1111122222211 ]],
......
......@@ -66,7 +66,7 @@ prepareEntitiesList("encounters", "mod.class.Encounter", "/data/general/encounte
addData{ encounters = {
chance=function(who)
local harmless_chance = 1 + who:getLck(7)
local hostile_chance = 100
local hostile_chance = 5
print("chance", hostile_chance, harmless_chance)
if rng.percent(hostile_chance) then return "hostile"
elseif rng.percent(harmless_chance) then return "harmless"
......
......@@ -81,7 +81,7 @@ access_angolwen = function(self, player)
game.zone:addEntity(game.level, p, "terrain", 16, 27)
game:setAllowedBuild("mage", true)
world:gainAchievement("THE_SECRET_CITY", who)
world:gainAchievement("THE_SECRET_CITY", player)
end
ring_gift = function(self, player)
......
......@@ -47,9 +47,27 @@ newTalent{
}
newTalent{
name = "Frost Hands",
type = {"spell/enhancement",2},
name = "Earthen Barrier",
type = {"spell/enhancement", 2},
points = 5,
cooldown = 25,
mana = 45,
require = spells_req2,
range = 20,
action = function(self, t)
game:playSoundNear(self, "talents/spell_generic")
self:setEffect(self.EFF_EARTHEN_BARRIER, 10, {power=10 + self:getTalentLevel(t) * self:combatSpellpower(0.08)})
return true
end,
info = function(self, t)
return ([[Hardens your skin with the power of earth, reducing physical damage taken by %d%%.]]):format(10 + self:getTalentLevel(t) * self:combatSpellpower(0.08))
end,
}
newTalent{
name = "Frost Hands",
type = {"spell/enhancement", 3},
require = spells_req3,
points = 5,
mode = "sustained",
cooldown = 10,
......@@ -74,3 +92,38 @@ newTalent{
format(3 + self:getTalentLevel(t) * self:combatSpellpower(0.05), 4 + self:getTalentLevel(t) * self:combatSpellpower(0.04))
end,
}
newTalent{
name = "Inner Power",
type = {"spell/enhancement", 4},
require = spells_req4,
points = 5,
mode = "sustained",
cooldown = 10,
sustain_mana = 40,
tactical = {
DEFEND = 10,
},
activate = function(self, t)
game:playSoundNear(self, "talents/spell_generic")
local power = math.floor(2 + self:getTalentLevel(t) * self:combatSpellpower(0.06))
return {
stats = self:addTemporaryValue("inc_stats", {
[self.STAT_STR] = power,
[self.STAT_DEX] = power,
[self.STAT_MAG] = power,
[self.STAT_WIL] = power,
[self.STAT_CUN] = power,
[self.STAT_CON] = power,
}),
}
end,
deactivate = function(self, t, p)
self:removeTemporaryValue("inc_stats", p.stats)
return true
end,
info = function(self, t)
return ([[Concentrate on your inner self, increasing your stats by %d.]]):
format(2 + self:getTalentLevel(t) * self:combatSpellpower(0.06))
end,
}
......@@ -39,6 +39,35 @@ newTalent{
require = techs_req2,
info = function(self, t)
return ([[The user gains a bonus to spellpower equal to %d%% of her dexterity.]]):
format(20 + self:getTalentLevel(t) * 7)
format(15 + self:getTalentLevel(t) * 5)
end,
}
newTalent{
name = "Arcane Feed",
type = {"technique/magical-combat", 3},
points = 5,
cooldown = 5,
stamina = 100,
require = techs_req3,
range = 20,
action = function(self, t)
self:incMana(40 + self:getTalentLevel(t) * 12)
return true
end,
info = function(self, t)
return ([[Regenerates %d mana at the cost of 100 stamina.]]):format(40 + self:getTalentLevel(t) * 12)
end,
}
newTalent{
name = "Arcane Destruction",
type = {"technique/magical-combat", 4},
mode = "passive",
points = 5,
require = techs_req4,
info = function(self, t)
return ([[Raw magical damage channels through the caster's weapon, increasing physical damage by %d.]]):
format(self:combatSpellpower() * self:getTalentLevel(Talents.T_ARCANE_DESTRUCTION) / 9)
end,
}
......@@ -169,6 +169,22 @@ newEffect{
end,
}
newEffect{
name = "EARTHEN_BARRIER",
desc = "Earthen Barrier",
type = "magical",
status = "beneficial",
parameters = { power=10 },
on_gain = function(self, err) return "#Target# hardens its skin.", "+Earthen barrier" end,
on_lose = function(self, err) return "#Target# skin returns to normal.", "-Earthen barrier" end,
activate = function(self, eff)
eff.tmpid = self:addTemporaryValue("resists", {[DamageType.PHYSICAL]=eff.power})
end,
deactivate = function(self, eff)
self:removeTemporaryValue("resists", eff.tmpid)
end,
}
newEffect{
name = "SPEED",
desc = "Speed",
......
No preview for this file type
No preview for this file type
File added
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