Class DualSidedFlagService
public abstract class DualSidedFlagService : IAttackDefenseDecider, ILayoutHostedService, IFlagRotationService, IFlagListUIProvider, IEventListener<FlagCaptured>, IEventListener<FlagNeutralized>, IEventListener<PlayerEnteredFlagRegion>, IEventListener<PlayerExitedFlagRegion>
- Inheritance
-
DualSidedFlagService
- Implements
- Inherited Members
Constructors
DualSidedFlagService(IServiceProvider, IConfiguration)
protected DualSidedFlagService(IServiceProvider serviceProvider, IConfiguration config)
Parameters
serviceProviderIServiceProviderconfigIConfiguration
Fields
FlagTranslations
protected readonly FlagUITranslations FlagTranslations
Field Value
Layout
protected readonly Layout Layout
Field Value
Logger
protected readonly ILogger Logger
Field Value
ServiceProvider
protected readonly IServiceProvider ServiceProvider
Field Value
TeamManager
protected readonly ITeamManager<Team> TeamManager
Field Value
Properties
ActiveFlags
public IReadOnlyList<FlagObjective> ActiveFlags { get; }
Property Value
Configuration
public IConfiguration Configuration { get; }
Property Value
DiscoverDistance
Distance from any owned flags that are discovered.
protected virtual int DiscoverDistance { get; }
Property Value
EndingTeam
public Team EndingTeam { get; }
Property Value
EndingTeamRegion
public ZoneRegion EndingTeamRegion { get; }
Property Value
FlagSettings
protected FlagPhaseSettings FlagSettings { get; }
Property Value
GridBehaivor
public virtual ElectricalGridBehaivor GridBehaivor { get; }
Property Value
IsActive
public bool IsActive { get; }
Property Value
PathingResult
protected IList<Zone>? PathingResult { get; }
Property Value
StartingTeam
public Team StartingTeam { get; }
Property Value
StartingTeamRegion
public ZoneRegion StartingTeamRegion { get; }
Property Value
ZoneStore
protected ZoneStore ZoneStore { get; }
Property Value
Methods
CreateFlagObjective(ZoneRegion, int, Team)
protected virtual FlagObjective CreateFlagObjective(ZoneRegion region, int index, Team teamOwner)
Parameters
regionZoneRegionindexintteamOwnerTeam
Returns
Discover(Team, int, bool)
Discover the first n flags for a team from any owned flags.
protected virtual void Discover(Team team, int amount, bool noRaise = false)
Parameters
EnumerateFlagListEntries(LanguageSet)
public IEnumerable<FlagListUIEntry> EnumerateFlagListEntries(LanguageSet set)
Parameters
setLanguageSet
Returns
EnumerateObjectives()
public virtual IEnumerable<FlagObjective> EnumerateObjectives()
Returns
GetContestResult(FlagObjective, IEnumerable<Team>)
Must return a FlagContestState describing the resultant state of the contest caused by players trying to capture it, if any.
The logic of this method should account for all the result cases featured in FlagContestState.ContestState.
This method is called every flag tick (usually a few seconds), as well as on some other occasions, on every active flag in the rotation.
public abstract FlagContestState GetContestResult(FlagObjective flag, IEnumerable<Team> possibleContestingTeams)
Parameters
flagFlagObjectiveThe flag that is being evaluated.
possibleContestingTeamsIEnumerable<Team>A selection of possible teams who may be contesting the flag.
Returns
GetFlagListEntry(FlagObjective, in LanguageSet, FlagObjective?)
protected virtual FlagListUIEntry GetFlagListEntry(FlagObjective flag, in LanguageSet set, FlagObjective? displayTeamObjective)
Parameters
flagFlagObjectivesetLanguageSetdisplayTeamObjectiveFlagObjective
Returns
GetObjective(Team)
public abstract FlagObjective? GetObjective(Team team)
Parameters
teamTeam
Returns
HandleEvent(PlayerEnteredFlagRegion, IServiceProvider)
public void HandleEvent(PlayerEnteredFlagRegion e, IServiceProvider serviceProvider)
Parameters
ePlayerEnteredFlagRegionserviceProviderIServiceProvider
HandleEvent(PlayerExitedFlagRegion, IServiceProvider)
public void HandleEvent(PlayerExitedFlagRegion e, IServiceProvider serviceProvider)
Parameters
ePlayerExitedFlagRegionserviceProviderIServiceProvider
IsAttacking(WarfarePlayer)
If the player is actively attacking the objective.
public bool IsAttacking(WarfarePlayer player)
Parameters
playerWarfarePlayer
Returns
IsDefending(WarfarePlayer)
If the player is actively defending the objective.
public bool IsDefending(WarfarePlayer player)
Parameters
playerWarfarePlayer
Returns
IsDefenseObjective(FlagObjective, Team)
public bool IsDefenseObjective(FlagObjective flag, Team friendlyTeam)
Parameters
flagFlagObjectivefriendlyTeamTeam
Returns
IsEnemyObjective(FlagObjective, Team)
public bool IsEnemyObjective(FlagObjective flag, Team friendlyTeam)
Parameters
flagFlagObjectivefriendlyTeamTeam
Returns
OnFlagCaptured(FlagCaptured)
protected virtual void OnFlagCaptured(FlagCaptured e)
Parameters
OnTick(ILoopTicker, TimeSpan, TimeSpan)
protected virtual void OnTick(ILoopTicker ticker, TimeSpan timeSinceStart, TimeSpan deltaTime)
Parameters
tickerILoopTickertimeSinceStartTimeSpandeltaTimeTimeSpan
RecalculateObjectives()
protected abstract void RecalculateObjectives()
SlowTickObjective(FlagObjective, FlagContestState)
protected virtual void SlowTickObjective(FlagObjective flag, FlagContestState contestState)
Parameters
flagFlagObjectivecontestStateFlagContestState
StartAsync(CancellationToken)
Executes at the beginning of every game.
public virtual UniTask StartAsync(CancellationToken token)
Parameters
tokenCancellationToken
Returns
- UniTask
StopAsync(CancellationToken)
Executes at the end of every game.
public virtual UniTask StopAsync(CancellationToken token)
Parameters
tokenCancellationToken
Returns
- UniTask
TriggerVictory(Team)
protected void TriggerVictory(Team winner)
Parameters
winnerTeam