#include "armor_system"

int SCORE_POINT = 300;


//////////character///////////


int UP_HP_MAX_EFFECT = 25;
int UP_HP_MAX_BASE = 25;
float UP_HP_MAX_BASE_MULT = 1.5;
int CURRENT_MAX_HP = 100;

int UP_AP_MAX_EFFECT = 25;
int UP_AP_MAX_BASE = 50;
float UP_AP_MAX_BASE_MULT = 1.5;
int CURRENT_MAX_AP = 50;

float UP_AP_EFFECT_EFFECTIVE = 0.1;
int UP_AP_EFFECT_BASE = 25;
float UP_AP_EFFECT_MULT = 2.0;


int UP_LEADER_HP_EFFECT = 100;
int UP_LEADER_HP_BASE = 25;
float UP_LEADER_HP_MULT = 1.5;
int CURRENT_LEADER_HP = 500;

int UP_MILITARY_HP_EFFECT = 50;
int UP_MILITARY_HP_BASE = 25;
float UP_MILITARY_HP_MULT = 1.25;
int CURRENT_MILITARY_HP = 100;


/////////////Base/////////////

int UP_BASE_MAX = 2;
int UP_BASE_BASECOST = 500;
float UP_BASE_MULT = 3.0;
int CURRENT_UP_BASE = 0;

int UP_BARRICADE_EFFECT = 25;
int UP_BARRICADE_COST = 20;
float UP_BARRICADE_MULT = 1.2;
int CURRENT_BARRICADE_HP = 200;

float UP_MOUNTGUN_EFFECT = 1.2;
int UP_MOUNTGUN_COST = 50;
float UP_MOUNTGUN_MULT = 1.5;
int CURRENT_UP_MOUNTGUN = 50;

int UP_WEAPON_MAX = 2;
int UP_WEAPON_COST_BASE = 300;
float UP_WEAPON_COST_MULT = 3.0;
int CURRENT_UP_WEAPON = 0;

int UP_MISC_MAX = 3;
int UP_MISC_COST = 150;
float UP_MISC_MULT = 1.5;
int CURRENT_UP_MISC = 0;


void event_initial_point(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

       CBaseEntity@ ingame_targ_score;
       @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
        ingame_targ_score.pev.skin = SCORE_POINT;

       CBaseEntity@ ingame_targ_up_hp;
       @ingame_targ_up_hp = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_hp, "targ_num_up_hp");
       ingame_targ_up_hp.pev.skin = UP_HP_MAX_BASE;

       CBaseEntity@ ingame_targ_up_ap;
       @ingame_targ_up_ap = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_ap, "targ_num_up_ap");
       ingame_targ_up_ap.pev.skin = UP_AP_MAX_BASE;

       CBaseEntity@ ingame_targ_up_leader;
       @ingame_targ_up_leader = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_leader, "targ_num_up_leader");
       ingame_targ_up_leader.pev.skin = UP_LEADER_HP_BASE;

       
       CBaseEntity@ ingame_targ_up_grunt;
       @ingame_targ_up_grunt = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_grunt, "targ_num_up_grunt");
       ingame_targ_up_grunt.pev.skin = UP_MILITARY_HP_BASE;

       CBaseEntity@ ingame_targ_up_apfx;
       @ingame_targ_up_apfx = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_apfx, "targ_num_up_apfx");
       ingame_targ_up_apfx.pev.skin = UP_AP_EFFECT_BASE;

       CBaseEntity@ ingame_targ_up_weapon;
       @ingame_targ_up_weapon = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_weapon, "targ_num_up_weapon");
       ingame_targ_up_weapon.pev.skin = UP_WEAPON_COST_BASE;


       CBaseEntity@ ingame_targ_up_item;
       @ingame_targ_up_item = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_item, "targ_num_up_item");
       ingame_targ_up_item.pev.skin = UP_MISC_COST;


       CBaseEntity@ ingame_targ_up_plank;
        @ingame_targ_up_plank = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_plank, "targ_num_up_plank");
        ingame_targ_up_plank.pev.skin = UP_BARRICADE_COST;

        CBaseEntity@ ingame_targ_up_base;
        @ingame_targ_up_base = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_base, "targ_num_up_base");
        ingame_targ_up_base.pev.skin = UP_BASE_BASECOST;

        CBaseEntity@ ingame_targ_up_mg;
             @ingame_targ_up_mg = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_mg, "targ_num_up_mg");
             ingame_targ_up_mg.pev.skin = UP_MOUNTGUN_COST;


}


