コード例 #1
0
 public PlayerInfo(Player user, DamageTracker tracker)
 {
     _tracker = tracker;
     Player = user;
     Received = new SkillStats();
     Dealt = new SkillStats();
 }
コード例 #2
0
 private void ResetButton_Click(object sender, EventArgs e)
 {
     if (_server == null)
     {
         return;
     }
     _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase);
 }
コード例 #3
0
 private void ResetButton_Click(object sender, EventArgs e)
 {
     if (_server == null)
     {
         return;
     }
     _damageTracker = new DamageTracker(_settings.OnlyBosses, _settings.IgnoreOneshots);
 }
コード例 #4
0
        public PlayerInfo(Player user, DamageTracker tracker)
        {
            Tracker  = tracker;
            Player   = user;
            SkillLog = new ThreadSafeObservableCollection <SkillResult>();

            Received = new SkillStats(tracker, SkillLog);
            Dealt    = new SkillStats(tracker, SkillLog);
        }
コード例 #5
0
 private void Reset()
 {
     if (_server == null)
     {
         return;
     }
     _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase);
     Fetch();
 }
コード例 #6
0
ファイル: PlayerInfo.cs プロジェクト: DzenDyn/CasualMeter
        public PlayerInfo(Player user, DamageTracker tracker)
        {
            Tracker = tracker;
            Player = user;
            SkillLog = new ThreadSafeObservableCollection<SkillResult>();

            Received = new SkillStats(tracker, SkillLog);
            Dealt = new SkillStats(tracker, SkillLog);
        }
コード例 #7
0
ファイル: PlayerInfo.cs プロジェクト: hawkwork/CasualMeter
        public PlayerInfo(Player user, DamageTracker tracker)
        {
            Tracker = tracker;
            Player = user;
            Received = new SkillStats();
            Dealt = new SkillStats();
            SkillLog = new ThreadSafeObservableCollection<SkillResult>();

            Dealt.PropertyChanged += DealtOnPropertyChanged;
        }
コード例 #8
0
 private void HandleNewConnection(Server server)
 {
     Text            = $"Damage Meter connected to {server.Name}";
     _server         = server;
     _teraData       = BasicTeraData.DataForRegion(server.Region);
     _entityRegistry = new EntityTracker();
     _playerTracker  = new PlayerTracker(_entityRegistry);
     _damageTracker  = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase);
     _messageFactory = new MessageFactory(_teraData.OpCodeNamer);
 }
コード例 #9
0
        private void HandleMessageReceived(Message obj)
        {
            var message = _messageFactory.Create(obj);

            _entityTracker?.Update(message);

            var skillResultMessage = message as EachSkillResultServerMessage;

            if (skillResultMessage != null)
            {
                var skillResult = new SkillResult(skillResultMessage, _entityTracker, _playerTracker, _teraData.SkillDatabase);
                _damageTracker.Update(skillResult);
            }

            var cVersion = message as C_CHECK_VERSION;

            if (cVersion != null)
            {
                var opCodeNamer =
                    new OpCodeNamer(Path.Combine(_basicTeraData.ResourceDirectory,
                                                 $"opcodes/{cVersion.Versions[0]}.txt"));
                _messageFactory = new MessageFactory(opCodeNamer, _server.Region, cVersion.Versions[0]);
                return;
            }

            var sLoginMessage = message as LoginServerMessage;

            if (sLoginMessage != null)
            {
                if (_needInit)
                {
                    _server = _basicTeraData.Servers.GetServer(sLoginMessage.ServerId, _server);
                    _messageFactory.Region = _server.Region;
                    Text           = string.Format("Damage Meter connected to {0}", _server.Name);
                    _teraData      = _basicTeraData.DataForRegion(_server.Region);
                    _entityTracker = new EntityTracker(_teraData.NpcDatabase);
                    _playerTracker = new PlayerTracker(_entityTracker, _basicTeraData.Servers);
                    _damageTracker = new DamageTracker(_settings.OnlyBosses, _settings.IgnoreOneshots);
                    _entityTracker.Update(message);
                    _needInit = false;
                }
            }
        }
