diff --git a/content/sound/taunts/aaaa.wav b/content/sound/taunts/aaaa.wav new file mode 100644 index 0000000..80be5a4 Binary files /dev/null and b/content/sound/taunts/aaaa.wav differ diff --git a/content/sound/taunts/ahhhh.wav b/content/sound/taunts/ahhhh.wav new file mode 100644 index 0000000..9c239ae Binary files /dev/null and b/content/sound/taunts/ahhhh.wav differ diff --git a/content/sound/taunts/brr.wav b/content/sound/taunts/brr.wav new file mode 100644 index 0000000..f931f00 Binary files /dev/null and b/content/sound/taunts/brr.wav differ diff --git a/content/sound/taunts/come_to_papa.wav b/content/sound/taunts/come_to_papa.wav new file mode 100644 index 0000000..6388794 Binary files /dev/null and b/content/sound/taunts/come_to_papa.wav differ diff --git a/content/sound/taunts/crich.wav b/content/sound/taunts/crich.wav new file mode 100644 index 0000000..16c8ccc Binary files /dev/null and b/content/sound/taunts/crich.wav differ diff --git a/content/sound/taunts/epicsax.wav b/content/sound/taunts/epicsax.wav new file mode 100644 index 0000000..d938748 Binary files /dev/null and b/content/sound/taunts/epicsax.wav differ diff --git a/content/sound/taunts/fart01a.wav b/content/sound/taunts/fart01a.wav new file mode 100644 index 0000000..56f0822 Binary files /dev/null and b/content/sound/taunts/fart01a.wav differ diff --git a/content/sound/taunts/fart01b.wav b/content/sound/taunts/fart01b.wav new file mode 100644 index 0000000..cc187b2 Binary files /dev/null and b/content/sound/taunts/fart01b.wav differ diff --git a/content/sound/taunts/fgroan.wav b/content/sound/taunts/fgroan.wav new file mode 100644 index 0000000..081d710 Binary files /dev/null and b/content/sound/taunts/fgroan.wav differ diff --git a/content/sound/taunts/fireassis.wav b/content/sound/taunts/fireassis.wav new file mode 100644 index 0000000..835ef50 Binary files /dev/null and b/content/sound/taunts/fireassis.wav differ diff --git a/content/sound/taunts/glados-president.wav b/content/sound/taunts/glados-president.wav new file mode 100644 index 0000000..d666e36 Binary files /dev/null and b/content/sound/taunts/glados-president.wav differ diff --git a/content/sound/taunts/gmodgimn.wav b/content/sound/taunts/gmodgimn.wav new file mode 100644 index 0000000..fe0623a Binary files /dev/null and b/content/sound/taunts/gmodgimn.wav differ diff --git a/content/sound/taunts/hitassist.wav b/content/sound/taunts/hitassist.wav new file mode 100644 index 0000000..53b6d41 Binary files /dev/null and b/content/sound/taunts/hitassist.wav differ diff --git a/content/sound/taunts/idiotgman.wav b/content/sound/taunts/idiotgman.wav new file mode 100644 index 0000000..9b5cb18 Binary files /dev/null and b/content/sound/taunts/idiotgman.wav differ diff --git a/content/sound/taunts/kevinmacleodmerrygo.wav b/content/sound/taunts/kevinmacleodmerrygo.wav new file mode 100644 index 0000000..eb09693 Binary files /dev/null and b/content/sound/taunts/kevinmacleodmerrygo.wav differ diff --git a/content/sound/taunts/kevinmacleodmerrygo2a.wav b/content/sound/taunts/kevinmacleodmerrygo2a.wav new file mode 100644 index 0000000..1e4905c Binary files /dev/null and b/content/sound/taunts/kevinmacleodmerrygo2a.wav differ diff --git a/content/sound/taunts/kevinmacleodmerrygo3a.wav b/content/sound/taunts/kevinmacleodmerrygo3a.wav new file mode 100644 index 0000000..24448df Binary files /dev/null and b/content/sound/taunts/kevinmacleodmerrygo3a.wav differ diff --git a/content/sound/taunts/laugh.wav b/content/sound/taunts/laugh.wav new file mode 100644 index 0000000..452bb9e Binary files /dev/null and b/content/sound/taunts/laugh.wav differ diff --git a/content/sound/taunts/leedleleedleloo.wav b/content/sound/taunts/leedleleedleloo.wav new file mode 100644 index 0000000..e67f079 Binary files /dev/null and b/content/sound/taunts/leedleleedleloo.wav differ diff --git a/content/sound/taunts/leeroy_jenkins.wav b/content/sound/taunts/leeroy_jenkins.wav index a5a0a4c..3c45d67 100644 Binary files a/content/sound/taunts/leeroy_jenkins.wav and b/content/sound/taunts/leeroy_jenkins.wav differ diff --git a/content/sound/taunts/now_what.wav b/content/sound/taunts/now_what.wav new file mode 100644 index 0000000..8b79230 Binary files /dev/null and b/content/sound/taunts/now_what.wav differ diff --git a/content/sound/taunts/partyrockanthem.wav b/content/sound/taunts/partyrockanthem.wav new file mode 100644 index 0000000..e728313 Binary files /dev/null and b/content/sound/taunts/partyrockanthem.wav differ diff --git a/content/sound/taunts/pe.wav b/content/sound/taunts/pe.wav new file mode 100644 index 0000000..1095c60 Binary files /dev/null and b/content/sound/taunts/pe.wav differ diff --git a/content/sound/taunts/pockemon.wav b/content/sound/taunts/pockemon.wav new file mode 100644 index 0000000..2fb6d24 Binary files /dev/null and b/content/sound/taunts/pockemon.wav differ diff --git a/content/sound/taunts/pssleft.wav b/content/sound/taunts/pssleft.wav new file mode 100644 index 0000000..1adc69b Binary files /dev/null and b/content/sound/taunts/pssleft.wav differ diff --git a/content/sound/taunts/pssright.wav b/content/sound/taunts/pssright.wav new file mode 100644 index 0000000..00d888d Binary files /dev/null and b/content/sound/taunts/pssright.wav differ diff --git a/content/sound/taunts/rude.wav b/content/sound/taunts/rude.wav new file mode 100644 index 0000000..b64e95c Binary files /dev/null and b/content/sound/taunts/rude.wav differ diff --git a/content/sound/taunts/soul.wav b/content/sound/taunts/soul.wav new file mode 100644 index 0000000..a967d13 Binary files /dev/null and b/content/sound/taunts/soul.wav differ diff --git a/content/sound/taunts/whynunu.wav b/content/sound/taunts/whynunu.wav new file mode 100644 index 0000000..feff9c8 Binary files /dev/null and b/content/sound/taunts/whynunu.wav differ diff --git a/content/sound/taunts/wooo.wav b/content/sound/taunts/wooo.wav new file mode 100644 index 0000000..07f75c0 Binary files /dev/null and b/content/sound/taunts/wooo.wav differ diff --git a/content/sound/taunts/you_dont_know_the_power.wav b/content/sound/taunts/you_dont_know_the_power.wav new file mode 100644 index 0000000..6501e3e Binary files /dev/null and b/content/sound/taunts/you_dont_know_the_power.wav differ diff --git a/content/sound/taunts/you_underestimate_the_power.wav b/content/sound/taunts/you_underestimate_the_power.wav new file mode 100644 index 0000000..5332413 Binary files /dev/null and b/content/sound/taunts/you_underestimate_the_power.wav differ diff --git a/gamemode/cl_init.lua b/gamemode/cl_init.lua index 6a46672..4526251 100644 --- a/gamemode/cl_init.lua +++ b/gamemode/cl_init.lua @@ -18,6 +18,8 @@ net.Receive( "Prop update", function( length ) local propHeight = tHitboxMax.z - tHitboxMin.z LocalPlayer().propHeight = propHeight LocalPlayer().lastPropChange = CurTime() + --LocalPlayer().lastTaunt = CurTime() + --LocalPlayer().autoTauntInterval = 100 -- initialize stuff here if( LocalPlayer().firstProp ) then @@ -26,10 +28,11 @@ net.Receive( "Prop update", function( length ) LocalPlayer().wantAngleSnap = false LocalPlayer().lastPropChange = 0 LocalPlayer().nextTaunt = 0 - LocalPlayer().lastTaunt = 0 + LocalPlayer().lastTaunt = CurTime() LocalPlayer().lastTauntDuration = 1 LocalPlayer().lastTauntPitch = 100 LocalPlayer().firstProp = false + LocalPlayer().autoTauntInterval = OBJHUNT_AUTOTAUNT_INTERVAL + OBJHUNT_HIDE_TIME end end ) @@ -37,9 +40,10 @@ end ) net.Receive( "Reset Prop", function( length ) -- taunt default LocalPlayer().nextTaunt = 0 - LocalPlayer().lastTaunt = 0 + LocalPlayer().lastTaunt = CurTime() LocalPlayer().lastTauntDuration = 1 LocalPlayer().lastTauntPitch = 100 + LocalPlayer().autoTauntInterval = OBJHUNT_AUTOTAUNT_INTERVAL + OBJHUNT_HIDE_TIME LocalPlayer():ResetHull() LocalPlayer().firstProp = true @@ -95,7 +99,7 @@ net.Receive( "Clear Round State", function() LocalPlayer().wantAngleLock = false LocalPlayer().wantAngleSnap = false for _, v in pairs( player.GetAll() ) do - v.wantAgnleLock = false + v.wantAngleLock = false v.wantAngleSnap = false end end ) @@ -109,10 +113,19 @@ net.Receive( "Taunt Selection", function() if not IsValid( ply ) then return end if( ply == LocalPlayer() ) then - ply.nextTaunt = CurTime() + ( SoundDuration( taunt ) * (100/pitch) ) + local soundDur = SoundDuration( taunt ) * (100/pitch) + ply.nextTaunt = CurTime() + soundDur ply.lastTaunt = CurTime() ply.lastTauntPitch = pitch - ply.lastTauntDuration = SoundDuration( taunt ) * (100/pitch) + ply.lastTauntDuration = soundDur + ply.autoTauntInterval = OBJHUNT_AUTOTAUNT_INTERVAL + soundDur + + net.Start( "Update Taunt Times" ) + net.WriteUInt( id, 8 ) + net.WriteFloat( ply.nextTaunt ) + net.WriteFloat( ply.lastTaunt ) + net.WriteFloat( ply.autoTauntInterval ) + net.SendToServer() end local s = Sound(taunt) @@ -132,6 +145,18 @@ net.Receive( "Taunt Selection", function() --EmitSound( taunt , ply:GetPos(), id, CHAN_AUTO, 1, 100, 2, pitch ) end ) +net.Receive( "AutoTaunt Update", function() + local id = net.ReadUInt( 8 ) + local ply = player.GetByID( id ) + local lastTaunt = net.ReadFloat() + local autoTauntInterval = net.ReadFloat() + if( ply == LocalPlayer() ) then + ply.lastTaunt = lastTaunt + ply.autoTauntInterval = autoTauntInterval + hook.Run("AutoTauntHUDRerender") + end +end) + net.Receive( "Player Death", function() local id = net.ReadUInt( 8 ) local ply = player.GetByID( id ) diff --git a/gamemode/gui/additionalHUDs.lua b/gamemode/gui/additionalHUDs.lua new file mode 100644 index 0000000..b49e829 --- /dev/null +++ b/gamemode/gui/additionalHUDs.lua @@ -0,0 +1,97 @@ +surface.CreateFont( "AutoTauntFont", +{ + font = "coolvetica", + size = 30, + weight = 1000, + antialias = true, + outline = false +}) + +local opacity = .5 * 255 +local brightBlue = Color(14, 54, 100, 100) +local brightYellow = Color(150, 54, 100, 100) +local brightRed = Color(255, 54, 100, 100) +local lightGray = Color(80, 80, 80, opacity) +local brightWhite = Color(255, 255, 255, 255) + +function draw.Circle( x, y, radius, seg ) + local cir = {} + + table.insert( cir, { x = x, y = y, u = 0.5, v = 0.5 } ) + for i = 0, seg do + local a = math.rad( ( i / seg ) * -360 ) + table.insert( cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 } ) + end + + local a = math.rad( 0 ) -- This is need for non absolute segment counts + table.insert( cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 } ) + + surface.DrawPoly( cir ) +end + +function loadExtraHuds() + + --Loads the auto-taunt HUD + autotauntHud() + +end + +function validateProp(ply) + return (ply:IsValid() && ply:Alive() && ply:Team() == TEAM_PROPS ) +end + +function autotauntHud() + + local ply = LocalPlayer() + local padding = 60 + local paddingL = 100 + + -- Check if the player is valid, alive, and is a prop + if ( !validateProp(ply) ) then return end + + local radius = 50 + local timer = 30.00 + local timerRadius = 0 + + if ply.lastTaunt != nil then + local tDiff = CurTime() - ply.lastTaunt + timer = math.Round(ply.autoTauntInterval - tDiff, 0) + timerRadius = (tDiff/ply.autoTauntInterval) * radius + end + + local x = surface.ScreenWidth() - paddingL + local y = surface.ScreenHeight() - padding + + --Set the text Position and Text + local timertext = tostring(timer) + if timer <= 0 then + timertext = "!" + end + draw.SimpleText(timertext, "ObjHUDFont", x, y, brightWhite, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) + + + -- This is the outer circle + surface.SetDrawColor(lightGray) + draw.NoTexture() + draw.Circle( x, y, radius, radius) + + -- This is the growing inner circle + local color = nil + local percentage = timerRadius/radius + if (percentage > .8) then + color = brightRed + elseif (percentage > .6) then + color = brightYellow + else + color = brightBlue + end + surface.SetDrawColor(color) + draw.NoTexture() + draw.Circle( x, y, timerRadius , radius) + draw.SimpleText("Auto-Taunt", "AutoTauntFont", x, y - radius, brightWhite, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) + +end + + +hook.Add("HUDPaint", "Load Additional HUDS", loadExtraHuds ) +hook.Add("AutoTauntHUDRerender", "Re-render Auto Taunt HUD", autotauntHud ) \ No newline at end of file diff --git a/gamemode/gui/context_menu.lua b/gamemode/gui/context_menu.lua index c9ca93a..93505d3 100644 --- a/gamemode/gui/context_menu.lua +++ b/gamemode/gui/context_menu.lua @@ -129,7 +129,7 @@ local function DrawContextMenu() surface.SetFont( "Toggle Buttons" ) surface.SetTextColor( Color( 255,255,255,255 ) ) - local text = "Angle Snaping" + local text = "Angle Snapping" local tw, th = surface.GetTextSize( text ) surface.SetTextPos( w/2 - tw/2, h/2 - th/2 ) surface.DrawText( text ) diff --git a/gamemode/init.lua b/gamemode/init.lua index 77f4e6a..cc902a3 100644 --- a/gamemode/init.lua +++ b/gamemode/init.lua @@ -1,12 +1,15 @@ AddCSLuaFile( "cl_init.lua" ) AddCSLuaFile( "shared.lua" ) include( "shared.lua" ) +include( "server/autotaunt.lua" ) function GM:PlayerInitialSpawn( ply ) ply:SetTeam( TEAM_SPECTATOR ) player_manager.SetPlayerClass( ply, "player_spectator" ) ply:SetCustomCollisionCheck( true ) ply.nextTaunt = 0 + ply.lastTaunt = CurTime() + ply.autoTauntInterval = OBJHUNT_AUTOTAUNT_INTERVAL + OBJHUNT_HIDE_TIME net.Start( "Class Selection" ) -- Just used as a hook net.Send( ply ) @@ -25,7 +28,6 @@ function GM:ShowHelp( ply ) net.Send( ply ) end - net.Receive("Class Selection", function( len, ply ) local chosen = net.ReadUInt(32) local playerTable = {} @@ -69,15 +71,35 @@ function SendTaunt( ply, taunt, pitch ) if( ply:Team() == TEAM_PROPS && !table.HasValue( PROP_TAUNTS, taunt ) ) then return end if( ply:Team() == TEAM_HUNTERS && !table.HasValue( HUNTER_TAUNTS, taunt ) ) then return end - ply.nextTaunt = CurTime() + ( SoundDuration( taunt ) * (100/pitch) ) + local soundDur = SoundDuration( taunt ) * (100/pitch) + ply.nextTaunt = CurTime() + soundDur + ply.lastTaunt = CurTime() + ply.autoTauntInterval = OBJHUNT_AUTOTAUNT_INTERVAL + soundDur -- Offset the interval by the sound dur + + local filter = RecipientFilter(); + filter:AddPlayer( ply ); net.Start( "Taunt Selection" ) net.WriteString( taunt ) net.WriteUInt( pitch, 8 ) net.WriteUInt( ply:EntIndex(), 8 ) + net.WriteFloat( ply.lastTaunt ) + net.WriteFloat( ply.autoTauntInterval ) net.Broadcast() end +net.Receive( "Update Taunt Times", function() + local id = net.ReadUInt( 8 ) + local ply = player.GetByID( id ) + local nextTaunt = net.ReadFloat() + local lastTaunt = net.ReadFloat() + local autoTauntInterval = net.ReadFloat() + + ply.nextTaunt = nextTaunt + ply.lastTaunt = lastTaunt + ply.autoTauntInterval = autoTauntInterval +end) + function GM:ShowSpare1( ply ) local TAUNTS if( ply:Team() == TEAM_PROPS ) then @@ -216,12 +238,11 @@ hook.Add( "Initialize", "Precache all network strings", function() util.AddNetworkString( "Prop Angle Lock BROADCAST" ) util.AddNetworkString( "Prop Angle Snap" ) util.AddNetworkString( "Prop Angle Snap BROADCAST" ) + util.AddNetworkString( "AutoTaunt Update" ) + util.AddNetworkString( "Update Taunt Times" ) end ) --[[ Map Time ]]-- -hook.Add( "Initialize", "Set Map Time", function() - mapStartTime = os.time() -end ) --[[ Door Exploit fix ]]-- function GM:PlayerUse( ply, ent ) @@ -427,8 +448,8 @@ function GM:PlayerSelectSpawn( ply ) local spawns = team.GetSpawnPoints( ply:Team() ) if( !spawns ) then return false end - local ret, _ = table.Random( spawns ) - return ret + local ret, _ = table.Random( spawns ) + return ret end function GM:PlayerCanSeePlayersChat( text, teamOnly, listener, speaker ) diff --git a/gamemode/player_class/player_hunter.lua b/gamemode/player_class/player_hunter.lua index 3dad159..7ee246f 100644 --- a/gamemode/player_class/player_hunter.lua +++ b/gamemode/player_class/player_hunter.lua @@ -15,6 +15,7 @@ PLAYER.TeammateNoCollide = true PLAYER.MaxHealth = 100 PLAYER.DuckSpeed = 0.1 PLAYER.UnDuckSpeed = 0.1 +PLAYER.lastTaunt = 0.0 function PLAYER:Loadout() diff --git a/gamemode/player_class/player_prop.lua b/gamemode/player_class/player_prop.lua index 42c1f93..e58b6c9 100644 --- a/gamemode/player_class/player_prop.lua +++ b/gamemode/player_class/player_prop.lua @@ -16,18 +16,15 @@ PLAYER.TeammateNoCollide = false PLAYER.MaxHealth = 100 PLAYER.DuckSpeed = 0.1 PLAYER.UnDuckSpeed = 0.1 +PLAYER.lastTaunt = 0.0 function PLAYER:Loadout() - self.Player:RemoveAllAmmo() - end function PLAYER:SetupDataTables() - self.Player:NetworkVar( "Entity", 0, "Prop" ); - end player_manager.RegisterClass( "player_prop", PLAYER, "player_default" ) \ No newline at end of file diff --git a/gamemode/player_class/player_spectator.lua b/gamemode/player_class/player_spectator.lua index b110d1a..3c00898 100644 --- a/gamemode/player_class/player_spectator.lua +++ b/gamemode/player_class/player_spectator.lua @@ -10,7 +10,7 @@ PLAYER.DisplayName = "Spectator" PLAYER.SetObserverMode = 6 PLAYER.CanUseFlashlight = false PLAYER.AvoidPlayers = false - +PLAYER.lastTaunt = 0.0 function PLAYER:Spawn() self.Player:Spectate( OBS_MODE_ROAMING ) diff --git a/gamemode/server/autotaunt.lua b/gamemode/server/autotaunt.lua new file mode 100644 index 0000000..1058951 --- /dev/null +++ b/gamemode/server/autotaunt.lua @@ -0,0 +1,55 @@ +local function runAutoTaunter() + local players = team.GetPlayers(TEAM_PROPS) + local pRange = TAUNT_MAX_PITCH - TAUNT_MIN_PITCH + + --Render the Auto-taunt HUD + + for _,ply in pairs(players) do + local taunt = table.Random( PROP_TAUNTS ) + + if ply:Alive() && ply:Team() == TEAM_PROPS then + if ply.lastTaunt != nil then + local lastAutoTaunt = math.Round(CurTime() - ply.lastTaunt) + + --Check if the lastAutoTaunt exceeds the autoTauntInterval + if (lastAutoTaunt > ply.autoTauntInterval) then + --Send the Taunt to the player + local pRange = TAUNT_MAX_PITCH - TAUNT_MIN_PITCH + local pitch = math.random()*pRange + TAUNT_MIN_PITCH + SendTaunt(ply, taunt, pitch ) + end + end + end + end +end + +function CreateAutoTauntTimer() + timer.Create("AutoTauntTimer", 0.1, 0, runAutoTaunter) +end + +hook.Add( "Initialize", "Set Map Time", function () + mapStartTime = os.time() + CreateAutoTauntTimer() +end) + +hook.Add("OBJHUNT_RoundStart", "Restart the Timer", function () + local players = team.GetPlayers(TEAM_PROPS) + for _,ply in pairs(players) do + + ply.autoTauntInterval = OBJHUNT_AUTOTAUNT_INTERVAL + OBJHUNT_HIDE_TIME + ply.lastTaunt = CurTime() + + net.Start( "AutoTaunt Update" ) + net.WriteUInt( ply:EntIndex(), 8 ) + net.WriteFloat( ply.lastTaunt ) + net.WriteFloat( ply.autoTauntInterval ) + net.Broadcast() + end + + if timer.Exists("AutoTauntTimer") then + timer.Start("AutoTauntTimer") + else + CreateAutoTauntTimer() + end + +end) diff --git a/gamemode/server/rounds.lua b/gamemode/server/rounds.lua index 114f3a9..3a71c87 100644 --- a/gamemode/server/rounds.lua +++ b/gamemode/server/rounds.lua @@ -58,6 +58,7 @@ local function WaitRound() -- make sure we have at least one player on each team local hunters = team.GetPlayers(TEAM_HUNTERS) local props = team.GetPlayers(TEAM_PROPS) + if( #props == 0 || #hunters == 0 ) then return end round.state = ROUND_START diff --git a/gamemode/shared.lua b/gamemode/shared.lua index 4494316..65aef34 100644 --- a/gamemode/shared.lua +++ b/gamemode/shared.lua @@ -8,7 +8,7 @@ GM.BaseDir = "ObjHunt/gamemode/" --[[ Add all the files on server/client ]]-- local resources = {} resources["server"] = { "server" } -resources["shared"] = { "shared","player_class" } +resources["shared"] = { "shared","player_class", "autotaunt" } resources["client"] = { "client", "gui" } local function resourceLoader(dirs, includeFunc) diff --git a/gamemode/shared/sh_config.lua b/gamemode/shared/sh_config.lua index ed0de62..055df87 100644 --- a/gamemode/shared/sh_config.lua +++ b/gamemode/shared/sh_config.lua @@ -28,6 +28,9 @@ OBJHUNT_POST_ROUND_TIME = 5 -- How much time props have before hunters are released OBJHUNT_HIDE_TIME = 30 +-- Auto taunting interval in seconds +OBJHUNT_AUTOTAUNT_INTERVAL = 45 + -- The damage hunters will take for shooting the wrong prop -- Set this negative if you want dynamic damage ( hit 50 damage take 50 damage ) HUNTER_DAMAGE_PENALTY = 5 @@ -136,26 +139,41 @@ TAUNT_MIN_PITCH = 64 PROP_TAUNTS = {} -- USAGE: -- PROP_TAUNTS["Display Name"] = "taunts/file_name.wav" -PROP_TAUNTS["Jihad"] = "taunts/jihad.wav" -PROP_TAUNTS["Atatatat"] = "taunts/atatatat.wav" -PROP_TAUNTS["Boom, Headshot!"] = "taunts/boom_headshot.wav" -PROP_TAUNTS["Doh!"] = "taunts/doh.wav" -PROP_TAUNTS["I Guarantee it"] = "taunts/guarantee_it.wav" -PROP_TAUNTS["LEEROY... JENKINS!"] = "taunts/leeroy_jenkins.wav" -PROP_TAUNTS["Negative"] = "taunts/negative.wav" -PROP_TAUNTS["Never Do Laundry Again"] = "taunts/never_again.wav" -PROP_TAUNTS["Over 9000"] = "taunts/over_9000.wav" -PROP_TAUNTS["Pingas"] = "taunts/pingas.wav" -PROP_TAUNTS["Please Come Again"] = "taunts/please_come_again.wav" -PROP_TAUNTS["What Do You Like To Play"] = "taunts/pokemon.wav" -PROP_TAUNTS["Vince With Shamwow"] = "taunts/shamwow.wav" -PROP_TAUNTS["This Is SPARTA!"] = "taunts/sparta.wav" -PROP_TAUNTS["Woohoo!"] = "taunts/woohoo.wav" -PROP_TAUNTS["What You Mean Flames?"] = "taunts/flames.wav" +PROP_TAUNTS["Aaaaa"] = "taunts/aaaa.wav" +PROP_TAUNTS["Ahhhh"] = "taunts/ahhhh.wav" +PROP_TAUNTS["Jihad"] = "taunts/jihad.wav" +PROP_TAUNTS["Fist of the North Star"] = "taunts/atatatat.wav" +PROP_TAUNTS["Boom, Headshot!"] = "taunts/boom_headshot.wav" +PROP_TAUNTS["Doh!"] = "taunts/doh.wav" +PROP_TAUNTS["Engineer Rant Remix"] = "taunts/gmodgimn.wav" +PROP_TAUNTS["Epic Sax"] = "taunts/epicsax.wav" +PROP_TAUNTS["Fart"] = "taunts/fart01a.wav" +PROP_TAUNTS["Greasy Fart"] = "taunts/fart01b.wav" +PROP_TAUNTS["Female Groan"] = "taunts/fgroan.wav" +PROP_TAUNTS["I Guarantee it"] = "taunts/guarantee_it.wav" +PROP_TAUNTS["Idiot Ramble"] = "taunts/idiotgman.wav" +PROP_TAUNTS["Leedle Leedle Loo"] = "taunts/leedleleedleloo.wav" +PROP_TAUNTS["LEEROY... JENKINS!"] = "taunts/leeroy_jenkins.wav" +PROP_TAUNTS["Negative"] = "taunts/negative.wav" +PROP_TAUNTS["Never Do Laundry Again"] = "taunts/never_again.wav" +PROP_TAUNTS["Over 9000"] = "taunts/over_9000.wav" +PROP_TAUNTS["Pingas"] = "taunts/pingas.wav" +PROP_TAUNTS["Please Come Again"] = "taunts/please_come_again.wav" +PROP_TAUNTS["What Do You Like To Play"] = "taunts/pokemon.wav" +PROP_TAUNTS["Vince With Shamwow"] = "taunts/shamwow.wav" +PROP_TAUNTS["This Is SPARTA!"] = "taunts/sparta.wav" +PROP_TAUNTS["Woohoo!"] = "taunts/woohoo.wav" +PROP_TAUNTS["What You Mean Flames?"] = "taunts/flames.wav" +PROP_TAUNTS["Why Nunu"] = "taunts/whynunu.wav" HUNTER_TAUNTS = {} -- USAGE: -- HUNTER_TAUNTS["Display Name"] = "taunts/file_name.wav" -HUNTER_TAUNTS["Jaws Theme"] = "taunts/jaws.wav" -HUNTER_TAUNTS["I Will Find You"] = "taunts/taken.wav" -HUNTER_TAUNTS["Where Are You!"] = "taunts/where.wav" +HUNTER_TAUNTS["GlaDoS - President"] = "taunts/glados-president.wav" +HUNTER_TAUNTS["Come To Papa"] = "taunts/come_to_papa.wav" +HUNTER_TAUNTS["No Soul"] = "taunts/soul.wav" +HUNTER_TAUNTS["Jaws Theme"] = "taunts/jaws.wav" +HUNTER_TAUNTS["I am your Father"] = "taunts/father.wav" +HUNTER_TAUNTS["I Will Find You"] = "taunts/taken.wav" +HUNTER_TAUNTS["Rude"] = "taunts/rude.wav" +HUNTER_TAUNTS["Where Are You!"] = "taunts/where.wav"