void main() { // Retrieve the object/item being used object oItem = GetEventParamObject(0); // Assuming OBJECT_SELF is the PC using the item object oPC = OBJECT_SELF; string sPCName = GetName(oPC); // Command the PC to speak a string immediately AssignCommand(oPC, ActionSpeakString(" [" + sPCName + " rolls up their sleeve, slowly, savoring the moment before sliding a gleaming red needle into their skin... the liquid inside swirls, seductive and dangerous.]")); if(GetHasFeat(FEAT_DIAMOND_BODY, oPC) || GetHasFeat(FEAT_VENOM_IMMUNITY, oPC)) { // If the PC has either feat, they are immune to the effects SendMessageToPC(oPC, "You push the contents of the needle into your body, but nothing happens. The sensations you crave, that sweet tension between pleasure and pain, never comes. Your body resists it."); } else { // Apply the initial movement speed penalty (small penalty) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(10), oPC, 300.0f); // Lasts for 5 minutes (300 seconds) // Send a delayed message to the PC DelayCommand(5.0, SendMessageToPC(oPC, "[A rush of cold spreads from the injection site, creeping through your veins. A delicious tension builds, your pulse quickening as your heart races. Control is slipping away, and you welcome it.]")); DelayCommand(35.0, SendMessageToPC(oPC, "[Your skin becomes exquisitely sensitive?every brush of fabric, every movement, a sensation you can?t escape. Your limbs feel heavier, like a subtle restraint holding you back... but you don?t resist.]")); // Increase the movement speed penalty (stronger effect) DelayCommand(35.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(20), oPC, 265.0f)); // Lasts for 265 seconds DelayCommand(60.0, AssignCommand(oPC, ActionSpeakString("[" + sPCName + "?s movements slow, their breath coming shallow as though surrendering to the inevitable, giving in to the delicious weight pressing down on them.]"))); DelayCommand(65.0, SendMessageToPC(oPC, "[Heat rises in your body, a deep flush spreading across your skin. The world fades into a blur of sensation, each touch, each breeze, amplified to unbearable heights. Your muscles tighten, resistance is futile, and yet you want more.]")); // Apply an even greater movement speed penalty DelayCommand(65.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(30), oPC, 135.0f)); // Lasts for 135 seconds DelayCommand(215.0, SendMessageToPC(oPC, "[Your heart races, pounding in your chest like a drumbeat of submission. Thud, thud, thudthudthudThudTHudTHUdTHUD... Each beat feels like a command you can?t disobey.]")); DelayCommand(400.0, SendMessageToPC(oPC, "[Your breathing comes in ragged gasps, each gulp of air a struggle, a reminder of the hold this has over you. Every sense is sharpened, painfully, delightfully aware of every breath, every pulse of blood through your veins.]")); DelayCommand(465.0, SendMessageToPC(oPC, "[Your body locks in place, paralyzed but hyper-aware. Every sensation is a torment and a gift, control slipping away entirely. You're at the mercy of the sensations flooding your body, and you wouldn?t have it any other way.]")); DelayCommand(530.0, AssignCommand(oPC, ActionSpeakString("[" + sPCName + " stands utterly still, muscles taut and trembling, their eyes wide with anticipation, unable to move or blink. They are completely under its spell.]"))); // Apply the heaviest movement speed penalty at this stage DelayCommand(530.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(50), oPC, 670.0f)); // Lasts for 670 seconds DelayCommand(700.0, SendMessageToPC(oPC, "[Time stretches out, each moment a mix of torment and ecstasy. Your senses are overwhelmed, every touch like a flame, every movement a struggle against invisible bonds. You?re lost in it, held captive by your own body.]")); DelayCommand(1200.0, SendMessageToPC(oPC, "[[Optional]] The moment of release comes slowly, your limbs trembling as they regain their strength. The rush of freedom is almost too much after so long in exquisite restraint, but you crave it again. You always will.]")); } }