#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <smrpg>
#include <cstrike>
#include <autoexecconfig>

//#define PXP_DEBUG

ConVar g_hCVXPMultiplier;
ConVar g_hCVAdminFlag;

public Plugin myinfo = 
{
	name = "SMRPG VIP XP",
	author = "Nano",
	description = "Gives extra credits to players with a given flag",
	version = "1.0",
	url = ""
}

public void OnPluginStart()
{
	AutoExecConfig_SetFile("plugin.smrpg_vip_multiplier");
	AutoExecConfig_SetCreateFile(true);
	AutoExecConfig_SetPlugin(null);
	
	g_hCVXPMultiplier = AutoExecConfig_CreateConVar("smrpg_vip_multiplier", "2.0", "Multiplier for the XP a player gains", 0, true, 1.0);
	g_hCVAdminFlag = AutoExecConfig_CreateConVar("smrpg_vip_multiplier_flag", "3.0", "Admin flag: (1 = o), (2 = p), ..., (6 = t)", 0, true, 1.0, true, 6.0);
	
	AutoExecConfig_ExecuteFile();
}

public Action SMRPG_OnAddExperience(int client, const char[] reason, int &iExperience, int other)
{
	int iAdmFlagCVAR = GetConVarInt(g_hCVAdminFlag);
	float iMultiplier = GetConVarFloat (g_hCVXPMultiplier);
	bool bClientHasFlag = false;
	
	switch(iAdmFlagCVAR)
	{
		case 1:
		{
			bClientHasFlag = CheckCommandAccess(client, "", ADMFLAG_CUSTOM1);
		}
		case 2:
		{
			bClientHasFlag = CheckCommandAccess(client, "", ADMFLAG_CUSTOM2);
		}
		case 3:
		{
			bClientHasFlag = CheckCommandAccess(client, "", ADMFLAG_CUSTOM3);
		}
		case 4:
		{
			bClientHasFlag = CheckCommandAccess(client, "", ADMFLAG_CUSTOM4);
		}
		case 5:
		{
			bClientHasFlag = CheckCommandAccess(client, "", ADMFLAG_CUSTOM5);
		}
		case 6:
		{
			bClientHasFlag = CheckCommandAccess(client, "", ADMFLAG_CUSTOM6);
		}
	}
	if(bClientHasFlag)
	{	
		#if defined PXP_DEBUG
		LogMessage("%N received %i times the added XP for being VIP. Original XP: %i, new XP: %i", client, iMultiplier, iExperience, iMultiplier*iExperience);
		#endif
		iExperience = RoundToFloor(iMultiplier*iExperience);
	}
	
	return Plugin_Continue;
}