-------------------------------------------------------------------------------------------------------------------------------- -- Generic Count Functions -------------------------------------------------------------------------------------------------------------------------------- function GetCount(countKey) local currentCount = tonumber(ScenEdit_GetKeyValue(countKey)) if currentCount == nil then currentCount = 0 ScenEdit_SetKeyValue(countKey,tostring(currentCount)) end return currentCount end function SetCount(countKey,countValue) ScenEdit_SetKeyValue(countKey,tostring(countValue)) end function IncrementCount(countKey) local currentCount = tonumber(ScenEdit_GetKeyValue(countKey)) if currentCount == nil then currentCount = 1 else currentCount= currentCount + 1 end ScenEdit_SetKeyValue(countKey,tostring(currentCount)) return currentCount end -------------------------------------------------------------------------------------------------------------------------------- -- Mission Helper Functions -------------------------------------------------------------------------------------------------------------------------------- function SetMissionStartTime(sideName,missionName,hourOffset,minutesFromNow) local currentTime = ScenEdit_CurrentTime() local currentMission = ScenEdit_GetMission(sideName,missionName) currentTime = currentTime + hourOffset * 60 * 60 + minutesFromNow * 60 currentMission.isactive = false currentMission.starttime = os.date("%m/%d/%Y %I:%M %p", currentTime) end function ActivateMission(sideName,missionName) local currentTime = ScenEdit_CurrentTime() local currentMission = ScenEdit_GetMission(sideName,missionName) currentMission.isactive = true end function DeactivateMission(sideName,missionName) local currentTime = ScenEdit_CurrentTime() local currentMission = ScenEdit_GetMission(sideName,missionName) currentMission.isactive = false end -------------------------------------------------------------------------------------------------------------------------------- -- Group Helper Functions -------------------------------------------------------------------------------------------------------------------------------- function SetGroupSide(currentSide,groupName,newSide) -- Getting Values local airportUnit= ScenEdit_GetUnit({side=currentSide, unitname=groupName}) -- Check if airportUnit then local groupUnit = airportUnit.group -- Loop Through Contacts And Switch Side for k, v in pairs(groupUnit.unitlist) do ScenEdit_SetUnitSide({side=currentSide, name=v, newside=newSide}) end end end function RemoveGroupAndGetUnits(currentSide,groupName) -- Getting Values local currentUnit = ScenEdit_GetUnit({side=currentSide, unitname=groupName}) local unitList = currentUnit.group.unitlist currentUnit.course = {} ScenEdit_DeleteUnit({side=currentSide, unitname=groupName}) -- Return return unitList end function SetGroupPosition(currentSide,groupName,latitude,longitude) -- Getting Values local currentUnit = ScenEdit_GetUnit({side=currentSide, unitname=groupName}) -- Check if currentUnit then local groupUnit = currentUnit.group -- Loop Through Contacts And Switch Side for k, v in pairs(groupUnit.unitlist) do ScenEdit_SetUnit({side=currentSide, name=v, lat = latitude, lon = longitude}) end end end function GetTableCount(table) local count = 0 for k,v in pairs(table) do count = count + 1 end return count end -------------------------------------------------------------------------------------------------------------------------------- -- Posture Helper Functions -------------------------------------------------------------------------------------------------------------------------------- function ChangePostureBetweenTwoSides(sideOne,sideTwo,postureOne,postureTwo) ScenEdit_SetSidePosture(sideOne, sideTwo, postureOne) ScenEdit_SetSidePosture(sideTwo, sideOne, postureTwo) end -------------------------------------------------------------------------------------------------------------------------------- -- Score Helper Functions -------------------------------------------------------------------------------------------------------------------------------- function AddScoreToSide(side,score,reason) local currentScore = ScenEdit_GetScore(side) currentScore = currentScore + score ScenEdit_SetScore(side,currentScore,reason) end function RewardPointsOnceAndMessage(rewardKey,rewardPoints,rewardReason,side,message) -- Get Reward Count local rewardCount = IncrementCount(rewardKey) local currentScore = ScenEdit_GetScore(side) -- Reward Count if rewardCount == 1 then currentScore = currentScore + rewardPoints ScenEdit_SetScore (side, currentScore, rewardReason) ScenEdit_SpecialMessage(side,message) end end