Feature/mission refactor (#26)

* Refactored Mission classes to add Missions other than trigger zone missions. (eg. Runway Strikes, Resupply etc.)
* Runway strike initial POC
Co-authored-by: dutchie032 <dutchie032>
This commit is contained in:
2025-05-07 13:18:45 +02:00
committed by GitHub
parent 31f99686f6
commit a2f62d797b
30 changed files with 1580 additions and 547 deletions
+38 -1
View File
@@ -73,7 +73,35 @@ do
end
end
---@class OnWeaponFiredListener
---@field OnWeaponFired fun(self:OnWeaponFiredListener, unit:Unit?, weapon:Weapon?, target:Object?)
---@type Array<OnWeaponFiredListener>
local onWeaponFiredListeners = {}
---comment
---@param weaponFiredListener OnWeaponFiredListener
SpearheadEvents.AddWeaponFiredListener = function(weaponFiredListener)
if type(weaponFiredListener) ~= "table" then
warn("Event handler not of type table/object")
return
end
table.insert(onWeaponFiredListeners, weaponFiredListener)
end
local triggerWeaponFired = function(unit, weapon, target)
for _, callable in pairs(onWeaponFiredListeners) do
local succ, err = pcall(function()
callable:OnWeaponFired(unit, weapon, target)
end)
if err then
logError(err)
end
end
end
local onLandEventListeners = {}
---Add an event listener to a specific unit
@@ -311,6 +339,15 @@ do
end
if event.id == world.event.S_EVENT_SHOT then
local shooter = event.initiator
local weapon = event.weapon
local target = event.target
triggerWeaponFired(shooter, weapon, target)
end
if event.id == world.event.S_EVENT_MISSION_END then
Spearhead.classes.persistence.Persistence.UpdateNow()
end