fix: Fixes ignoring mobs, champions, party crash, slayer rarity, boat speedhack, etc (#1222)
* Movie ignore mobiles to Mobile class * Allow necromancer familiars to ignore mobiles * ChampionSpawn should not quietly fail when creating new spawn * Fix client party crash bug: 2 people partied, the leader logs out, other client is hung * Fix spellbooks creating with magery/meditation only and creating magery multiple times * Fix BaseRunicTool.GetRandomSlayer() creating more undead slayers than intended * Do not allow players to dismount each other whilst mounted * Fix AOS onwards damage increase tooltip and wrong formula in AOS * Fix monsters killing other monster revenants + animate dead should not attack player pets + other animates * Fix fire steed having loot pack added twice * Fix oaks spawn not able to create Unicorns + Kirins via Activator.CreateInstace() due to constructor having name as parametr * Fix ignoreMobiles flag not propagated to client for non-players. * Fix harrower tents not leeching from players * Fix boats speedhacking around the map * Fix bless, agility etc. not renewing duration * Fix reveal always worked * Fix empty constructor for steeds so they don't throw now.
This commit is contained in:
parent
910e06767b
commit
053dbcbad0
54 changed files with 871 additions and 454 deletions
|
|
@ -487,14 +487,7 @@ namespace Server.Items
|
|||
|
||||
if (Quality == WeaponQuality.Exceptional)
|
||||
{
|
||||
if (Attributes.WeaponDamage > 35)
|
||||
{
|
||||
Attributes.WeaponDamage -= 20;
|
||||
}
|
||||
else
|
||||
{
|
||||
Attributes.WeaponDamage = 15;
|
||||
}
|
||||
Attributes.WeaponDamage = 35;
|
||||
|
||||
if (Core.ML)
|
||||
{
|
||||
|
|
@ -2385,27 +2378,8 @@ namespace Server.Items
|
|||
};
|
||||
}
|
||||
|
||||
public virtual int GetDamageBonus()
|
||||
{
|
||||
var quality = m_Quality switch
|
||||
{
|
||||
WeaponQuality.Low => -20,
|
||||
WeaponQuality.Exceptional => 20,
|
||||
_ => 0
|
||||
};
|
||||
|
||||
var damageLevel = m_DamageLevel switch
|
||||
{
|
||||
WeaponDamageLevel.Ruin => 15,
|
||||
WeaponDamageLevel.Might => 20,
|
||||
WeaponDamageLevel.Force => 25,
|
||||
WeaponDamageLevel.Power => 30,
|
||||
WeaponDamageLevel.Vanq => 35,
|
||||
_ => 0
|
||||
};
|
||||
|
||||
return VirtualDamageBonus + quality + damageLevel;
|
||||
}
|
||||
// Note: AOS quality/damage bonuses removed since they are incorporated into the crafting already
|
||||
public virtual int GetDamageBonus() => VirtualDamageBonus;
|
||||
|
||||
public virtual double ScaleDamageAOS(Mobile attacker, double damage, bool checkSkills)
|
||||
{
|
||||
|
|
@ -2477,10 +2451,9 @@ namespace Server.Items
|
|||
damageBonus = 100;
|
||||
}
|
||||
|
||||
var totalBonus = strengthBonus + anatomyBonus + tacticsBonus + lumberBonus +
|
||||
(GetDamageBonus() + damageBonus) / 100.0;
|
||||
var totalBonus = strengthBonus + anatomyBonus + tacticsBonus + lumberBonus + damageBonus + GetDamageBonus();
|
||||
|
||||
return damage + (int)(damage * totalBonus);
|
||||
return damage + damage * totalBonus / 100.0;
|
||||
}
|
||||
|
||||
public virtual int ComputeDamageAOS(Mobile attacker, Mobile defender) =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue