Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion scripts/dynassault.lua
Original file line number Diff line number Diff line change
Expand Up @@ -230,10 +230,17 @@ local function RestoreDGun()
Turn(lnanohand, x_axis, 0, ARM_SPEED_PITCH)
end

local dgunAim = false
local function PrioritiseDgun()
dgunAim = true
Sleep(500)
dgunAim = false
end

function script.AimWeapon(num, heading, pitch)
local weaponNum = dyncomm.GetWeapon(num)

if weaponNum == 1 then
if weaponNum == 1 and not dgunAim then
Signal(SIG_LASER)
SetSignalMask(SIG_LASER)
isLasering = true
Expand All @@ -250,6 +257,9 @@ function script.AimWeapon(num, heading, pitch)
StartThread(RestoreLaser)
return true
elseif weaponNum == 2 then
if dyncomm.IsManualFire(num) and not dgunAim then
StartThread(PrioritiseDgun)
end
if starBLaunchers[num] then
pitch = ARM_PERPENDICULAR
end
Expand Down Expand Up @@ -282,6 +292,7 @@ function script.FireWeapon(num)
dyncomm.EmitWeaponFireSfx(rcannon_flare, num)
elseif weaponNum == 2 then
dyncomm.EmitWeaponFireSfx(lcannon_flare, num)
dgunAim = false
end
end

Expand Down
15 changes: 14 additions & 1 deletion scripts/dynrecon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ local canDgun = UnitDefs[unitDefID].canDgun
local dead = false
local bMoving = false
local bAiming = false
local dgunAim = false
local shieldOn = true
local inJumpMode = false

Expand Down Expand Up @@ -402,17 +403,26 @@ local function AimRifle(heading, pitch, isDgun)
return true
end

local function PrioritiseDgun()
dgunAim = true
Sleep(500)
dgunAim = false
end

function script.AimWeapon(num, heading, pitch)
local weaponNum = dyncomm.GetWeapon(num)

if weaponNum == 3 then -- shield
return true
end

if weaponNum == 1 then
if weaponNum == 1 and not dgunAim then
Signal(SIG_AIM)
SetSignalMask(SIG_AIM)
elseif weaponNum == 2 then
if dyncomm.IsManualFire(num) and not dgunAim then
StartThread(PrioritiseDgun)
end
Signal(SIG_AIM_2)
SetSignalMask(SIG_AIM_2)
else
Expand Down Expand Up @@ -447,6 +457,9 @@ end

function script.Shot(num)
dyncomm.EmitWeaponShotSfx(flare, num)
if num == 2 then
dgunAim = false
end
end

local function JumpExhaust()
Expand Down
13 changes: 11 additions & 2 deletions scripts/dynstrike.lua
Original file line number Diff line number Diff line change
Expand Up @@ -533,10 +533,17 @@ local function AimArm(heading, pitch, arm, hand, wait)
end
end

local dgunAim = false
local function PrioritiseDgun()
dgunAim = true
Sleep(500)
dgunAim = false
end

function script.AimWeapon(num, heading, pitch)
local weaponNum = dyncomm.GetWeapon(num)
walking = false
if weaponNum == 1 then
if weaponNum == 1 and not dgunAim then
resetRestoreTorso = true
resetRestoreLeft = true
AimArm(heading, pitch, ArmLeft, Gun, true)
Expand All @@ -546,7 +553,8 @@ function script.AimWeapon(num, heading, pitch)
SetSignalMask(SIG_RIGHT)
Signal(SIG_RESTORE_RIGHT)
resetRestoreTorso = true
if dyncomm.IsManualFire(num) then
if dyncomm.IsManualFire(num) and not dgunAim then
StartThread(PrioritiseDgun)
RESTORE_DELAY_RIGHT = RESTORE_DELAY_DGUN
else
RESTORE_DELAY_RIGHT = RESTORE_DELAY_NANO
Expand All @@ -566,6 +574,7 @@ function script.FireWeapon(num)
dyncomm.EmitWeaponFireSfx(Muzzle, num)
elseif weaponNum == 2 then
dyncomm.EmitWeaponFireSfx(RightMuzzle, num)
dgunAim = false
end
end

Expand Down
15 changes: 15 additions & 0 deletions scripts/dynsupport.lua
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ local canDgun = UnitDefs[unitDefID].canDgun
local dead = false
local bMoving = false
local bAiming = false
local dgunAim = false
local inBuildAnim = false

local SPEED_MULT = 1.12
Expand Down Expand Up @@ -383,28 +384,42 @@ local function AimRifle(heading, pitch, isDgun)
return true
end

local function PrioritiseDgun()
dgunAim = true
Sleep(500)
dgunAim = false
end

function script.AimWeapon(num, heading, pitch)
local weaponNum = dyncomm.GetWeapon(num)
inBuildAnim = false
if weaponNum == 1 then
if dgunAim then return false end
Signal(SIG_AIM)
SetSignalMask(SIG_AIM)
bAiming = true
return AimRifle(heading, pitch)
elseif weaponNum == 2 then
if dyncomm.IsManualFire(num) and not dgunAim then
StartThread(PrioritiseDgun)
end
Signal(SIG_AIM)
Signal(SIG_AIM_2)
SetSignalMask(SIG_AIM_2)
bAiming = true
return AimRifle(heading, pitch, canDgun)
elseif weaponNum == 3 then
if dgunAim then return false end
return true
end
return false
end

function script.FireWeapon(num)
dyncomm.EmitWeaponFireSfx(flare, num)
if weaponNum == 2 then
dgunAim = false
end
end

function script.Shot(num)
Expand Down