Needed Talent Description Updates

All development conversation and discussion takes place here

Moderator: Moderator

Message
Author
edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Needed Talent Description Updates

#1 Post by edge2054 »

Starting this thread so we can list suggested talent updates. I'll get the ball rolling with an example.

Please use tested code when contributing or mark down rather the code has been tested or not.

Tidal Wave (tested)

Code: Select all

    info = function(self, t)
        return ([[A wall of water rushes out from the caster doing %0.2f cold damage and %0.2f physical damage as well as knocking back targets each turn for %d turns.
        The damage and duration will increase with the Magic stat]]):format(damDesc(self, DamageType.COLD, self:combatTalentSpellDamage(t, 5, 90)/2), damDesc(self, DamageType.PHYSICAL, self:combatTalentSpellDamage(t, 5, 90)/2), 5 + self:combatSpellpower(0.01) * self:getTalentLevel(t))
    end, 

Final Master
Sher'Tul
Posts: 1022
Joined: Fri May 21, 2010 8:16 pm
Location: Inside the minds of all
Contact:

Re: Needed Talent Description Updates

#2 Post by Final Master »

These will all be untested and most likely edited by me later.

Shield Pummel:

Code: Select all

info = function(self, t)
		return ([[Hits the target with two shield strikes, stunning it and doing %d%% shield damage.
		The damage multiplier increases with your strength and the duration with talent level.]]):format(100 * self:combatTalentWeaponDamage(t, 1.2, 2.1, self:getTalentLevel(self.T_SHIELD_EXPERTISE)))
	end,
Riposte:

Code: Select all

info = function(self, t)
		return ([[When you block/avoid a melee blow you have a %d%% chance to get a free, automatic melee attack against your foe. Your chances increase with dexterity.]]):format(util.bound(self:getTalentLevel(t) * self:getDex(40), 10, 60))
	end,
Overpower:

Code: Select all

info = function(self, t)
		return ([[Hits the target with your weapon and two shield strikes doing %d%% damage, trying to overpower your target.
		If the last attack hits, the target is knocked back. The chance for knock back increases with talent level.]]):format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE)))
	end,
Repulsion:

Code: Select all

info = function(self, t)
		return ([[Let all your foes pile up on your shield, then put all your strength in one mighty thrust and repel them all away %d grids. The distance increases with talent level.]]):format(math.floor(1 + self:getTalentLevel(t)))
	end,
Shield Wall:

Code: Select all

info = function(self, t)
		return ([[Enter a protective battle stance, increasing defense by %d and armor by %d at the cost of 10 attack and 10 damage. The defense and armor increase is based on dexterity.
		At level 5 it also makes you immune to stunning and knockback.]]):format(
		5 + (1 + self:getDex(4)) * self:getTalentLevel(t) + self:getTalentLevel(self.T_SHIELD_EXPERTISE),
		5 + (1 + self:getDex(4)) * self:getTalentLevel(t) + self:getTalentLevel(self.T_SHIELD_EXPERTISE)
		)
	end,
Shield Expertise:

Code: Select all

info = function(self, t)
		return ([[Increases your spell and physical save.]]):format()
	end,
NOTE: I changed shield expertise that way because I see nothing in this code:

Code: Select all

newTalent{
	name = "Shield Expertise",
	type = {"technique/shield-defense", 3},
	require = techs_req3,
	mode = "passive",
	points = 5,
	on_learn = function(self, t)
		self.combat_physresist = self.combat_physresist + 4
		self.combat_spellresist = self.combat_spellresist + 2
	end,
	on_unlearn = function(self, t)
		self.combat_physresist = self.combat_physresist + 4
		self.combat_spellresist = self.combat_spellresist + 2
	end,
	info = function(self, t)
		return ([[Improves your damage with shield attacks and increases your spell and physical save.]]):format()
	end,
}
that effects the amount of damage that shields do. All I see is that shield expertise effects your physical and spell resist. It SHOULD increase damage dealt, but I have no idea how to code that. The description should also include the numbers by which shield expertise increases the resists/damage by, but I don't know how to code that properly. I thought I should bring that up.

