aboutsummaryrefslogtreecommitdiff
path: root/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_arena_loadouts.gnut
blob: ae0fa7d68c4d27b19255365d355d83313d281411 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// the purpose of this script is basically just to provide methods that are used in modified burnmeter and boost_store scripts to get custom items to work

global function InitialiseArenaLoadouts
global function PopulateArenaLoadouts
global function GetArenaLoadoutForRoundCount
global function GetArenaLoadoutItemAsBurnReward
global function GetCashBoostForRoundCount

#if SERVER
	global function GivePlayerArenaLoadoutItem
#endif

const int ABILITY_ROUND = 2
const int CRATE_ROUND = 4
const int TITAN_ROUND = 7

struct {
	array<BoostStoreData> tier0Weapons
	array<BoostStoreData> tier1Weapons
	array<BoostStoreData> antiTitanWeapons
	
	BoostStoreData droppodRespawn
	BoostStoreData titanBattery
	BoostStoreData titanfall
} file

void function InitialiseArenaLoadouts()
{
	BoostStoreData g2Data = { itemRef="mp_weapon_g2", modesAllowed="arena", cost=75, ... }
	file.tier0Weapons.append( g2Data )
	
	BoostStoreData flatlineData = { itemRef="mp_weapon_vinson", modesAllowed="arena", cost=125, ... }
	file.tier0Weapons.append( flatlineData )
	
	BoostStoreData wingmanData = { itemRef="mp_weapon_wingman", modesAllowed="arena", cost=50, ... }
	file.tier0Weapons.append( wingmanData )
	
	BoostStoreData respawnData = { itemRef="droppodRespawn", modesAllowed="arena", cost=50, ... }
	file.tier0Weapons.append( respawnData )
	
	#if SERVER
		SetBoostPurchaseCallback( GivePlayerArenaLoadoutItem )
	#endif
}

array<BoostStoreData> function PopulateArenaLoadouts()
{
	return GetArenaLoadoutForRoundCount( 0 )
}

array<BoostStoreData> function GetArenaLoadoutForRoundCount( int round )
{
	return file.tier0Weapons
}

BurnReward function GetArenaLoadoutItemAsBurnReward( string itemRef )
{
	BurnReward reward
	reward.ref = itemRef
	reward.localizedName = itemRef
	
	return reward
}

bool function ArenaLoadoutItemIsWeapon( string item )
{
	if ( item.find( "mp_weapon" ) == 0 )
		return true
	
	return false
}

int function GetCashBoostForRoundCount( int round )
{
	if ( round == 0 )
		return 150
	
	if ( round < 4 )
		return 250
	
	return 350
}

#if SERVER
	void function GivePlayerArenaLoadoutItem( entity player, BoostStoreData item )
	{
		if ( ArenaLoadoutItemIsWeapon( item.itemRef ) )
		{
			array<string> mods
			// apply mods
			//if ( item.itemRef = "mp_weapon_wingman" )
		
			player.GiveWeapon( item.itemRef, mods )
			player.SetActiveWeaponByName( item.itemRef )
			return
		}
	}
#endif