include('shared.lua') function ENT:Intiialize() self.LastThought=0 end function ENT:Think() local always=self.Entity:GetNetworkedBool("alwayson",false) local on=self.Entity:GetNetworkedBool("on",false) local energy=self.Entity:GetNetworkedInt("energy",100) if self.Entity:GetNetworkedBool("dostart",false) or always and on then local size=self.Entity:GetNetworkedInt("size",250) if not always then for i=1,3 do local pos=self.Entity:GetPos()+(VectorRand():Normalize()*size) local effectdata = EffectData() effectdata:SetOrigin(pos) effectdata:SetEntity(self.Entity) effectdata:SetScale(size) effectdata:SetMagnitude(1) util.Effect("shield_block",effectdata) end else if not self.LastThought then self.LastThought=CurTime() end if self.LastThought>CurTime() then return end for i=1,2 do local pos=self.Entity:GetPos()+(VectorRand():Normalize()*size) local effectdata = EffectData() effectdata:SetOrigin(pos) effectdata:SetEntity(self.Entity) effectdata:SetScale(size) effectdata:SetMagnitude(1) -- no sound etc util.Effect("shield_block",effectdata) self.LastThought=CurTime()+2/math.Clamp(energy,1,20) end end end end function ENT:Draw() self.Entity:DrawModel() local pent=self.Entity if ( LocalPlayer():GetEyeTrace().Entity == self.Entity && EyePos():Distance( self.Entity:GetPos() ) < 512 ) then if pent:GetNetworkedBool("on",false)==false then str="Shield\nOff\nEnergy: "..pent:GetNetworkedInt("energy",100).."%" end if pent:GetNetworkedBool("on",false)==true then str="Shield\nOn\nEnergy: "..pent:GetNetworkedInt("energy",100).."%" end AddWorldTip(self.Entity:EntIndex(),str,0.5,self.Entity:GetPos(),self.Entity) end end