// The Spy-bot

// CFG & Model fix: Koishi (SHADoW NiNE TR3S)

// Dependencies:
// Ability Management System: https://forums.alliedmods.net/showthread.php?t=267291
// TFConditions: https://forums.alliedmods.net/showthread.php?t=263598
// Saxtoner: https://forums.alliedmods.net/showpost.php?p=2333722&postcount=22
// Dynamic Defaults: https://forums.alliedmods.net/showthread.php?t=258090
// SHADoW93's Abilities: https://forums.alliedmods.net/showthread.php?t=272190

// BGM:
// We Kill The World - Boney M: https://www.youtube.com/watch?v=e1aa04-asyw


"character"
{

	"name"					"Spy-bot"				//Displayed name of a boss
	"class"					"8"								//8 is spy.
	"model"					"models/bots/spy/bot_spy2.mdl"	//Model of this boss
	"description_en" 		"The Spy-bot:\nA fully upgraded Spy-bot from MvM to take on the opposing team!\nAlt-fire & look up to super jump\nRAGE: Press R to cycle abilities, Call Medic or Taunt to activate. Rage cost will vary."			//Description of this Boss
	

	"health_formula"		"(((600+n)*(n-1))^1.04)+2000"	
	"maxspeed"				"300"							
	"ragedamage"			"2500"	
	
	"weapon1"												
	{
		"name"				"tf_weapon_knife"
		"index"				"4"
		"attributes"		"138 ; 0.37 ; 15 ; 1 ; 154 ; 1 ; 296 ; 5 ; 360 ; 1"
		// 138 - 63% damage penalty vs players
		// 15 -  no random crits
		// 154 - disguise on backstab
		// 296 - crits from sapped buildings
		// 360 - affect those connected to medigun beams
	}

	"ability1"
	{
		"name"	"ability_management_system"
		"arg1"	"0" // activation key. 0=E, 1=R, 2=MIDDLE MOUSE, 3=USE(not bound by default)
		"arg2"	"1" // selection key. 0=not usable, 1=R, 2=MIDDLE MOUSE, 3=USE(not bound by default)
		"arg3"	"3" // reverse selection key. 0=not usable, 1=R, 2=MIDDLE MOUSE, 3=USE(not bound by default) [note: hidden feature, keeping this standard going]
		"arg4"	"0xc00000" // HUD color (unavailable)
		"arg5"	"%s (%.0f rage) [RELOAD (R) to change]\n%s\nAbility is currently unavailable." // HUD text format (unavailable)
		"arg6"	"0xffffff" // HUD color (available)
		"arg7"	"%s (%.0f rage) [RELOAD (R) to change]\n%s\nAbility is available. (press E)" // HUD text format (available)
		"arg8"	"0.68" // HUD Y
		"arg9"	"RAGE Meter: %.0f%%\nHP: %d / %d" // HUD replacement text
		"arg10"	"0.80" // HUD replacement Y
		"plugin_name"	"ff2_sarysapub3"
	}
	
    "ability2"
	{
		"name"	"rage_tfcondition"
		"arg1" "66 ; 10" // Boss Conditions (TFCond ; Duration)

		// Is this a normal E rage? or triggered from the ability management system?
		"arg4" "1"  // Trigger. 0 = E rage, 1 = triggered by ability management system
		"arg5" "vo/mvm/norm/spy_mvm_battlecry01.mp3" // Sound to play (if triggered by ability management system)

		// args reserved for the ability management system, if configured to be used with AMS.
		"arg1001"	"0.0" // delay before first use
		"arg1002"	"40.0" // cooldown
		"arg1003"	"Stealth" // name
		"arg1004"	"Become invisible. Makes you visible briefly while attacking and recloaks you." // description
		"arg1005"	"40" // rage cost
		"arg1006"	"0" // index for ability in the AMS menu
		"plugin_name"	"ff2_tfcond"
	}
	
    "ability3"  
    {  
        "name" "rage_abstractspy"  
        "arg1"        "0"    // Keep disguise until attacking
			
		// AMS or Normal RAGE?
		"arg2" "1" // 0 - Normal RAGE, 1 - Activate via AMS
		
        // args reserved for the ability management system 
        "arg1001"    "0.0" // delay before first use 
        "arg1002"    "25.0" // cooldown 
        "arg1003"    "Random Disguise" // name 
        "arg1004"    "Disguises you as a random player" // description 
        "arg1005"    "5" // rage cost 
        "arg1006"    "1" // index for ability in the AMS menu 
        "plugin_name"    "ff2_otokiru"  
    }

	"ability4"
	{
		"name"	"rage_random_weapon"
		
		"arg1"	"1" // trigger. 0 = E rage, 1 = triggered by ability management system
		"arg2"	"1" // number of weapons (MAX: 10)
		"arg3"	"0.0" // weapon duration. set to 0.0 to keep it forever. (or until replaced)
		
		"arg11"	"tf_weapon_revolver" // weapon name
		"arg12"	"24" // weapon index
		"arg13"	"128 ; 1 ; 63 ; 2 ; 67 ; 2 ; 296 ; 10 ; 137 ; 11 ; 37 ; 0"
		"arg14"	"1" // weapon visibility
		"arg15"	"255" // weapon alpha (0 = fully hidden, 255 = fully visible) [damnit, it wigs out on a scout]
		"arg18"	"6" // starting clip
		"arg19"	"0" // starting reserve ammo
		
        // args reserved for the ability management system 
        "arg1001"    "0.0" // delay before first use 
        "arg1002"    "0.0" // cooldown 
        "arg1003"    "Revolver" // name 
        "arg1004"    "Equip your revolver" // description 
        "arg1005"    "100" // rage cost 
        "arg1006"    "2" // index for ability in the AMS menu 
		"plugin_name"	"ff2_sarysapub3"
	}

	"ability5"
	{
		"name"	"rage_ams_dynamic_teleport"
		
		"arg1"	"1" // trigger. 0 = E rage, 1 = triggered by ability management system
		"arg2"	"1" // 1 = try teleport on top
		"arg3"	"1" // 0 = try teleport on side
		"arg4"	"0.5" // self-stun duration (intentionally short, since the idea is this only gets used if a merc is trolling them)
		"arg5"	"vo/mvm/norm/taunts/spy_mvm_taunts04.mp3" // mapwide sound to play when used

		// args reserved for the ability management system
		"arg1001"	"30.0" // delay before first use
		"arg1002"	"30.0" // cooldown
		"arg1003"	"Teleport" // name
		"arg1004"	"Because Pyros and Engies can be real dicks." // description
		"arg1005"	"75.0" // rage cost
		"arg1006"	"3" // index for ability in the AMS menu
		
		"plugin_name"	"ff2_sarysapub3"
	}
	
	"ability6"
	{
		"name"            "rage_buildable"
		"arg1"            "735"    // Buildable item index #
		"arg2"            "1"    // Hint Notification
		"arg3"            "1"    // Sound Notification
		"arg5"            "1"    // 0 = E rage, 1 = AMS ability

		// args reserved for the ability management system
		"arg1001"	"30.0" // delay before first use
		"arg1002"	"30.0" // cooldown
		"arg1003"	"Sapper" // name
		"arg1004"	"Spy Sappin' My Sentry!" // description
		"arg1005"	"100.0" // rage cost
		"arg1006"	"4" // index for ability in the AMS menu
		
		"plugin_name"	"shadow93_abilities"
	}
	
	"ability7"
	{
		"name" "roboticize"
		"plugin_name" "shadow93_abilities"
	}
	
	"ability8"
	{
		"name" "dynamic_jump"

		// slot is ignored.
		"arg1"	"2.5" // charge time, same as charge_bravejump
		"arg2"	"7.0" // cooldown, same as charge_bravejump
		"arg5"	"3.0" // cooldown before first use
		"arg6"	"300.0" // minimum damage before super duper jump
		"arg8"	"1.3" // jump intensity multiplier. unlike charge_bravejump, this works for oldjump too
		"arg10"	"1" // don't affect weighdown's cooldown
		
		// HUD strings
		"arg17"	"Super DUPER Jump ready! Look up, press and release ALT-FIRE." // super duper jump message
		"arg18"	"Super Jump is not ready. %.1f seconds remaining." // cooldown message
		"arg19"	"Super Jump is ready. %.0f percent charged.\nLook up, press and release ALT-FIRE." // charge message

		"plugin_name"	"ff2_dynamic_defaults"
	}

	"ability9"
	{
		"name" "dynamic_weighdown"
		
		// slot is ignored
		"arg1"	"0" // 1 = disabled by default (can only be re-enabled in code)
		"arg2"	"0" // number of uses. set to 0 to be infinite.
		"arg3"	"1.0" // the hale's normal gravity. this will practically always be 1.0
		
		// strings
		"arg19"	"You have used weighdown!"
		
		"plugin_name"	"ff2_dynamic_defaults"
	}
	
	"ability10"
	{
		"name"	"dynamic_speed_management"
		
		"arg1"	"300.0" // start speed
		"arg2"	"300.0" // end speed
		"arg17"	"1" // 1 = base speed reduced by disguise (i.e. disguise as Heavy, get reduced to 230HUPS)
		"arg18"	"1" // 1 = allow base speed from disguise to be increased.
		
		"plugin_name"	"ff2_dynamic_defaults"
	}

	"sound_begin"												//"Let's get dangerous!" Line in mini-setup.
	{
		"1" "vo/mvm_spy_spawn01.mp3"
		"2" "vo/mvm_spy_spawn02.mp3"
		"3" "vo/mvm_spy_spawn03.mp3"
		"4" "vo/mvm_spy_spawn04.mp3"
	}	

	"sound_win"													//When boss wins
	{
		"1" "vo/mvm/norm/spy_mvm_laughhappy01.mp3"
		"2" "vo/mvm/norm/spy_mvm_laughhappy02.mp3"
	}
	"sound_death"												//When boss dies
	{
		"1" "vo/mvm_spybot_death02.mp3"
		"2" "vo/mvm_spybot_death03.mp3"
	}
	"sound_fail"
	{
		"1"	"vo/mvm/norm/spy_mvm_jeers02.mp3"
		"2"	"vo/mvm/norm/spy_mvm_jeers06.mp3"
		"3"	"vo/mvm/norm/spy_mvm_negativevocalization06.mp3"
	}

	"sound_ability"												//When boss uses ability
	{
		"1" "vo/mvm/norm/spy_mvm_battlecry02.mp3"
		"slot1" "1"
		"2" "vo/mvm/norm/spy_mvm_battlecry03.mp3"
		"slot2" "1"
		"3" "vo/mvm/norm/spy_mvm_battlecry04.mp3"
		"slot3" "1"
		"4"	"vo/mvm/norm/spy_mvm_specialcompleted04.mp3"
		"slot4"	"2"
		"5"	"vo/mvm/norm/spy_mvm_specialcompleted12.mp3"
		"slot5"	"2"
		"6"	"vo/mvm/norm/spy_mvm_revenge01.mp3"
		"slot6"	"2"
	}
	"sound_lastman"
	{
		"1" "vo/mvm/norm/spy_mvm_cheers01.mp3"
	}
	"sound_kill_scout"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationScout01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationScout03.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationScout04.mp3"
	}
	"sound_kill_pyro"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationPyro01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationPyro02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationPyro03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationPyro04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationPyro05.mp3"
	}
	"sound_kill_demoman"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationDemoMan01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationDemoMan02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationDemoMan03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationDemoMan04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationDemoMan05.mp3"
	}
	"sound_kill_heavy"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationHeavy01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationHeavy02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationHeavy03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationHeavy04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationHeavy05.mp3"
	}
	"sound_kill_engineer"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationEngineer01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationEngineer02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationEngineer03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationEngineer04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationEngineer05.mp3"
	}
	"sound_kill_medic"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationMedic01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationMedic02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationMedic03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationMedic05.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationMedic06.mp3"
	}
	"sound_kill_sniper"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationSniper01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationSniper02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationSniper03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationSniper04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationSniper07.mp3"
	}
	"sound_kill_soldier"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationSoldier01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationSoldier02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationSoldier03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationSoldier04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationSoldier05.mp3"
	}
	"sound_kill_spy"
	{
		"1" "vo/mvm/norm/spy_mvm_DominationSpy01.mp3"
		"2" "vo/mvm/norm/spy_mvm_DominationSpy02.mp3"
		"3" "vo/mvm/norm/spy_mvm_DominationSpy03.mp3"
		"4" "vo/mvm/norm/spy_mvm_DominationSpy04.mp3"
		"5" "vo/mvm/norm/spy_mvm_DominationSpy05.mp3"
	}
	"sound_bgm"
	{
		"path1"	"freak_fortress_2/spybot/killtheworld.mp3"
		"time1" "196.0"
	}
	"mod_download"
	{
		"1" "models/bots/spy/bot_spy2"
	}
	"download"													//Downloads these files
	{
		"1"	"sound/freak_fortress_2/spybot/killtheworld.mp3"
		"2" "models/bots/spy/bot_spy2.phy"
	}
}