Last Stand:

Code: Select all

info = function(self, t)
		return ([[You brace yourself for the final stand, increasing defense by %d and maximum life by %d, but making you unable to move. The increase in defense and life is based on dexterity.]]):
		format(5 + self:getDex(4) * self:getTalentLevel(t), 10 * self:getTalentLevel(t))
	end,
That's all I have for now. Most of the changes are rather small, simply adding what stat they are effected by or adding what duration is effected by.
Final Master's Character Guides
Final Master's Guide to the Arena
Edge: Final Master... official Tome 4 (thread) necromancer.
Zonk: I'd rather be sick than on fire! :D

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Needed Talent Description Updates

#3 Post by edge2054 »

Shield Expertise increases shield damage by affecting other talents.

Look at the code for Shield Pummel for instance.

Note that shields never deal damage unless a talent is activated.

Also Shield Expertise increases the effectiveness of Shield Wall. This should probably be mentioned in either the Shield Wall or the Shield Expertise descriptions.

yufra
Perspiring Physicist
Posts: 1332
Joined: Tue Jul 13, 2010 2:53 pm

Re: Needed Talent Description Updates

#4 Post by yufra »

Final Master wrote: NOTE: I changed shield expertise that way because I see nothing in this code... that effects the amount of damage that shields do. All I see is that shield expertise effects your physical and spell resist. It SHOULD increase damage dealt, but I have no idea how to code that. The description should also include the numbers by which shield expertise increases the resists/damage by, but I don't know how to code that properly. I thought I should bring that up.
It does affect the damage dealt, and that is why you see combatTalentWeaponDamage(bla, bla, bla, self:getTalentLevel(self.T_SHIELD_EXPERTISE)) littered throughout weaponshield.lua. The effect is indirect, but there.

You may also want to mention the maximum values for example Riposte?

EDIT: Ninja-ed by edge.
<DarkGod> lets say it's intended

Massimiliano Marangio
Sher'Tul
Posts: 1120
Joined: Mon Sep 30, 2002 9:52 pm
Location: Germany

Re: Needed Talent Description Updates

#5 Post by Massimiliano Marangio »

Final Master wrote:The description should also include the numbers by which shield expertise increases the resists/damage by, but I don't know how to code that properly. I thought I should bring that up.
Perhaps "... and increases your physical save by 4 and you spell save by 2 per talent point"?

Code: Select all

newTalent{
	name = "Shield Expertise",
[snip]
	on_unlearn = function(self, t)
		self.combat_physresist = self.combat_physresist + 4
		self.combat_spellresist = self.combat_spellresist + 2
}
Uh, +4 and +2 also when unlearning the skill?

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Needed Talent Description Updates

#6 Post by edge2054 »

Talents adjust your stats as soon as you put points into them, not on hitting escape.

In other words without that on unlearn you could do left right left right left right to learn and unlearn and end up with infinite save bonuses.

Final Master
Sher'Tul
Posts: 1022
Joined: Fri May 21, 2010 8:16 pm
Location: Inside the minds of all
Contact:

Re: Needed Talent Description Updates

#7 Post by Final Master »

I think he was pointing out that it's supposed to be -4 and -2 instead of +.
Final Master's Character Guides
Final Master's Guide to the Arena
Edge: Final Master... official Tome 4 (thread) necromancer.
Zonk: I'd rather be sick than on fire! :D

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Needed Talent Description Updates

#8 Post by edge2054 »

Ahh.. right. I'll file a bug report on it then.

Repton
Archmage
Posts: 371
Joined: Wed Aug 05, 2009 2:17 am

Re: Needed Talent Description Updates

#9 Post by Repton »

Final Master wrote: Overpower:

Code: Select all

info = function(self, t)
		return ([[Hits the target with your weapon and two shield strikes doing %d%% damage, trying to overpower your target.
		If the last attack hits, the target is knocked back. The chance for knock back increases with talent level.]]):format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE)))
	end,
