2020-2-28
Version 3
Features
- Added console net variables which enable/disable Control Point spawn positions
cp_spawnbounce
cp_spawnauto
cp_spawnbomb
cp_spawngrenade
cp_spawnscatter
cp_spawnrail
cp_spawninfinity
Modding
- Added table CBW_Battle.Gametypes.TeamScoreType[gametype]
Set value to "1" to calculate team score in "Team Battle" type modes
- Added table CBW_Battle.Gametypes.Battle[gametype]
Set value to "true" to enable Battle rules and mechanics for gametype
- Added table CBW_Battle.Gametypes.CP[gametype]
Set to "true" to enable CP rules and mechanics for gametype
- Added function CBW_Battle.AddPriorityFunction(string,function)
Indexes the specified function as a string (for use with player.battle_func, player.battle_extfunc, and player.battle_sfunc)
- Added variable player.battle_func
String index for core priority function for characters. If nil, defaults to "basic" (index for CBW_Battle.Priority_Core)
- Added variable player.battle_extfunc
String index for an additional priority function. If nil, defaults to "abilities" (index for CBW_Battle.Priority_Ability).
- Added variable player.battle_sfunc
String index for a conditional function, which should return a boolean value. Function can read up to two arguments (player.mo, othermo). If set to nil, does nothing.
- Added variable player.battle_atk
Current attack priority. (If higher than enemy defense priority, deals damage. If equal, can send enemy into disadvantage state)
- Added variable player.battle_def
Current defense priority. (Resists knockback and damage if equal or higher to enemy attack)
- Added variable player.battle_satk
Sweet/sourspot attack priority. (Overrides atk if sfunc returns true)
- Added variable player.battle_sdef
Sweet/sourspot defense priority. (Overrides def if sfunc returns true)
Maintenance
- Reorganized lua contents and changed lua lump naming conventions
- Moved gametype rules from OBJCTCFG to Init_Gametype.lua
- Fixed Battle CTF being set to run on "TOL_BATTLE" maps instead of "TOL_BATTLECTF" maps
- Removed "TOL_TEAMBATTLE", "TOL_TEAMDIAMOND", and "TOL_TEAMCP" from freeslots
- Removed deprecated KingPanel variables
- Improved accuracy of collision angle detection for PvP interactions
- Restructured collision priority code to be less confusing and ambiguous
- Added backup CP spawn functionality for when no valid map spawns are available
- Fixed hits via Tails' sentry not awarding points to the player
- Corrected a script break in Exec_HUD.lua
- HUD compass will now point in the correct direction in splitscreen and while spectating
- Disallowed Knuckles from being able to burrow while in goowater or quicksand
- Fixed armaggeddon shields not dealing damage to enemy players
- Fixed elemental powers not protecting against elemental damage from enemy player projectiles
- Fixed Amy's heart projectiles dealing damage in spite of spinning state
Game Balance
- Disabled Rail/Infinity spawn positions for CP by default (set cp_spawnrail and cp_spawninfinity to 1 as server/admin to re-enable)
- Readjusted PvP recoil and disadvantage state to more consistently favor the player with the higher offensive/defensive priority
Control Panel
- Reduced fluctuation of min/max capture speed
Team Control Panel
- Two teams must have an equal number of players on the point in order for it to be fully blocked
- The team with the highest number of players on the point will increase capture meter, but the rate of capture decreases based on the number of enemy players on the point
Priorities that remain unchanged
- spinjump/spinning priority (1 atk / 1 def)
- Tails propellor attack (2/2)
- Knuckles "fighter stance" sweetspot (0/1)
- Knuckles, Amy ability (no sweetspot) (1/0)
Priorities that have been altered
- Knuckles' glide sweetspot (3/4 -> 2/1)
- Amy's Twin Spin hammer sweetspot (4/4 -> 1/3)
- Amy's Melee hammer sweetspot (4/4 -> 1/3)
- Fang's tail bounce sweetspot (4/3 -> 2/3)
- Metal's dashmode while moving (3/4 -> 3/1)
- Metal's dashmode while charging spindash (1/1 -> 1/3)
Knuckles
- Added vertical angle limit to "fighter stance" sweetspot
- Reduced lifetime of rock blast projectiles (45 -> 35)