protected override double SharedCalculateDamageByWeapon( WeaponFinalCache weaponCache, double damagePreMultiplier, IStaticWorldObject targetObject, out double obstacleBlockDamageCoef) { if (weaponCache.ProtoWeapon is ItemNoWeapon) { // no damage with hands obstacleBlockDamageCoef = 1; if (IsClient) { NotificationSystem.ClientShowNotification(NotificationUseWeaponOrTool, icon: this.Icon); } return(0); } if (!weaponCache.ProtoWeapon?.CanDamageStructures ?? false) { // probably a mob weapon obstacleBlockDamageCoef = 1; return(0); } if (IsServer && !(this is ProtoObjectConstructionSite)) { damagePreMultiplier = LandClaimSystem.ServerAdjustDamageToUnclaimedBuilding(weaponCache, targetObject, damagePreMultiplier); } return(base.SharedCalculateDamageByWeapon(weaponCache, damagePreMultiplier, targetObject, out obstacleBlockDamageCoef)); }