From ff88a9b3805853c539521832bbfa6d16da09599a Mon Sep 17 00:00:00 2001 From: VictorienXP Date: Sun, 29 May 2016 04:56:12 +0200 Subject: [PATCH] Rainbow Dash enhanced --- gamemodes/fnapgm/gamemode/cl_init.lua | 4 +- gamemodes/fnapgm/gamemode/init.lua | 93 +++++++++-------- gamemodes/fnapgm/gamemode/shared.lua | 116 +++++++++++++++++---- materials/fnapgm/maps/fnap_scc_1_sgvsa.vtf | Bin 1048800 -> 1048800 bytes 4 files changed, 143 insertions(+), 70 deletions(-) diff --git a/gamemodes/fnapgm/gamemode/cl_init.lua b/gamemodes/fnapgm/gamemode/cl_init.lua index 5561fdb..534e243 100644 --- a/gamemodes/fnapgm/gamemode/cl_init.lua +++ b/gamemodes/fnapgm/gamemode/cl_init.lua @@ -647,7 +647,7 @@ function fnapgmController() local Kitchen = vgui.Create( "DButton" ) Kitchen:SetParent(map) Kitchen:SetSize( 78.5, 48.5 ) - Kitchen:SetPos( 22, 224 ) + Kitchen:SetPos( 116.5, 224 ) Kitchen:SetText( "" ) Kitchen.OnMousePressed = function( button, key ) if key==MOUSE_LEFT then @@ -668,7 +668,7 @@ function fnapgmController() local KitchenD = vgui.Create( "DButton" ) KitchenD:SetParent(map) KitchenD:SetSize( 78.5, 48.5 ) - KitchenD:SetPos( 116.5, 224 ) + KitchenD:SetPos( 22, 224 ) KitchenD:SetText( "" ) KitchenD.OnMousePressed = function( button, key ) if key==MOUSE_LEFT then diff --git a/gamemodes/fnapgm/gamemode/init.lua b/gamemodes/fnapgm/gamemode/init.lua index 447a3c0..3365bab 100644 --- a/gamemodes/fnapgm/gamemode/init.lua +++ b/gamemodes/fnapgm/gamemode/init.lua @@ -62,45 +62,6 @@ function fnapgmStartNightCustom(ply) v:Fire("addoutput", "OnPressed fnafgm_link,MuteCall,,0,-1") end - if Halloween or fnafgm_forceseasonalevent:GetInt()==3 then - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 30) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 120) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 10) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 20) - elseif GAMEMODE.Vars.night==1 then - ents.FindByName( "RainbowTimer" )[1]:Fire("Kill") - elseif GAMEMODE.Vars.night==2 then - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 150) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 400) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 30) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 50) - elseif GAMEMODE.Vars.night==3 then - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 120) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 300) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 30) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 50) - elseif GAMEMODE.Vars.night==4 then - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 60) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 260) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 20) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 40) - elseif GAMEMODE.Vars.night==5 then - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 60) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 160) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 15) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 30) - elseif GAMEMODE.Vars.night==6 then - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 30) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 120) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 10) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 20) - else - ents.FindByName( "RainbowTimer" )[1]:Fire("LowerRandomBound", 30) - ents.FindByName( "RainbowTimer" )[1]:Fire("UpperRandomBound", 120) - ents.FindByName( "RainbowTimer2" )[1]:Fire("LowerRandomBound", 10) - ents.FindByName( "RainbowTimer2" )[1]:Fire("UpperRandomBound", 20) - end - GAMEMODE:CreateAnimatronic(GAMEMODE.Animatronic.Pinkie, GAMEMODE.APos.fnap_scc.SS) GAMEMODE:CreateAnimatronic(GAMEMODE.Animatronic.Fluttershy, GAMEMODE.APos.fnap_scc.SS) GAMEMODE:CreateAnimatronic(GAMEMODE.Animatronic.Twilight, GAMEMODE.APos.fnap_scc.SS) @@ -460,7 +421,9 @@ function fnapgmPowerCalc() for k, v in pairs(GAMEMODE.Vars.Animatronics) do - GAMEMODE:SetAnimatronicPos(nil,k,GAMEMODE.APos[game.GetMap()].SS) + if k!=GAMEMODE.Animatronic.RainbowDash then + GAMEMODE:SetAnimatronicPos(nil,k,GAMEMODE.APos[game.GetMap()].SS) + end timer.Remove( "fnafgmAnimatronicMove"..k ) end @@ -473,7 +436,7 @@ function fnapgmPowerCalc() for k, v in pairs(GAMEMODE.Vars.Animatronics) do - if k!=GAMEMODE.Animatronic.Applejack then + if k!=GAMEMODE.Animatronic.Applejack and k!=GAMEMODE.Animatronic.RainbowDash then GAMEMODE:SetAnimatronicPos(nil,k,GAMEMODE.APos[game.GetMap()].Office) end @@ -896,6 +859,17 @@ function fnapgmGoJumpscare(me,self,timet) if me==GAMEMODE.Animatronic.RainbowDash then self.FoxyWillMove = true + if IsValid(ents.FindByName( "RDDoor" )[1]) then ents.FindByName( "RDDoor" )[1]:Fire("Open") end + local flight = ents.FindByName( "FluoLight" )[1] + if IsValid(flight) then + flight:Fire("TurnOff") + flight:Fire("TurnOn",NULL,2) + end + local tlight = ents.FindByName( "TimerLightDoor3" )[1] + if IsValid(tlight) then + tlight:Fire("Disable") + tlight:Fire("Enable",NULL,2) + end end timer.Create( "fnafgmJumpscare"..me, timet, 1, function() @@ -913,10 +887,37 @@ function fnapgmGoJumpscare(me,self,timet) if GAMEMODE.Vars.startday and me!=GAMEMODE.Animatronic.RainbowDash then self:Jumpscare() elseif GAMEMODE.Vars.startday then - self:SetPos(Vector(417.923, -388.438, -95.7159)) - self:SetAngles(Angle(0, 0, 0)) - self.FoxyWillMove = false - self.FoxyMove = true + + self.FoxyWillMove2 = true + + local flight = ents.FindByName( "FluoLight" )[1] + if IsValid(flight) then + flight:Fire("TurnOff") + flight:Fire("TurnOn",NULL,2) + end + local tlight = ents.FindByName( "TimerLightDoor3" )[1] + if IsValid(tlight) then + tlight:Fire("Disable") + tlight:Fire("Enable",NULL,2) + end + + timer.Create( "fnapgmRDmove", timet, 1, function() + + if IsValid(ents.FindByName( "RDDoor" )[1]) then ents.FindByName( "RDDoor" )[1]:Fire("Close",NULL,0.2) end + local DoorRD = ents.FindByName( "DoorRD" )[1] + if IsValid(DoorRD) then + DoorRD:Fire("Open",NULL,0.8) + DoorRD:Fire("Close",NULL,3) + end + + self.FoxyWillMove = false + self.FoxyWillMove2 = false + self.FoxyMove = true + + timer.Remove( "fnapgmRDmove" ) + + end) + end timer.Remove( "fnafgmJumpscare"..me ) @@ -1037,7 +1038,7 @@ function fnapgmJumpscare(me,self) if v:Team()!=TEAM_CONNECTING and v:Team()!=TEAM_UNASSIGNED then - v:SendLua([[LocalPlayer():EmitSound("fnafgm_foxyknock")]]) + v:SendLua([[LocalPlayer():EmitSound("fnapgm_rainbowknock")]]) end diff --git a/gamemodes/fnapgm/gamemode/shared.lua b/gamemodes/fnapgm/gamemode/shared.lua index 9d432c7..8911f4a 100644 --- a/gamemodes/fnapgm/gamemode/shared.lua +++ b/gamemodes/fnapgm/gamemode/shared.lua @@ -8,7 +8,7 @@ GM.Author = "Xperidia" GM.Email = "contact@Xperidia.com" GM.Website = "http://go.Xperidia.com/FNAPGM" -GM.Version = 1.40 +GM.Version = 1.41 GM.CustomVersionChecker = "http://xperidia.com/fnapgmversion.txt" if game.GetMap()=="fnap_cb" then @@ -33,6 +33,8 @@ end hook.Add( "Initialize", "fnapgmInit", function() + table.Empty(GAMEMODE.Models_dead) + GAMEMODE.Strings.en.fnap_scc = "Turn off the main power to start the night" GAMEMODE.Strings.fr.fnap_scc = "Coupez le courant pour démarrer la nuit" GAMEMODE.Strings.ru.fnap_scc = "Выключите главное питание, чтобы начать ночь" --Translation by http://steamcommunity.com/profiles/76561198135819236 @@ -73,6 +75,13 @@ hook.Add( "Initialize", "fnapgmInit", function() level = 0, sound = "fnafsounds/runrainbowdash.wav" } ) + sound.Add( { + name = "fnapgm_rainbowknock", + channel = CHAN_AUTO, + volume = 0.8, + level = 0, + sound = "physics/metal/metal_barrel_impact_hard1.wav" + } ) end) @@ -120,8 +129,8 @@ GM.CamsNames = { fnap_scc_13 = "Storage", fnap_scc_14 = "Generator", fnap_scc_16 = "Office", - fnap_scc_17 = "Staff Door", - fnap_scc_18 = "Staff", + fnap_scc_17 = "Staff", + fnap_scc_18 = "Staff Door", fnap_scc_19 = "Kitchen Door", fnap_scc_20 = "Entrance Door", fnap_cb_1 = "Stage", @@ -262,11 +271,11 @@ GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Kitchen] = GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.SS] = { Vector(229.355, 566.11, 87), Angle(0,234,87) } GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.NHA] = { Vector(226.063, 307.311, 32), Angle(0,320,0) } GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.BR] = { Vector(423.922, 29.9327, 32), Angle(0,90,0) } -GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.SR] = { Vector(217.167, 417.786, 36.1032), Angle(0,270,0) } +GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.SR] = { Vector(217.167, 417.786, 32), Angle(0,270,0) } GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.StorageD] = { Vector(-54.393, -92.0667, -96.1156), Angle(0,64,0) } GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Generator] = { Vector(-336.451, -342.729, -96.9048), Angle(0,90,0) } GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Office] = { Vector(-362.534, -85.6415, 64.2119), Angle(0,270,0) } -GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Kitchen2] = { Vector(-292.778, 43.7329, 31.5654), Angle(0,235,0) } +GM.AnimatronicAPos[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Kitchen2] = { Vector(-292.778, 43.7329, 32), Angle(0,235,0) } GM.AnimatronicAPos[GM.Animatronic.Rarity].fnap_scc = {} GM.AnimatronicAPos[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.SS] = { Vector(577.209, -479.944, 55.5574), Angle(0,143,0) } GM.AnimatronicAPos[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.Entrance] = { Vector(435.05, -411.066, 34.6907), Angle(0,195,0) } @@ -279,8 +288,8 @@ GM.AnimatronicAPos[GM.Animatronic.Applejack].fnap_scc = {} GM.AnimatronicAPos[GM.Animatronic.Applejack].fnap_scc[GM.APos.fnap_scc.SS] = { Vector(744, 584, 32), Angle(0,-135,0) } GM.AnimatronicAPos[GM.Animatronic.Applejack].fnap_scc[GM.APos.fnap_scc.Office] = { Vector(-237.473, -191.82, 75.8022), Angle(0,180,0) } GM.AnimatronicAPos[GM.Animatronic.RainbowDash].fnap_scc = {} -GM.AnimatronicAPos[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Trash] = { Vector(459.558, -385.458, -74.9962), Angle(0,115,-90) } -GM.AnimatronicAPos[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Office] = { Vector(459.558, -385.458, -74.9962), Angle(0,115,-90) } +GM.AnimatronicAPos[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Trash] = { Vector(441.369, -397.072, -99.6947), Angle(0, 138.75, 0) } +GM.AnimatronicAPos[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Office] = { Vector(441.369, -397.072, -99.6947), Angle(0, 138.75, 0) } GM.AnimatronicsCD = {} GM.AnimatronicsCD[GM.Animatronic.Pinkie] = {} @@ -413,9 +422,13 @@ GM.AnimatronicsSkins[GM.Animatronic.Applejack].fnap_scc[GM.APos.fnap_scc.SS] = 4 GM.AnimatronicsSkins[GM.Animatronic.Applejack].fnap_scc[GM.APos.fnap_scc.Office] = 4 GM.AnimatronicsSkins[GM.Animatronic.Rarity] = {} GM.AnimatronicsSkins[GM.Animatronic.Rarity].fnap_scc = {} -GM.AnimatronicsSkins[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.Staff ] = 1 -GM.AnimatronicsSkins[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.StaffD ] = 1 +GM.AnimatronicsSkins[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.Staff] = 1 +GM.AnimatronicsSkins[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.StaffD] = 1 GM.AnimatronicsSkins[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.Office] = 1 +GM.AnimatronicsSkins[GM.Animatronic.RainbowDash] = {} +GM.AnimatronicsSkins[GM.Animatronic.RainbowDash].fnap_scc = {} +GM.AnimatronicsSkins[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Trash] = 1 +GM.AnimatronicsSkins[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Office] = 1 GM.AnimatronicsFlex = {} GM.AnimatronicsFlex[GM.Animatronic.Pinkie] = {} @@ -450,13 +463,29 @@ GM.AnimatronicsFlex[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.DA] = { {21 GM.AnimatronicsFlex[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.StaffD] = { {38,1}, {6,1}, {7,1}, {18,0.5} } GM.AnimatronicsFlex[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.Staff] = { {38,1}, {0,1}, {1,1}, {18,0.5} } GM.AnimatronicsFlex[GM.Animatronic.Rarity].fnap_scc[GM.APos.fnap_scc.Office] = { {21,1}, {0,1}, {1,1} } +GM.AnimatronicsFlex[GM.Animatronic.RainbowDash] = {} +GM.AnimatronicsFlex[GM.Animatronic.RainbowDash].fnap_scc = {} +GM.AnimatronicsFlex[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Office] = { {1,1}, {2,1} } GM.AnimatronicsAnim = {} +GM.AnimatronicsAnim[GM.Animatronic.Twilight] = {} +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc = {} +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.SS] = "ss" +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.BR] = "br" +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.SR] = "sr" +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.StorageD] = "storaged" +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Generator] = "generator" +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Office] = "office" +GM.AnimatronicsAnim[GM.Animatronic.Twilight].fnap_scc[GM.APos.fnap_scc.Kitchen2] = "kitchen2" GM.AnimatronicsAnim[GM.Animatronic.Applejack] = {} GM.AnimatronicsAnim[GM.Animatronic.Applejack].fnap_scc = {} GM.AnimatronicsAnim[GM.Animatronic.Applejack].fnap_scc[GM.APos.fnap_scc.SS] = "sitting" GM.AnimatronicsAnim[GM.Animatronic.Applejack].fnap_scc[GM.APos.fnap_scc.Office] = "office" +GM.AnimatronicsAnim[GM.Animatronic.RainbowDash] = {} +GM.AnimatronicsAnim[GM.Animatronic.RainbowDash].fnap_scc = {} +GM.AnimatronicsAnim[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Trash] = "trashstand" +GM.AnimatronicsAnim[GM.Animatronic.RainbowDash].fnap_scc[GM.APos.fnap_scc.Office] = "gallop" function GM:CheckDerivCreator(pl) @@ -550,45 +579,84 @@ function fnapgmAnimatronicMove(self,me,apos) end + elseif me==GAMEMODE.Animatronic.RainbowDash and apos==GAMEMODE.APos[game.GetMap()].Office and self.FoxyWillMove2 then + + if !self.preltime or self.preltime<1 then + self.preltime = (self.preltime or 0) + FrameTime() + elseif !self.preltime or self.preltime>=1 then + self.preltime = 0 + self.presta = true + end + + if !self.presta then + self:SetPos( LerpVector( self.preltime, GAMEMODE.AnimatronicAPos[me][game.GetMap()][apos][1], Vector(417.923, -388.438, -95.7159) ) ) + self:SetAngles( LerpAngle( self.preltime, GAMEMODE.AnimatronicAPos[me][game.GetMap()][apos][2], Angle(0,120,0) ) ) + end + + if self:GetSequence() != self:LookupSequence( GAMEMODE.AnimatronicsAnim[me][game.GetMap()][GAMEMODE.APos.fnap_scc.Office] ) then + self:SetSequence( self:LookupSequence( GAMEMODE.AnimatronicsAnim[me][game.GetMap()][GAMEMODE.APos.fnap_scc.Office] ) ) + self:ResetSequenceInfo() + self:SetCycle(0) + self:SetPlaybackRate(0) + end + elseif me==GAMEMODE.Animatronic.RainbowDash and apos==GAMEMODE.APos[game.GetMap()].Office and self.FoxyWillMove then if self:GetColor()!=Color( 255, 255, 255, 255 ) then self:SetColor( Color( 255, 255, 255, 255 ) ) end + if self:GetSequence() != self:LookupSequence( GAMEMODE.AnimatronicsAnim[me][game.GetMap()][GAMEMODE.APos.fnap_scc.Trash] ) then + self:SetSequence( self:LookupSequence( GAMEMODE.AnimatronicsAnim[me][game.GetMap()][GAMEMODE.APos.fnap_scc.Trash] ) ) + self:ResetSequenceInfo() + self:SetCycle(0) + end + elseif me==GAMEMODE.Animatronic.RainbowDash and apos==GAMEMODE.APos[game.GetMap()].Office and self.FoxyMove2 then if self:GetColor()!=Color( 255, 255, 255, 255 ) then self:SetColor( Color( 255, 255, 255, 255 ) ) end if !self.ltime or self.ltime<1 then - self.ltime = (self.ltime or 0) + FrameTime() + local multip = 1 + if self.sta==3 then + multip = 0.6 + elseif self.sta==3 or self.sta==5 then + multip = 1.4 + end + self.ltime = (self.ltime or 0) + FrameTime()*multip elseif !self.ltime or self.ltime>=1 then self.ltime = 0 self.sta = (self.sta or 0) + 1 end if !self.sta or self.sta==0 then - self:SetPos( LerpVector( self.ltime, GAMEMODE.AnimatronicAPos[me][game.GetMap()][apos][1], Vector(417.923, -388.438, -95.7159) ) ) - self:SetAngles( LerpAngle( self.ltime, GAMEMODE.AnimatronicAPos[me][game.GetMap()][apos][2], Angle(0,120,0) ) ) - elseif self.sta==1 then self:SetPos( LerpVector( self.ltime, Vector(417.923, -388.438, -95.7159), Vector(323, -186.201813, -89.016739) ) ) self:SetAngles( LerpAngle( self.ltime, Angle(0,120,0), Angle(0,90,0) ) ) - elseif self.sta==2 then + self:SetPlaybackRate(1) + elseif self.sta==1 then self:SetPos( LerpVector( self.ltime, Vector(323, -186.201813, -89.016739), Vector(323, -70.793152, 32) ) ) self:SetAngles( Angle(-40,90,0) ) - elseif self.sta==3 then + self:SetPlaybackRate(1) + elseif self.sta==2 then self:SetPos( LerpVector( self.ltime, Vector(323, -70.793152, 32), Vector(283.779999, -15.925056, 32) ) ) - self:SetAngles(LerpAngle( self.ltime, Angle(0,90,0), Angle(0,-180,0) ) ) - elseif self.sta==4 then + self:SetAngles( LerpAngle( self.ltime, Angle(0,90,0), Angle(0,-180,0) ) ) + self:SetPlaybackRate(1) + elseif self.sta==3 then self:SetPos( LerpVector( self.ltime, Vector(283.779999, -15.925056, 32), Vector(-137.194016, -8.655641, 32) ) ) self:SetAngles( Angle(0,-180,0) ) - elseif self.sta==5 then + self:SetPlaybackRate(1) + elseif self.sta==4 then self:SetPos( LerpVector( self.ltime, Vector(-137.194016, -8.655641, 32), Vector(-385.440521, -42.308228, 32) ) ) - self:SetAngles(LerpAngle( self.ltime, Angle(0,-180,0), Angle(0,-150,0) ) ) - elseif self.sta==6 then + self:SetAngles( LerpAngle( self.ltime, Angle(0,-180,0), Angle(0,-150,0) ) ) + self:SetPlaybackRate(1) + if self:GetSkin()!=2 then self:SetSkin(2) end + self:SetFlexWeight( 0, Lerp( self.ltime, 0, 1 ) ) + elseif self.sta==5 then self:SetPos( LerpVector( self.ltime, Vector(-385.440521, -42.308228, 32), Vector(-431.247833, -95, 32) ) ) - self:SetAngles(LerpAngle( self.ltime, Angle(0,-150,0), Angle(0,-90,0) ) ) - elseif self.sta==7 then + self:SetAngles( LerpAngle( self.ltime, Angle(0,-150,0), Angle(0,-90,0) ) ) + self:SetPlaybackRate(1) + elseif self.sta==6 then self:Jumpscare() self.FoxyMove2 = false + self:SetPlaybackRate(0.1) end elseif me==GAMEMODE.Animatronic.RainbowDash and apos==GAMEMODE.APos[game.GetMap()].Trash then @@ -597,6 +665,10 @@ function fnapgmAnimatronicMove(self,me,apos) if !self.sta or self.sta>0 then self.sta=0 end + elseif me==GAMEMODE.Animatronic.Twilight and ( apos==GAMEMODE.APos[game.GetMap()].Office or apos==GAMEMODE.APos[game.GetMap()].Kitchen or apos==GAMEMODE.APos[game.GetMap()].Kitchen2 ) then + + self:SetSkin( math.random( 0, 1 ) ) + end return true diff --git a/materials/fnapgm/maps/fnap_scc_1_sgvsa.vtf b/materials/fnapgm/maps/fnap_scc_1_sgvsa.vtf index 7efbcb09f69fa3b44bd29b54bf7d5145c0f434cd..477b4193e6578b425f2bfe80d34a7de0ed71b652 100644 GIT binary patch delta 1535 zcmZ8hdrVVT9JcrLdhVn5LVOV15X+*>2Wow@*(EiAqCw)!&`w!p@)$0-8G;*TRbipC zb0#`4es@?6!MPZwPBZloLo~r;X|~#tsas=klDN4h6olZUGc4P=)HP;*{E~Bj&+mM{ z@7%sdS6`#+h+W3!r>~9M=X18L&MCKMoiF)kLjM+P*1=_n2)fX0h z;fa^SRCybPK?Qh!L_31}74#M4KGs|aR?sr!?j|p>r+M^O4bgYWOxQ|D4vdJh93G;d z#8^8m!fc{1XZvo^TEd1tpiu?>Ix-7dC0U8c9g>gGD4%fR22I6YQThm-s+NXuR9T0@ zCbHOU{zPCypU{{BZvnC6Y!!8(_YQHv+f5rW{UM!!-a6vIp=0_I{1{i(ju*m2h4`@8 z0HaoEL*!dNbpBE*ATW3Mx)kkQAId${P+GATtn1 zS946>Tu2wKQ!#y-x)RZ!XeHKPA`6-K7A>{FI8LS@ql7pyJ6qyxJRl3eBm2RCC~L6Ip_k-FzeWtMoYtmdbS)Ge`#N zyJ;PZ{cJAm%tf&dX9Hp%LiglD;P6}tbP=odOW10-Sfbs^29u6#WZJY$^o|G)^r~8s zxfh3pMgO2>3L<{aYyFtqfZ2CRv#E(ufek;Qo7F@pewr5G=HK#X<0F{4B*G$8+V!lI z$N7+l^aAQD$Rx9Vwan}-!VwGW$&~5|BDcwE4EBm0sP?OlGTe+%Q(?WhgvOHnHNU_Pv7OENLk+_K;;*w41CkrIUvD z{-kzznw3@r3y6WCeyaf^sI0(@D*iODchXPcuH+Y&0%SW{SLhxVAJyzC46i&D_lo3s zNg1YLu%8Q}v|R~2*Q+x~m%?kcE=G7n$i&zS)=9V)qz4fk5tbtKqSc##>38eP*nCNU zq#(wq133j;1tvnaZ?ax2u+Z;Xp1@Mlb(vrE0q+?Ttq#Og&6!;MtBKReZvN~!Lpv~R z)q8OwNai70$t!FvA{U#%nS2zbZ$jG2Pnz(YC+6UF)M~lG)!wojLru6AwP^Y6lMMbC)p4s z8fBS7=GSR8s8Jb1AUJo)bcu`ERzuT}%xEKZl1!IQs*stHM%mnbtx+`FAGf*bJNKOL z`_6aHz@F@ZJ=up7gyywRvcl){S;fmLD|Cq+Yo65&=Ias<&WF!jmheWgt*EGNRf)m) z@Y+ME?6j#RzjJQes(RCRLYvK6mS`xl6%`&_m1sCC%WHb`>rJ23@9{QxH4R>EgO@aT zbq!v9gE#7umx?9KM@WJep(V5rZntwr6(kSsQA#!}*Ypk+*hz=QvB_JlLIylvlXRHRQ40>7 zCmV3#DOmxhpp-+}O~xVh8xjxc5XnaHCJm~O2Q=sr3^wHL)mE{(gS3F6{SvVvQy3iWlc`-RnLPv-DkgJc5kt|L>! zrC9JNH5p+k6wI*i;1t}{xDlNmX%TFGX(y)jO3TNju5qX=j*nqc4u1_9kIf-@IdTt? zD)h9H1mx}`87z2?YK=I#k0|iO>MY2tr!8<=g=BQ}O9|+32(#h4&GEm4&gIR3Wu*`Y zcQbhtS%Z=ZpYElxuvhArqR^nk!(lhh!yT<*3mQM-qGg@d$0GNdemx6(%Oyu{51E0+ zKRJ0zJ$0$&X23O(CgMV^FbBQ|&&x5c)QFZ1|3m{K4wRFbxGU;X;X0vD!jO{)ur<-O zi0&3Q!MB>Xd~+#HW3}7pcEW~ls&9Ix=(^w*l==8RN|_6nQ7(W_lp|!+?29$XJVF;@ zXdOv~HHVnsdCFN|aq?SZKG(=qAS7V4i6+1@!O+eEztiYcPX2D6XhdP_Y z42+ufCRmaT)A4b&+QfcoI;K6A(;^?*bGQvgPjNGI&{ZsuYs6EmAN4g zz%toK@yHzI9$dRgBeP9XmvmH0P*+9SLZV~DX*4! z9=IKGl^oEk(JK86=Gdip1eN3qXfMV#eo&eUPcL!35b6