コード例 #10
0
 /// <summary>
 /// Creates a new instance of SkillStats
 /// </summary>
 /// <param name="tracker">DamageTracker used for calculations</param>
 /// <param name="skillLog">SkillLog used for calculations</param>
 public SkillStats(DamageTracker tracker, ThreadSafeObservableCollection <SkillResult> skillLog)
 {
     _tracker  = tracker;
     _skillLog = skillLog;
 }
コード例 #11
0
        private void Reset(ResetPlayerStatsMessage message)
        {
            if (Server == null) return;

            if (message != null && message.ShouldSaveCurrent && !DamageTracker.IsArchived &&
                DamageTracker.StatsByUser.Count > 0 && DamageTracker.FirstAttack != null && DamageTracker.LastAttack != null)
            {
                DamageTracker.IsArchived = true;
                ArchivedDamageTrackers.Add(DamageTracker);
            }

            DamageTracker = new DamageTracker();
        }
コード例 #12
0
 private void LoadEncounter(DamageTracker obj)
 {
     DamageTracker = obj;
 }
コード例 #13
0
 public static bool IsValid(this EachSkillResultServerMessage message, DamageTracker tracker = null)
 {
     return(message != null && !message.IsUseless &&                                            //stuff like warrior DFA
            (tracker?.FirstAttack != null || (!message.IsHeal && message.Amount > 0)) &&        //only record first hit is it's a damage hit (heals occurring outside of fights)
            !(message.Target.Equals(message.Source) && !message.IsHeal && message.Amount > 0)); //disregard damage dealt to self (gunner self destruct)
 }
コード例 #14
0
ファイル: SkillStats.cs プロジェクト: DzenDyn/CasualMeter
 /// <summary>
 /// Creates a new instance of SkillStats
 /// </summary>
 /// <param name="tracker">DamageTracker used for calculations</param>
 /// <param name="skillLog">SkillLog used for calculations</param>
 public SkillStats(DamageTracker tracker, ThreadSafeObservableCollection<SkillResult> skillLog)
 {
     _tracker = tracker;
     _skillLog = skillLog;
 }
コード例 #15
0
 private void Reset()
 {
     if (_server == null)
         return;
     _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase);
     Fetch();
 }
コード例 #16
0
        private void HandleNewConnection(Server server)
        {
            Text = string.Format("Damage Meter connected to {0}", server.Name);
            _server = server;
            _teraData = _basicTeraData.DataForRegion(server.Region);
            _entityTracker = new EntityTracker(_teraData.NpcDatabase);
            _playerTracker = new PlayerTracker(_entityTracker);
            _damageTracker = new DamageTracker();
            _messageFactory = new MessageFactory(_teraData.OpCodeNamer);

            Logger.Log(Text);
        }
コード例 #17
0
 private void ResetButton_Click(object sender, EventArgs e)
 {
     if (_server == null)
         return;
     _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase);
     Fetch();
 }
コード例 #18
0
 public static bool IsValid(this EachSkillResultServerMessage message, DamageTracker tracker = null)
 {
     return message != null && !message.IsUseless && //stuff like warrior DFA
            (tracker?.FirstAttack != null || (!message.IsHeal && message.Amount > 0)) &&//only record first hit is it's a damage hit (heals occurring outside of fights)
            !(message.Target.Equals(message.Source) && !message.IsHeal && message.Amount > 0);//disregard damage dealt to self (gunner self destruct)
 }
コード例 #19
0
 private void ResetButton_Click(object sender, EventArgs e)
 {
     if (_server == null)
         return;
     _damageTracker = new DamageTracker();
 }
コード例 #20
0
 private void HandleNewConnection(Server server)
 {
     Text = $"Damage Meter connected to {server.Name}";
     _server = server;
     _teraData = BasicTeraData.DataForRegion(server.Region);
     _entityRegistry = new EntityTracker();
     _playerTracker = new PlayerTracker(_entityRegistry);
     _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase);
     _messageFactory = new MessageFactory(_teraData.OpCodeNamer);
 }