local matHit1=Material("sprites/animglow01") local matHit2=Material("sprites/physcannon_bluecore1b") util.PrecacheSound("buttons/combine_button1.wav") util.PrecacheSound("buttons/combine_button2.wav") util.PrecacheSound("buttons/combine_button3.wav") util.PrecacheSound("buttons/combine_button5.wav") util.PrecacheSound("buttons/combine_button7.wav") local nums={"1","2","3","5","7"} -- why do valve have to cut out half the sounds and make it annoying function EFFECT:Init( data ) self.Mag=data:GetMagnitude() or 0 if self.Mag==0 then WorldSound("buttons/combine_button"..nums[math.random(1,#nums)]..".wav", self.Entity:GetPos(), 150, math.random(90,110) ) end self.matHit1=Material("models/roller/rollermine_glow") self.pEnt=data:GetEntity() --self.Entity:SetParent(self.pEnt) self.Size=math.Clamp(data:GetScale(),50,1000) self.Pos=data:GetOrigin() --self.Entity:SetRenderBounds( -512, 512 ) self.Normal=(self.Pos-self.pEnt:GetPos()):Normalize() self.Alp=0.01 self.Up=true self.Offset=self.Pos-self.pEnt:GetPos() end function EFFECT:Think() if not self.pEnt or not self.pEnt:IsValid() then return false end self.Entity:SetPos(self.pEnt:GetPos()+self.Offset) if self.Up then self.Alp=self.Alp+0.05 if self.Mag==1 then if self.Alp>0.5 then self.Up=false end else if self.Alp>1 then self.Up=false end end else self.Alp=self.Alp-0.01 end if self.Alp<0 then return false end return true end function EFFECT:Render() -- cheers self.matHit1:SetMaterialVector("$color", Vector(100,50,0) ) local alph=math.Clamp(self.Alp,0,1) self.matHit1:SetMaterialFloat("$alpha",alph) render.SetMaterial(self.matHit1) render.DrawQuadEasy(self.Entity:GetPos(),self.Normal,self.Size,self.Size) render.DrawQuadEasy(self.Entity:GetPos(),self.Normal*-1,self.Size,self.Size) self.matHit1:SetMaterialVector("$color", Vector(255,255,255) ) end