PSO2DamageTrackers AddFlag(bool value, PSO2DamageTrackers flag) { if (value) { return(flag); } return(0); }
public PlayerDamageSeparationController(string playerName, long playerId, TimeSpan updateClock, TimeSpan instanceHistory, DamageParser owner, PSO2DamageTrackers activeTrackers) { trackerFlags = activeTrackers; name = playerName; id = playerId; updateInterval = updateClock; parser = owner; CombinedPlayer = new PSO2Player(playerName, playerId, updateClock, instanceHistory, activeTrackers, owner); Players.Add(CombinedPlayer); }
public PSO2DamageTrackers GetHiddenTrackersEnum() { PSO2DamageTrackers retVal = new PSO2DamageTrackers(); retVal |= AddFlag(HideAIS, PSO2DamageTrackers.AIS); retVal |= AddFlag(HideDB, PSO2DamageTrackers.DarkBlast); retVal |= AddFlag(HideHTF, PSO2DamageTrackers.HTF); retVal |= AddFlag(HidePWP, PSO2DamageTrackers.PWP); retVal |= AddFlag(HideLSW, PSO2DamageTrackers.LSW); retVal |= AddFlag(HideRide, PSO2DamageTrackers.Ride); retVal |= AddFlag(HideZanverse, PSO2DamageTrackers.Zanverse); retVal |= AddFlag(HideELEM, PSO2DamageTrackers.Elem); return(retVal); }
void buildSplitPlayer(PSO2DamageTrackers tracker, string nameSuffix) { if (IsSplit(tracker)) { if (parser.trackersToSuppress.HasFlag(tracker)) { return; //do nothing if tracker is suppressed } var player = new PSO2Player($"{name} | {nameSuffix}", id, updateInterval, parser.InstanceUpdateHistoryDuration, tracker, parser); player.SetSpecialPlayer(true, true); playerTrackerDict.Add(tracker, player); Players.Add(player); } }
public PSO2DamageTrackers GetSeparatedTrackersEnum(bool passToParser) { PSO2DamageTrackers retVal = new PSO2DamageTrackers(); retVal |= AddFlagInvert(SplitAIS, PSO2DamageTrackers.AIS, passToParser); retVal |= AddFlagInvert(SplitDB, PSO2DamageTrackers.DarkBlast, passToParser); retVal |= AddFlagInvert(SplitHTF, PSO2DamageTrackers.HTF, passToParser); retVal |= AddFlagInvert(SplitPWP, PSO2DamageTrackers.PWP, passToParser); retVal |= AddFlagInvert(SplitLSW, PSO2DamageTrackers.LSW, passToParser); retVal |= AddFlagInvert(SplitRide, PSO2DamageTrackers.Ride, passToParser); retVal |= AddFlagInvert(SplitELEM, PSO2DamageTrackers.Elem, passToParser); retVal |= AddFlagInvert(SplitZanverse, PSO2DamageTrackers.Zanverse, passToParser); if (passToParser) { retVal |= PSO2DamageTrackers.Basic; //parser takes this as a bitfield of trackers to COMBINE, since we wanna split, we invert to indicate that we wanna separate this one } return(retVal); }
PSO2DamageTrackers AddFlagInvert(bool value, PSO2DamageTrackers flag, bool invert) { bool passedCheck = false; if (value) { passedCheck = true; } if (invert) { passedCheck = !passedCheck; } if (passedCheck) { return(flag); } return(0); }
public HiddenSplitTypesSettingsVM(PSO2DamageTrackers separatedTrackers, PSO2DamageTrackers hiddenTrackers) { SplitAIS = separatedTrackers.HasFlag(PSO2DamageTrackers.AIS); SplitDB = separatedTrackers.HasFlag(PSO2DamageTrackers.DarkBlast); SplitHTF = separatedTrackers.HasFlag(PSO2DamageTrackers.HTF); SplitPWP = separatedTrackers.HasFlag(PSO2DamageTrackers.PWP); SplitLSW = separatedTrackers.HasFlag(PSO2DamageTrackers.LSW); SplitRide = separatedTrackers.HasFlag(PSO2DamageTrackers.Ride); SplitZanverse = separatedTrackers.HasFlag(PSO2DamageTrackers.Zanverse); SplitStatus = separatedTrackers.HasFlag(PSO2DamageTrackers.Burn); HideAIS = hiddenTrackers.HasFlag(PSO2DamageTrackers.AIS); HideDB = hiddenTrackers.HasFlag(PSO2DamageTrackers.DarkBlast); HideHTF = hiddenTrackers.HasFlag(PSO2DamageTrackers.HTF); HidePWP = hiddenTrackers.HasFlag(PSO2DamageTrackers.PWP); HideLSW = hiddenTrackers.HasFlag(PSO2DamageTrackers.LSW); HideRide = hiddenTrackers.HasFlag(PSO2DamageTrackers.Ride); HideZanverse = hiddenTrackers.HasFlag(PSO2DamageTrackers.Zanverse); HideStatus = hiddenTrackers.HasFlag(PSO2DamageTrackers.Burn); }
bool dispatchInstance(bool isCorrectType, PSO2DamageTrackers tracker, PSO2DamageInstance instance, string nameSuffix) { if (!isCorrectType) { return(false); } if (parser.trackersToSuppress.HasFlag(tracker)) { return(true); //swallow this damage instance if it's suppressed. } else if (IsSplit(tracker)) { if (!playerTrackerDict.ContainsKey(tracker)) { buildSplitPlayer(tracker, nameSuffix); } playerTrackerDict[tracker].AddDamageInstance(instance); return(true); } return(false); }
bool dispatchInstance(bool isCorrectType, PSO2DamageTrackers tracker, PSO2DamageInstance instance, string nameSuffix) { if (!isCorrectType) { return(false); } if (parser.trackersToSuppress.HasFlag(tracker) && (tracker == PSO2DamageTrackers.Elem ? !PSO2Player.IsAllyId(instance.TargetId) : true)) { return(true); //swallow this damage instance if it's suppressed. If element is hidden, only hide if its outgoing elemental dmg } else if (IsSplit(tracker)) { if (!playerTrackerDict.ContainsKey(tracker)) { buildSplitPlayer(tracker, nameSuffix); } playerTrackerDict[tracker].AddDamageInstance(instance); return(true); } return(false); }
private void loadSettings() { HighlightDPS = Settings.Default.HighlightDPS; ShortenDPSReadout = Settings.Default.ShortenDPSReadout; OpenGraphForSelfAutomatically = Settings.Default.OpenGraphForSelf; AnonymizePlayers = Settings.Default.AnonymizePlayers; EnabledLineSeries val = EnabledLineSeries.All; DetailedDamageVisibleColumns val2 = DetailedDamageVisibleColumns.All; PSO2DamageTrackers hiddenTrackers = PSO2DamageTrackers.None; PSO2DamageTrackers splitTrackers = PSO2DamageTrackers.None; if (!Enum.TryParse <EnabledLineSeries>(Settings.Default.EnabledLineSeries, out val)) { val = EnabledLineSeries.All; } if (!Enum.TryParse <DetailedDamageVisibleColumns>(Settings.Default.DetailedDamageVisibleColumns, out val2)) { val2 = DetailedDamageVisibleColumns.All; } if (!Enum.TryParse <PSO2DamageTrackers>(Settings.Default.HiddenDamageTypes, out hiddenTrackers)) { hiddenTrackers = PSO2DamageTrackers.None; } if (!Enum.TryParse <PSO2DamageTrackers>(Settings.Default.SplitDamageTypes, out splitTrackers)) { splitTrackers = PSO2DamageTrackers.None; } if (!string.IsNullOrWhiteSpace(Settings.Default.BackgroundImagePath)) { BackgroundImagePath = Settings.Default.BackgroundImagePath; } LineSeriesSettings = new EnabledLineSeriesSettingsVM(val); DetailedDamageVisibleSettings = new ColumnVisibilityVM(val2); DamageTypesSettings = new HiddenSplitTypesSettingsVM(splitTrackers, hiddenTrackers); DamageTypesSettings.HideSettingsChanged += DamageTypesSettings_HideSettingsChanged; DamageTypesSettings.SplitSettingsChanged += DamageTypesSettings_SplitSettingsChanged; LineSeriesSettings.SeriesEnabledStateChangedEvent += LineSeriesSettings_SeriesEnabledStateChangedEvent; }
public PSO2Player(string playerName, long playerId, TimeSpan updateClock, TimeSpan instanceHistoryDuration, PSO2DamageTrackers trackersToCombine, DamageParser parentInst) { ID = playerId; Name = actualName = playerName; trackersToSum = trackersToCombine; FilteredDamage = new DamageView(trackersToCombine); parent = parentInst; parent.NameAnonimizationChangedEvent += Parent_NameAnonimizationChangedEvent; BasicDamage = new DamageTracker(updateClock, instanceHistoryDuration, "Basic"); FilteredDamage.RegisterTracker(BasicDamage, PSO2DamageTrackers.Basic); ZanverseDamage = new DamageTracker(updateClock, instanceHistoryDuration, "Zanverse"); FilteredDamage.RegisterTracker(ZanverseDamage, PSO2DamageTrackers.Zanverse); DarkBlastDamage = new DamageTracker(updateClock, instanceHistoryDuration, "DarkBlast"); FilteredDamage.RegisterTracker(DarkBlastDamage, PSO2DamageTrackers.DarkBlast); AISDamage = new DamageTracker(updateClock, instanceHistoryDuration, "AIS"); FilteredDamage.RegisterTracker(AISDamage, PSO2DamageTrackers.AIS); PhotonDamage = new DamageTracker(updateClock, instanceHistoryDuration, "PwP"); FilteredDamage.RegisterTracker(PhotonDamage, PSO2DamageTrackers.PWP); RideroidDamage = new DamageTracker(updateClock, instanceHistoryDuration, "Ride"); FilteredDamage.RegisterTracker(RideroidDamage, PSO2DamageTrackers.Ride); LaconiumDamage = new DamageTracker(updateClock, instanceHistoryDuration, "Lsw"); FilteredDamage.RegisterTracker(LaconiumDamage, PSO2DamageTrackers.LSW); HeroTimeFinishDamage = new DamageTracker(updateClock, instanceHistoryDuration, "HTF"); FilteredDamage.RegisterTracker(HeroTimeFinishDamage, PSO2DamageTrackers.HTF); ElementDamage = new DamageTracker(updateClock, instanceHistoryDuration, "ELM"); FilteredDamage.RegisterTracker(ElementDamage, PSO2DamageTrackers.Elem); DamageTaken = new DamageTracker(updateClock, instanceHistoryDuration, "Taken"); allTrackers.AddRange(new[] { BasicDamage, ZanverseDamage, DarkBlastDamage, AISDamage, DamageTaken, PhotonDamage, RideroidDamage, LaconiumDamage, HeroTimeFinishDamage, ElementDamage }); //to simplify calls below... Parent_NameAnonimizationChangedEvent(null, null); }
bool IsSplit(PSO2DamageTrackers tracker) { return(!trackerFlags.HasFlag(tracker)); }
public void RegisterTracker(DamageTracker tracker, PSO2DamageTrackers flag) { allTrackers.Add(new TrackerContainer(tracker, flag)); }
public TrackerContainer(DamageTracker tracker, PSO2DamageTrackers flag) { AssociatedTracker = tracker; AssociatedFlag = flag; }
/// <summary> /// Sets trackers to suppress. When suppressed, a PSO2Player is not created for the damage type if split, and the damage is not added to the combined player /// </summary> /// <param name="trackersToHide"></param> public void SetTrackersToHide(PSO2DamageTrackers trackersToHide) { trackersToSuppress = trackersToHide; }
public void ChangeEnabledTrackers(PSO2DamageTrackers activeTrackers) { enabledTrackers = activeTrackers; Update(); }
/// <summary> /// Bitflags to include related tracker damage in TotalDamage /// </summary> /// <param name="trackers"></param> public void SetTrackersToIncludeInTotalDamage(PSO2DamageTrackers trackers) { trackersToSum = trackers; FilteredDamage.ChangeEnabledTrackers(trackers); }
/// <summary> /// Sets the trackers to combine in TotalDamage for each player. Changing this after parsing started does not recalculate old values. /// </summary> /// <param name="trackersToCombine">Bitflags for trackers to combine</param> public void SetTrackersToSumInTotalDamage(PSO2DamageTrackers trackersToCombine) { trackersToSum = trackersToCombine; }
public DamageView(PSO2DamageTrackers activeTrackers) { enabledTrackers = activeTrackers; }