public static void THIEF_TEARINGWOUND(SkillBaseEventArgs bargument) { int Lvldiff; int rand; uint aID; SkillUsageEventArgs.SkillMatrix matrix; Actor asource = bargument.Sender as Actor; Actor atarget = bargument.Target as Actor; if (asource != null && atarget != null && bargument.Context == Saga.Enumarations.SkillContext.SkillUse) { SkillUsageEventArgs arguments = (SkillUsageEventArgs)bargument; matrix = arguments.GetDefaultSkillMatrix(asource, atarget); Lvldiff = arguments.GetCappedLevelDifference(matrix); rand = (15 * arguments.SkillLevel); aID = (uint)(50551200 + arguments.SkillLevel); matrix[1, 2] = (int)((double)(matrix[1, 2]) * (double)(0.7 + 0.05 * arguments.SkillLevel)); matrix[2, 3] = (int)((double)(matrix[2, 3]) * (double)(1.3 + 0.05 * arguments.SkillLevel)); matrix[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { arguments.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.DoLpIncrease(asource); arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); arguments.IsCritical(matrix); if (arguments.SkillRand(rand)) // 15% x SkillLVL chance { Common.Skills.UpdateAddition(atarget, (uint)aID, 10000); // Bleeding } } } else { bargument.Failed = true; } }
public static void THIEF_HEMORRAGE(SkillBaseEventArgs bargument) { int Lvldiff; SkillUsageEventArgs.SkillMatrix matrix; Actor asource = bargument.Sender as Actor; Actor atarget = bargument.Target as Actor; if (asource != null && atarget != null && bargument.Context == Saga.Enumarations.SkillContext.SkillUse) { SkillUsageEventArgs arguments = (SkillUsageEventArgs)bargument; matrix = arguments.GetDefaultSkillMatrix(asource, atarget); Lvldiff = arguments.GetCappedLevelDifference(matrix); matrix[1, 2] = (int)((double)(matrix[1, 2]) * (double)(0.7 + 0.05 * arguments.SkillLevel)); matrix[2, 3] = (int)((double)(matrix[2, 3]) * (double)(1.3 + 0.05 * arguments.SkillLevel)); matrix[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { if (Common.Skills.HasAddition(atarget, arguments.Addition)) { Common.Skills.UpdateAddition(atarget, arguments.Addition, 30000); // Increase Timing of Bleeding arguments.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.DoLpIncrease(asource); arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); arguments.IsCritical(matrix); } else { return; } } } else { bargument.Failed = true; } }
public static void RECRUIT_DAMPFLINT(SkillBaseEventArgs bargument) { int Lvldiff; SkillUsageEventArgs.SkillMatrix matrix; Actor asource = bargument.Sender as Actor; Actor atarget = bargument.Target as Actor; if (asource != null && atarget != null && bargument.Context == Saga.Enumarations.SkillContext.SkillUse) { SkillUsageEventArgs arguments = (SkillUsageEventArgs)bargument; Singleton.Additions.ApplyAddition(arguments.Addition, asource); matrix = arguments.GetDefaultSkillMatrix(asource, atarget); Lvldiff = arguments.GetCappedLevelDifference(matrix); matrix[4, 3] += (Lvldiff * 120); Singleton.Additions.DeapplyAddition(arguments.Addition, asource); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { arguments.DoLpIncrease(asource); arguments.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); arguments.IsCritical(matrix); } } else { bargument.Failed = true; } }