void event_update_score(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{
         CBaseEntity@ ingame_targ_score;
       @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
        ingame_targ_score.pev.skin = SCORE_POINT;

}

void event_calcu_point(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{
     
     CBaseEntity@ SELF_BUTTON_NAME;
     @SELF_BUTTON_NAME = g_EntityFuncs.FindEntityByTargetname(SELF_BUTTON_NAME, pcaller.pev.targetname);


      int SELF_BUTTON_POINT = SELF_BUTTON_NAME.pev.skin;
      string SELF_BUTTON_NEXTFIRE = SELF_BUTTON_NAME.pev.message;
      
       if((SCORE_POINT - SELF_BUTTON_POINT) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           SCORE_POINT = SCORE_POINT - SELF_BUTTON_POINT;
           g_EntityFuncs.FireTargets(SELF_BUTTON_NEXTFIRE, activator, pcaller, USE_SET);
           
           CBaseEntity@ ingame_targ_score;
           @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;

           ////g_PlayerFuncs.ShowMessageAll(ingame_targ_score.pev.targetname);
            
       }

     

}



////////////////upgrade////////////////


void event_buy_up_hp(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_HP_MAX_BASE) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           
           SCORE_POINT = SCORE_POINT - UP_HP_MAX_BASE;
           CURRENT_MAX_HP += UP_HP_MAX_EFFECT;
           UP_HP_MAX_BASE = (UP_HP_MAX_BASE * UP_HP_MAX_BASE_MULT);
           

           g_EntityFuncs.FireTargets("t_up_hp", activator, pcaller, USE_SET);


             CBaseEntity@ ingame_targ_up_hp;
             @ingame_targ_up_hp = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_hp, "targ_num_up_hp");
             ingame_targ_up_hp.pev.skin = UP_HP_MAX_BASE;
           
             
            CBaseEntity@ ingame_targ_score; /////update score point
            @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;
            
       }


}


void event_buy_up_ap(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_AP_MAX_BASE) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           
           SCORE_POINT = SCORE_POINT - UP_AP_MAX_BASE;
           CURRENT_MAX_AP += UP_AP_MAX_EFFECT;
           UP_AP_MAX_BASE = (UP_AP_MAX_BASE * UP_AP_MAX_BASE_MULT);
           

           g_EntityFuncs.FireTargets("t_up_ap", activator, pcaller, USE_SET);


             CBaseEntity@ ingame_targ_up_ap;
             @ingame_targ_up_ap = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_ap, "targ_num_up_ap");
             ingame_targ_up_ap.pev.skin = UP_AP_MAX_BASE;
           
             
            CBaseEntity@ ingame_targ_score; /////update score point
            @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;
            
       }


}


void event_buy_up_leader(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_LEADER_HP_BASE) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           
           SCORE_POINT = SCORE_POINT - UP_LEADER_HP_BASE;
           UP_LEADER_HP_BASE = (UP_LEADER_HP_BASE * UP_LEADER_HP_MULT);
           g_EntityFuncs.FireTargets("t_up_leader", activator, pcaller, USE_SET);
           CURRENT_LEADER_HP += UP_LEADER_HP_EFFECT; 



           CBaseEntity@ ingame_npc_leader;
           @ingame_npc_leader = g_EntityFuncs.FindEntityByTargetname(ingame_npc_leader, "npc_leader");
            ingame_npc_leader.pev.health = CURRENT_LEADER_HP;
            ingame_npc_leader.pev.max_health = CURRENT_LEADER_HP;


             CBaseEntity@ ingame_targ_up_leader;
             @ingame_targ_up_leader = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_leader, "targ_num_up_leader");
             ingame_targ_up_leader.pev.skin = UP_LEADER_HP_BASE;
           
             
            CBaseEntity@ ingame_targ_score; /////update score point
            @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;
            
       }


}

