SWEP.ScaleStartTime = 0 SWEP.SpriteScale = 0 SWEP.DoSpriteScale = false function SWEP:Think() -- Called every frame if !self.Nova:IsValid() then return end if self.DoSpriteScale == false then return end if self.SpriteScale < 4 then self.SpriteScale = 1.1^(CurTime() - self.ScaleStartTime) - 1 self.Nova:SetKeyValue("scale", tostring(self.SpriteScale)) end end function SWEP:Initialize() util.PrecacheSound("ambient/wind/wind_snippet4.wav") if ( SERVER ) then self:SetWeaponHoldType( self.HoldType ) end self.SpriteScale = 0 self.Nova = ents.Create("env_sprite") end function SWEP:PrimaryAttack() local MuzzlePos = self.Owner:GetRight() * 7 + self.Owner:GetShootPos() + self.Owner:GetUp() --+ self.Owner:GetForward() ) if CLIENT then return end if self.Weapon:Clip1() == 0 then return end self.Weapon:SetNextPrimaryFire(CurTime() + .15) self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK) self.Owner:SetAnimation( PLAYER_ATTACK1 ) self.Owner:MuzzleFlash() self:TakePrimaryAmmo(1) self.Weapon:EmitSound("ambient/wind/wind_snippet4.wav") local shot = ents.Create("red_whisp") shot:SetPos(MuzzlePos) shot:SetAngles(self.Owner:EyeAngles()) shot:SetOwner(self.Owner) shot.damage = 35 shot:Spawn() local phys = shot:GetPhysicsObject() phys:SetMass(1) phys:ApplyForceCenter(self.Owner:GetAimVector() * 99999) end function SWEP:SecondaryAttack() self.Weapon:SetNextSecondaryFire(CurTime() + 1) self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK) self.Owner:SetAnimation( PLAYER_ATTACK1 ) local trace = self.Owner:GetEyeTrace() self.ScaleStartTime = CurTime() self.DoSpriteScale = true if SERVER then self.Nova:SetPos( self.Owner:GetPos() ) self.Nova:SetKeyValue( "renderfx", "15" ) self.Nova:SetKeyValue( "model", "sprite/glow1.vmt") self.Nova:SetKeyValue( "scale", "1" ) self.Nova:SetKeyValue( "spawnflags", "1") self.Nova:SetKeyValue( "angles", "0 0 0") self.Nova:SetKeyValue( "rendermode", "9") self.Nova:SetKeyValue( "renderamt", "255") self.Nova:SetKeyValue( "rendercolor", "255 0 0" ) self.Nova:Spawn() self.Nova:Activate() self.Nova:SetParent( self.Owner ) self.Nova:Fire("kill", "", 5) end end