Further file organization

Further file organization
This commit is contained in:
Jaysyn904
2023-08-23 22:11:00 -04:00
parent 3062876237
commit d87fe14826
22364 changed files with 0 additions and 3253 deletions

View File

@@ -0,0 +1,68 @@
/*
prc_dnc_scabtch
Scabrous Touch
Does contagion spell on touch
*/
#include "prc_sp_func"
#include "prc_inc_sp_tch"
void main()
{
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nClass = GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oCaster);
int iAttackRoll = PRCDoMeleeTouchAttack(oTarget);
if (iAttackRoll > 0)
{
int nDC = 10 + nClass/2 + GetAbilityModifier(ABILITY_CHARISMA, oCaster);
int nRand = Random(7)+1;
int nDisease;
//Use a random seed to determine the disease that will be delivered.
switch (nRand)
{
case 1:
nDisease = DISEASE_CONTAGION_BLINDING_SICKNESS;
break;
case 2:
nDisease = DISEASE_CONTAGION_CACKLE_FEVER;
break;
case 3:
nDisease = DISEASE_CONTAGION_FILTH_FEVER;
break;
case 4:
nDisease = DISEASE_CONTAGION_MINDFIRE;
break;
case 5:
nDisease = DISEASE_CONTAGION_RED_ACHE;
break;
case 6:
nDisease = DISEASE_CONTAGION_SHAKES;
break;
case 7:
nDisease = DISEASE_CONTAGION_SLIMY_DOOM;
break;
}
if(!GetIsReactionTypeFriendly(oTarget))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CONTAGION));
effect eDisease = EffectDisease(nDisease);
// Make the real first save against the spell's DC
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_SPELL))
{
//The effect is permament because the disease subsystem has its own internal resolution
//system in place.
// The first disease save is against an impossible fake DC, since at this point the
// target has already failed their real first save.
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDisease, oTarget);
}
}
}
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, PRCGetSpellId()));
}