mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
SCORING
This commit is contained in:
parent
a472c4b3f8
commit
d9cfaaaa0d
@ -78,7 +78,8 @@
|
|||||||
-- ### Authors: **FlightControl**
|
-- ### Authors: **FlightControl**
|
||||||
--
|
--
|
||||||
-- ### Contributions:
|
-- ### Contributions:
|
||||||
--
|
--
|
||||||
|
-- * **Applevangelist**: Additional functionality, fixes.
|
||||||
-- * **Wingthor (TAW)**: Testing & Advice.
|
-- * **Wingthor (TAW)**: Testing & Advice.
|
||||||
-- * **Dutch-Baron (TAW)**: Testing & Advice.
|
-- * **Dutch-Baron (TAW)**: Testing & Advice.
|
||||||
-- * **Whisper**: Testing and Advice.
|
-- * **Whisper**: Testing and Advice.
|
||||||
@ -116,11 +117,13 @@
|
|||||||
-- Special targets can be set that will give extra scores to the players when these are destroyed.
|
-- Special targets can be set that will give extra scores to the players when these are destroyed.
|
||||||
-- Use the methods @{#SCORING.AddUnitScore}() and @{#SCORING.RemoveUnitScore}() to specify a special additional score for a specific @{Wrapper.Unit}s.
|
-- Use the methods @{#SCORING.AddUnitScore}() and @{#SCORING.RemoveUnitScore}() to specify a special additional score for a specific @{Wrapper.Unit}s.
|
||||||
-- Use the methods @{#SCORING.AddStaticScore}() and @{#SCORING.RemoveStaticScore}() to specify a special additional score for a specific @{Wrapper.Static}s.
|
-- Use the methods @{#SCORING.AddStaticScore}() and @{#SCORING.RemoveStaticScore}() to specify a special additional score for a specific @{Wrapper.Static}s.
|
||||||
-- Use the method @{#SCORING.SetGroupGroup}() to specify a special additional score for a specific @{Wrapper.Group}s.
|
-- Use the method @{#SCORING.AddScoreSetGroup}() to specify a special additional score for a specific @{Wrapper.Group}s gathered in a @{Core.Set#SET_GROUP}.
|
||||||
--
|
--
|
||||||
-- local Scoring = SCORING:New( "Scoring File" )
|
-- local Scoring = SCORING:New( "Scoring File" )
|
||||||
-- Scoring:AddUnitScore( UNIT:FindByName( "Unit #001" ), 200 )
|
-- Scoring:AddUnitScore( UNIT:FindByName( "Unit #001" ), 200 )
|
||||||
-- Scoring:AddStaticScore( STATIC:FindByName( "Static #1" ), 100 )
|
-- Scoring:AddStaticScore( STATIC:FindByName( "Static #1" ), 100 )
|
||||||
|
-- local GroupSet = SET_GROUP:New():FilterPrefixes("RAT"):FilterStart()
|
||||||
|
-- Scoring:AddScoreSetGroup( GroupSet, 100)
|
||||||
--
|
--
|
||||||
-- The above grants an additional score of 200 points for Unit #001 and an additional 100 points of Static #1 if these are destroyed.
|
-- The above grants an additional score of 200 points for Unit #001 and an additional 100 points of Static #1 if these are destroyed.
|
||||||
-- Note that later in the mission, one can remove these scores set, for example, when the a goal achievement time limit is over.
|
-- Note that later in the mission, one can remove these scores set, for example, when the a goal achievement time limit is over.
|
||||||
@ -226,7 +229,7 @@ SCORING = {
|
|||||||
ClassID = 0,
|
ClassID = 0,
|
||||||
Players = {},
|
Players = {},
|
||||||
AutoSave = true,
|
AutoSave = true,
|
||||||
version = "1.17.1"
|
version = "1.18.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
local _SCORINGCoalition = {
|
local _SCORINGCoalition = {
|
||||||
@ -428,6 +431,31 @@ function SCORING:AddScoreGroup( ScoreGroup, Score )
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Specify a special additional score for a @{Core.Set#SET_GROUP}.
|
||||||
|
-- @param #SCORING self
|
||||||
|
-- @param Core.Set#SET_GROUP Set The @{Core.Set#SET_GROUP} for which each @{Wrapper.Unit} in each Group a Score is given.
|
||||||
|
-- @param #number Score The Score value.
|
||||||
|
-- @return #SCORING
|
||||||
|
function SCORING:AddScoreSetGroup(Set, Score)
|
||||||
|
local set = Set:GetSetObjects()
|
||||||
|
|
||||||
|
for _,_group in pairs (set) do
|
||||||
|
if _group and _group:IsAlive() then
|
||||||
|
self:AddScoreGroup(_group,Score)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function AddScore(group)
|
||||||
|
self:AddScoreGroup(group,Score)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Set:OnAfterAdded(From,Event,To,ObjectName,Object)
|
||||||
|
AddScore(Object)
|
||||||
|
end
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Add a @{Core.Zone} to define additional scoring when any object is destroyed in that zone.
|
--- Add a @{Core.Zone} to define additional scoring when any object is destroyed in that zone.
|
||||||
-- Note that if a @{Core.Zone} with the same name is already within the scoring added, the @{Core.Zone} (type) and Score will be replaced!
|
-- Note that if a @{Core.Zone} with the same name is already within the scoring added, the @{Core.Zone} (type) and Score will be replaced!
|
||||||
-- This allows for a dynamic destruction zone evolution within your mission.
|
-- This allows for a dynamic destruction zone evolution within your mission.
|
||||||
@ -1935,9 +1963,9 @@ end
|
|||||||
|
|
||||||
--- Handles the event when one player kill another player
|
--- Handles the event when one player kill another player
|
||||||
-- @param #SCORING self
|
-- @param #SCORING self
|
||||||
-- @param #PLAYER Player the ataching player
|
-- @param #Wrapper.Client#CLIENT Player the atacking player
|
||||||
-- @param #string TargetPlayerName the name of the killed player
|
-- @param #string TargetPlayerName the name of the killed player
|
||||||
-- @param #bool IsTeamKill true if this kill was a team kill
|
-- @param #boolean IsTeamKill true if this kill was a team kill
|
||||||
-- @param #number TargetThreatLevel Thread level of the target
|
-- @param #number TargetThreatLevel Thread level of the target
|
||||||
-- @param #number PlayerThreatLevelThread level of the player
|
-- @param #number PlayerThreatLevelThread level of the player
|
||||||
-- @param #number Score The score based on both threat levels
|
-- @param #number Score The score based on both threat levels
|
||||||
@ -1946,9 +1974,9 @@ function SCORING:OnKillPvP(Player, TargetPlayerName, IsTeamKill, TargetThreatLev
|
|||||||
end
|
end
|
||||||
--- Handles the event when one player kill another player
|
--- Handles the event when one player kill another player
|
||||||
-- @param #SCORING self
|
-- @param #SCORING self
|
||||||
-- @param #PLAYER Player the ataching player
|
-- @param #Wrapper.Client#CLIENT Player the atacking player
|
||||||
-- @param #string TargetUnitName the name of the killed unit
|
-- @param #string TargetUnitName the name of the killed unit
|
||||||
-- @param #bool IsTeamKill true if this kill was a team kill
|
-- @param #boolean IsTeamKill true if this kill was a team kill
|
||||||
-- @param #number TargetThreatLevel Thread level of the target
|
-- @param #number TargetThreatLevel Thread level of the target
|
||||||
-- @param #number PlayerThreatLevelThread level of the player
|
-- @param #number PlayerThreatLevelThread level of the player
|
||||||
-- @param #number Score The score based on both threat levels
|
-- @param #number Score The score based on both threat levels
|
||||||
|
|||||||
@ -1244,7 +1244,9 @@ function UNIT:GetThreatLevel()
|
|||||||
|
|
||||||
if Attributes["Fighters"] then ThreatLevel = 10
|
if Attributes["Fighters"] then ThreatLevel = 10
|
||||||
elseif Attributes["Multirole fighters"] then ThreatLevel = 9
|
elseif Attributes["Multirole fighters"] then ThreatLevel = 9
|
||||||
|
elseif Attributes["Interceptors"] then ThreatLevel = 9
|
||||||
elseif Attributes["Battleplanes"] then ThreatLevel = 8
|
elseif Attributes["Battleplanes"] then ThreatLevel = 8
|
||||||
|
elseif Attributes["Battle airplanes"] then ThreatLevel = 8
|
||||||
elseif Attributes["Attack helicopters"] then ThreatLevel = 7
|
elseif Attributes["Attack helicopters"] then ThreatLevel = 7
|
||||||
elseif Attributes["Strategic bombers"] then ThreatLevel = 6
|
elseif Attributes["Strategic bombers"] then ThreatLevel = 6
|
||||||
elseif Attributes["Bombers"] then ThreatLevel = 5
|
elseif Attributes["Bombers"] then ThreatLevel = 5
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user