protected override void Cycle(BallisticAmmoProviderComponent component, MapCoordinates coordinates)
    {
        EntityUid?ent = null;

        // TODO: Combine with TakeAmmo
        if (component.Entities.Count > 0)
        {
            var existing = component.Entities[^ 1];
Esempio n. 2
0
 private void OnBallisticAmmoCount(EntityUid uid, BallisticAmmoProviderComponent component, UpdateAmmoCounterEvent args)
 {
     if (args.Control is DefaultStatusControl control)
     {
         control.Update(GetBallisticShots(component), component.Capacity);
         return;
     }
 }
Esempio n. 3
0
    protected override void Cycle(BallisticAmmoProviderComponent component, MapCoordinates coordinates)
    {
        if (!Timing.IsFirstTimePredicted)
        {
            return;
        }

        EntityUid?ent = null;

        // TODO: Combine with TakeAmmo
        if (component.Entities.Count > 0)
        {
            var existing = component.Entities[^ 1];
Esempio n. 4
0
    private void OnBallisticVerb(EntityUid uid, BallisticAmmoProviderComponent component, GetVerbsEvent <Verb> args)
    {
        if (!args.CanAccess || !args.CanInteract || args.Hands == null)
        {
            return;
        }

        args.Verbs.Add(new Verb()
        {
            Text     = Loc.GetString("gun-ballistic-cycle"),
            Disabled = GetBallisticShots(component) == 0,
            Act      = () => ManualCycle(component, Transform(uid).MapPosition, args.User),
        });
    }
Esempio n. 5
0
    private void OnBallisticInteractUsing(EntityUid uid, BallisticAmmoProviderComponent component, InteractUsingEvent args)
    {
        if (args.Handled || component.Whitelist?.IsValid(args.Used, EntityManager) != true)
        {
            return;
        }

        if (GetBallisticShots(component) >= component.Capacity)
        {
            return;
        }

        component.Entities.Add(args.Used);
        component.Container.Insert(args.Used);
        // Not predicted so
        PlaySound(uid, component.SoundInsert?.GetSound(Random, ProtoManager), args.User);
        args.Handled = true;
        UpdateBallisticAppearance(component);
        Dirty(component);
    }
Esempio n. 6
0
 private void ManualCycle(BallisticAmmoProviderComponent component, MapCoordinates coordinates, EntityUid?user = null)
 {
     // Reset shotting for cycling
     if (TryComp <GunComponent>(component.Owner, out var gunComp) &&
         gunComp is { FireRate : > 0f })
Esempio n. 7
0
 private void OnBallisticExamine(EntityUid uid, BallisticAmmoProviderComponent component, ExaminedEvent args)
 {
     args.PushMarkup(Loc.GetString("gun-magazine-examine", ("color", AmmoExamineColor), ("count", GetBallisticShots(component))));
 }
Esempio n. 8
0
 private void OnBallisticActivate(EntityUid uid, BallisticAmmoProviderComponent component, ActivateInWorldEvent args)
 {
     ManualCycle(component, Transform(uid).MapPosition, args.User);
     args.Handled = true;
 }