Class Bonesaw : UnrealWeapon { override bool TryPickup( in out Actor toucher ) { if ( !sting_dubious ) return false; // not allowed return Super.TryPickup(toucher); } override void Tick() { Super.Tick(); if ( sting_dubious ) return; if ( !Owner ) { let r = Spawn("Chainsaw",pos,ALLOW_REPLACE); r.spawnangle = spawnangle; r.spawnpoint = spawnpoint; r.angle = angle; r.pitch = pitch; r.roll = roll; r.special = special; r.args[0] = args[0]; r.args[1] = args[1]; r.args[2] = args[2]; r.args[3] = args[3]; r.args[4] = args[4]; r.ChangeTid(tid); r.SpawnFlags = SpawnFlags&~MTF_SECRET; r.HandleSpawnFlags(); r.SpawnFlags = SpawnFlags; r.bCountSecret = SpawnFlags&MTF_SECRET; r.vel = vel; r.master = master; r.target = target; r.tracer = tracer; r.bDropped = bDropped; Destroy(); } else { Owner.RemoveInventory(self); Destroy(); } } Default { Tag "$T_BONESAW"; Inventory.PickupMessage "$I_BONESAW"; Weapon.UpSound "bonesaw/select"; Weapon.SlotNumber 1; Weapon.SelectionOrder 9; +WEAPON.MELEEWEAPON; +FORCEPAIN; +NOEXTREMEDEATH; } States { Spawn: CSWP A -1; Stop; CSWP B -1; Stop; } }