Skip to content

Commit

Permalink
fix bloodpact skill cooldown
Browse files Browse the repository at this point in the history
  • Loading branch information
foglio1024 committed Nov 1, 2023
1 parent 15cc3c1 commit 1d0d4a5
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 55 deletions.
59 changes: 8 additions & 51 deletions TCC.Core/Data/Databases/SkillsDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,51 +21,6 @@ public SkillsDatabase(string lang) : base(lang)

}

/*
private string FindSkillNameByIdClass(uint id, Class c)
{
if (Skills[c].TryGetValue(id, out var sk))
{
return sk.Name;
}
else return "Not found";
}
*/

/*
private int GetSkillIdByConnectedId(uint id, Class c)
{
foreach (var skillConnection in SkillConnections.Where(x => x.Class == c))
{
foreach (var connectedSkill in skillConnection.ConnectedSkills)
{
if ((int)id == connectedSkill)
{
return skillConnection.Id;
}
}
}
return -1;
}
*/
/*
public string SkillIdToName(uint id, Class c)
{
var name = FindSkillNameByIdClass(id, c);
var connSkill = GetSkillIdByConnectedId(id, c);
if (name != "Not found") //found skill
{
return name;
}
else if (connSkill != -1) //skill found in connected skills
{
name = FindSkillNameByIdClass(id, c);
}
return name;
}
*/
public bool TryGetSkill(uint id, Class c, out Skill sk)
{
var result = false;
Expand All @@ -75,18 +30,20 @@ public bool TryGetSkill(uint id, Class c, out Skill sk)
result = true;

return result;

}

//TODO do this better one day
public IEnumerable<Skill> SkillsForClass(Class c)
public IEnumerable<Skill> SkillsForClass(Class c, bool includeCommon = true)
{
var list = new ThreadSafeObservableCollection<Skill>();
var skillsForClass = Skills[c];
foreach (var skill in skillsForClass.Values.Where(skill => list.All(x => x.IconName != skill.IconName)
&& !IsIgnoredSkill(skill)))

var list = skillsForClass.Values.Where(skill => !IsIgnoredSkill(skill))
.DistinctBy(x => x.IconName)
.ToList();

if (includeCommon)
{
list.Add(skill);
list.AddRange(Skills[Class.Common].Values.Where(skill => skill.Detail is not "mount" and not "eventseed"));
}
return list;
}
Expand Down
1 change: 0 additions & 1 deletion TCC.Core/UI/Controls/Skills/SkillControlBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ protected virtual void OnLoaded(object sender, RoutedEventArgs e)
}
protected virtual void OnUnloaded(object sender, RoutedEventArgs e) //TODO: maybe use DataContextChanged
{
Loaded -= OnLoaded;
Unloaded -= OnUnloaded;
if (Context == null)
{
Expand Down
9 changes: 6 additions & 3 deletions TCC.Core/ViewModels/Widgets/CooldownWindowViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,10 @@ void OnStartCooltimeItem(S_START_COOLTIME_ITEM m)

void OnStartCooltimeSkill(S_START_COOLTIME_SKILL m)
{
if (!Game.DB!.SkillsDatabase.TryGetSkill(m.SkillId, Game.Me.Class, out var skill)) return;
if (!Game.DB!.SkillsDatabase.TryGetSkill(m.SkillId, Game.Me.Class, out var skill)
&& !Game.DB!.SkillsDatabase.TryGetSkill(m.SkillId, Class.Common, out skill))
return;

if (!Pass(skill)) return;
RouteSkill(new Cooldown(skill, m.Cooldown));
}
Expand Down Expand Up @@ -709,8 +712,8 @@ void OnPrecooldownStarted(Skill sk, uint duration)

static bool Pass(Skill sk)
{
if (sk.Detail == "off") return false;
if (sk.Detail is "off" or "mount" or "eventseed") return false;
if (sk.Id == 245109 && Game.Me.Class == Class.Valkyrie) return false; // bad but idk
return sk.Class != Class.Common && sk.Class != Class.None;
return sk.Class != Class.None;
}
}

0 comments on commit 1d0d4a5

Please sign in to comment.