LEGENDS 2.0 POINT BUY GUIDE[]
This guide is aimed to assist players in implementing the newly implimented point buy system into your .mbch files.
By 2cwldys
For the purpose of this guide, I will be publicly releasing the Projectile Heaven CTF Legends and their implementations of this system, as a public resource for all players. An example for players to reference from and create their own genius universal FA concepts and designs.
Core Outlines & Rules of Thumb:[]
There may only be fourteen instances, in the current version of the Open Beta in which attributes may be distributed with the use of the point buy system. Any further will not be accessible by players, as the UI is only so long and without a scrolling wheel.
c_att_skill_0 --> c_att_skill_14
c_att_names_0 --> c_att_names_14
c_att_ranks_0 --> c_att_ranks_14
Not all things have to be point-buy purchased.
You can still give classes preset attribute conditions, but it is good to have this information publicly known to all players.
Required Flags:[]
isCustomBuild[]
This is required and tells the game that this character will have a custom point-buy build. By default this is off (0).
mbpoints[]
This is how many points are available for players to spend
rankforcepool #,#,#[]
If you want a class with a force pool to have purchasable points per level, this is where you would set the pool values per level.
Configuring a Base Gunner class:[]
// normally within a ClassInfo {} bracket:
name "bh_tb_gru"
// the name of the .mbch file used in CTF projectile heaven legends
weapons WP_MELEE|WP_BLASTER_PISTOL
// the weapon variables given to the player, the point buy system overrides
attributes MB_ATT_PISTOL,1|MB_ATT_AMMO,3|MB_ATT_ASSEMBLE,1|MB_ATT_GUNBASH
// the attributes you provide to the player, by default, before point buy modifications. some may be provided in exception to point buy for every player using the class.
holdables HI_AMMODISP
// this is unique to my legends modifications, though this is how you distribute ammo to other players. through holdables.
c_att_names_0 "-Weapons-"
c_att_ranks_0 -1
// This value is how you remove the ability to spent points on this specific attribute.
c_att_skill_1 MB_ATT_PISTOL
// MB_ATT_PISTOL is what determines what version of blaster pistol is used.
c_att_names_1 "Blaster Pistol:"
// What will appear in the point buy menu as the name of what you are providing as choice.
c_att_ranks_1 0,4,10
// The amount of points required to purchase each tier of the attribute. The cost can be changed, and keep it without spacing.
c_att_skill_2 MB_ATT_BLASTER
c_att_names_2 "E-11 Blaster:"
c_att_ranks_2 5,7,9
c_att_skill_3 MB_ATT_DLT20A
c_att_names_3 "DLT-20a Blaster:"
c_att_ranks_3 8,17,5
c_att_skill_4 MB_ATT_FRAGS
c_att_names_4 "Frag Grenades:"
c_att_ranks_4 15,15
c_att_skill_5 MB_ATT_FIRE_GRENADES
c_att_names_5 "Fire Grenades:"
c_att_ranks_5 15,15
c_att_skill_6 MB_ATT_MICRO_GRENADES
c_att_names_6 "Concussion Grenades:"
c_att_ranks_6 5,5,5
c_att_skill_7 MB_ATT_INVALID
c_att_names_7 "-Abilities-"
c_att_ranks_7 -1
c_att_skill_8 MB_ATT_RESPAWNS
c_att_names_8 "Reinforcements:"
c_att_ranks_8 5,15,25,30
c_att_skill_9 MB_ATT_HEALTH
c_att_names_9 "Health:"
c_att_ranks_9 4,5,6
c_att_skill_10 MB_ATT_CCTRAINING
c_att_names_10 "Close Combat Training:"
c_att_ranks_10 4,2
c_att_skill_11 MB_ATT_DODGE
c_att_names_11 "Dodge:"
c_att_ranks_11 8,15
c_att_skill_12 MB_ATT_DASH
c_att_names_12 "Hero Dash:"
c_att_ranks_12 6,12
c_att_skill_13 MB_ATT_ARMOUR
c_att_names_13 "Armor:"
c_att_ranks_13 5,10,10
c_att_skill_14 MB_ATT_BLAST_ARMOUR
c_att_names_14 "Blast Armor:"
c_att_ranks_14 15
special1 EAS_HI_DODGE
// The use of the special1-2 variables is what determines what ability is used on specific class special buttons, highly customizable.
Configuring a Force User:[]
// normally within a ClassInfo {} bracket:
name "bh_tb_sup"
// the name of the .mbch file used in CTF projectile heaven legends.
weapons WP_MELEE|WP_SABER|WP_BLASTER_PISTOL
// the weapon variables given to the player, the point buy system overrides.
saberstyle SS_MEDIUM|SS_FAST|SS_STRONG
// the saber styles you can provide to your force user class.
forcepowers FP_LEVITATION,1|FP_PUSH,2|FP_PULL,2
// the force powers you can provide to your force user class by default, ignoring point buy.
attributes MB_ATT_PISTOL,3|MB_ATT_AMMO,3|MB_ATT_FORCEFOCUS,2|MB_ATT_DEFLECT,3|MB_ATT_FP_REPULSE
// albeit unique to my own legends modifications, I have given a jedi pistol 3 in the thought process of a kyle katarn type playstyle.
classflags CFL_BPFREEJUMPS
// unique to my own legends modifications, this is how you provide BP free jumps to force users, unavailable in other modes.
Though certainly not recommended to give all your force users these abilities. This is what I have used for my CTF legends project, which can be toned down in the favor of other more balanced builds:
isCustomBuild 1
mbPoints 100 // This number determines how many points are
// available for the build.
// This in turn is dividied up between the skills
// with each number being a "cost".
c_att_skill_0 MB_ATT_INVALID
c_att_names_0 "-Weapons-"
c_att_ranks_0 -1
c_att_skill_1 MB_ATT_FP_SABER_OFFENSE
// this is how you give a class saber offense.
c_att_names_1 "Saber Offense:"
c_att_ranks_1 0,4,10
// these are the ranks that determine how strong saber attacks are.
c_att_skill_2 MB_ATT_FP_SABER_DEFENSE
// this is how you provide a class with saber defense.
c_att_names_2 "Saber Defense:"
c_att_ranks_2 0,6,15
// these are the ranks that determine how strong your saber defense is.
c_att_skill_3 MB_ATT_INVALID
c_att_names_3 "-Force Abilities-"
c_att_ranks_3 -1
c_att_skill_4 MB_ATT_FORCEBLOCK
// how well your class is at resisting other force users
c_att_names_4 "Force Block:"
c_att_ranks_4 0,2,6
// these are the ranks that determine how strong your force block is.
c_att_skill_5 MB_ATT_FP_LEVITATION
// MB_ATT_FP_LEVITATION is the Force Jump attribute variable.
c_att_names_5 "Force Jump:"
c_att_ranks_5 0,2,6
// these are the ranks that determine how strong your force jump is.
c_att_skill_6 MB_ATT_FP_SEE
// MB_ATT_FP_SEE is the attribute variable for Force Sense.
c_att_names_6 "Force Sense:"
c_att_ranks_6 2,4,6
// these are the ranks that determine how well your force sense is.
c_att_skill_7 MB_ATT_FP_SPEED
c_att_names_7 "Force Speed:"
c_att_ranks_7 2,4,6
c_att_skill_8 MB_ATT_FP_TELEPATHY
c_att_names_8 "Force Mind Trick:"
c_att_ranks_8 2,8,10
c_att_skill_9 MB_ATT_FP_GRIP
c_att_names_9 "Force Grip:"
c_att_ranks_9 2,4,6
c_att_skill_10 MB_ATT_FP_LIGHTNING
c_att_names_10 "Force Lightning:"
c_att_ranks_10 2,4,6
c_att_skill_11 MB_ATT_FP_RAGE
c_att_names_11 "Force Rage:"
c_att_ranks_11 2,4,6
c_att_skill_12 MB_ATT_FP_PROTECT
c_att_names_12 "Force Protect:"
c_att_ranks_12 2,4,6
c_att_skill_13 MB_ATT_FP_ABSORB
c_att_names_13 "Force Absorb:"
c_att_ranks_13 2,4,6
c_att_skill_14 MB_ATT_FP_TEAM_HEAL
c_att_names_14 "Force Team Heal:"
c_att_ranks_14 2,6
Configuring a Super Battle Droid:[]
// normally within a ClassInfo {} bracket:
name "bh_tr_sbd"
// the name of the .mbch file used in CTF projectile heaven legends.
weapons WP_SBD|WP_MELEE
// the weapon variables given to the player, the point buy system overrides.
// using the legends SBD as template, this SBD is granted the ability to melee.
attributes MB_ATT_GUNBASH
// not necessarily required, but what I used as a placeholder, MB_ATT_INVALID would be more suitable.
maxhealth 400
maxarmor 10
saberstyle SS_DUAL
// the health, armor, and saberstyle necessary to have this type of SBD melee hybrid to function.
speed 1.0
modelscale 1.12
rateOfFire 1.15
// the SBD's movement speed, model scaling size, and rate of fire.
// rateOfFire variables base firing speed at -1 FAST, to 2 SLOW.
// 0.92 -> 0.8% faster firing rate, whereas 1 is default, 2 -> two times slower to fire.
model "SBD"
skin "dolovite"
uishader "models/players/projheaven/mb2_icon_red_sbd"
// model path of the SBD, the .skin file chosen, and the custom uishader which comes from my unique legends modifications.
// whereas the default uishader for this particular skin is: mb2_icon_dolovite.
//extralives 1
classNumberLimit 1
MBClass MB_CLASS_SBD
meleeMoves M_PUNCH|M_KICK
// the class number limits available to players, meaning how many can be fielded.
// extralives would determine any additional lives, if any.
// melee moves uniquely provided to allow the SBD melee hybrid to function.
isCustomBuild 1
mbPoints 150
c_att_skill_0 MB_ATT_INVALID
c_att_names_0 "-SBD Offense-"
c_att_ranks_0 -1
// An example here where an empty header is used, and afforded for an SBD.
c_att_skill_1 MB_ATT_FIREPOWER
// This attribute determines the firepower available to an SBD, by default is 1.
c_att_names_1 "Firepower:"
c_att_ranks_1 0,4,10
// The ranks available for different tiers of firepower available for an SBD.
c_att_skill_2 MB_ATT_WOOKIE_STRENGTH
c_att_names_2 "Melee Strength:"
c_att_ranks_2 8,15
// Unique to this type of SBD melee hybrid utilized by legends, this determines the additional damage to the base melee damage an SBD can do.
c_att_skill_3 MB_ATT_SBD_CANNON
// This is the SBD wrist cannon attribute variable.
c_att_names_3 "Wrist Cannon:"
c_att_ranks_3 15
// This is only a single tier purchase, and is also offered at exponential cost. These values can be adjusted however.
c_att_skill_4 MB_ATT_AMMO
c_att_names_4 "Ammo"
c_att_ranks_4 5,5,10,20
c_att_skill_5 MB_ATT_INVALID
c_att_names_5 "-SBD Defense-"
c_att_ranks_5 -1
c_att_skill_6 MB_ATT_HULL_STRENGTH
c_att_names_6 "Hull Strength:"
c_att_ranks_6 5,10,10
c_att_skill_7 MB_ATT_MAGNETIC_PLATING
c_att_names_7 "Magnetic Plating:"
c_att_ranks_7 15
c_att_skill_8 MB_ATT_BLAST_ARMOR
c_att_names_8 "Blast Armor:"
c_att_ranks_8 15
c_att_skill_9 MB_ATT_ANTI_MT
c_att_names_9 "Anti Mind Trick"
c_att_ranks_9 5,10,15
c_att_skill_10 MB_ATT_INVALID
c_att_names_10 "-SBD Abilities-"
c_att_ranks_10 -1
c_att_skill_11 MB_ATT_RADAR
c_att_names_11 "Radar:"
c_att_ranks_11 10
c_att_skill_12 MB_ATT_RECHARGE
c_att_names_12 "Battery Recharge:"
c_att_ranks_12 5,5,10
c_att_skill_13 MB_ATT_ZOOM
c_att_names_13 "Zoom:"
c_att_ranks_13 15
Configuring a Droideka:[]
// normally within a ClassInfo {} bracket:
name "s_2da_dk3"
// the name of the unit used in the Supremacy/Galactic Conquest project by 2cwldys, Frenzy, and John.
weapons WP_BRYAR_PISTOL
// The only weapon granted to the droideka, more info below.
attributes MB_ATT_DEKA_SHIELD,3|MB_ATT_DEKA_HULL,3|MB_ATT_FIREPOWER,3|MB_ATT_SHIELD_PROJ,3|MB_ATT_SHOCKWAVE,1
// The standard attributes of a shockwave droideka. You may redact any of these in favor of what you use for point buy. Alternatively, replace ALL with MB_ATT_INVALID only.
// attributes MB_ATT_INVALID
model "droideka"
skin "default"
uishader "models/players/droideka/mb2_icon_default"
MBClass MB_CLASS_DROIDEKA
classNumberLimit 2
// The model path of a droideka, the .skin file used, and the uishader used in the class selection menu.
// the classNumberLimit determines how many of this class can be fielded at any given time.
---
// normally within a WeaponInfo0 {} bracket:
WeaponToReplace WP_BRYAR_PISTOL
WeaponBasedOff WP_BRYAR_PISTOL
NewWorldModel "models/weapons2/blaster_pistol/blaster_pistol_w.glm"
NewViewModel "models/weapons2/blaster_pistol/blaster_pistol.md3"
Icon "gfx/hud/w_icon_dekaarm"
WeaponName "Destroyer Droid Turrets"
// This allows the ability to reskin the available weapon choice, for more authenticity because a droideka is in fact a .veh file.
isCustomBuild 1
mbPoints 150
c_att_skill_0 MB_ATT_INVALID
c_att_names_0 "-Droideka Offense-"
c_att_ranks_0 -1
// An example where a header is used. This is afforded as it is a Droideka, and does not have many governing attributes.
c_att_skill_1 MB_ATT_FIREPOWER
c_att_names_1 "Firepower:"
c_att_ranks_1 0,4,10
// Firepower can be used by MBClass:MB_CLASS_DROIDEKA && MBClass:MB_CLASS_SBD both.
c_att_skill_2 MB_ATT_AMMO
c_att_names_2 "Ammo"
c_att_ranks_2 5,5,10,20
c_att_skill_3 MB_ATT_INVALID
c_att_names_3 "-Droideka Defense-"
c_att_ranks_3 -1
c_att_skill_4 MB_ATT_DEKA_HULL
c_att_names_4 "Hull Strength"
c_att_ranks_4 0,10,15
c_att_skill_5 MB_ATT_DEKA_SHIELD
c_att_names_5 "Shield Strength:"
c_att_ranks_5 0,10,15
// How durable the droideka shields are.
c_att_skill_6 MB_ATT_SHIELD_PROJ
c_att_names_6 "Shield Projector Strength:"
c_att_ranks_6 0,10,15
// Affects just how well a droideka can project it's shield, regardless of shield strength.
c_att_skill_7 MB_ATT_INVALID
c_att_names_7 "-Droideka Abilities-"
c_att_ranks_7 -1
c_att_skill_8 MB_ATT_DEKA_DEPLOY
c_att_names_8 "Quick Deploy:"
c_att_ranks_8 15
// Quick deploy for droidekas.
c_att_skill_9 MB_ATT_DEKA_POWER
c_att_names_9 "Power Management:"
c_att_ranks_9 15
// Power Management, very OP, and the points should be balanced beyond this guide.
c_att_skill_10 MB_ATT_SHOCKWAVE
c_att_names_10 "Shield Discharge:"
c_att_ranks_10 15
// Shield Discharge, the ability to repel grenades, rockets, and pesky jedi who get too close for comfort.
c_att_skill_11 MB_ATT_ANTI_MT
c_att_names_11 "Anti Mind Trick"
c_att_ranks_11 5,10,15
// Just how effective the droideka is against mind trick users. I would weigh the balance of this considerably.
List of Class Special (1-4) EAS replacements:[]
#ifdef GCJ_ABILITY
typedef enum
{
EAS_NONE,
EAS_FP_HEAL,
EAS_FP_LEVITATION,
EAS_FP_SPEED,
EAS_FP_PUSH,
EAS_FP_PULL,
EAS_FP_TELEPATHY,
EAS_FP_GRIP,
EAS_FP_LIGHTNING,
EAS_FP_RAGE,
EAS_FP_PROTECT,
EAS_FP_ABSORB,
EAS_FP_TEAM_HEAL,
EAS_FP_TEAM_FORCE,
EAS_FP_DRAIN,
EAS_FP_SEE,
EAS_FP_SABER_OFFENSE,
EAS_FP_SABER_DEFENSE,
EAS_FP_SABERTHROW,
EAS_FP_REPULSE,
EAS_FP_MANIPULATE,
EAS_FP_KINETIC,
EAS_FP_MIRALUKA,
EAS_FP_SLAM,
EAS_FP_SLOW,
EAS_FP_CHOKE,
EAS_FP_ARCLIGHTNING,
EAS_FP_ARCDRAIN,
EAS_FP_DEADLYSIGHT,
EAS_FP_DESTRUCTION,
EAS_FP_SCREAM,
EAS_FP_SERENITY,
EAS_FP_REVITALIZE,
EAS_FP_ARMOR,
EAS_FP_LIFT,
EAS_FP_BLIND,
EAS_FP_PROJECTION,
EAS_FP_EMERALDLIGHTNING,
EAS_HI_SEEKER,
EAS_HI_SHIELD,
EAS_HI_MEDPAC,
EAS_HI_MEDPAC_BIG,
EAS_HI_BINOCULARS,
EAS_HI_SENTRY_GUN,
EAS_HI_JETPACK,
EAS_HI_HEALTHDISP,
EAS_HI_AMMODISP,
EAS_HI_ARMORDISP,
EAS_HI_FORCEDISP,
EAS_HI_EWEB,
EAS_HI_CLOAK,
EAS_HI_DASH,
EAS_HI_SPRINT,
EAS_HI_DEX,
EAS_HI_FURY,
EAS_HI_QUICKTHROW,
EAS_HI_QUICKTOSS,
EAS_HI_RECHARGE,
EAS_HI_SBD_ZOOM,
EAS_HI_ROCKET,
EAS_HI_WRIST,
EAS_HI_FLAME,
EAS_HI_PLASMA,
EAS_HI_ICE,
EAS_HI_POISON,
EAS_HI_TRACKER,
EAS_HI_KICK,
EAS_HI_BARGE,
EAS_HI_DODGE,
EAS_HI_HEATDUMP,
EAS_HI_EXTINGUISHER,
EAS_HI_WRIST_ROCKET,
EAS_HI_WRIST_REPULSOR,
EAS_HI_WHISTLING_BIRDS,
EAS_HI_FIBROCORD,
EAS_HI_GRAPPLEHOOK,
// Add new ability here.
EAS_MAX
} pSkill_t;
#endif
This ability to function in the FA and Open classData as something like
Ability1 EAS_HI_DASH
Ability2 EAS_FP_LIGHTNING
Ability3 EAS_HI_SENTRY_GUN
Resource RESOURCE_BATTERY
List of Resource Mechanics:[]
resource RESOURCE_SUPPLY
Current Resource Mechanics:
RESOURCE_NONE,
RESOURCE_FORCE,
RESOURCE_ENERGY,
RESOURCE_BATTERY,
RESOURCE_RAGE,
RESOURCE_STAMINA,
RESOURCE_FUEL,
RESOURCE_SUPPLY,
RESOURCE_DEKASHIELD,
NO_OF_RESOURCE
List of Additional 2.0 Attributes & Modifiers:[]
rankHealth MB_ATT_HEALTH, Example: rankHealth 120,140,160
rankArmor MB_ATT_ARMOUR, Example: rankArmor 80,100,120
rankAP MB_ATT_AP_MULTIPLIER, Example: rankAP 1.03,1.06,1.09
rankBP MB_ATT_BP_MULTIPLIER, Example: rankBP 1.1,1.2,1.3
rankCS MB_ATT_CS_MULTIPLIER, Example: rankCS 1.1,1.2,1.3
rankAS MB_ATT_AS_MULTIPLIER, Example: rankAS .5,.7,.9
// Note: Not implemented yet until netcode is applied
(NA) MB_ATT_FP_MULTIPLIER, Example:
rankROF MB_ATT_ROF_MULTIPLIER, Example: rankROF .5,.7,.9
// Note: Not implemented yet until netcode is applied
rankSTM MB_ATT_STM_MULTIPLIER, Example: rankSTM .5,.7,.9
// Note: Not Implemented yet until ability rework is complete
rankKbTaken MB_ATT_KB_TAKEN_MULTIPLIER, Example: rankKbTaken 1.3,1.2,1.1
rankKbGiven MB_ATT_KB_GIVEN_MULTIPLIER, Example: rankKbGiven 1.1,1.2,1.3
rankDmgTaken MB_ATT_DMG_TAKEN_MULTIPLIER, Example: rankDmgTaken .9,.8,.7
rankDmgGiven MB_ATT_DMG_GIVEN_MULTIPLIER, Example: rankDmgGiven 1.1,1.2,1.3
rankBaseSpeed MB_ATT_BASESPEED
rankSaberDamage MB_ATT_SABER_DAMAGE
rankSaberThrowDamage MB_ATT_SABERTHROW_DAMAGE
rankModelScale MB_ATT_MODELSCALE_MULTIPLIER (float)
rankROFMelee MB_ATT_ROF_MELEE_MULTIPLIER (float)
rankHealthRegenAmount MB_ATT_HEALTH_REGEN_AMOUNT
rankHealthRegenRate MB_ATT_HEALTH_REGEN_RATE
rankArmourRegenAmount MB_ATT_ARMOUR_REGEN_AMOUNT
rankArmourRegenRate MB_ATT_ARMOUR_REGEN_RATErankHealth MB_ATT_HEALTH, Example: rankHealth 120,140,160
rankArmor MB_ATT_ARMOUR, Example: rankArmor 80,100,120
(NA) MB_ATT_AMMO, Example:
// Note: Custom Ammo is in WeaponInfo, no practical way to implement this yet
rankForcePool MB_ATT_POWER, Example: rankForcePool 180,200,220
rankForceRegen MB_ATT_REGEN, Example: rankForceRegen 1.1,1.2,1.3
rankAP MB_ATT_AP_MULTIPLIER, Example: rankAP 1.03,1.06,1.09
rankBP MB_ATT_BP_MULTIPLIER, Example: rankBP 1.1,1.2,1.3
rankCS MB_ATT_CS_MULTIPLIER, Example: rankCS 1.1,1.2,1.3
rankAS MB_ATT_AS_MULTIPLIER, Example: rankAS .5,.7,.9
// Note: Not implemented yet until netcode is applied
(NA) MB_ATT_FP_MULTIPLIER, Example:
rankROF MB_ATT_ROF_MULTIPLIER, Example: rankROF .5,.7,.9
// Note: Not implemented yet until netcode is applied
rankSTM MB_ATT_STM_MULTIPLIER, Example: rankSTM .5,.7,.9
// Note: Not Implemented yet until ability rework is complete
rankKbTaken MB_ATT_KB_TAKEN_MULTIPLIER, Example: rankKbTaken 1.3,1.2,1.1
rankKbGiven MB_ATT_KB_GIVEN_MULTIPLIER, Example: rankKbGiven 1.1,1.2,1.3
rankDmgTaken MB_ATT_DMG_TAKEN_MULTIPLIER, Example: rankDmgTaken .9,.8,.7
rankDmgGiven MB_ATT_DMG_GIVEN_MULTIPLIER, Example: rankDmgGiven 1.1,1.2,1.3
rankBaseSpeed MB_ATT_BASESPEED
rankSaberDamage MB_ATT_SABER_DAMAGE
rankSaberThrowDamage MB_ATT_SABERTHROW_DAMAGE
rankModelScale MB_ATT_MODELSCALE_MULTIPLIER (float)
rankROFMelee MB_ATT_ROF_MELEE_MULTIPLIER (float)
rankHealthRegenAmount MB_ATT_HEALTH_REGEN_AMOUNT
rankHealthRegenRate MB_ATT_HEALTH_REGEN_RATE
rankHealthRegenCap MB_ATT_HEALTH_REGEN_CAP
rankArmourRegenAmount MB_ATT_ARMOUR_REGEN_AMOUNT
rankArmourRegenRate MB_ATT_ARMOUR_REGEN_RATE
rankArmourRegenCap MB_ATT_ARMOUR_REGEN_CAP
rankBlockRegenAmount MB_ATT_RESOURCE_REGEN_AMOUNT
rankBlockRegenRate MB_ATT_BLOCK_REGEN_RATE
rankBlockRegenCap MB_ATT_BLOCK_REGEN_CAP
rankResourceRegenAmount MB_ATT_BLOCK_REGEN_AMOUNT
rankResourceRegenRate MB_ATT_RESOURCE_REGEN_RATE
rankResourceRegenCap MB_ATT_RESOURCE_REGEN_CAP