Closed CollinHerber closed 4 months ago
Instead of a toggle, it'd just be always on - right clicking uses alt & sets cooldown, disabling blood oath stacks for 10 seconds. That might be what you meant already, but it's a bit unclear.
Instead of a toggle, it'd just be always on - right clicking uses alt & sets cooldown, disabling blood oath stacks for 10 seconds. That might be what you meant already, but it's a bit unclear.
I wouldn't want the use to constantly take 1 damage per enemy hit and instead only when they actually wanted the ability on. In the "Off" state it would be just like a normal copper broadsword (aside from the alt use)
When the person right clicks, and if there is a blood oath stack on a nearby enemy it would then set the toggled state to "Off" and then the alt use cooldown of 10 seconds would take effect before they could toggle it back on.
Happy to think about alternatives to the alt use though. That was just my first idea.
Could re-use the guardian angel effect but instead of yellow it's a red ring to signify the stack.
Oh! Missed the player taking one damage per hit. Nevermind then. I'll probably make a unique visual effect since that's easier, more fun and more diverse.
How's this for a stack indicator? It's fully functional already - at the moment, it only shows the stacks of oath per character, so if both you and I hit the same enemy, only my stack will be visible on my screen and only your stack is visible on yours. This makes it less crowded, more clear how many stacks you specifically have and worked nicely with the backend. I also edited Blood Oath's sprite a bit, the guard was really large:
I think it's a little busy. Maybe reducing the amount of those floating dagger slightly? Less of the further away ones? Just might get a bit crazy with many mobs
I want to show all of the stacks, so there is a stack cap - 15. I could lower this to 10, it's definitely a lot.
Ahh I had originally planned on each mob only having a max of 1 stack. What would each stack do?
Oh. ""Blood Oath" Stack" implies to me that it can apply more than one. This is reinforced with
and for each stack removed the player is healed for 5 health.
I could make it 3 stacks or something low then. It just heals additional health, nothing crazy.
Much less busy. 15 health also isn't nothing in early game, especially when you can hit a lot of enemies at the same time. Should anything happen if the NPC dies with stacks on it?
I imagine the stacks would just go away when the npc dies.
With stacks maybe it should be 2hp per stack?
Or perhaps 3 since it's 1 hp per hit when you hit them
Alright, done. 9 health is pretty solid; I also gave it a +max life affix since that seems thematic. I'll be doing all the resprites now.
All battleaxe resprites insofar. Iron, Rusted, Steel, and Corrupt.
Could add an affix that increases max stack size, in general, ofc (Though that should like it might get out of hand, seems neat none the less)
I think that would be a great addition to the influenced affix lists
Oh, right, that was a thing... being able to limit it like that would probably make it easier/possible to balance, true.
So, one last question: I know we should be setting unique's affix's MaxValue and MinValue, but I still have to set Value in order to set it at all. Is this intentional? This seems weird.
Otherwise, all resprites are in, Blood Oath should be good to go (aside from multiplayer), and I've also made Guardian Angel's and Blood Oath's alt uses not use the item itself, since it feels weird to swing the item when not using a melee attack.
I don't remember needing to set the value, nor do I think the value is being set on any of the other uniques. I would imagine you shouldn't need to set the value if you're setting min and max.
I thought so too, but setting Value is the only thing that would modify the affix's (in this case, a +max life% affix) power. Without setting Value directly, it was always +1%. With this:
lifeAffix.MinValue = lifeAffix.MaxValue = lifeAffix.Value = 10f;
It's always 10%. I'm unsure if I'm using Min/MaxValue right, but I set that range to anything from 1 to 10000 and it never made a difference.
Something in the data driven affixes may have affected this although I'm unsure what. I'm going to guess the rolling of the item? Although thought uniques were handled individually.
Ah, Affix.Value
defaults to 1, with a hardcoded check to roll only when Value == 0
. Is there a reason Value is initialized to 1? Don't know if that's intentional or not.
Naw I think that would be wrong and that check is wrong. Good catch.
Ok...with further research, I checked the call order for unique affixes. The issue was the setup:
Affix affix = Affix.CreateAffix<T>(...);
affix.MinValue = min;
affix.MaxValue = max;
Due to call order, and due to Affix.CreateAffix's call of Roll, the Min/Max value there are completely ignored since Roll
is called in CreateAffix, setting Value
to something other than 0, thus skipping the re-roll after. Affix.CreateAffix takes parameters for Value, Min, Max, using those fixes the problem (and is much nicer). Unsure if this was related to data-driven affixes, but this is completely against the format all unique affixes are done in, and presumably persist in every unique.
With this unique comes some Updated Sprites for the Copper Broadsword and Rusted Battleaxe
For the Blood Oath - Seeing as this is one of the very first uniques you can acquire we don't want it to be too strong. The stats should mimic that of the Copper Broadsword
I'm thinking the blood oath could introduce a new system where you "Toggle" the alt use and during the "On" state each enemy hit is given a "Blood Oath" Stack and the player then takes 1 damage per hit. When they they toggle it off each enemy within a x range has that stack removed and for each stack removed the player is healed for 5 health.
Then the weapon would have a 10 second cooldown to prevent infinite healing.
Something simple but cool