// ace_swapteams V3.8.154
// Ace Rimmer
// Thanks to Einlanzers for the score corelib

block load
{
   es_log ace swapteams loaded
}

event server
{
   // SWAP TEAM SCORES WHEN SWAPPING TEAMS (0= NO / 1 = YES)
   es_xset ts_score_var 1
   // SWAP ALL PLAYERS, HUMANS ONLY, BOTS ONLY? (0 = ALL 1 = HUMAN ONLY 2 = BOTS ONLY)
   es_xset aswap_type 0
   // CHANGE THIS VALUE TO NUMBER OF ROUNDS TO PLAY BEFORE SWAPPING
   es_xset swap_var 15
   // CHANGE THIS VALUE TO HOW MANY ROUND BEFORE SWAP YOU WANT TO START ANNOUNCING IN CHAT
   // EXAMPLE 0 WILL ANNOUNCE EVERY ROUND 3 WILL ANNOUNCE THE LAST 3 ROUNDS BEFORE SWAPPING
   es_xset announce_var 3
   // PLAY SOUNDS (RINGS A BELL ON ROUND BEFORE SWAP AND FIRST ROUND 1= YES 0 = NO)
   es_xset sound_on_swap 1
   // RESET SCORES AND MONEY AT TEAM SWAP (1 = YES 0 = NO DEFAULT = NO)
   // IF YOU USE THIS IT IS POINTLESS HAVING SWAP TEAM SCORES ON :-)
   es_xset reset_on_swap 0
   // CHANGE MAP AFTER HOW MANY SWAPS (0 = never change map - unless map time is over of course)
   es_xset change_after_swaps 0
   //
   // DO NOT EDIT BELOW THIS LINE
   //
   es_xset swap_less 0
   es_xset announce_less 0
   es_copy swap_less swap_var
   es_copy announce_less swap_var
   es_xmath swap_less - 1
   es_math announce_less - server_var(announce_var)

   es_xset paproundcount 0
   es_xset mustswap 0
   es_xset st_team1_score 0
   es_xset st_team2_score 0
   es_xset st_team1_side "t"
}

event player_say
{
   if (event_var(text)equalto "rounds") then es_tell event_var(userid) #multi #default :Ace ST: #green Round server_var(paproundcount). Teams auto swap after every server_var(swap_var) rounds.
   if (event_var(text)equalto "round") then es_tell event_var(userid) #multi #default :Ace ST: #green Round server_var(paproundcount). Teams auto swap after every server_var(swap_var) rounds.
}


event round_start
{
   es_xmath paproundcount + 1
   if (server_var(st_team1_side) equalto "ct") do
   {
      es score set #ct server_var(st_team1_score)
      es score set #t server_var(st_team2_score)
   }
   if (server_var(st_team1_side) equalto "t") do
   {
      es score set #t server_var(st_team1_score)
      es score set #ct server_var(st_team2_score)
   }
}

event round_freeze_end
{
   if (server_var(paproundcount) equalto 1) do
   {
      es_msg #multi #default :Ace ST: #green Round server_var(paproundcount). Teams have been swapped! #lightgreen Type 'rounds' for info.
      if (server_var(sound_on_swap) equalto 1) do
      {
         es_cexec_all playgamesound ambient/misc/brass_bell_e.wav
      }
   }
   es_centermsg ROUND server_var(paproundcount) / server_var(swap_var)
   if (server_var(paproundcount) greaterthan server_var(swap_less)) do
   {
      es_msg #multi #default :Ace ST: #green Round server_var(paproundcount). Teams auto swap after this round! #lightgreen Type 'rounds' for info.
      es_xset mustswap 1
      if (server_var(change_after_swaps) > 0) do
      {
         if (server_var(change_after_swaps) == server_var(no_of_swaps)) do
         {
            nextlevel 1
         }
      }
      if (server_var(sound_on_swap) equalto 1) do
      {
         es_cexec_all playgamesound ambient/misc/brass_bell_c.wav
      }
   }
   if (server_var(paproundcount) greaterthan server_var(announce_less)) do
   {
      if (server_var(paproundcount) lessthan server_var(swap_less)) do
      {
         es_msg #multi #default :Ace ST: #green Round server_var(paproundcount). Teams auto swap after server_var(swap_var) rounds! #lightgreen Type 'rounds' for info.
      }
   }
}

event round_end
{
   if (event_var(winner) equalto "3") do
   {
      if (server_var(st_team1_side) equalto "ct") then es_xmath st_team1_score + 1
      if (server_var(st_team1_side) equalto "t") then es_xmath st_team2_score + 1
   }
   if (event_var(winner) equalto "2") do
   {
      if (server_var(st_team1_side) equalto "t") then es_xmath st_team1_score + 1
      if (server_var(st_team1_side) equalto "ct") then es_xmath st_team2_score + 1
   }
   if (server_var(st_team1_side) equalto "ct") do
   {
      es score set #ct server_var(st_team1_score)
      es score set #t server_var(st_team2_score)
   }
   if (server_var(st_team1_side) equalto "t") do
   {
      es score set #t server_var(st_team1_score)
      es score set #ct server_var(st_team2_score)
   }
   if (server_var(mustswap) equalto 1) then es_doblock ace_swapteams/swapteams
   if (event_var(message) equalto "#Game_Commencing") do
   {
      es_xset paproundcount 0
      es_xset st_team1_score 0
      es_xset st_team2_score 0
   }
}

event es_map_start
{
   es_xset no_of_swaps 0
}

block swapteams
{
   // swap all teams
   es_xmath no_of_swaps +1
   //
   ma_csay Swapping Teams Now!
   es_msg #multi #default :Ace Swapteams: #green Swapping Teams Now!
   if (server_var(aswap_type) == 0) do
   {
      ma_swapteam #ALL
   }
   if (server_var(aswap_type) == 1) do
   {
      ma_swapteam #HUMAN
   }
   if (server_var(aswap_type) == 2) do
   {
      ma_swapteam #BOT
   }
   if (server_var(ts_score_var) equalto 1) do
   {
      if (server_var(st_team1_side) equalto "ct") then es_xset st_team1_side "t"
      else es_xset st_team1_side "ct"
      es_delayed 4 ma_csay Teams Scores Swapped
      es_delayed 4 es_msg #multi #default :Ace Swapteams: #green Team Scores Swapped
   }
   if (server_var(reset_on_swap) equalto 1) do
   {
      es_xset st_team1_score 0
      es_xset st_team2_score 0
      es_delayed 1 mp_restartgame 1
   }
   if (server_var(sound_on_swap) equalto 1) do
   {
      es_delayed 1 es_cexec_all playgamesound ambient/misc/brass_bell_d.wav
   }
   es_delayed 1 ma_csay Teams Swapped
   es_delayed 1 es_msg #multi #default :Ace Swapteams: #green Teams Swapped
   es_delayed 2 ma_csay Teams Swapped
   es_delayed 2 es_msg #multi #default :Ace Swapteams: #green Teams Swapped
   es_delayed 3 ma_csay Teams Swapped
   es_delayed 3 es_msg #multi #default :Ace Swapteams: #green Teams Swapped
   es_xset paproundcount 0
   es_xset mustswap 0
}
