generated from Jaysyn/ModuleTemplate
68 lines
3.1 KiB
Plaintext
68 lines
3.1 KiB
Plaintext
// hcr3 7/17/2003
|
|
//hc_inc_fatigue
|
|
//
|
|
// Created August 14, 2002 by Edward Beck.
|
|
// Helper functions to apply fatigue effects to PC's, and save the state.
|
|
// Include in scripts that want to use fatigue effects.
|
|
|
|
void MakePlayerFatigued(object oPC, string message = "")
|
|
{
|
|
if (!GetIsPC(oPC)) return;
|
|
int bFatigued = GetLocalInt(oPC, "bFatigued");
|
|
int bExhausted = GetLocalInt(oPC, "bExhausted");
|
|
if (bFatigued || bExhausted) return;
|
|
// hcr3 7/17/2003
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
|
ExtraordinaryEffect(EffectAbilityDecrease( ABILITY_STRENGTH, 2)), oPC));
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
|
ExtraordinaryEffect(EffectAbilityDecrease( ABILITY_DEXTERITY, 2)), oPC));
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect( EffectMovementSpeedDecrease (60)), oPC));
|
|
if (message!="") FloatingTextStringOnCreature(message, oPC, FALSE);
|
|
SetLocalInt(oPC,"bFatigued",TRUE);
|
|
}
|
|
|
|
void MakePlayerExhausted(object oPC, string message = "")
|
|
{
|
|
if (!GetIsPC(oPC)) return;
|
|
int bFatigued = GetLocalInt(oPC, "bFatigued");
|
|
int bExhausted = GetLocalInt(oPC, "bExhausted");
|
|
if (bExhausted) return;
|
|
if (bFatigued) {
|
|
// hcr3 7/17/2003
|
|
RemoveEffect( oPC, ExtraordinaryEffect( EffectAbilityDecrease( ABILITY_STRENGTH, 2)));
|
|
RemoveEffect( oPC, ExtraordinaryEffect( EffectAbilityDecrease( ABILITY_DEXTERITY, 2)));
|
|
RemoveEffect( oPC, ExtraordinaryEffect( EffectMovementSpeedDecrease(60)));
|
|
SetLocalInt(oPC,"bFatigued",FALSE);
|
|
}
|
|
// hcr3 7/17/2003
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
|
ExtraordinaryEffect(EffectAbilityDecrease( ABILITY_STRENGTH, 6)), oPC));
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
|
ExtraordinaryEffect(EffectAbilityDecrease( ABILITY_DEXTERITY, 6)), oPC));
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect( EffectMovementSpeedDecrease(80)), oPC));
|
|
if (message!="") FloatingTextStringOnCreature( message, oPC, FALSE);
|
|
SetLocalInt(oPC,"bExhausted",TRUE);
|
|
}
|
|
|
|
void MakePlayerCollapse(object oPC, string message = "")
|
|
{
|
|
if (!GetIsPC(oPC)) return;
|
|
effect eSnore = EffectVisualEffect(VFX_IMP_SLEEP);
|
|
effect eBlind = SupernaturalEffect(EffectBlindness());
|
|
effect eCollapse = SupernaturalEffect(EffectSleep());
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCollapse, oPC, 30.0);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSnore, oPC, 7.0);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlind, oPC, 29.0);
|
|
DelayCommand(7.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSnore, oPC, 7.0));
|
|
|
|
if (message!="") FloatingTextStringOnCreature(message, oPC, FALSE);
|
|
}
|
|
|
|
void MakePCDrunk(object oPC, int IntLoss, string message = "")
|
|
{
|
|
if (!GetIsPC(oPC)) return;
|
|
AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,
|
|
SupernaturalEffect(EffectAbilityDecrease( ABILITY_INTELLIGENCE, IntLoss)), oPC, 30.0));
|
|
if (message!="") FloatingTextStringOnCreature(message, oPC, FALSE);
|
|
}
|