Untitled
unknown
plain_text
3 years ago
9.2 kB
6
Indexable
if snd.class == "Shapeshifter" then
snd.starting_attack()
function snd.attack_function()
if not snd.waiting.queue then
local function feralityConvert(limb)
if string.find(limb, "leg") then
return "hamstring " .. limb:gsub(" leg", "")
elseif string.find(limb, "arm") then
return "rend " .. limb:gsub(" arm", "")
elseif limb == "torso" then
if not snd.checkAff("paresis") then
return "spinalcrack"
else
return "bodypunch"
end
elseif limb == "head" then
if snd.limb_status.head ~= "healed" and not snd.checkAff("fallen") then
return "skullwhack"
elseif not snd.checkAff("blurry_vision") then
return "faceslash"
else
return "jugular"
end
else
limb = head
return "jugular"
end
end
local function limbCheck(limb)
if limb ~= snd.parried_limb and
limb ~= snd.last_hit_limb and
limb ~= snd.resto_limb
then
return true
else
return false
end
end
local mending_count = 0
local broken_limbs = {"right_leg_broken","left_leg_broken","right_arm_broken","left_arm_broken"}
for affs in pairs(broken_limbs) do
if snd.checkAff(broken_limbs[affs]) then
mending_count = mending_count + 1
end
end
if snd.proned() then
if snd.checkAff("groinrip") then
limbs = {"left arm", "torso", "head", "right arm", "right leg", "left leg"}
elseif snd.checkAff("spleenrip") then
limbs = {"right leg", "left leg", "head", "torso"}
elseif snd.checkAff("throatrip") then
limbs = {"left leg", "right leg", "left arm", "torso", "right arm", "head"}
else
limbs = {"left leg", "right leg", "left arm", "head", "right arm", "torso"}
end
else
limbs = {"left leg", "right leg", "left arm", "right arm", "torso", "head"}
end
mangled = "nothing"
broken = "nothing"
crippled = "nothing"
for limb in pairs(limbs) do
if snd.limb_status[limbs[limb]] == "mangled" and mangled == "nothing" then
if
string.find(limbs[limb], "leg") and
not snd.checksomeAffs({"groinrip", "writhe_thighlock"}, 1)
then
if
(
limbs[limb] ~= snd.parried_limb and
limbs[limb] ~= snd.last_hit_limb
)
then
mangled = limbs[limb]
end
elseif
limbs[limb] == "head" and not snd.checksomeAffs({"throatrip", "writhe_necklock"}, 1)
then
if
(
limbs[limb] ~= snd.parried_limb and
limbs[limb] ~= snd.last_hit_limb
)
then
mangled = limbs[limb]
end
elseif
not snd.checksomeAffs({"spleenrip", "writhe_armpitlock"}, 1) and
(limbs[limb] == "torso" or string.find(limbs[limb], "arm"))
then
if
(
limbs[limb] ~= snd.parried_limb and
limbs[limb] ~= snd.last_hit_limb
)
then
mangled = limbs[limb]
end
end
elseif
snd.limb_status[limbs[limb]] == "damaged" and
snd.limb_dmg[limbs[limb]] < 66.66 and
broken == "nothing"
then
if
limbCheck(limbs[limb])
then
broken = limbs[limb]
end
elseif
table.contains(snd.target_has, string.gsub(limbs[limb], " ", "_") .. "_broken") and
snd.limb_dmg[limbs[limb]] < 33.33 and
crippled == "nothing"
then
if string.find(limbs[limb], "leg") or string.find(limbs[limb], "arm") then
if
limbCheck(limbs[limb])
then
crippled = limbs[limb]
end
end
end
end
if snd.resetWounds == "true" then
string = "WOUNDS " .. snd.target
snd.resetWounds = "false"
elseif snd.used.shield then --probably change this to hammer tat now that it's been super buffed and only pounce if fury
string = "touch hammer " .. snd.target
elseif snd.checksomeAffs({"groinrip", "throatrip", "spleenrip"}, 2) then
string = "devour " .. snd.target
elseif
snd.checksomeAffs({"writhe_necklock", "writhe_armpitlock", "writhe_thighlock"}, 1) and
not snd.jawlocked
then
string = "quarter " .. snd.target
elseif snd.checkAff("writhe_necklock") and snd.jawlocked and not snd.checkAff("throatrip") then
string = "throatrip " .. snd.target
elseif snd.checkAff("writhe_armpitlock") and snd.jawlocked and not snd.checkAff("spleenrip") then
string = "spleenrip " .. snd.target
elseif snd.checkAff("writhe_thighlock") and snd.jawlocked and not snd.checkAff("groinrip") then
string = "groinrip " .. snd.target
elseif snd.proned() and mangled ~= "nothing" and not snd.jawlocked then
if string.find(mangled, "leg") and not snd.checkAff("groinrip") then
string = "jawlock thigh of " .. snd.target
elseif mangled == "head" and not snd.checkAff("throatrip") then
string = "jawlock neck of " .. snd.target
elseif
mangled == "torso" or string.find(mangled, "arm") and not snd.checkAff("spleenrip")
then
string = "jawlock armpit of " .. snd.target
end
elseif (broken ~= "nothing" and broken ~= "head") and not snd.jawlocked and snd.defenses.def_fury.state ~= "deffed"
then
if broken == "torso" and snd.checkAff("spleenrip") then
string = "lacerate " .. snd.target
elseif broken == "torso" then
string = "gut " .. snd.target
else
string = "mangle " .. broken .. " of " .. snd.target
end
elseif broken == "head" and snd.checkAff("fallen") and not snd.jawlocked and snd.defenses.def_fury.state ~= "deffed" and snd.limb_status.head ~= "mangled" then
string = "skullcrush "..snd.target
elseif
crippled ~= "nothing" and not snd.jawlocked and snd.defenses.def_fury.state ~= "deffed" and (snd.enemy_restoration_balance == false or mending_count>2)
then
string = "destroy " .. crippled .. " of " .. snd.target
elseif
snd.checkAff("paralysis") and not snd.checkAff("spinal_rip") and broken == "nothing" and not snd.jawlocked and snd.defenses.def_fury.state ~= "deffed"
then
string = "spinalrip " .. snd.target
elseif
snd.checkAff("blurry_vision") and not snd.checkAff("mauled_face") and broken == "nothing" and not snd.jawlocked and snd.defenses.def_fury.state ~= "deffed"
then
string = "facemaul " .. snd.target
else
local left = "nothing"
local right = "nothing"
local spare = "nothing"
for limb in pairs(limbs) do
if
limbs[limb] ~= snd.parried_limb and
limbs[limb] ~= snd.last_hit_limb and
not table.contains(snd.target_has, limbs[limb]:gsub(" ", "_") .. "_broken")
then
if right == "nothing" then
right = limbs[limb]
elseif left == "nothing" then
left = limbs[limb]
elseif right ~= "nothing" and left ~= "nothing" then
spare = limbs[limb]
end
end
end
if left == "nothing" then
left = right
end
string =
"combo " .. snd.target .. " " .. feralityConvert(left) .. " " .. feralityConvert(right)
if snd.defenses.def_fury.state == "deffed" then
if snd.used.shield then
string = "pounce " .. snd.target .. snd.sep .. string
elseif snd.checkAff("paralysis") then
string = "spinalrip " .. snd.target .. snd.sep .. string
elseif snd.limb_status.torso ~= "healed" and snd.checkAff("spleenrip") then
string = "lacerate " .. snd.target .. snd.sep .. string
elseif snd.checkAff("blurry_vision") and not snd.checkAff("mauled_face") then
string = "facemaul " .. snd.target .. snd.sep .. string
elseif snd.limb_status.torso ~= "healed" then
string = "gut " .. snd.target .. snd.sep .. string
else
string = "bite " .. snd.target .. " " .. spare .. snd.sep .. string
end
end
end
if string ~= snd.last_attack and not snd.waiting.queue then
snd.last_attack = string
snd.attack(snd.last_attack)
snd.waiting.queue = true
tempTimer(snd.delay(), [[snd.waiting.queue = false]])
end
end
end
snd.attack_function()
end
Editor is loading...