Changed the HP required to gib from <= -100 to <= -60
Upped headcrush damage from 2x fall damage to 4x fall damage (HWs can take a max of 24 fall damage, which means they can do a max of 96 headcrush damage; scouts, on the other hand, will be able to do a max of 24 headcrush damage)
Added a speed threshold (set to 1.25 of max class speed, just under the bhop soft cap of 1.4) over which friendly players will always soft clip (not be able to stand on eachothers heads); sometimes the upper bound collision check bugs out and causes some weird movement while bhopping inside of/next to a teammate
Added a log event ("Round restarted") when the round is restarted (for example, when prematch ends or ff_restartround is used)
Added SG gibs
Added cvars hud_deathnotice_selfonly and hud_deathnotice_highlightself, both defaulted to 0
If hud_deathnotice_selfonly is 1, it only shows deathnotices that the local player is involved in
If hud_deathnotice_highlightself is 1, it draws a background behind any deathnotice the local player is involved in
Made highlightself background and the objective notice background color/alpha customizable through /scripts/HudLayout.res (HudDeathNotice -> "HighlightColor" and "ObjectiveNoticeColor")
Modified chat macros
Changed %pf to output the time remeining until your detpack explodes instead of the total fuse length (if building, it outputs the total fuse length + buildtime remaining)
Added %ps to output the total fuse length of your detpack
Bug Fixes / Optimizations
Fixed projectiles (rockets, nails, pipes, etc) sometimes colliding with players when they shouldn't and throwing off their movement
Fixed being able to shoot/charge the railgun while building from a bind
Fixed being able to reload while building from a bind
Fixed blue pipes not exploding on jump pads
Fixed buildables being able to be built inside teammates
Fixed crosshair info not showing for teammates
Fixed the exact middle of the laser grenade doing zero damage
Fixed detpacks not executing onexplode() on triggers that they used to (on ff_security_b1, for example)
Fixed SourceTV demos not drawing viewmodels
Fixed not being able to move at all in SourceTV freelook mode
Fixed pipes being able to be detonated multiple times
Fixed the single shotgun and super shotgun not playing the cock sound at the right time
Made the super shotgun use its own cock sound instead of reusing the single shotgun cock sound
Class-specific Changes
Engineer
Engineer now takes 75% damage from exploding buildables
Sentry Gun
Changed explosion radius of all levels to 128 (used to be 102 for level 1, 204 for level 2, and 306 for level 3)
Medic
Infection now does 75 max total damage, its damage per tick diminishes over time, and it lasts 6 seconds longer (10 ticks doing 30, 15, 9, 6, 4, 3, 2, 2, 2, 2 damage respectively instead of 7 ticks doing 10 damage each)
The infection particle effect diminishes over time to match damage diminishing over time
Soldier
Laser grenade damage increased by 189% (from 350*interval per tick to 660*interval per tick); damage against buildables unchanged
Added a radius of 4 units to each of the laser grenade beams
Lua changes
Fixed player:AddHealth called with a negative input factoring in armor when it should ignore it (damage type changed from DMG_GENERIC to DMG_DIRECT)
Fixed a bug with Lua schedules. If a schedule called a Lua function that then created a schedule of the same name, the new schedule would be deleted by the original schedule's clean up. Added a check to make sure that the schedule being deleted should truly be deleted.
Added a way to persist Lua data across level changes
Functions added:
SaveMapData( luaobject ) // saves to maps/data/<mapname>.luadat
SaveMapData( luaobject, suffix ) // saves to maps/data/<mapname>_<suffix>.luadat
LoadMapData() // returns the loaded lua object from maps/data/<mapname>.luadat
LoadMapData( suffix ) // returns the loaded lua object from maps/data/<mapname>_<suffix>.luadat
SaveGlobalData( luaobject ) // saves to maps/data/global/global.luadat
SaveGlobalData( luaobject, suffix ) // saves to maps/data/global/global_<suffix>.luadat
LoadGlobalData() // returns the loaded lua object from maps/data/global/global.luadat
LoadGlobalData( suffix ) // returns the loaded lua object from maps/data/global/global_<suffix>.luadat
The suffix param gets stripped of all non-alphanumeric and non-underscore characters. The lua object is serialized into binary.
Only strings, numbers, booleans, and tables are able to be saved. All other object types are ignored for now (player objects/lua functions for example).