enderalse/scripts/source/tsc_throwingweapons_armordamage.psc

57 lines
1.8 KiB
Plaintext

Scriptname Tsc_ThrowingWeapons_ArmorDamage extends activemagiceffect
Event OnEffectStart(Actor akTarget, Actor akCaster)
if (!akTarget.IsDead())
float damage = 700 - akTarget.GetActorValue("DamageResist")
if (damage > 0)
float skillModifier = akCaster.GetActorValue("OneHanded") / 100 * baseDamage
damage = damage / 700 * skillModifier
if (akCaster.IsSneaking() && !akCaster.IsDetectedBy(akTarget))
if (isKnife)
damage *= 3
if (akCaster == Game.GetPlayer())
sneakAttackSound.Play(akCaster)
Debug.Notification("Sneak attack for 3.0X damage!")
Game.AdvanceSkill("Sneak", 15.0)
endIf
else
damage *= 2
if (akCaster == Game.GetPlayer())
sneakAttackSound.Play(akCaster)
Debug.Notification("Sneak attack for 2.0X damage!")
Game.AdvanceSkill("Sneak", 15.0)
endIf
endIf
endIf
if (akCaster == Game.GetPlayer())
float currentStamina = akCaster.GetActorValue("Stamina") + 20.00
float lowStamina = akCaster.GetBaseActorValue("Stamina") / 3
if (currentStamina >= akCaster.GetBaseActorValue("Stamina"))
damage *= 2
Debug.Notification("High stamina throw for double damage!")
elseif (currentStamina < lowStamina)
damage /= 2
Debug.Notification("Low stamina throw for half damage.")
endIf
endIf
akTarget.DamageActorValue("Health", damage)
if (akCaster == Game.GetPlayer())
Game.AdvanceSkill("OneHanded", skillModifier)
endIf
endIf
endIf
int random = Utility.RandomInt(0, 99)
if (random < 75)
if (!akTarget.IsPlayerTeammate() && akTarget != Game.GetPlayer())
akTarget.AddItem(dummyObject, 1, true)
endIf
endIf
endEvent
Int Property baseDamage Auto
Sound Property sneakAttackSound Auto
Bool Property isKnife Auto
MiscObject Property dummyObject Auto