Index: sanguine_blade.lua =================================================================== --- sanguine_blade.lua (revision 0) +++ sanguine_blade.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------- +-- Sanguine Blade Weapon Skill +-- @author Katrinka (SinisterSkies) +-- @version 131209 +----------------------------------- + +----------------------------------- +-- Sanguine Blade +-- Sword weapon skill +-- Skill Level: 300 +-- Drains a percentage of damage dealt to HP varying with TP. +-- Does NOT stack with Sneak Attack +-- Element: Dark +-- Modifiers: STR:30% MND:50% +-- 100%TP 200%TP 300%TP +-- 2.75 2.75 2.75 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + + params.numHits = 1; + params.ftp100 = 2.75; params.ftp200 = 2.75; params.ftp300 = 2.75; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.5; params.chr_wsc = 0.0; + params.crit100 = 0; params.crit200 = 0; params.crit300 = 0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + + local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + if(player:getTP() >= 100 and player:getTP() < 200) then + local drain = damage * 0.5; + player:addHP(drain); + elseif(player:getTP() >= 200 and player:getTP() < 300) then + local drain = damage * 0.75; + player:addHP(drain); + elseif(player:getTP() == 300) then + player:addHP(damage); + end + + return tpHits, extraHits, criticalHit, damage; + +end