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);
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
 }
Exemplo n.º 9
0
 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);
 }