mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
113 lines
2.9 KiB
Lua
113 lines
2.9 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
|
|
local ix = ix
|
|
|
|
ix.weapons = ix.weapons or {}
|
|
|
|
ix.weapons.meleeWeapons = ix.weapons.meleeWeapons or {}
|
|
ix.weapons.meleeCat = ix.weapons.meleeCat or {}
|
|
ix.weapons.bluntWeapons = ix.weapons.bluntWeapons or {}
|
|
|
|
function ix.weapons:RegisterMeleeWeapon(weapon, category)
|
|
ix.weapons.meleeWeapons[weapon] = category
|
|
end
|
|
|
|
function ix.weapons:IsMelee(weapon)
|
|
return ix.weapons.meleeWeapons[weapon]
|
|
end
|
|
|
|
function ix.weapons:RegisterMeleeCategory(uid, baseDamage, hitScale, critSkillScale, armorPen)
|
|
self.meleeCat[uid] = {
|
|
armorPen = armorPen,
|
|
baseDamage = baseDamage,
|
|
critSkillScale = critSkillScale,
|
|
hitScale = hitScale,
|
|
}
|
|
end
|
|
|
|
function ix.weapons:GetMeleeWeaponBaseHitChance(character, weaponClass)
|
|
if (self.weaponAimPenalty[weaponClass]) then
|
|
return self.weaponAimPenalty[weaponClass]
|
|
end
|
|
|
|
if (!self.meleeWeapons[weaponClass]) then
|
|
return 0.8
|
|
end
|
|
|
|
local weaponCat = self.meleeWeapons[weaponClass]
|
|
if (!self.meleeCat[weaponCat]) then
|
|
return 0.8
|
|
end
|
|
|
|
return character:GetSkillScale(self.meleeCat[weaponCat].critSkillScale) or 0.8
|
|
end
|
|
|
|
function ix.weapons:GetMeleeArmorPen(weaponClass)
|
|
if (self.weaponArmorPen[weaponClass]) then
|
|
return self.weaponArmorPen[weaponClass]
|
|
end
|
|
|
|
if (self.bluntWeapons[weaponClass]) then
|
|
return 1
|
|
end
|
|
|
|
local weaponCat = self.meleeWeapons[weaponClass]
|
|
if (!self.meleeCat[weaponCat]) then
|
|
return 1
|
|
end
|
|
|
|
return self.meleeCat[weaponCat].armorPen
|
|
end
|
|
|
|
function ix.weapons:GetMeleeWeaponBaseDamage(weaponClass, attackType)
|
|
local scale = 1
|
|
if (attackType == "heavy") then
|
|
scale = 2.5
|
|
elseif (attackType == "bash") then
|
|
scale = 0.7
|
|
end
|
|
|
|
if (self.weaponDamage[weaponClass]) then
|
|
return self.weaponDamage[weaponClass] * scale
|
|
end
|
|
|
|
if (!self.meleeWeapons[weaponClass]) then
|
|
return 16 * scale
|
|
end
|
|
|
|
local weaponCat = self.meleeWeapons[weaponClass]
|
|
if (!self.meleeCat[weaponCat]) then
|
|
return 16 * scale
|
|
end
|
|
|
|
return self.meleeCat[weaponCat].baseDamage * scale
|
|
end
|
|
|
|
function ix.weapons:GetMeleeWeaponHitAdjsut(weaponClass)
|
|
if (!self.meleeWeapons[weaponClass]) then
|
|
return 0.8
|
|
end
|
|
|
|
local weaponCat = self.meleeWeapons[weaponClass]
|
|
if (!self.meleeCat[weaponCat]) then
|
|
return 0.8
|
|
end
|
|
|
|
return self.meleeCat[weaponCat].hitScale
|
|
end
|
|
|
|
ix.weapons:RegisterMeleeCategory("light", 24, 0.8, "melee_light", 0.4)
|
|
ix.weapons:RegisterMeleeCategory("medium", 36, 0.5, "melee_medium", 0.6)
|
|
ix.weapons:RegisterMeleeCategory("heavy", 42, 0.4, "melee_heavy", 0.8)
|
|
|
|
ix.weapons:RegisterMeleeWeapon("ix_stunstick", "light")
|
|
--ix.weapons:RegisterMeleeWeapon("tfa_nmrih_kknife", "light") |