Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BloodOath timing is inaccurate #1690

Open
kamronbatman opened this issue Feb 19, 2024 · 3 comments
Open

BloodOath timing is inaccurate #1690

kamronbatman opened this issue Feb 19, 2024 · 3 comments

Comments

@kamronbatman
Copy link
Contributor

kamronbatman commented Feb 19, 2024

Since BloodOauth uses a 1s interval, it is sometimes late. We should use OnDeath and OnDelete to look up the Caster (or the target), and call RemoveCurse appropriately instead. This way the ExpireTimer can just cleanly call RemoveCurse too instead of being an interval.

@Bohicatv
Copy link
Contributor

Bohicatv commented Dec 17, 2024

line 70; _oathTable[Caster] = Caster;

I believe the table value should be updated for m not Caster

@kamronbatman
Copy link
Contributor Author

@mark1145 can you take a look too?

@Bohicatv
Copy link
Contributor

Bohicatv commented Dec 17, 2024

For example, (if I'm reading this right) m is technically not being calculated correctly on the oath table, because Caster is getting both the key and the value as Caster.

_oathTable[Caster] = Caster; _oathTable[m] = Caster;

to (stores value to m)

_oathTable[Caster] = m; _oathTable[m] = Caster;

Also, line 83; should not be fixed point; var duration = TimeSpan.FromSeconds((GetDamageSkill(Caster) - GetResistSkill(m)) / 8 + 8); if we are going for era behavior accuracy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants