private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args) { if (!args.Target.TryGetComponent(out IDamageableComponent? damageable)) { return; } damageable.TryChangeDamage(component.DamageType, component.Amount, component.IgnoreResistances); }
private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args) { var dmg = _damageableSystem.TryChangeDamage(args.Target, component.Damage, component.IgnoreResistances); if (dmg != null) { _logSystem.Add(LogType.ThrowHit, $"{args.Target} received {dmg.Total} damage from collision"); } }
private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args) { var dmg = _damageableSystem.TryChangeDamage(args.Target, component.Damage, component.IgnoreResistances); // Log damage only for mobs. Useful for when people throw spears at each other, but also avoids log-spam when explosions send glass shards flying. if (dmg != null && HasComp <MobStateComponent>(args.Target)) { _logSystem.Add(LogType.ThrowHit, $"{ToPrettyString(args.Target):target} received {dmg.Total:damage} damage from collision"); } }
private void OnThrowCollide(EntityUid uid, StunbatonComponent comp, ThrowDoHitEvent args) { if (!EntityManager.TryGetComponent <PowerCellSlotComponent>(uid, out var slot)) { return; } if (!comp.Activated || slot.Cell == null || !slot.Cell.TryUseCharge(comp.EnergyPerUse)) { return; } StunEntity(args.Target, comp); }
private void OnThrowCollide(EntityUid uid, StunbatonComponent comp, ThrowDoHitEvent args) { if (!comp.Activated) { return; } if (!_cellSystem.TryGetBatteryFromSlot(uid, out var battery) || !battery.TryUseCharge(comp.EnergyPerUse)) { return; } StunEntity(args.Target, comp); }
private void OnThrowCollide(EntityUid uid, StunbatonComponent comp, ThrowDoHitEvent args) { if (!comp.Activated) { return; } if (!TryComp <BatteryComponent>(uid, out var battery)) { return; } if (_robustRandom.Prob(comp.OnThrowStunChance) && battery.TryUseCharge(comp.EnergyPerUse)) { SendPowerPulse(args.Target, args.User, uid); StunEntity(args.Target, comp); } }
private void OnThrowDoHit(EntityUid uid, ForcefeedOnCollideComponent component, ThrowDoHitEvent args) { _foodSystem.ProjectileForceFeed(uid, args.Target, args.User); }
private void OnCreamPieHit(EntityUid uid, CreamPieComponent component, ThrowDoHitEvent args) { SplatCreamPie(uid, component); }
private void HandleThrow(EntityUid uid, StunOnCollideComponent component, ThrowDoHitEvent args) { TryDoCollideStun(uid, component, args.Target); }
private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args) { _damageableSystem.TryChangeDamage(args.Target.Uid, component.Damage, component.IgnoreResistances); }