void event_buy_up_grunt(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_MILITARY_HP_BASE) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           
           SCORE_POINT = SCORE_POINT - UP_MILITARY_HP_BASE;
           UP_MILITARY_HP_BASE = (UP_MILITARY_HP_BASE * UP_MILITARY_HP_MULT);
           g_EntityFuncs.FireTargets("t_up_grunt", activator, pcaller, USE_SET);
           CURRENT_MILITARY_HP += UP_MILITARY_HP_EFFECT; 



           CBaseEntity@ ingame_cv_grunt;
           @ingame_cv_grunt = g_EntityFuncs.FindEntityByTargetname(ingame_cv_grunt, "cv_update_hp_grunt");
            ingame_cv_grunt.KeyValue("m_iszNewValue", CURRENT_MILITARY_HP);
            ////ingame_cv_grunt.m_iszNewValue = CURRENT_MILITARY_HP;
            string CV_GRUNT_NAME = ingame_cv_grunt.pev.targetname;
            g_EntityFuncs.FireTargets(CV_GRUNT_NAME, activator, pcaller, USE_SET);


             CBaseEntity@ ingame_targ_up_grunt;
             @ingame_targ_up_grunt = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_grunt, "targ_num_up_grunt");
             ingame_targ_up_grunt.pev.skin = UP_MILITARY_HP_BASE;
           
             
            CBaseEntity@ ingame_targ_score; /////update score point
            @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;
            
       }


}

void event_buy_up_apfx(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_AP_EFFECT_BASE) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           if(CURRENT_ARMOR_RATIO >= MAX_ARMOR_RATIO) ////from armor script
               {
                    g_EntityFuncs.FireTargets("t_reach_max", activator, pcaller, USE_SET);
                    
                }

           else

                {

                   SCORE_POINT = SCORE_POINT - UP_AP_EFFECT_BASE;
                   UP_AP_EFFECT_BASE = (UP_AP_EFFECT_BASE * UP_AP_EFFECT_MULT);
                   g_EntityFuncs.FireTargets("t_up_apfx", activator, pcaller, USE_SET);

         
                   CURRENT_ARMOR_RATIO += UP_AP_EFFECT_EFFECTIVE; ////from armor script


                   CBaseEntity@ ingame_targ_up_apfx;
                   @ingame_targ_up_apfx = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_apfx, "targ_num_up_apfx");
                   ingame_targ_up_apfx.pev.skin = UP_AP_EFFECT_BASE;
           
             
                   CBaseEntity@ ingame_targ_score; /////update score point
                    @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
                    ingame_targ_score.pev.skin = SCORE_POINT;


                    if(CURRENT_ARMOR_RATIO >= MAX_ARMOR_RATIO)
                      {
                              g_EntityFuncs.FireTargets("wall_max_apfx", activator, pcaller, USE_ON);
                      }
                }

                            
       }


}


void event_buy_up_weapon(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_WEAPON_COST_BASE) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {

           CURRENT_UP_WEAPON += 1;
           if(CURRENT_UP_WEAPON > UP_WEAPON_MAX)
               {
                    g_EntityFuncs.FireTargets("t_reach_max", activator, pcaller, USE_SET);

                }

           else

                {

                   SCORE_POINT = SCORE_POINT - UP_WEAPON_COST_BASE;
                   UP_WEAPON_COST_BASE = (UP_WEAPON_COST_BASE * UP_WEAPON_COST_MULT);
                   g_EntityFuncs.FireTargets("t_up_weapon", activator, pcaller, USE_SET);

                   
                   if (CURRENT_UP_WEAPON == 1)
                      {
                           g_EntityFuncs.FireTargets("cv_wp_as2", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_can2", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_medic2", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_heavy2", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_sniper2", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_engineer2", activator, pcaller, USE_SET);

                      }
                   else if (CURRENT_UP_WEAPON == 2)
                      {
                           g_EntityFuncs.FireTargets("cv_wp_as3", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_can3", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_medic3", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_heavy3", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_sniper3", activator, pcaller, USE_SET);
                           g_EntityFuncs.FireTargets("cv_wp_engineer3", activator, pcaller, USE_SET);


                      }


                   CBaseEntity@ ingame_targ_up_weapon;
                   @ingame_targ_up_weapon = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_weapon, "targ_num_up_weapon");
                   ingame_targ_up_weapon.pev.skin = UP_WEAPON_COST_BASE;
           
             
                   CBaseEntity@ ingame_targ_score; /////update score point
                    @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
                    ingame_targ_score.pev.skin = SCORE_POINT;


                     if(CURRENT_UP_WEAPON >= UP_WEAPON_MAX)
                      {
                              g_EntityFuncs.FireTargets("wall_max_wp", activator, pcaller, USE_ON);
                      }


                }

                           
       }


}


