diff --git a/Data/Scripts/CoreSystems/Session/SessionDamageMgr.cs b/Data/Scripts/CoreSystems/Session/SessionDamageMgr.cs index d0fe81fe..0a834ef7 100644 --- a/Data/Scripts/CoreSystems/Session/SessionDamageMgr.cs +++ b/Data/Scripts/CoreSystems/Session/SessionDamageMgr.cs @@ -487,22 +487,27 @@ private void DamageGrid(HitEntity hitEnt, ProInfo t) aoeIsPool = aoeFalloff == Falloff.Pooled; } if (NerdShieldApiLoaded && NerdShieldAPI.IsReady) - if(currentGrid == null || !rootBlock.CubeGrid.IsInSameLogicalGroupAs(currentGrid)) + { + if (currentGrid == null || !rootBlock.CubeGrid.IsInSameLogicalGroupAs(currentGrid)) { currentGrid = rootBlock.CubeGrid; HasNerdShields = NerdShieldAPI.GridHasShields(currentGrid); - switch (t.AmmoDef.DamageScales.Shields.Type) + if (!t.AmmoDef.NoGridOrArmorScaling) { - case ShieldDef.ShieldType.Default: - nerdShieldModifier = t.AmmoDef.DamageScales.Shields.Modifier; - nerdShieldPassthroughModifier = t.AmmoDef.DamageScales.Shields.BypassModifier; - break; - case ShieldDef.ShieldType.Bypass: - nerdShieldPassthroughModifier = t.AmmoDef.DamageScales.Shields.Modifier; - break; + switch (t.AmmoDef.DamageScales.Shields.Type) + { + case ShieldDef.ShieldType.Default: + nerdShieldModifier = t.AmmoDef.DamageScales.Shields.Modifier * gridDamageModifier * gridSizeBuff + * (largeGrid ? t.AmmoDef.DamageScales.Grids.Large : t.AmmoDef.DamageScales.Grids.Small); + nerdShieldPassthroughModifier = t.AmmoDef.DamageScales.Shields.BypassModifier; + break; + case ShieldDef.ShieldType.Bypass: + nerdShieldPassthroughModifier = t.AmmoDef.DamageScales.Shields.Modifier; + break; + } } - if (t.AmmoDef.DamageScales.Shields.Type == ShieldDef.ShieldType.Heal) + if (!t.AmmoDef.NoGridOrArmorScaling && t.AmmoDef.DamageScales.Shields.Type == ShieldDef.ShieldType.Heal) NerdShieldAPI.ShieldDoDamage(currentGrid, currentGrid.GridIntegerToWorld(rootBlock.Position), t.AmmoDef.DamageScales.DamageType.Shield == DamageTypes.Damage.Kinetic ? KineticHash : EnergyHash, -basePool, nerdShieldModifier, nerdShieldPassthroughModifier); else @@ -515,6 +520,7 @@ private void DamageGrid(HitEntity hitEnt, ProInfo t) { currentGrid = rootBlock.CubeGrid; // duplicated because doing it before would invalidate the nullcheck above } + } if (!detRequested) {