Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local PANEL = {}
- local PEMusic_Bass = {0.275, 1.225, 2.15, 4.025, 4.75, 4.975, 5.65, 5.9, 6.6};
- local PERPMusic_Bass = {10.825, 11.10, 11.425, 11.575, 11.725, 12.25, 12.35, 13.25, 13.52, 14.15, 14.45, 14.575, 15.625, 16.525, 16.825, 17.125, 18.025, 18.65, 18.925, 19.225, 19.375,19.525, 19.65, 19.425, 20.425, 21.325, 21.625, 21.925, 22.825, 23.425, 23.725, 24.325, 25.225, 26.15, 26.425, 26.725, 27.625, 28.225};
- local PEIntro = Sound("perp2/intro/pe.mp3");
- local PERPIntro = Sound("perp2/intro/perp2.mp3");
- local PELogo = surface.GetTextureID("perp2/intro/pe");
- local PERPLogo = surface.GetTextureID("perp2/intro/perp");
- local BASSTime = .1;
- local BASSSize = .025;
- function PANEL:Init ( )
- self.startPEMusic = CurTime();
- self.startPERPMusic = self.startPEMusic + 1 + SoundDuration("perp2/intro/pe.mp3");
- self.PEMusicFadeOut = self.startPEMusic + 5.9;
- self.PERPMusicStartIn = self.startPERPMusic + 2;
- self.PERPMusicFullIn = self.startPERPMusic + 7;
- self.PERPPop2 = self.startPERPMusic + 9.92;
- self.PERP2FadeOut = self.startPERPMusic + 19;
- self.PERP2FinishFade = self.PERP2FadeOut + 5;
- self.endPEMusic = self.startPEMusic + SoundDuration(PEIntro);
- self.endPERPMusic = self.startPERPMusic + SoundDuration(PERPIntro);
- end
- function PANEL:PerformLayout ( )
- self:SetPos(0, 0);
- self:SetSize(ScrW(), ScrH());
- self.regSize = ScrW() * .5;
- self.midW = ScrW() * .5;
- self.midH = ScrH() * .5;
- end
- function PANEL:EnableCreation ( )
- self.registerForm = true;
- end
- function PANEL:EnableRules ( )
- self.rulesForm = true;
- end
- function PANEL:Paint ( )
- surface.SetDrawColor(0, 0, 0, 255);
- surface.DrawRect(0, 0, self:GetWide(), self:GetTall());
- if (CurTime() >= self.PERP2FadeOut) then
- if (!self.showedNextPanel) then
- self.showedNextPanel = true;
- if (self.registerForm) then
- ShowRegisterForm();
- elseif (self.rulesForm) then
- ShowRulesConfirmation();
- end
- self:MoveToFront();
- end
- local percOut = 1 - math.Clamp((CurTime() - self.PERP2FadeOut) / (self.PERP2FinishFade - self.PERP2FadeOut), 0, 1);
- self:SetAlpha(percOut * 255);
- if (percOut == 0) then
- self:Remove();
- return;
- end
- end
- if (!self.playingPEMusic && self.startPEMusic && self.startPEMusic <= CurTime()) then
- self.playingPEMusic = true;
- surface.PlaySound(PEIntro);
- elseif (!self.playingPERPMusic && self.startPERPMusic && self.startPERPMusic <= CurTime()) then
- self.playingPERPMusic = true;
- surface.PlaySound(PERPIntro);
- end
- if (CurTime() >= self.startPEMusic && CurTime() <= self.endPEMusic) then
- local drawSize = self.regSize
- for k, v in pairs(PEMusic_Bass) do
- local sTime = self.startPEMusic + v;
- local eTime = sTime + BASSTime;
- if (CurTime() >= sTime && CurTime() <= eTime) then
- local percThrough = math.Clamp((CurTime() - sTime) / BASSTime, 0, 1);
- drawSize = self.regSize * (1 + (percThrough * BASSSize));
- end
- end
- local drawAlpha = 255;
- if (CurTime() >= self.PEMusicFadeOut) then
- local percDone = 1 - math.Clamp((CurTime() - self.PEMusicFadeOut) / (self.endPEMusic - self.PEMusicFadeOut), 0, 1);
- drawAlpha = percDone * 255;
- end
- surface.SetDrawColor(255, 255, 255, drawAlpha);
- surface.SetTexture(PELogo);
- surface.DrawTexturedRect(self.midW - drawSize * .5, self.midH - drawSize * .5, drawSize, drawSize);
- elseif (CurTime() >= self.startPERPMusic && CurTime() <= self.endPERPMusic) then
- if (CurTime() >= self.PERPPop2) then
- local dAlpha = 255;
- if (CurTime() >= self.PERP2FadeOut) then
- local percOut = 1 - math.Clamp((CurTime() - self.PERP2FadeOut) / (self.PERP2FinishFade - self.PERP2FadeOut), 0, 1);
- dAlpha = percOut * 200;
- end
- if (dAlpha > 100) then
- surface.SetDrawColor(255, 255, 255, dAlpha);
- surface.SetTexture(PERP2_G);
- surface.DrawTexturedRect(self.midW - self.regSize * .5, self.midH - self.regSize * .5, self.regSize, self.regSize);
- end
- local drawSize = self.regSize
- for k, v in pairs(PERPMusic_Bass) do
- local sTime = self.startPERPMusic + v;
- local eTime = sTime + BASSTime;
- if (CurTime() >= sTime && CurTime() <= eTime) then
- local percThrough = math.Clamp((CurTime() - sTime) / BASSTime, 0, 1);
- drawSize = self.regSize * (1 + (percThrough * BASSSize));
- end
- end
- if (drawSize != self.regSize || CurTime() >= self.PERP2FadeOut) then
- surface.SetDrawColor(255, 255, 255, 255);
- surface.SetTexture(PERP2_NG);
- surface.DrawTexturedRect(self.midW - drawSize * .5, self.midH - drawSize * .5, drawSize, drawSize);
- end
- end
- local perpAlpha = 255;
- if (CurTime() <= self.PERPMusicStartIn) then
- perpAlpha = 0;
- elseif (CurTime() <= self.PERPMusicFullIn) then
- local percIn = math.Clamp((CurTime() - self.PERPMusicStartIn) / (self.PERPMusicFullIn - self.PERPMusicStartIn), 0, 1);
- perpAlpha = 255 * percIn;
- end
- surface.SetDrawColor(perpAlpha, perpAlpha, perpAlpha, 255);
- surface.SetTexture(PERPLogo);
- surface.DrawTexturedRect(self.midW - self.regSize * .5, self.midH - self.regSize * .5, self.regSize, self.regSize);
- end
- end
- vgui.Register("perp2_intro", PANEL);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement