/* //// AddWeaponPack //// 
 Defines the properties for a weapon pack.

 Syntax:
 addWeaponPack, int category, str lang_str, str cvar_buy_price, int pressure_add, [str only_for_classes]

 Parameters:
   category                - (int) Set's the weapon category, 1 = Standard, 2 = Advanced, 3 = Overpowered
   lang_str                - (string) The language string identifier for the weapon's display name and descriptions.
   cvar_buy_price          - (string) The cvar to control the buy price on the terminal.
   pressure_add            - (int) The monster pressure gain when bought on the terminal.
   only_for_classes        - (string, optional) Restricts the weapon to specific player classes (space-separated). 0 means everyone can use it.
*/

/* //// AddWeaponNoPack ////
 Defines the properties for a weapon's ammo type, without pack (only for the starter weapons in order to be upgradable on terminal).

 Syntax:
 addweaponnopack, str weapon_Actor, str lang_str, str str_icon, [str only_for_classes]

 Parameters:
   weapon_Actor            - (string) The actor or class name representing the weapon.
   lang_str                - (string) The language string identifier for the weapon's display name.
   icon                    - (string) The icon or sprite name used for the weapon in the UI.
   only_for_classes        - (string, optional) Restricts the weapon to specific player classes (space-separated). 0 means everyone can use it.
*/

//// AddWeapon ////
/*
 Defines the properties for a weapon's ammo type, without pack (only for the starter weapons in order to be upgradable on terminal).

 Syntax:
 addweapon, str lang_pack_str, str weapon_actor, str lang_wep_str, str icon, str cvar_recycle_price, [str only_for_classes]

 Parameters:
   lang_pack_str:          - (string) The language keyword from a pack to add the weapon inside.
   weapon_actor:           - (string) The weapon actor to be used.
   lang_wep_str:           - (string) The language keyword for the weapon name and description.
   icon:                   - (string) The sprite to show for the Terminal.
   cvar_recycle_price:     - (string) The cvar to control the recycle price on the terminal.
   only_for_classes:       - (string, optional) Restricts the weapon to specific player classes (space-separated). 0 means everyone can use it.
*/

//// AddWeaponUp //// 
/*
 Defines the properties for a Weapon Upgrade, requiring the base weapon to be replaced with another upgraded version.

 Syntax:
 addweaponup, str base_weapon, int up_type_id, str upgrade_weapon, str cvar_upgrade_price_up, str cvar_recycle_price

 Parameters:
   base_weapon             - (string) The actor or class name representing the weapon to be upgraded.
   up_type_id              - (int) The upgrade type identifier (usually 0, 1, or 2) 0 - 8.
   upgrade_weapon          - (string) The actor or class name of the upgraded weapon.
   cvar_upgrade_price_up   - (string) The cvar to control the upgrade price on the terminal, in Upgrade Points.
   cvar_recycle_price      - (string) The cvar to control the recycle price on the terminal.
*/

//// AddAmmo //// 
/*
 Defines the properties for a weapon's ammo type.

 Syntax:
 AddAmmo, str Ammo_Actor, int Base_Max, int personal_backpack_ammo, [int dispenser_give], [str supply_sapwn], [int max_cap], [bool dont_expand]

 Parameters:
   Ammo_Actor              - (string) The actor or class name representing the ammo type.
   Base_Max                - (int) The base maximum amount of this ammo type a player can carry.
   personal_backpack_ammo  - (int) The maximum ammo capacity for this type when the player has a backpack.
   dispenser_give          - (int, optional) The amount of ammo given by a dispenser or the ammo rune.
   supply_sapwn            - (str, optional) The actor to replace when spawning the ammo with the supplier. 0 = Same value as ammo actor, -1 = Not spawnable by supplier
   max_cap                 - (int, optional) The absolute maximum cap for this ammo type, regardless of upgrades.
   dont_expand             - (bool, optional) If true, prevents this ammo type from being expanded by upgrades or backpacks.
*/

//// StarterItem ////
/*
 Defines the starting item for each player class

 Syntax
 StarterItem, str player_class, str inventory_item, int amount, [bool weapon_equip]

 Parameters:
   player_class            - (string) The player class for 
   inventory_item          - (int) The quantity of the item.
   amount                  - (int) The quantity of the item.
   weapon_equip            - (bool, optional) The quantity of the item.
*/

//// ClearAllWeapons /////
/*
 Clears all previously defined weapons from the game, ensuring a clean slate for new weapon definitions.

 Syntax:
    ClearAllWeapons
*/

//// ClearAllAmmo ////
/*
 Clears all previously defined ammo types from the game, allowing for fresh ammo definitions.

 Syntax:
    ClearAllAmmo
*/

AddAmmo, "Clip",                200,    100,    10, "ClipBox"
AddAmmo, "Shell",               60,     30,     2,  "ShellBox"
AddAmmo, "RocketAmmo",          50,     25,     2,  "RocketBox"
AddAmmo, "HeavyBullets",        300,    100,    40
AddAmmo, "Dualshot_Ammo",       200,    50,     15
AddAmmo, "Cell",                300,    200,    20, "CellPack"
AddAmmo, "GLauncher_Ammo",      15,     5,      2
AddAmmo, "GLauncher_Ammo2",     5,      5,      1
AddAmmo, "Flinger_Ammo",        50,     50,     2
AddAmmo, "Gasoline",            200,    50,     20
AddAmmo, "Supplies_Ammo",       10,     5,      0, -1
AddAmmo, "Supplies_Health",     10,     5,      0, -1
AddAmmo, "Supplies_Ammo_Big",   20,     5,      0, -1
AddAmmo, "Supplies_Health_Big", 20,     5,      0, -1

StarterItem, "FrenzyPlayer", "Inventory_TurretBullet", 3
StarterItem, "FrenzyPlayer", "Beretta",    1
StarterItem, "FrenzyPlayer", "Boomstick",  1, true

// Basic Weapons 
addweaponnopack, "Boomstick", "BASIC_BSTK", "SHT2A0", "FrenzyPlayer"
addweaponup, "Boomstick", 0, "Boomstick_Full", "pr_wu_boomstick_up0", ""

// Standard Weapons
addWeaponPack, 0, "SHOTGUN", "pr_wb_shotgun", 2, 0
    addweapon, "SHOTGUN", "SSG", "SSG", "SHT2A0", "pr_wr_ssg", 0
    addweaponup, "SSG", 1, "SSG_Autoload", "pr_wu_ssg_up1", "pr_wr_ssg_up1"
    addweaponup, "SSG", 2, "SSG_Explosive", "pr_wu_ssg_up2", "pr_wr_ssg_up2"

    addweapon, "SHOTGUN", "Quadshot", "QUAD", "SHT2A0", "pr_wr_quadshot", 0
    addweaponup, "Quadshot", 0, "Quadshot_Full", "pr_wu_quadshot_up0", "pr_wr_quadshot_up0"

addWeaponPack, 0, "ASSAULT", "pr_wb_assault", 2, 0
    addweapon, "ASSAULT", "Spitter", "SPIT", "SHT2A0", "pr_wr_spitter", 0
    addweaponup, "Spitter", 1, "Spitter_SSG", "pr_wu_spitter_up1", "pr_wr_spitter_up1"
    addweaponup, "Spitter", 2, "Spitter_GLauncher", "pr_wu_spitter_up2", "pr_wr_spitter_up2"

    addweapon, "ASSAULT", "Buckshot", "BUCK", "SHT2A0", "pr_wr_buckshot"
    addweaponup, "Buckshot", 1, "Buckshot_Chamber", "pr_wu_buckshot_up1", "pr_wr_buckshot_up1"
    addweaponup, "Buckshot", 2, "Buckshot_Explosive", "pr_wu_buckshot_up2", "pr_wr_buckshot_up2"

addWeaponPack, 0, "SUPPORT", "pr_wb_support", 0, 0
    addweapon, "SUPPORT", "Supplier", "SUPP", "SHT2A0", "pr_wr_supplier", 0
    addweaponup, "Supplier", 0, "SSG_Autoload", "pr_wu_supplier_up0", "pr_wr_supplier_up0"

    addweapon, "SUPPORT", "Patcher", "PTCH", "SHT2A0", "pr_wr_patcher", 0
    addweaponup, "Patcher", 0, "Patcher_Advanced", "pr_wu_patcher_up0", "pr_wr_patcher_up0"

// Advanced Weapons

addWeaponPack, 1, "COMMANDO", "pr_wb_commando", 5, 0
    addweapon, "COMMANDO", "Repeater", "REPE", "SHT2A0", "pr_wr_repeater", 0
    addweaponup, "Repeater", 1, "Repeater_DoubleSpeed", "pr_wu_repeater_up1", "pr_wr_repeater_up1"
    addweaponup, "Repeater", 2, "Repeater_BlastShells", "pr_wu_repeater_up2", "pr_wr_repeater_up2"

    addweapon, "COMMANDO", "Dualshot", "NAIL", "SHT2A0", "pr_wr_ssg", 0
    addweaponup, "Dualshot", 1, "Dualshot_FlakShells", "pr_wu_dualshot_up1", "pr_wr_dualshot_up1"
    addweaponup, "Dualshot", 2, "Dualshot_Razor", "pr_wu_dualshot_up2", "pr_wr_dualshot_up2"

addWeaponPack, 1, "EXPLOSIVE", "pr_wb_heavy", 8, 0
    addweapon, "EXPLOSIVE", "Launcher", "ROKT", "SHT2A0", "pr_wr_launcher", 0
    addweaponup, "Launcher", 1, "Launcher_Exploder", "pr_wu_launcher_up1", "pr_wr_launcher_up1"
    addweaponup, "Launcher", 2, "Launcher_Multi", "pr_wu_launcher_up2", "pr_wr_launcher_up2"

    addweapon, "EXPLOSIVE", "Flinger", "FLIN", "SHT2A0", "pr_wr_flinger", 0
    addweaponup, "Flinger", 1, "Flinger_Expander", "pr_wu_flinger_up1", "pr_wr_flinger_up1"
    addweaponup, "Flinger", 2, "Flinger_MinePlacer", "pr_wu_flinger_up2", "pr_wr_flinger_up2"

addWeaponPack, 1, "PLASMA", "pr_wb_plasma", 8, 0
    addweapon, "PLASMA", "PlasmaGun", "PLSG", "SHT2A0", "pr_wr_plasmagun", 0
    addweaponup, "PlasmaGun", 1, "PlasmaGun_Spread", "pr_wu_plasmagun_up2", "pr_wr_plasmagun_up1"
    addweaponup, "PlasmaGun", 2, "PlasmaGun_Advanced", "pr_wu_plasmagun_up1", "pr_wr_plasmagun_up2"

    addweapon, "PLASMA", "SF_Railgun", "RAIL", "SHT2A0", "pr_wr_repeater", 0
    addweaponup, "SF_Railgun", 1, "Railgun_Taser", "pr_wu_railgun_up1", "pr_wr_railgun_up1"
    addweaponup, "SF_Railgun", 2, "Railgun_Slug", "pr_wu_railgun_up2", "pr_wr_railgun_up2"

// Overpowered Weapons

addWeaponPack, 2, "PYRO", "pr_wb_flamer", 12, 0
    addweapon, "PYRO", "Flamer", "FLAM", "SHT2A0", "pr_wr_flamer", 0
    addweaponup, "Flamer", 0, "FlamerS", "pr_wu_flamer_up0", "pr_wr_flamer_up0"

addWeaponPack, 2, "BFGL", "pr_wb_bfg", 12, 0
    addweapon, "BFGL", "BFG", "BFG", "SHT2A0", "pr_wr_flamer", 0
    addweaponup, "BFG", 1, "BFG_Splash", "pr_wu_bfg_up1", "pr_wr_bfg_up1"
    addweaponup, "BFG", 2, "BFG_Overcharge", "pr_wu_bfg_up2", "pr_wr_bfg_up2"