private void AbsorbClientShieldHits() { for (int i = 0; i < ShieldHits.Count; i++) { var hit = ShieldHits[i]; var damageType = hit.DamageType; if (!WasOnline) { continue; } if (damageType == Session.Instance.MPExplosion) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = true; Absorb += hit.Amount * ConvToWatts; UtilsStatic.CreateFakeSmallExplosion(WorldImpactPosition); if (hit.Attacker != null) { hit.Attacker.Close(); hit.Attacker.InScene = false; } continue; } if (damageType == Session.Instance.MPKinetic) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = false; Absorb += hit.Amount * ConvToWatts; continue; } if (damageType == Session.Instance.MPEnergy) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = true; Absorb += hit.Amount * ConvToWatts; continue; } if (damageType == Session.Instance.MPEMP) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = true; Absorb += hit.Amount * ConvToWatts; continue; } } ShieldHits.Clear(); }
private void AbsorbClientShieldHits() { for (int i = 0; i < ShieldHits.Count; i++) { var hit = ShieldHits[i]; var damageType = hit.DamageType; if (!NotFailed) { continue; } if (damageType == Session.Instance.MPExplosion) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = HitType.Energy; Absorb += hit.Amount * ConvToWatts; UtilsStatic.CreateFakeSmallExplosion(WorldImpactPosition); if (hit.Attacker != null) { ((IMyDestroyableObject)hit.Attacker).DoDamage(1, Session.Instance.MPKinetic, false, null, ShieldEnt.EntityId); } continue; } if (damageType == Session.Instance.MPKinetic) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = HitType.Kinetic; Absorb += hit.Amount * ConvToWatts; continue; } if (damageType == Session.Instance.MPEnergy) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = HitType.Energy; Absorb += hit.Amount * ConvToWatts; continue; } if (damageType == Session.Instance.MPEMP) { ImpactSize = hit.Amount; WorldImpactPosition = hit.HitPos; EnergyHit = HitType.Energy; Absorb += hit.Amount * ConvToWatts; continue; } } ShieldHits.Clear(); }
private void AddLocalHit() { ShieldHits.Add(new ShieldHit(MyEntities.GetEntityById(ShieldHit.AttackerId), ShieldHit.Amount, MyStringHash.GetOrCompute(ShieldHit.DamageType), ShieldHit.HitPos)); }