PotionVisExhaust
Package: thaumcraft.api.potions
A potion effect that causes increased vis consumption. When a player is affected by Vis Exhaustion, any wand operations drain additional vis beyond the normal recipe cost.
Class Declaration
public class PotionVisExhaust extends Potion
Static Instance
public static PotionVisExhaust instance = null
The instance is null at load time and is initialized at runtime via PotionVisExhaust.init(). It cannot be used before registration.
Initialization
public static void init()
Called by Thaumcraft during potion registration. Sets:
- Potion name:
"potion.visexhaust" - Icon index:
(5, 1)on the potion spritesheet - Effectiveness:
0.25D(lower = slower tick rate)
Parent Potion Fields
As a subclass of Potion, inherits standard fields like potionId, isBadEffect, statusIconIndex, etc.
Relevant Inherited Behavior
| Method | Behavior |
|---|---|
isBadEffect() |
Returns true — this is a harmful effect |
performEffect(EntityLivingBase target, int par2) |
Empty — no direct effect; vis drain is handled by the wand system |
getStatusIconIndex() |
Returns the icon index for the potion HUD |
How Vis Exhaustion Works
Vis Exhaustion is a passive modifier applied to the player’s vis economy. The exact mechanics are handled internally by Thaumcraft’s wand and vis system — the potion itself has no direct performEffect implementation.
When the player holds an exhausted wand or performs arcane operations while under this effect, vis costs are multiplied by a factor (determined by the potion amplifier). The effectiveness value of 0.25D means the potion’s tick rate is slower than a standard potion.
Registration
This potion is registered automatically by Thaumcraft. Mods should not instantiate or register this class themselves. To check if a player is affected:
if (player.isPotionActive(PotionVisExhaust.instance)) {
// Player has vis exhaust
}
Related
PotionFluxTaint— a more dangerous flux-related potion effectThaumcraftApi.internalMethods.addWarpToPlayer()— warp mechanicsThaumcraftApiHelper.addWarpToPlayer()— player warp management