PSO2DamageTrackers AddFlag(bool value, PSO2DamageTrackers flag)
 {
     if (value)
     {
         return(flag);
     }
     return(0);
 }
Esempio n. 2
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);
        }
Esempio n. 4
0
 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);
        }
Esempio n. 8
0
 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);
 }
Esempio n. 9
0
 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);
 }
Esempio n. 10
0
        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;
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
 bool IsSplit(PSO2DamageTrackers tracker)
 {
     return(!trackerFlags.HasFlag(tracker));
 }
Esempio n. 13
0
 public void RegisterTracker(DamageTracker tracker, PSO2DamageTrackers flag)
 {
     allTrackers.Add(new TrackerContainer(tracker, flag));
 }
Esempio n. 14
0
 public TrackerContainer(DamageTracker tracker, PSO2DamageTrackers flag)
 {
     AssociatedTracker = tracker;
     AssociatedFlag    = flag;
 }
Esempio n. 15
0
 /// <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;
 }
Esempio n. 16
0
 public void ChangeEnabledTrackers(PSO2DamageTrackers activeTrackers)
 {
     enabledTrackers = activeTrackers;
     Update();
 }
Esempio n. 17
0
 /// <summary>
 /// Bitflags to include related tracker damage in TotalDamage
 /// </summary>
 /// <param name="trackers"></param>
 public void SetTrackersToIncludeInTotalDamage(PSO2DamageTrackers trackers)
 {
     trackersToSum = trackers;
     FilteredDamage.ChangeEnabledTrackers(trackers);
 }
Esempio n. 18
0
 /// <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;
 }
Esempio n. 19
0
 public DamageView(PSO2DamageTrackers activeTrackers)
 {
     enabledTrackers = activeTrackers;
 }