ENT.Type = "anim" ENT.Base = "durgz_base" ENT.PrintName = "Ecstasy" ENT.Nicknames = {"ecstasy pills", "MDMA", "pingers", "molly"} ENT.OverdosePhrase = {"overdosed on", "ate a dodgy one getting on", "didn't drink enough water while on", "drank too much water while on", "spontaneously combusted from hitting it too hard on"} ENT.Author = "Alexander Shulgin" ENT.Spawnable = true ENT.AdminSpawnable = true ENT.Information = "I wanna see a rainbow high in the sky!" ENT.Category = "Drugs" ENT.TRANSITION_TIME = 6 --function for high visuals if(CLIENT)then killicon.Add("durgz_ecstasy","killicons/durgz_aspirin_killicon",Color( 255, 80, 0, 255 )) local TRANSITION_TIME = ENT.TRANSITION_TIME; --transition effect from sober to high, high to sober, in seconds how long it will take etc. local HIGH_INTENSITY = 0.77; --1 is max, 0 is nothing at all local STROBE_PACE = .6 local cdw, cdw2, cdw3;cdw2 = -1 local function DoMDMA() if(!DURGZ_LOST_VIRGINITY)then return end local pl = LocalPlayer(); local ecstasy = {} if( !cdw || cdw < CurTime() )then cdw = CurTime() + STROBE_PACE;cdw2 = cdw2*-1 end if( cdw2 == -1 )then cdw3 = 2 else cdw3 = 0 end local ich = (cdw2*((cdw - CurTime())*(2/STROBE_PACE)))+cdw3 - 1 if( pl:GetNWFloat("durgz_ecstasy_high_start") && pl:GetNWFloat("durgz_ecstasy_high_end") > CurTime() )then if( pl:GetNWFloat("durgz_ecstasy_high_start") + TRANSITION_TIME > CurTime() )then --comeup local s = pl:GetNWFloat("durgz_ecstasy_high_start"); local e = s + TRANSITION_TIME; local c = CurTime(); local pf = (c-s) / (e-s);pf = pf*HIGH_INTENSITY ecstasy["$pp_colour_addr"] = pf*.5 ecstasy["$pp_colour_addg"] = pf*.25 ecstasy["$pp_colour_addb"] = pf*.5 ecstasy["$pp_colour_brightness"] = 0 ecstasy["$pp_colour_contrast"] = 1 ecstasy["$pp_colour_colour"] = 1 + (pf/2) DrawColorModify( ecstasy ) DrawBloom( 0, pf*(ich*.32), 1.99, .66, 2, 1.33, 1, 1, 0 ) pl:SetDSP(44,false) elseif( pl:GetNWFloat("durgz_ecstasy_high_end") - TRANSITION_TIME < CurTime() )then --comedown local e = pl:GetNWFloat("durgz_ecstasy_high_end"); local s = e - TRANSITION_TIME; local c = CurTime(); local pf = 1 - (c-s) / (e-s);pf = pf*HIGH_INTENSITY ecstasy["$pp_colour_addr"] = pf*.5 ecstasy["$pp_colour_addg"] = pf*.25 ecstasy["$pp_colour_addb"] = pf*.5 ecstasy["$pp_colour_brightness"] = 0 ecstasy["$pp_colour_contrast"] = 1 ecstasy["$pp_colour_colour"] = 1 + (pf/2) DrawColorModify( ecstasy ) DrawBloom( 0, pf*ich*.32, 1.99, .66, 2, 1.33, 1, 1, 0 ) if pf<.1 then pl:SetDSP(1,false) end else -- peak DrawColorModify( ecstasy ) DrawBloom( 0, ich*.32, 1.99, .66, 2, 1.33, 1, 1, 0 ) end DrawSharpen(ich*-4.20, .6) end end hook.Add("RenderScreenspaceEffects", "durgz_ecstasy_high", DoMDMA) end