diff --git a/Source/ACE.Server/WorldObjects/Creature_Death.cs b/Source/ACE.Server/WorldObjects/Creature_Death.cs index 4951a9b73d..14188e52a1 100644 --- a/Source/ACE.Server/WorldObjects/Creature_Death.cs +++ b/Source/ACE.Server/WorldObjects/Creature_Death.cs @@ -279,7 +279,7 @@ public void OnDeath_HandleKillTask(string killQuest) TryHandleKillTask(playerDamager, killQuest, killTaskCredits, cap); } // check option that requires killer to have killtask to pass to fellows - else if (!PropertyManager.GetBool("fellow_kt_killer").Item) + else if (PropertyManager.GetBool("fellow_kt_killer").Item) { continue; } diff --git a/Source/ACE.Server/WorldObjects/Managers/EnchantmentManager.cs b/Source/ACE.Server/WorldObjects/Managers/EnchantmentManager.cs index 1435b6d84b..b63e92fa9d 100644 --- a/Source/ACE.Server/WorldObjects/Managers/EnchantmentManager.cs +++ b/Source/ACE.Server/WorldObjects/Managers/EnchantmentManager.cs @@ -167,7 +167,7 @@ public virtual AddEnchantmentResult Add(Spell spell, WorldObject caster, WorldOb if (refreshSpell == null) { - var newEntry = BuildEntry(spell, caster, weapon, equip); + var newEntry = BuildEntry(spell, caster, weapon, equip, isWeaponSpell); newEntry.LayerId = result.NextLayerId; WorldObject.Biota.PropertiesEnchantmentRegistry.AddEnchantment(newEntry, WorldObject.BiotaDatabaseLock); @@ -1405,7 +1405,8 @@ public void ApplyDamageTick(List enchantments, Da if (isDead) break; } - creature.TakeDamageOverTime(tickAmountTotal, damageType); + if (!creature.Invincible) + creature.TakeDamageOverTime(tickAmountTotal, damageType); if (!creature.IsAlive) return; diff --git a/Source/ACE.Server/WorldObjects/Player_Vitals.cs b/Source/ACE.Server/WorldObjects/Player_Vitals.cs index b6a23b6da5..770706678e 100644 --- a/Source/ACE.Server/WorldObjects/Player_Vitals.cs +++ b/Source/ACE.Server/WorldObjects/Player_Vitals.cs @@ -144,7 +144,7 @@ public override int UpdateVital(CreatureVital vital, int newVal) // check for exhaustion if (vital.Vital == PropertyAttribute2nd.Stamina || vital.Vital == PropertyAttribute2nd.MaxStamina) { - if (newVal == 0) + if (vital.Current == 0) { OnExhausted(); } diff --git a/Source/ACE.Server/WorldObjects/SpellProjectile.cs b/Source/ACE.Server/WorldObjects/SpellProjectile.cs index 0ef0c887fb..3e92a57fef 100644 --- a/Source/ACE.Server/WorldObjects/SpellProjectile.cs +++ b/Source/ACE.Server/WorldObjects/SpellProjectile.cs @@ -380,7 +380,7 @@ public override void OnCollideObject(WorldObject target) var sourcePlayer = source as Player; var targetPlayer = target as Player; - if (source == null || !target.IsAlive || targetPlayer != null && targetPlayer.Invincible) + if (source == null || !target.IsAlive || target.Invincible) return null; // check lifestone protection @@ -688,7 +688,7 @@ public void DamageTarget(Creature target, float damage, bool critical, bool crit { var targetPlayer = target as Player; - if (targetPlayer != null && targetPlayer.Invincible || target.IsDead) + if (target.Invincible || target.IsDead) return; var sourceCreature = ProjectileSource as Creature; diff --git a/Source/ACE.Server/WorldObjects/WorldObject_Magic.cs b/Source/ACE.Server/WorldObjects/WorldObject_Magic.cs index 800df98237..611e01d76a 100644 --- a/Source/ACE.Server/WorldObjects/WorldObject_Magic.cs +++ b/Source/ACE.Server/WorldObjects/WorldObject_Magic.cs @@ -170,11 +170,11 @@ public bool TryResistSpell(WorldObject target, Spell spell, WorldObject itemCast var player = this as Player; var targetPlayer = target as Player; + if (targetCreature.Invincible) + resisted = true; + if (targetPlayer != null) { - if (targetPlayer.Invincible) - resisted = true; - if (targetPlayer.UnderLifestoneProtection) { targetPlayer.HandleLifestoneProtection();