Does the damage percent apply to the weapon attack, or the shield strikes, or both?

Final Master
Sher'Tul
Posts: 1022
Joined: Fri May 21, 2010 8:16 pm
Location: Inside the minds of all
Contact:

Re: Needed Talent Description Updates

#10 Post by Final Master »

It apparently reads it for both, however the amount of damage it will deal is based on your shield's special combat modifier for the bash, and then your weapon damage range for the weapon strikes.
Final Master's Character Guides
Final Master's Guide to the Arena
Edge: Final Master... official Tome 4 (thread) necromancer.
Zonk: I'd rather be sick than on fire! :D

Mithril
Archmage
Posts: 327
Joined: Fri Oct 01, 2010 5:43 pm

Re: Needed Talent Description Updates

#11 Post by Mithril »

There are a large number of talents that cause stun or freeze. However, from the description of these it appears that additional talent points will only add a few more points of secondary damage. Stun/freeze chance or duration are not mentioned as being affected. As such it seems pointless to buy more than 1 level in these talents. Is this correct? If it is not then maybe someone who can understand the source code could kindly provide an updated description?

Burb Lulls
Spiderkin
Posts: 480
Joined: Mon Jul 26, 2004 5:20 am
Location: Blighty

Re: Needed Talent Description Updates

#12 Post by Burb Lulls »

Shield pummel, at least, has an improved stun chance with greater talent level. I'm no coder, but I can see the getTalentLevel in there.

Code: Select all

-- Try to stun !
		if hit then
			if target:checkHit(self:combatAttack(shield.special_combat), target:combatPhysicalResist(), 0, 95, 5 - self:getTalentLevel(t) / 2) and target:canBe("stun") then
				target:setEffect(target.EFF_STUNNED, 2 + self:getTalentLevel(t) / 2, {})
			else
				game.logSeen(target, "%s resists the shield bash!", target.name:capitalize())
			end

Grey
Loremaster
Posts: 3517
Joined: Thu Sep 23, 2010 10:18 pm
Location: London, England
Contact:

Re: Needed Talent Description Updates

#13 Post by Grey »

I'm almost certain from experience that Stunning Blow has increased stun lengths with talent level too. Possibly Dual Strikes as well.

In addition it doesn't say anywhere in the game how long Stone Skin lasts for.
http://www.gamesofgrey.com - My own T-Engine games!
Roguelike Radio - A podcast about roguelikes

Mithril
Archmage
Posts: 327
Joined: Fri Oct 01, 2010 5:43 pm

Re: Needed Talent Description Updates

#14 Post by Mithril »

Burb Lulls wrote:Shield pummel, at least, has an improved stun chance with greater talent level. I'm no coder, but I can see the getTalentLevel in there.
I think a revised version of Shield Pummel is mentioned above which includes that more levels increases duration. But there are other stun/freeze talents where it is unclear if increasing talent levels affects the important stun/freeze effect. If it does not then one only needs one level in these talents. This is unclear for at least these talents:

Stunning Blow for Berserkers where nothing is stated.

Dual Strike and Dirty Fighting for Rouges. Dirty fighting mentions that duration increases but nothing is stated for Dual Strike.

Some of the Cold based spells for mages.

yufra
Perspiring Physicist
Posts: 1332
Joined: Tue Jul 13, 2010 2:53 pm

Re: Needed Talent Description Updates

#15 Post by yufra »

Hide in Plain Sight is actually X% per visible creature, so the percentage drops geometrically with multiple NPCs (as it should). The description could read:

Code: Select all

	info = function(self, t)
		return ([[You have learned how to be stealthly even when in plain sight of your foes, with a %d%% chance of success per visible creature (%d%% for two creatures, etc.). This also resets the cooldown of your stealth talent.]]):
		format(40 + self:getTalentLevel(t) * 7), math.pow(40 + self:getTalentLevel(t) * 7, 2)/100)
	end,
<DarkGod> lets say it's intended

Post Reply