void event_buy_up_item(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_MISC_COST) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {

           CURRENT_UP_MISC += 1;
           if(CURRENT_UP_MISC > UP_MISC_MAX)
               {
                    g_EntityFuncs.FireTargets("t_reach_max", activator, pcaller, USE_SET);

                }

           else

                {

                   SCORE_POINT = SCORE_POINT - UP_MISC_COST;
                   UP_MISC_COST = (UP_MISC_COST * UP_MISC_MULT);
                   g_EntityFuncs.FireTargets("t_up_item", activator, pcaller, USE_SET);

                   
                   if (CURRENT_UP_MISC == 1)
                      {
                           g_EntityFuncs.FireTargets("mm_item_up1", activator, pcaller, USE_SET);

                      }
                   else if (CURRENT_UP_MISC == 2)
                      {

                           g_EntityFuncs.FireTargets("mm_item_up2", activator, pcaller, USE_SET);

                      }

                   else if (CURRENT_UP_MISC == 3)
                      {

                          g_EntityFuncs.FireTargets("mm_item_up3", activator, pcaller, USE_SET);

                      }


                   CBaseEntity@ ingame_targ_up_item;
                   @ingame_targ_up_item = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_item, "targ_num_up_item");
                   ingame_targ_up_item.pev.skin = UP_MISC_COST;
           
             
                   CBaseEntity@ ingame_targ_score; /////update score point
                    @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
                    ingame_targ_score.pev.skin = SCORE_POINT;


                    if(CURRENT_UP_MISC >= UP_MISC_MAX)
                      {
                              g_EntityFuncs.FireTargets("wall_max_item", activator, pcaller, USE_ON);
                      }

                }

                           
       }


}


void event_buy_up_plank(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_BARRICADE_COST) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           
           SCORE_POINT = SCORE_POINT - UP_BARRICADE_COST;
           CURRENT_BARRICADE_HP += UP_BARRICADE_EFFECT;
           UP_BARRICADE_COST = (UP_BARRICADE_COST * UP_BARRICADE_MULT);
           g_EntityFuncs.FireTargets("t_up_plank", activator, pcaller, USE_SET);

             CBaseEntity@ ingame_model_plank_h;
             @ingame_model_plank_h = g_EntityFuncs.FindEntityByTargetname(ingame_model_plank_h, "sample_plank_h");
              ingame_model_plank_h.pev.health = CURRENT_BARRICADE_HP;
              ingame_model_plank_h.pev.max_health = CURRENT_BARRICADE_HP;

              CBaseEntity@ ingame_model_plank_v;
             @ingame_model_plank_v = g_EntityFuncs.FindEntityByTargetname(ingame_model_plank_v, "sample_plank_v");
              ingame_model_plank_v.pev.health = CURRENT_BARRICADE_HP;
              ingame_model_plank_v.pev.max_health = CURRENT_BARRICADE_HP;



             CBaseEntity@ ingame_targ_up_plank;
             @ingame_targ_up_plank = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_plank, "targ_num_up_plank");
             ingame_targ_up_plank.pev.skin = UP_BARRICADE_COST;
           
             
            CBaseEntity@ ingame_targ_score; /////update score point
            @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;
            
       }


}


