Post by swot on Feb 17, 2024 2:26:47 GMT
Hello hello,
I am currently working on being able to disable the "refresh" cost of Auspex and Obfuscate.
Alternatively disabling the ability to refresh the disciplines completely.
I can have the first initial use of Auspex by changing the Increase trigger for active_auspex in the stats.txt file.
That said this does not seem to affect the "renew" cost: aka when you right click while Auspex is already active it resets the timer and charges one blood.
For debugging I changed the Increase trigger to an Enter trigger, and it looks like the active_auspex block doesn't seem to be triggered at all when the player renews. With an Enter trigger there was an effect when the power was first used, and when the power ends (either by waiting or by using F8 to clear all active powers). But not on renew.
Changing Is_Renewable, from 1 to 0, in the entry for Auspex proper does not seem to prevent the player from renewing the discipline. When right clicking while the ability is active still resets the timer and still charges the blood. Changing Is_Passive, from 1 to 0, _does_ prevent the user from renewing the discipline but it also makes the timer disappear randomly and causes the log on the top left to freak out.
Changing Is_Renewable, from 1 to 0, in the entry for Auspex proper does not seem to prevent the player from renewing the discipline. When right clicking while the ability is active still resets the timer and still charges the blood. Changing Is_Passive, from 1 to 0, _does_ prevent the user from renewing the discipline but it also makes the timer disappear randomly and causes the log on the top left to freak out.
Looking into the Python side of things, I noticed that the OnActivateAuspex() function is only called on the initial use of the power, not on the renew.
Now the checkDiscipline() function seems to be more promising: it is called on every discipline use, is able to suppress discipline use by not calling c.vdiscipline_last="", and has conditional logic.
So, if I were able to detect that the user attempted to use Auspex when Auspex was already active, I could then suppress the ability use or offset the blood cost of the renew by adding blood to the player.
Detecting whether Auspex is already active is easy, as I can just check the active_auspex entity value of the player.
For detecting that the discipline that the player is attempting to use is Auspex... that I have not been able to figure out.
My current attempts have been to figure out what discipline is currently selected in the bottom right, but while I have found variables for what weapon is currently equipped I have found nothing for discipline.
Alternatively does anyone know how to get the currently equipped discipline from Python for use in the checkDiscipline() function?
Or even just some other way of removing or refunding the renew cost, or just disabling renew for Auspex all together?
Social Media