Class SMiniAmmo : Ammo { Default { Inventory.Icon "I_SMini"; Inventory.Amount 32; Inventory.MaxAmount 32; Ammo.BackpackAmount 0; Ammo.BackpackMaxAmount 64; } override bool TryPickup( in out Actor toucher ) { if ( !sting_proto || !sting_dubious ) return false; // not allowed return Super.TryPickup(toucher); } override void Tick() { Super.Tick(); if ( sting_proto && sting_dubious ) return; if ( Owner ) Owner.RemoveInventory(self); Destroy(); } } Class SMiniXLight : PaletteLight { Default { Args 0,0,0,50; ReactionTime 15; } } Class SMiniShell : FastProjectile { Default { Obituary "$O_SMINI"; DamageType 'Shot'; DamageFunction 400; Radius 4; Height 4; Speed 200; +SKYEXPLODE; +EXPLODEONWATER; +FORCERADIUSDMG; +NODAMAGETHRUST; +INTERPOLATEANGLES; } override void Tick() { Vector3 oldpos = pos; Super.Tick(); if ( isFrozen() || (CurState != FindState("Spawn")) ) return; // spawn trail Vector3 dir = level.Vec3Diff(oldpos,pos); double dist = dir.length(); dir /= dir.length(); for ( double d=0; d