void event_buy_up_base(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_BASE_BASECOST) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {

           CURRENT_UP_BASE += 1;
           if(CURRENT_UP_BASE > UP_BASE_MAX)
               {
                    g_EntityFuncs.FireTargets("t_reach_max", activator, pcaller, USE_SET);

                }

           else

                {

                   SCORE_POINT = SCORE_POINT - UP_BASE_BASECOST;
                   UP_BASE_BASECOST = (UP_BASE_BASECOST * UP_BASE_MULT);
                   g_EntityFuncs.FireTargets("t_up_base", activator, pcaller, USE_SET);

                   
                   if (CURRENT_UP_BASE == 1)
                      {
                           g_EntityFuncs.FireTargets("mm_base_up1", activator, pcaller, USE_SET);

                      }
                   else if (CURRENT_UP_BASE == 2)
                      {

                           g_EntityFuncs.FireTargets("mm_base_up2", activator, pcaller, USE_SET);

                      }




                   CBaseEntity@ ingame_targ_up_base;
                   @ingame_targ_up_base = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_base, "targ_num_up_base");
                   ingame_targ_up_base.pev.skin = UP_BASE_BASECOST;
           
             
                   CBaseEntity@ ingame_targ_score; /////update score point
                    @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
                    ingame_targ_score.pev.skin = SCORE_POINT;

                   if(CURRENT_UP_BASE >= UP_BASE_MAX)
                      {
                              g_EntityFuncs.FireTargets("wall_max_base", activator, pcaller, USE_ON);
                      }



                }

                           
       }


}




void event_buy_up_mg(CBaseEntity@ activator, CBaseEntity@ pcaller, USE_TYPE usetype, float flValue)
{

          
      
       if((SCORE_POINT - UP_MOUNTGUN_COST) < 0 )
       {

           g_EntityFuncs.FireTargets("t_not_enough_point", activator, pcaller, USE_SET);
       }
     else
       {
           
           SCORE_POINT = SCORE_POINT - UP_MOUNTGUN_COST;
           UP_MOUNTGUN_COST = (UP_MOUNTGUN_COST * UP_MOUNTGUN_MULT);
           CURRENT_UP_MOUNTGUN = (CURRENT_UP_MOUNTGUN * UP_MOUNTGUN_EFFECT);

           g_EntityFuncs.FireTargets("t_up_mg", activator, pcaller, USE_SET);

            CBaseEntity@ ingame_ent_mg1;
             @ingame_ent_mg1 = g_EntityFuncs.FindEntityByTargetname(ingame_ent_mg1, "mg1");
              ingame_ent_mg1.KeyValue("bullet_damage", CURRENT_UP_MOUNTGUN);

            CBaseEntity@ ingame_ent_mg2;
             @ingame_ent_mg2 = g_EntityFuncs.FindEntityByTargetname(ingame_ent_mg2, "mg2");
              ingame_ent_mg2.KeyValue("bullet_damage", CURRENT_UP_MOUNTGUN);


             CBaseEntity@ ingame_targ_up_mg;
             @ingame_targ_up_mg = g_EntityFuncs.FindEntityByTargetname(ingame_targ_up_mg, "targ_num_up_mg");
             ingame_targ_up_mg.pev.skin = UP_MOUNTGUN_COST;
           
             
            CBaseEntity@ ingame_targ_score; /////update score point
            @ingame_targ_score = g_EntityFuncs.FindEntityByTargetname(ingame_targ_score, "targ_num_score");
            ingame_targ_score.pev.skin = SCORE_POINT;


           ////g_PlayerFuncs.ShowMessageAll(CURRENT_UP_MOUNTGUN);
            
       }


}



HookReturnCode OnPlayerRespawn( CBasePlayer@ pPlayer )
{

      
      
       pPlayer.pev.health = CURRENT_MAX_HP;
       pPlayer.pev.max_health = CURRENT_MAX_HP;
       pPlayer.pev.armortype = CURRENT_MAX_AP;
       pPlayer.pev.armorvalue = CURRENT_MAX_AP;       

   return HOOK_CONTINUE;
}



