public PlayerInfo(Player user, DamageTracker tracker) { _tracker = tracker; Player = user; Received = new SkillStats(); Dealt = new SkillStats(); }
private void ResetButton_Click(object sender, EventArgs e) { if (_server == null) { return; } _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase); }
private void ResetButton_Click(object sender, EventArgs e) { if (_server == null) { return; } _damageTracker = new DamageTracker(_settings.OnlyBosses, _settings.IgnoreOneshots); }
public PlayerInfo(Player user, DamageTracker tracker) { Tracker = tracker; Player = user; SkillLog = new ThreadSafeObservableCollection <SkillResult>(); Received = new SkillStats(tracker, SkillLog); Dealt = new SkillStats(tracker, SkillLog); }
private void Reset() { if (_server == null) { return; } _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase); Fetch(); }
public PlayerInfo(Player user, DamageTracker tracker) { Tracker = tracker; Player = user; SkillLog = new ThreadSafeObservableCollection<SkillResult>(); Received = new SkillStats(tracker, SkillLog); Dealt = new SkillStats(tracker, SkillLog); }
public PlayerInfo(Player user, DamageTracker tracker) { Tracker = tracker; Player = user; Received = new SkillStats(); Dealt = new SkillStats(); SkillLog = new ThreadSafeObservableCollection<SkillResult>(); Dealt.PropertyChanged += DealtOnPropertyChanged; }
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); }
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; } } }
/// <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; }
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(); }
private void LoadEncounter(DamageTracker obj) { DamageTracker = obj; }
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) }
/// <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; }
private void Reset() { if (_server == null) return; _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase); Fetch(); }
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); }
private void ResetButton_Click(object sender, EventArgs e) { if (_server == null) return; _damageTracker = new DamageTracker(_entityRegistry, _playerTracker, _teraData.SkillDatabase); Fetch(); }
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) }
private void ResetButton_Click(object sender, EventArgs e) { if (_server == null) return; _damageTracker = new DamageTracker(); }