Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
450 commits
Select commit Hold shift + click to select a range
63238c7
Update pulse_laser.wav
FrequentPilgrim Jul 9, 2025
ffbc38c
Update pulse_laser2.wav
FrequentPilgrim Jul 9, 2025
b800524
Update pulse_laser3.wav
FrequentPilgrim Jul 9, 2025
3acd066
Update pulse_laser_start.wav
FrequentPilgrim Jul 9, 2025
11c0e4b
Update blade_hit.wav
FrequentPilgrim Jul 9, 2025
af8beae
Update blade_soft.wav
FrequentPilgrim Jul 9, 2025
7edd928
Update blade_swing.wav
FrequentPilgrim Jul 9, 2025
5b29f8e
Update rapid_laser.wav
FrequentPilgrim Jul 9, 2025
fadd14f
Update small_laser_fire.wav
FrequentPilgrim Jul 9, 2025
fe23ef6
Update small_laser_fire2.wav
FrequentPilgrim Jul 9, 2025
993ed70
Update small_laser_fire3.wav
FrequentPilgrim Jul 9, 2025
910688b
Update small_laser_fire4.wav
FrequentPilgrim Jul 9, 2025
8640e70
Update banisher_fire.wav
FrequentPilgrim Jul 9, 2025
26b3b56
Update heavy_aa_hit.wav
FrequentPilgrim Jul 9, 2025
67773ea
Update heavymissile_launch.wav
FrequentPilgrim Jul 9, 2025
898cc1d
Update large_missile_fire2.wav
FrequentPilgrim Jul 9, 2025
1c7877c
Update liche_hit.wav
FrequentPilgrim Jul 9, 2025
9fb6bc0
Update med_aa_fire.wav
FrequentPilgrim Jul 9, 2025
c82b72d
Update med_rocket_fire.wav
FrequentPilgrim Jul 9, 2025
2860ca7
Update missile2_fire.wav
FrequentPilgrim Jul 9, 2025
34cecb7
Update missile2_fire_bass.wav
FrequentPilgrim Jul 9, 2025
d56d614
Update missile2_hit.wav
FrequentPilgrim Jul 9, 2025
1c195f5
Update missile_fire.wav
FrequentPilgrim Jul 9, 2025
3259d61
Update missile_fire10.wav
FrequentPilgrim Jul 9, 2025
d6db9ba
Update missile_fire12.wav
FrequentPilgrim Jul 9, 2025
6614a6d
Update missile_fire2.wav
FrequentPilgrim Jul 9, 2025
4a6f92b
Update missile_fire4.wav
FrequentPilgrim Jul 9, 2025
8ada524
Update missile_fire5.wav
FrequentPilgrim Jul 9, 2025
09ba4b9
Update missile_fire7.wav
FrequentPilgrim Jul 9, 2025
2ecf5a4
Update missile_fire8.wav
FrequentPilgrim Jul 9, 2025
e1b4af6
Update missile_fire9.wav
FrequentPilgrim Jul 9, 2025
32a73e3
Update missile_fire9_heavy.wav
FrequentPilgrim Jul 9, 2025
793acb1
Update missile_launch.wav
FrequentPilgrim Jul 9, 2025
158358b
Update missile_launch_high.wav
FrequentPilgrim Jul 9, 2025
469d16d
Update missile_launch_short.wav
FrequentPilgrim Jul 9, 2025
9b5abf0
Update rapid_rocket_fire2.wav
FrequentPilgrim Jul 9, 2025
1192a7e
Update rapid_rocket_hit.wav
FrequentPilgrim Jul 9, 2025
fbc222b
Update rocket_fire.wav
FrequentPilgrim Jul 9, 2025
4910f44
Update rocket_fire2.wav
FrequentPilgrim Jul 9, 2025
63ecfed
Update rocket_hit.wav
FrequentPilgrim Jul 9, 2025
b5d900c
Update sabot_fire.wav
FrequentPilgrim Jul 9, 2025
1a06860
Update sabot_hit.wav
FrequentPilgrim Jul 9, 2025
c87bc34
Update seismic_missile_hit.wav
FrequentPilgrim Jul 9, 2025
93f15b9
Update small_lightning_missile.wav
FrequentPilgrim Jul 9, 2025
6e03ebb
Update tacnuke_launch2.wav
FrequentPilgrim Jul 9, 2025
dffc1be
Update tacnuke_launch2_trimmed.wav
FrequentPilgrim Jul 9, 2025
5a13dad
Update vlaunch_emp_hit.wav
FrequentPilgrim Jul 9, 2025
eb203cc
Update vlaunch_hit.wav
FrequentPilgrim Jul 9, 2025
9801923
Unit reply fixes
FrequentPilgrim Jul 10, 2025
4cf5ea3
Chickens sounds
FrequentPilgrim Jul 10, 2025
0a7f283
misc sounds
FrequentPilgrim Jul 10, 2025
bddc732
Altenrate heatray fire adjusted
FrequentPilgrim Jul 10, 2025
d03eb07
tweaking volumes
FrequentPilgrim Jul 11, 2025
a6a8361
vlaunch_hit2
FrequentPilgrim Jul 11, 2025
e710284
Update fighter_select.wav
FrequentPilgrim Jul 11, 2025
4a4d0c6
Update rumble1.wav
FrequentPilgrim Jul 11, 2025
ee0fc03
balance for recluse and picket
FrequentPilgrim Jul 11, 2025
261ce6a
Halberd and Buoy Rework
FrequentPilgrim Jul 11, 2025
5e9a72c
Moderator gets it's own sound
FrequentPilgrim Jul 12, 2025
7885c1d
Update heavy_laser5.wav
FrequentPilgrim Jul 12, 2025
3680a90
Update hoverraid.lua
FrequentPilgrim Jul 12, 2025
768cf24
Update jumparty.lua
FrequentPilgrim Jul 12, 2025
e2d7691
Update spiderscout.lua
FrequentPilgrim Jul 12, 2025
2319ce8
Update ex_med5.wav
FrequentPilgrim Jul 12, 2025
b2d912d
Update mini_nuke.wav
FrequentPilgrim Jul 12, 2025
19289d8
Update cannon_hit2.wav
FrequentPilgrim Jul 12, 2025
3611035
Update heavy_laser6.wav
FrequentPilgrim Jul 12, 2025
0d9db3c
Update small_laser_fire2.wav
FrequentPilgrim Jul 12, 2025
f104dff
Create banisher_hit.wav
FrequentPilgrim Jul 12, 2025
56be5b2
Update sabot_fire.wav
FrequentPilgrim Jul 12, 2025
69d23f5
Update sabot_hit.wav
FrequentPilgrim Jul 12, 2025
53e4af8
Update spiderscout.lua
FrequentPilgrim Jul 12, 2025
b25674a
Update tankriot.lua
FrequentPilgrim Jul 12, 2025
0e26f06
small duration and volume changes
FrequentPilgrim Jul 14, 2025
bddefc0
tweaks for ships
FrequentPilgrim Jul 14, 2025
6dcbfad
blade_swing for scythe gets a rework
FrequentPilgrim Jul 15, 2025
1ebbfd7
volume balances
FrequentPilgrim Jul 15, 2025
69db4fd
Update fusion_select.wav
FrequentPilgrim Jul 21, 2025
794ddba
Update light_bot_select2.wav
FrequentPilgrim Jul 21, 2025
5f43d72
Update small_laser_fire2.wav
FrequentPilgrim Jul 21, 2025
ef384ef
Update sabot_fire.wav
FrequentPilgrim Jul 21, 2025
469f4e0
Update more_lightning_fast.wav
FrequentPilgrim Jul 21, 2025
980d978
Update heavy_laser6.wav
FrequentPilgrim Jul 21, 2025
e880071
Update more_lightning.wav
FrequentPilgrim Jul 22, 2025
be480a7
Update heavy_laser5.wav
FrequentPilgrim Jul 22, 2025
ae39bea
Update rapid_rocket_fire2.wav
FrequentPilgrim Jul 22, 2025
034bb30
Update energy_weapon1.wav
FrequentPilgrim Jul 22, 2025
7a2fa42
Update sonicgun_hit.wav
FrequentPilgrim Jul 22, 2025
249914e
Update heavy_laser3.wav
FrequentPilgrim Jul 22, 2025
60863d1
Update aoe_aura2.wav
FrequentPilgrim Jul 22, 2025
6efe5ac
Created cannon_hit6 for Ravager
FrequentPilgrim Jul 22, 2025
9254fe6
Update capture_ray.wav
FrequentPilgrim Jul 22, 2025
dd006c8
Update origin.txt
FrequentPilgrim Jul 22, 2025
4a8121f
Update badger_fire.wav
FrequentPilgrim Jul 22, 2025
50c2cca
Update small_lightning.wav
FrequentPilgrim Jul 22, 2025
e7a8303
Update ex_med11.wav
FrequentPilgrim Jul 22, 2025
35dbca2
Update heavylaser_fire2.wav
FrequentPilgrim Jul 22, 2025
67ff067
Created ex_med19.wav
FrequentPilgrim Jul 22, 2025
bf3854f
Update lightningbolt.wav
FrequentPilgrim Jul 22, 2025
446f10d
Update LightningBolt.wav
FrequentPilgrim Jul 22, 2025
a50ba76
Update pulse_laser2.wav
FrequentPilgrim Jul 22, 2025
3aea253
Update wolverine_hit.wav
FrequentPilgrim Jul 22, 2025
73bde1e
Created heatray_fire6.wav
FrequentPilgrim Jul 22, 2025
0fd9515
heatray_fire6 rework
FrequentPilgrim Jul 22, 2025
aff191e
Update missile_fire12.wav
FrequentPilgrim Jul 22, 2025
0fdd507
Paladin adjustment
FrequentPilgrim Jul 22, 2025
4f464b3
Update striderdetriment.lua
FrequentPilgrim Jul 22, 2025
65c7228
Update med_aa_fire.wav
FrequentPilgrim Jul 22, 2025
0097970
Raised volume of all missile silo launches
FrequentPilgrim Jul 22, 2025
be10a88
Update big_begrtha_gun_fire.wav
FrequentPilgrim Jul 22, 2025
d5fa5f2
Update sabot_hit.wav
FrequentPilgrim Jul 22, 2025
2b64552
Update tremor_fire.wav
FrequentPilgrim Jul 23, 2025
b1152ed
Nimbus rework
FrequentPilgrim Jul 23, 2025
2ad7adc
GaussTurret and Dagger adjustments
FrequentPilgrim Aug 12, 2025
639fe07
Update flak_fire.wav
FrequentPilgrim Aug 12, 2025
9e1a755
Update gauss_fire.wav
FrequentPilgrim Aug 12, 2025
e6ff8e2
Cloak_Snipe overhaul
FrequentPilgrim Aug 12, 2025
a2c5fc1
Update more_lightning.wav
FrequentPilgrim Aug 12, 2025
fbb4b75
Update badger_fire.wav
FrequentPilgrim Aug 12, 2025
7499f1f
Update ex_med11.wav
FrequentPilgrim Aug 12, 2025
4b281ed
Update sonicgun_hit.wav
FrequentPilgrim Aug 12, 2025
b3d1170
Update more_lightning.wav
FrequentPilgrim Aug 12, 2025
3d9800e
Widow sound
FrequentPilgrim Aug 12, 2025
cfeb076
Update jumpskirm.lua
FrequentPilgrim Aug 12, 2025
c911dc3
Update ex_large7.wav
FrequentPilgrim Aug 12, 2025
9cf6445
Update ex_large4.wav
FrequentPilgrim Aug 12, 2025
728b6eb
Update tacnuke_launch.wav
FrequentPilgrim Aug 12, 2025
db81f49
Paladin lightningbolt2
FrequentPilgrim Aug 12, 2025
69171e8
Placeholder
FrequentPilgrim Aug 12, 2025
ebc2c97
Update wolverine_hit.wav
FrequentPilgrim Aug 12, 2025
7a7c412
Zenith Impact
FrequentPilgrim Aug 12, 2025
2407beb
Update laser_burn8.wav
FrequentPilgrim Aug 12, 2025
c724c73
Update heavy_laser6.wav
FrequentPilgrim Aug 12, 2025
342b2a2
Update heavy_laser3.wav
FrequentPilgrim Aug 12, 2025
aac1dd7
Placeholder Improvement
FrequentPilgrim Aug 14, 2025
e15216c
Merge branch 'master' into soundBalance
GoogleFrog Aug 17, 2025
6f946d4
Update generic_cannon.wav
FrequentPilgrim Aug 17, 2025
4d32f89
Update emg_hit2.wav
FrequentPilgrim Aug 17, 2025
2ab697b
Update small_laser_hit1.wav
FrequentPilgrim Aug 17, 2025
ddd7ec7
Merge branch 'soundBalance' of https://github.com/FrequentPilgrim/Zer…
FrequentPilgrim Aug 17, 2025
0345b29
Update blade_swing2.wav
FrequentPilgrim Aug 18, 2025
08eaaa5
Update cloaksnipe.lua
FrequentPilgrim Aug 18, 2025
b246af8
Update vlaunch_hit2.wav
FrequentPilgrim Aug 18, 2025
48a8fbf
Update wolverine_hit.wav
FrequentPilgrim Aug 18, 2025
8a701e6
Update banisher_hit.wav
FrequentPilgrim Aug 18, 2025
521b03d
Update ex_large7.wav
FrequentPilgrim Aug 18, 2025
462c1e8
Update blackhole_impact.wav
FrequentPilgrim Aug 18, 2025
6f5e1f2
Update flak_fire.wav
FrequentPilgrim Aug 19, 2025
c029e8e
Update heavy_laser7.wav
FrequentPilgrim Aug 19, 2025
fcbddbc
Update cannon_hit5.wav
FrequentPilgrim Aug 19, 2025
824858c
buoy and halberd impact refinement
FrequentPilgrim Aug 19, 2025
52aa985
Update rapid_laser.wav
FrequentPilgrim Aug 19, 2025
9e3d3d5
Update snipe_hit.wav
FrequentPilgrim Aug 19, 2025
eec0ebf
New nimbus firing
FrequentPilgrim Aug 19, 2025
d5eb204
Nimbus rework
FrequentPilgrim Aug 19, 2025
c2e2207
Update small_laser_fire2.wav
FrequentPilgrim Aug 19, 2025
a612592
Update pulse_laser2.wav
FrequentPilgrim Aug 19, 2025
643fe27
Update small_laser_hit1.wav
FrequentPilgrim Aug 19, 2025
9cc99ed
Update heatray_fire6.wav
FrequentPilgrim Aug 19, 2025
80e366d
Update gauss_hit_small.wav
FrequentPilgrim Aug 19, 2025
45dabf4
Update gauss_fire_small.wav
FrequentPilgrim Aug 19, 2025
7b0a3ff
Update ex_med4.wav
FrequentPilgrim Aug 22, 2025
f017137
Update cannon_hit6.wav
FrequentPilgrim Aug 22, 2025
4a39fee
Update vlaunch_hit2.wav
FrequentPilgrim Aug 22, 2025
fef9f7d
Update blade_swing2.wav
FrequentPilgrim Aug 22, 2025
abb1d51
Update sabot_fire.wav
FrequentPilgrim Aug 22, 2025
0735149
Update generic_cannon.wav
FrequentPilgrim Aug 22, 2025
e55e7b3
Update generic_cannon.wav
FrequentPilgrim Aug 22, 2025
3c1f3d9
Update badger_fire.wav
FrequentPilgrim Aug 22, 2025
1ba90d7
ex_med5.wav Update
FrequentPilgrim Aug 22, 2025
b3ba99b
updated Cerberus
FrequentPilgrim Aug 23, 2025
6bf0673
New Shogun impact
FrequentPilgrim Aug 23, 2025
56a712d
Update ex_large4.wav
FrequentPilgrim Aug 23, 2025
725dc7e
Update emp_missile_hit.wav
FrequentPilgrim Aug 23, 2025
578d11f
Update raveparty.lua
FrequentPilgrim Aug 23, 2025
999f5f2
Update flak_fire.wav
FrequentPilgrim Aug 24, 2025
a54c71f
Update flak_fire.wav
FrequentPilgrim Aug 24, 2025
8d35077
Update shipskirm.lua
FrequentPilgrim Aug 24, 2025
52a4686
Update brawler_emg.wav
FrequentPilgrim Aug 24, 2025
b9facb3
Update ex_med4.wav
FrequentPilgrim Aug 24, 2025
09d5658
Update ex_med4.wav
FrequentPilgrim Aug 24, 2025
6901457
Update shipskirm.lua
FrequentPilgrim Aug 24, 2025
6170217
Create emg_hit3.wav
FrequentPilgrim Aug 24, 2025
293ed53
Update gunshipheavyskirm.lua
FrequentPilgrim Aug 24, 2025
dee18c8
Update rapid_laser.wav
FrequentPilgrim Aug 24, 2025
030d82d
Update gauss_hit_small.wav
FrequentPilgrim Aug 24, 2025
5fb3bc2
Update banisher_hit.wav
FrequentPilgrim Aug 24, 2025
87952da
Adjusted impacts for Buoy and Halberd
FrequentPilgrim Aug 24, 2025
916762e
Update cannon_hit5.wav
FrequentPilgrim Aug 24, 2025
c63311d
Update missile_fire12.wav
FrequentPilgrim Aug 24, 2025
fb6ade4
Update missile_fire10.wav
FrequentPilgrim Aug 24, 2025
d7b8f5a
Paladin audio rebalance
FrequentPilgrim Aug 24, 2025
383bcc0
Faraday Changes
FrequentPilgrim Aug 24, 2025
db1269c
Detriment gauss volume reduced
FrequentPilgrim Aug 24, 2025
a6a28d1
Update pulse_laser3.wav
FrequentPilgrim Aug 24, 2025
1793daa
Scorcher adjustments
FrequentPilgrim Aug 24, 2025
7ab074b
Update amphriot.lua
FrequentPilgrim Aug 24, 2025
8d3814b
Update reaper_hit.wav
FrequentPilgrim Aug 24, 2025
0471fb7
Update tankheavyassault.lua
FrequentPilgrim Aug 24, 2025
c4f9e6d
Update vlaunch_hit2.wav
FrequentPilgrim Aug 24, 2025
4726f09
Update generic_cannon.wav
FrequentPilgrim Aug 24, 2025
3a89633
Update ex_large18.wav
FrequentPilgrim Aug 24, 2025
5a5fd31
Update pillager_fire.wav
FrequentPilgrim Aug 24, 2025
e5553bd
Sparrow death sound rework
FrequentPilgrim Aug 24, 2025
077ee97
Ripper impact update
FrequentPilgrim Aug 25, 2025
77c7c40
Update vlaunch_hit2.wav
FrequentPilgrim Aug 25, 2025
f3f2a89
Update rhino.wav
FrequentPilgrim Aug 25, 2025
700add6
Envoy Impact
FrequentPilgrim Aug 25, 2025
4172e6a
Shogun and Cerberus impacts
FrequentPilgrim Aug 25, 2025
3b92d34
Update cannon_hit5.wav
FrequentPilgrim Aug 25, 2025
32a51ec
Update flak_hit.wav
FrequentPilgrim Aug 25, 2025
4e73c55
Update striderdetriment.lua
FrequentPilgrim Aug 25, 2025
d93585d
Starlight Laser
FrequentPilgrim Aug 25, 2025
1642687
Update heavy_laser7.wav
FrequentPilgrim Aug 25, 2025
e9be8a3
Teal Laser and Maxconcurrent test for teal laser + nimbus
FrequentPilgrim Aug 26, 2025
4350647
Dagger / gauss
FrequentPilgrim Aug 26, 2025
6692690
Update generic_cannon.wav
FrequentPilgrim Aug 26, 2025
bd5b641
Update vlaunch_hit2.wav
FrequentPilgrim Aug 26, 2025
297d51e
Update missile_fire.wav
FrequentPilgrim Aug 26, 2025
baa9af9
Gauss and Dagger volume balance
FrequentPilgrim Aug 26, 2025
84ee41f
Update flak_fire.wav
FrequentPilgrim Aug 26, 2025
01c1ad7
Update missile_fire12.wav
FrequentPilgrim Aug 26, 2025
ad69255
Update sounds.lua
FrequentPilgrim Aug 26, 2025
0d2d849
Update sounds.lua
FrequentPilgrim Aug 27, 2025
0f27858
Cerberus and Shogun impacts
FrequentPilgrim Aug 27, 2025
63be1ab
Update gunshipheavyskirm.lua
FrequentPilgrim Aug 27, 2025
7100a65
Update brawler_emg.wav
FrequentPilgrim Aug 27, 2025
95936c3
Update sounds.lua
FrequentPilgrim Aug 28, 2025
c201d7c
Sound balance (#5520)
FrequentPilgrim Sep 3, 2025
ef3817a
Added cancel image on top of cancel morph commands.
GoogleFrog Sep 3, 2025
a200dce
Don't transfer player units to AI when there is only one team with pl…
GoogleFrog Sep 3, 2025
f2b5652
Some balance.
GoogleFrog Sep 4, 2025
4905ef8
Fix unreliable burst ~ not showing.
GoogleFrog Sep 4, 2025
447fec6
Increased black hole air drag in an attempt to make units wiggle less.
GoogleFrog Sep 4, 2025
b0e79af
Balance reply sounds, mostly the very loud Amph ones.
GoogleFrog Sep 4, 2025
72c9ab1
Use the most recent heatray sound across the board.
GoogleFrog Sep 4, 2025
a24c273
Fix #5568
GoogleFrog Sep 4, 2025
1b80192
Really fix #5550.
GoogleFrog Sep 4, 2025
de65389
Push Raptor and other AA volumes a tad.
GoogleFrog Sep 4, 2025
4139689
Stop integral labels disappearing after selecting disabled commands.
GoogleFrog Sep 4, 2025
1013f24
EMP implementation of overstun. TODO disarm.
GoogleFrog Sep 4, 2025
f9dab7e
Inside faces for det canisters.
GoogleFrog Sep 4, 2025
73137d2
Fix gap.
GoogleFrog Sep 4, 2025
dfb0e2e
Deeper.
GoogleFrog Sep 4, 2025
d429d83
Knight buff as well as the EMP buff.
GoogleFrog Sep 4, 2025
aee7453
Fix bug.
GoogleFrog Sep 4, 2025
d9830e7
Update gunshipheavyskirm.lua
FrequentPilgrim Sep 5, 2025
18c8938
Merge branch 'master' into soundBalance
GoogleFrog Sep 5, 2025
1e785fe
Old Ripper hit boosted by 2.3dB.
GoogleFrog Sep 6, 2025
0e5cb95
Addressed the notes from the playtest
FrequentPilgrim Sep 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions LuaRules/Configs/area_damage_defs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ for id, data in pairs(WeaponDefs) do
damage = tonumber(cp.area_damage_dps)*damageUpdateRate/30,
radius = tonumber(cp.area_damage_radius),
plateauRadius = tonumber(cp.area_damage_plateau_radius),
plateauFall = tonumber(cp.area_damage_plateau_fall),
impulse = (cp.area_damage_is_impulse == "1"),
slow = (cp.area_damage_is_slow == "1"),
duration = tonumber(cp.area_damage_duration) * 30,
Expand Down
5 changes: 2 additions & 3 deletions LuaRules/Gadgets/awards.lua
Original file line number Diff line number Diff line change
Expand Up @@ -428,9 +428,8 @@ function gadget:UnitDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, weap
local costdamage = (damage / maxHP) * GetUnitCost(unitID, unitDefID)

if not spAreTeamsAllied(attackerTeam, unitTeam) then
if paralyzer then
AddAwardPoints( 'emp', attackerTeam, costdamage )
elseif attackerDefID then
if attackerDefID and not paralyzer then
-- Paralysis gadget adds emp award
if unitDefID == chickenflyerqueenDefID or unitDefID == chickenlandqueenDefID then
AddAwardPoints( 'heart', attackerTeam, damage )
end
Expand Down
5 changes: 5 additions & 0 deletions LuaRules/Gadgets/game_lagmonitor.lua
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ local spGiveOrderToUnitArray = Spring.GiveOrderToUnitArray
local spGetUnitCurrentCommand = Spring.GetUnitCurrentCommand

local useAfkDetection = (Spring.GetModOptions().enablelagmonitor == "on") or (Spring.GetModOptions().enablelagmonitor ~= "off" and not Spring.Utilities.Gametype.isCoop())
local allowPlayerInactivity = not Spring.Utilities.Gametype.isFullCommshare()
local MERGE_SHARE = tonumber(Spring.GetModOptions().mergeresourceshare or 0.5) or 0.5

include("LuaRules/Configs/constants.lua")
Expand Down Expand Up @@ -249,6 +250,10 @@ local function UpdateTeamActivity(teamID)
resourceShare = resourceShare + 1
end
end
elseif not allowPlayerInactivity then
if resourceShare == 0 then
resourceShare = 1
end
end

if resourceShare > 0 and teamResourceShare[teamID] == 0 then
Expand Down
20 changes: 14 additions & 6 deletions LuaRules/Gadgets/unit_boolean_disable.lua
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,15 @@ for wid = 1, #WeaponDefs do
damageMult = wcp.disarmdamagemult,
normalDamage = 1 - (wcp.disarmdamageonly or 0),
disarmTimer = wcp.disarmtimer*FRAMES_PER_SECOND,
overstunTime = wcp.overstun_time*FRAMES_PER_SECOND,
}
wantedWeaponList[#wantedWeaponList + 1] = wid
elseif wd.paralyzer or wd.customParams.extra_damage then
local paraTime = wd.paralyzer and wd.damages.paralyzeDamageTime or wd.customParams.extra_paratime
paraWeapons[wid] = paraTime * FRAMES_PER_SECOND
local paraTime = wd.paralyzer and wd.customParams.emp_paratime or wd.customParams.extra_paratime
paraWeapons[wid] = {
empTime = paraTime * FRAMES_PER_SECOND,
overstunTime = wcp.overstun_time*FRAMES_PER_SECOND,
}
wantedWeaponList[#wantedWeaponList + 1] = wid
end
if wd.customParams and wd.customParams.overstun_damage_mult then
Expand Down Expand Up @@ -128,7 +132,7 @@ local function moveUnitID(unitID, byFrame, byUnitID, frame, extraParamFrames)
Spring.SetUnitRulesParam(unitID, "disarmframe", frame + extraParamFrames, LOS_ACCESS)
end

local function addParalysisDamageToUnit(unitID, damage, pTime, overstunMult)
local function addParalysisDamageToUnit(unitID, damage, pTime, overstunTime, overstunMult)
local health, maxHealth, paralyzeDamage = Spring.GetUnitHealth(unitID)
if partialUnitID[unitID] then -- if the unit is partially paralysed
local extraTime = math.floor(damage/health*DECAY_FRAMES) -- time that the damage would add
Expand All @@ -152,6 +156,10 @@ local function addParalysisDamageToUnit(unitID, damage, pTime, overstunMult)
local newPara = paraUnitID[unitID].frameID
if (not pTime) or pTime > newPara - f then -- if the para time on the unit is less than this weapons para timer
newPara = newPara + extraTime
if overstunTime and overstunTime > 0 then
-- Overstun allows units to extend the stun near their stun threshold, usally by 1 second.
pTime = math.max(pTime, math.min(pTime, paraUnitID[unitID].frameID - f) + overstunTime)
end
if pTime and pTime < newPara - f then -- prevent going over para time
newPara = math.floor(pTime) + f
end
Expand Down Expand Up @@ -214,7 +222,7 @@ function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer,

if disarmWeapons[weaponDefID] then
local def = disarmWeapons[weaponDefID]
addParalysisDamageToUnit(unitID, damage*def.damageMult, def.disarmTimer, overstunDamageMult[weaponDefID])
addParalysisDamageToUnit(unitID, damage*def.damageMult, def.disarmTimer, def.overstunTime, overstunDamageMult[weaponDefID])

if GG.Awards and GG.Awards.AddAwardPoints then
local _, maxHP = Spring.GetUnitHealth(unitID)
Expand All @@ -226,9 +234,9 @@ function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer,
end

if paralyzer and (partialUnitID[unitID] or paraUnitID[unitID]) then
addParalysisDamageToUnit(unitID, damage, paraWeapons[weaponDefID], overstunDamageMult[weaponDefID])
local def = paraWeapons[weaponDefID]
addParalysisDamageToUnit(unitID, damage, def.empTime, def.overstunTime, overstunDamageMult[weaponDefID])
end

return damage
end

Expand Down
62 changes: 42 additions & 20 deletions LuaRules/Gadgets/unit_paralysis_damage.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,29 +22,35 @@ end
local spGetUnitHealth = Spring.GetUnitHealth
local spGetUnitArmored = Spring.GetUnitArmored
local spAddUnitDamage = Spring.AddUnitDamage
local GetUnitCost = Spring.Utilities.GetUnitCost

local DECAY_SECONDS = 40 -- how long it takes to decay 100% para to 0

local normalDamageMult = {}
local wantedWeaponList = {}
local paraTime = {}
local overstunDamageMult = {}
local overstunTime = {}
-- Note that having EMP damage decay N times faster when above 100% is mathematically
-- equivalent multiplying all incoming EMP damage above 100% by of 1/N.

for wdid = 1, #WeaponDefs do
local wd = WeaponDefs[wdid]
if wd.paralyzer then
wantedWeaponList[#wantedWeaponList + 1] = wdid
paraTime[wdid] = math.max(1, wd.customParams.emp_paratime)
else
local rawDamage = tonumber(wd.customParams.raw_damage or 0)
if wd.customParams and wd.customParams.extra_damage and rawDamage > 0 then
normalDamageMult[wdid] = wd.customParams.extra_damage/rawDamage

-- engine rounds down, but paratime 0 means real damage
paraTime[wdid] = math.max(1, wd.customParams.extra_paratime)

wantedWeaponList[#wantedWeaponList + 1] = wdid
end
end
if wd.customParams and wd.customParams.overstun_time then
overstunTime[wdid] = tonumber(wd.customParams.overstun_time)
end
if wd.customParams and wd.customParams.overstun_damage_mult then
overstunDamageMult[wdid] = tonumber(wd.customParams.overstun_damage_mult)
end
Expand All @@ -58,27 +64,45 @@ function gadget:UnitDamaged_GetWantedWeaponDef()
return wantedWeaponList
end

function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, damage, paralyzer,
local function GetStunDamage(weaponDefID, damage, health, maxHealth, paralyzeDamage)
if not (weaponDefID and overstunDamageMult[weaponDefID]) then
return damage*maxHealth/health
end

local rawDamage = damage*maxHealth/health
if maxHealth <= paralyzeDamage then
--Spring.Echo("Above", rawDamage*overstunDamageMult[weaponDefID])
return rawDamage*overstunDamageMult[weaponDefID]
end
local damageGap = (maxHealth - paralyzeDamage)
if rawDamage <= damageGap then
--Spring.Echo("damageGap", maxHealth, paralyzeDamage, damageGap, rawDamage)
return rawDamage
end
--Spring.Echo("Partial", maxHealth, paralyzeDamage, damageGap, rawDamage, damageGap + (rawDamage - damageGap)*overstunDamageMult[weaponDefID])
return damageGap + (rawDamage - damageGap)*overstunDamageMult[weaponDefID]
end

function gadget:UnitPreDamaged(unitID, unitDefID, unitTeam, rawDamage, paralyzer,
weaponDefID, attackerID, attackerDefID, attackerTeam)
if paralyzer then -- the weapon deals paralysis damage
local health, maxHealth, paralyzeDamage = spGetUnitHealth(unitID)
if health and maxHealth and health > 0 then -- taking no chances.
if not (weaponDefID and overstunDamageMult[weaponDefID]) then
return damage*maxHealth/health
if GG.Awards and GG.Awards.AddAwardPoints then
local cost_emped = (rawDamage / maxHealth) * GetUnitCost(unitID)
GG.Awards.AddAwardPoints('emp', attackerTeam, cost_emped)
end

local rawDamage = damage*maxHealth/health
if maxHealth <= paralyzeDamage then
--Spring.Echo("Above", rawDamage*overstunDamageMult[weaponDefID])
return rawDamage*overstunDamageMult[weaponDefID]
local damage = GetStunDamage(weaponDefID, rawDamage, health, maxHealth, paralyzeDamage)
if overstunTime[weaponDefID] > 0 then
-- Overstun allows units to extend the stun near their stun threshold, usally by 1 second.
local currentStunTime = (paralyzeDamage/maxHealth - 1) * DECAY_SECONDS
local maxTime = math.max(paraTime[weaponDefID], math.min(paraTime[weaponDefID], currentStunTime) + overstunTime[weaponDefID])
-- Solve the following for damage to limit damage by stun time:
-- stun time = ((damage + paralyzeDamage)/maxHealth - 1) * DECAY_SECONDS
damage = math.min(damage, (maxTime/DECAY_SECONDS + 1)*maxHealth - paralyzeDamage)
end
local damageGap = (maxHealth - paralyzeDamage)
if rawDamage <= damageGap then
--Spring.Echo("damageGap", maxHealth, paralyzeDamage, damageGap, rawDamage)
return rawDamage
end
--Spring.Echo("Partial", maxHealth, paralyzeDamage, damageGap, rawDamage, damageGap + (rawDamage - damageGap)*overstunDamageMult[weaponDefID])
return damageGap + (rawDamage - damageGap)*overstunDamageMult[weaponDefID]
--Spring.Echo("damage", damage, ((damage + paralyzeDamage)/maxHealth - 1) * DECAY_SECONDS, paralyzeDamage, WeaponDefs[weaponDefID].damages.paralyzeDamageTime, math.random())
return damage
end
end

Expand All @@ -88,13 +112,11 @@ end
function gadget:UnitDamaged(unitID, unitDefID, unitTeam, damage, paralyzer, weaponDefID, attackerID)
local mult = normalDamageMult[weaponDefID]
if mult and not paralyzer then

-- Don't apply armour twice.
local armored, armorMult = spGetUnitArmored(unitID)
if armored then
mult = mult/armorMult
end

spAddUnitDamage(unitID, mult*damage, paraTime[weaponDefID], attackerID, weaponDefID)
spAddUnitDamage(unitID, mult*damage, paraTime[weaponDefID] + overstunTime[weaponDefID], attackerID, weaponDefID)
end
end
6 changes: 4 additions & 2 deletions LuaRules/Gadgets/unit_terraform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ local spCreateUnit = Spring.CreateUnit
local spDestroyUnit = Spring.DestroyUnit
local spGetAllyTeamList = Spring.GetAllyTeamList
local spSetUnitLosMask = Spring.SetUnitLosMask
local spSetUnitLosState = Spring.SetUnitLosState
local spGetTeamInfo = Spring.GetTeamInfo
local spGetUnitHealth = Spring.GetUnitHealth
local spSetUnitHealth = Spring.SetUnitHealth
Expand Down Expand Up @@ -571,7 +572,8 @@ local function SetInivisbleToEnemy(unitID, team)
for i=1, #allyTeamList do
local allyID = allyTeamList[i]
if allyID ~= unitAllyTeam then
spSetUnitLosMask(unitID, allyID, {los=true, radar=true, prevLos=true, contRadar=true } )
spSetUnitLosState(unitID, allyID, 0)
spSetUnitLosMask(unitID, allyID, 15)
end
end
end
Expand Down Expand Up @@ -3624,7 +3626,7 @@ end
--------------------------------------------------------------------------------

function gadget:UnitGiven(unitID, unitDefID, teamID, oldTeamID)
if unitID and unitDefID and teamID and terraformUnitDefIDs[unitDefID] then
if unitID and unitDefID and teamID and terraunitDefID == unitDefID then
SetInivisbleToEnemy(unitID, teamID)
end
end
Expand Down
6 changes: 5 additions & 1 deletion LuaRules/Gadgets/weapon_area_damage.lua
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ local function RegisterLuaDamageArea(weaponID, px, py, pz, ownerID, teamID)
explosionList[explosionCount] = {
radius = weaponInfo[weaponID].radius,
plateauRadius = weaponInfo[weaponID].plateauRadius,
plateauFall = weaponInfo[weaponID].plateauFall,
damage = weaponDamage,
teamID = teamID,
impulse = weaponInfo[weaponID].impulse,
Expand Down Expand Up @@ -132,10 +133,13 @@ local function HandleDamageArea(data, f)
if data.rangeFall ~= 0 and distance > data.plateauRadius then
damage = damage - damage*data.rangeFall*(distance - data.plateauRadius)/(data.radius - data.plateauRadius)
end
if data.plateauFall and data.plateauFall ~= 0 and distance < data.plateauRadius then
damage = damage - damage*data.plateauFall*(data.plateauRadius - distance)/data.plateauRadius
end
if data.impulse then
GG.AddGadgetImpulse(u, pos.x - ux, pos.y - uy, pos.z - uz, damage, false, true, false, {0.22,0.7,1})
GG.SetUnitFallDamageImmunity(u, f + 10)
GG.DoAirDrag(u, damage)
GG.DoAirDrag(u, damage*2)
elseif data.slow then
GG.addSlowDamage(u, damage, false, data.teamID)
else
Expand Down
3 changes: 2 additions & 1 deletion LuaRules/Gadgets/weapon_noexplode_speed_damage.lua
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ for i = 1,#WeaponDefs do
initialCeg = wcp.thermite_ceg_initial,
damageCeg = wcp.thermite_ceg_damage,
sound = wcp.thermite_sound,
volume = tonumber(wcp.thermite_sound_volume) or 1,
hitSound = wcp.thermite_sound_hit,
}
if wcp.thermite_dps_start and wcp.thermite_dps_end then
Expand Down Expand Up @@ -277,7 +278,7 @@ local function UpdateProjectile(proID, proData, index, frame)
proData.resetNextFrame = false
if def.sound then
if (not proData.nextSoundFrame) or proData.nextSoundFrame < frame then
Spring.PlaySoundFile(def.sound, 3.5*(math.random()*0.5 + 0.5) + 0.3*proData.damageMod + (proData.hasDamaged and 4 or 0), px, py, pz, 'sfx')
Spring.PlaySoundFile(def.sound, def.volume * (3.5*(math.random()*0.5 + 0.5) + 0.3*proData.damageMod + (proData.hasDamaged and 4 or 0)), px, py, pz, 'sfx')
proData.nextSoundFrame = frame + 28 + math.random()*5 - 0.2*proData.damageMod
end
end
Expand Down
31 changes: 18 additions & 13 deletions LuaRules/Utilities/gametype.lua
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
local teamCount
local is1v1, isTeams, isBigTeams, isSmallTeams, isChickens, isCoop, isFFA, isTeamFFA, isSandbox, isPlanetWars, isSoloTeams = false, false, false, false, false, false, false, false, false, false, false
local is1v1, isTeams, isBigTeams, isSmallTeams, isChickens, isCoop = false, false, false, false, false, false
local isFFA, isTeamFFA, isSandbox, isPlanetWars, isSoloTeams, isFullCommshare = false, false, false, false, false, false
do
local gaiaAllyTeamID = select(6, Spring.GetTeamInfo(Spring.GetGaiaTeamID(), false))
local allyTeamList = Spring.GetAllyTeamList()
local actualAllyTeamList = {}
local teamsWithHumans = {}
local allyTeamsWithHumans = {}

isSoloTeams = true
Expand All @@ -15,6 +17,7 @@ do
for j = 1, #teamList do
if not select (4, Spring.GetTeamInfo(teamList[j], false)) then
humanExists = true
teamsWithHumans[#teamsWithHumans + 1] = teamList[j]
end
local luaAI = Spring.GetTeamLuaAI(teamList[j])
if luaAI and luaAI:find("Chicken") then
Expand Down Expand Up @@ -65,6 +68,7 @@ do
if #allyTeamsWithHumans == 1 then
isCoop = true
end
isFullCommshare = (#teamsWithHumans == 1)

if Spring.GetModOptions().planet then
isPlanetWars = true
Expand All @@ -76,16 +80,17 @@ function Spring.Utilities.GetTeamCount()
end

Spring.Utilities.Gametype = {
is1v1 = function () return is1v1 end,
isTeams = function () return isTeams end,
isBigTeams = function () return isBigTeams end,
isSmallTeams = function () return isSmallTeams end,
isChickens = function () return isChickens end,
isCoop = function () return isCoop end,
isTeamFFA = function () return isTeamFFA end,
isFFA = function () return isFFA end,
isSandbox = function () return isSandbox end,
isPlanetWars = function () return isPlanetWars end,
isSoloTeams = function () return isSoloTeams end,
IsSinglePlayer = function () return isSoloTeams or isSandbox end,
is1v1 = function () return is1v1 end,
isTeams = function () return isTeams end,
isBigTeams = function () return isBigTeams end,
isSmallTeams = function () return isSmallTeams end,
isChickens = function () return isChickens end,
isCoop = function () return isCoop end,
isTeamFFA = function () return isTeamFFA end,
isFFA = function () return isFFA end,
isSandbox = function () return isSandbox end,
isPlanetWars = function () return isPlanetWars end,
isSoloTeams = function () return isSoloTeams end,
isFullCommshare = function () return isFullCommshare end,
IsSinglePlayer = function () return isSoloTeams or isSandbox end,
}
8 changes: 2 additions & 6 deletions LuaUI/Configs/burst_damages.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@
local NORMAL = 1
local AA = 2
local EMP_OR_DISARM = 3

local burstDefs = {}
Shared = burstDefs -- unitdefs_pre expects it as a global
VFS.Include("gamedata/unitdefs_pre.lua", nil, VFS.GAME)
Shared = nil
local SHARED = VFS.Include("gamedata/unitdefs_pre.lua", nil, VFS.GAME)

local function processWeapon(weaponDef, targetCats)
local cp = weaponDef.customParams
Expand All @@ -22,7 +18,7 @@ local function processWeapon(weaponDef, targetCats)
local rawDamage = cp.stats_damage * projectiles
local burstDef = {
damage = tonumber(cp.stats_burst_damage) or math.floor(rawDamage + 0.5), -- units often do extra .1 damage which would result in ugliness for 10+ units
unreliable = (cp.burst == burstDefs.BURST_UNRELIABLE),
unreliable = (cp.burst == SHARED.BURST_UNRELIABLE),
class = (weaponDef.paralyzer or cp.disarmdamagemult) and EMP_OR_DISARM or NORMAL,
}

Expand Down
15 changes: 13 additions & 2 deletions LuaUI/Configs/integral_menu_config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,13 @@ local commandDisplayConfig = {
[CMD_GBCANCEL] = { texture = imageDir .. 'Bold/stopbuild.png'},

[CMD_RECALL_DRONES] = {texture = imageDir .. 'Bold/recall_drones.png'},


[CMD_MORPH_STOP] = {
DynamicDisplayFunc = function (cmdID, command)
return {texture = imageDir .. 'Bold/cancel.png', tex2 = command.texture}
end
},

-- states
[CMD_WANT_ONOFF] = {
texture = {imageDir .. 'states/off.png', imageDir .. 'states/on.png'},
Expand Down Expand Up @@ -643,7 +649,12 @@ end
local modCommands = VFS.Include("LuaRules/Configs/modCommandsDefs.lua")
for i = 1, #modCommands do
local cmd = modCommands[i]
commandDisplayConfig[cmd.cmdID] = {tooltip = cmd.tooltip, texture = cmd.image, stateTooltip = cmd.stateTooltip}
commandDisplayConfig[cmd.cmdID] = {
tooltip = cmd.tooltip,
texture = cmd.image,
stateTooltip = cmd.stateTooltip,
DynamicDisplayFunc = cmd.DynamicDisplayFunc,
}
end

--------------------------------------------------------------------------------
Expand Down
Loading