Example #1
0
        private void OnInteracted(EntityUid uid, DamageOnToolInteractComponent component, InteractUsingEvent args)
        {
            if (args.Handled)
            {
                return;
            }

            if (component.WeldingDamage is {} weldingDamage &&
                args.Used.TryGetComponent <WelderComponent>(out var welder) &&
                welder.Lit)
            {
                _damageableSystem.TryChangeDamage(args.Target.Uid, weldingDamage);
                args.Handled = true;
                return;
            }

            if (component.DefaultDamage is {} damage &&
                args.Used.TryGetComponent <ToolComponent>(out var tool) &&
                tool.Qualities.ContainsAny(component.Tools))
            {
                _damageableSystem.TryChangeDamage(args.Target.Uid, damage);
                args.Handled = true;
                return;
            }
        }
        private void OnInteracted(EntityUid uid, DamageOnToolInteractComponent component, InteractUsingEvent args)
        {
            if (args.Handled)
            {
                return;
            }

            if (component.WeldingDamage is {} weldingDamage &&
                EntityManager.TryGetComponent <WelderComponent?>(args.Used, out var welder) &&
                welder.Lit)
            {
                var dmg = _damageableSystem.TryChangeDamage(args.Target, weldingDamage);

                if (dmg != null)
                {
                    _logSystem.Add(LogType.Damaged,
                                   $"{ToPrettyString(args.User):user} used {ToPrettyString(args.Used):used} as a welder to deal {dmg.Total:damage} damage to {ToPrettyString(args.Target):target}");
                }

                args.Handled = true;
            }