public static void ENCHANTER_CALLLIGHTING(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[0, 3] += 70 + 30 * arguments.SkillLevel; matrix[1, 3] += 150 + (60 + (10 * arguments.SkillLevel)); matrix[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { 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; } }
public static void RECRUIT_ROTATINGFIRESHOT(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, 3] += 100 + (50 * arguments.SkillLevel); matrix[4, 3] += (Lvldiff * 120); asource.Status.CurrentLp -= 1; if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); arguments.IsCritical(matrix); } } else { bargument.Failed = true; } }
public static void RECRUIT_LURINGSHOT(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[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { arguments.UpdateCancelAddition(1004901, 5000, 0, atarget); return; } else { arguments.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.Damage = 0; arguments.Result = SkillBaseEventArgs.ResultType.NoDamage; arguments.IsCritical(matrix); } } else { bargument.Failed = true; } }
public static void SWORDMAN_LONGSWORD(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.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); arguments.IsCritical(matrix); } } else { bargument.Failed = true; } }
private static void BaseMagicalAttack(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.GetMagicalSkillMatrix(asource, atarget); Lvldiff = arguments.GetCappedLevelDifference(matrix); matrix[4, 3] += (Lvldiff * 120); matrix[0, 1] = 0; matrix[1, 1] = 0; if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { 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; } }
public static void RECRUIT_AIMINGSHOT(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[2, 3] = 1200 + (int)((double)matrix[2, 3] * (double)((double)0.5 - ((double)0.05 * (double)arguments.SkillLevel))); matrix[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { 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; } }
public static void SWORDMAN_COURAGEOUSASSAULT(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[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { arguments.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); switch (asource.Status.CurrentLp) { case 1: arguments.Damage += (uint)(7 + arguments.SkillLevel); break; case 2: arguments.Damage += (uint)(13 + arguments.SkillLevel * 2); break; case 3: arguments.Damage += (uint)(21 + arguments.SkillLevel * 3); break; case 4: arguments.Damage += (uint)(29 + arguments.SkillLevel * 4); break; case 5: arguments.Damage += (uint)(37 + arguments.SkillLevel * 5); break; } asource.Status.CurrentLp = 0; asource.Status.Updates |= 1; arguments.IsCritical(matrix); } } else { bargument.Failed = true; } }
public static void RECRUIT_POLLEOSHOT(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[4, 3] += (Lvldiff * 120); switch (asource.Status.CurrentLp) { case 1: matrix.matrix[1, 2] += (9 + 1 * arguments.SkillLevel); break; case 2: matrix.matrix[1, 2] += (19 + 2 * arguments.SkillLevel); break; case 3: matrix.matrix[1, 2] += (30 + 3 * arguments.SkillLevel); break; case 4: matrix.matrix[1, 2] += (42 + 4 * arguments.SkillLevel); break; case 5: matrix.matrix[1, 2] += (55 + 5 * arguments.SkillLevel); break; } asource.Status.CurrentLp = 0; if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { 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; } }
public static void RECRUIT_FINALBLOW(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) { //Apply additions and deapply after SkillUsageEventArgs arguments = (SkillUsageEventArgs)bargument; Singleton.Additions.ApplyAddition(arguments.Addition, asource); matrix = arguments.GetDefaultSkillMatrix(asource, atarget); Singleton.Additions.DeapplyAddition(arguments.Addition, asource); //Calculation Lvldiff = arguments.GetCappedLevelDifference(matrix); matrix[4, 3] += (Lvldiff * 120); //Remove all LP asource.Status.CurrentLp = 0; asource.Status.Updates |= 1; if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { arguments.CanCheckEquipmentDurabillity = true; arguments.CanCheckWeaponDurabillity = true; arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); if (arguments.Damage >= atarget.Status.CurrentHp) { asource.Status.CurrentLp = 7; } arguments.IsCritical(matrix); } } 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 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_FATALBLOW(SkillBaseEventArgs bargument) { int Lvldiff; int cLP; 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); cLP = asource.Status.CurrentLp; matrix[1, 3] = (int)((double)matrix[1, 3] * (1.45 + 0.05 * arguments.SkillLevel) + ((cLP * (30 * arguments.SkillLevel)) * 2)); matrix[0, 3] *= (int)(matrix[0, 3] * 1.2); matrix[4, 3] += (Lvldiff * 120); Singleton.Additions.DeapplyAddition(arguments.Addition, asource); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { 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; } }
public static void RECRUIT_PIERCINGSHOT(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); //Increase both Maximum and minimum attack of yourself and removes the armor matrix.matrix[0, 0] += matrix[3, 0]; matrix.matrix[1, 0] += matrix[3, 0]; matrix.matrix[3, 0] = 0; matrix[4, 3] += (Lvldiff * 120); if (arguments.IsMissed(matrix) || arguments.IsBlocked(matrix)) { return; } else { arguments.Damage = arguments.GetDamage(matrix); arguments.Damage = arguments.GetDefenseReduction(matrix, arguments.Damage); arguments.IsCritical(matrix); } } else { bargument.Failed = true; } }