- Code: Select all
using System;
using DOL.GS;
using DOL.GS.PacketHandler;
using DOL.GS.Effects;
using DOL.Events;
using DOL.AI.Brain;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
namespace DOL.GS.Spells
{
[SpellHandler("NightshadeNuke")]
public class NightshadeNuke : DirectDamageSpellHandler
{
/// <summary>
/// Calculates min damage variance %
/// </summary>
/// <param name="target">spell target</param>
/// <param name="min">returns min variance</param>
/// <param name="max">returns max variance</param>
public override void CalculateDamageVariance(GameLiving target, out double min, out double max)
{
int speclevel = 1;
if (m_caster is GamePlayer)
{
speclevel = ((GamePlayer)m_caster).GetModifiedSpecLevel(Specs.Stealth);
}
min = 1.25;
max = 1.25;
if (target.Level > 0)
{
min = 0.75 + (speclevel - 1) / (double)target.Level * 0.5;
}
if (speclevel - 1 > target.Level)
{
double overspecBonus = (speclevel - 1 - target.Level) * 0.005;
min += overspecBonus;
max += overspecBonus;
}
if (min > max) min = max;
if (min < 0) min = 0;
}
/// <summary>
/// Calculates the base 100% spell damage which is then modified by damage variance factors
/// </summary>
/// <returns></returns>
public override double CalculateDamageBase(GameLiving target)
{
double spellDamage = Spell.Damage;
GamePlayer player = Caster as GamePlayer;
if (player != null)
{
int dexValue = player.GetModified((eProperty)player.Dexterity);
spellDamage *= (dexValue + 300) / 275.0;
}
if (spellDamage < 0)
spellDamage = 0;
return spellDamage;
}
public NightshadeNuke(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
}
}
http://www.camelotherald.com/patches.php?mode=live
scroll down to Dark Age of Camelot
Version 1.103 Release Notes
General Changes
May 18, 2010
Class Changes and Fixes
Nightshades
# All Nightshade magical abilities will now base their damage and variance off of the Stealth skill.
queries to update spells
- Code: Select all
SELECT * FROM `spell`;
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Arrow of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Stiletto of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Dart of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Knife of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Spear of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Rapier of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Dagger of Night";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Lance of Night";
- Code: Select all
SELECT * FROM `spell`;
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Lesser Dusk Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Dusk Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Lesser Twilight Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Twilight Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Lesser Gloaming Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Gloaming Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Lesser Nocturnal Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Nocturnal Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Lesser Midnight Strike";
UPDATE spell set type = "NightshadeNuke" WHERE Name = "Midnight Strike";