/**************************************************************************/
// magic_ti.cpp - spells/skills written by Tibault
/***************************************************************************
* The Dawn of Time v1.69r (c)1997-2004 Michael Garratt *
* >> A number of people have contributed to the Dawn codebase, with the *
* majority of code written by Michael Garratt - www.dawnoftime.org *
* >> To use this source code, you must fully comply with the dawn license *
* in licenses.txt... In particular, you may not remove this copyright *
* notice. *
**************************************************************************/
#include "include.h"
#include "magic.h"
#include "o_lookup.h"
/**************************************************************************/
SPRESULT spell_higher_learning( int sn, int level, char_data *ch, void *, int )
{
AFFECT_DATA af;
char_data *victim;
connection_data *d;
int alignStray;
if ( is_affected( ch, sn ))
{
ch->println("You already feel inspired.");
return HALF_MANA;
}
for (d = connection_list; d != NULL; d = d->next)
{
victim = d->character;
if (victim && !IS_OOC(victim) && !IS_NPC(victim) && !is_affected( victim, sn) )
{
alignStray = abs(ch->alliance - victim->alliance);
af.where = WHERE_AFFECTS;
af.type = sn;
af.location = APPLY_RE;
af.level = level;
if ( ch == victim ) {
af.duration = level/3;
af.modifier = level/20;
} else {
af.duration = level/6;
af.modifier = level/8 - (level*alignStray/30);
}
af.bitvector = 0;
affect_to_char( victim, &af );
if ( ch == victim ) {
af.where = WHERE_AFFECTS;
af.type = sn;
af.location = APPLY_SD;
af.level = level;
af.duration = 5;
af.modifier = -level/5;
af.bitvector = 0;
affect_to_char( victim, &af );
ch->println("You pray to your deity for inspiration throughout the realm!");
ch->println("You feel a little light-headed.");
} else {
victim->println("You feel inspired by divine intervention.");
}
}
}
ch->pcdata->tired += 25;
ch->pcdata->condition[COND_THIRST] = 0;
ch->pcdata->condition[COND_HUNGER] = 0;
return FULL_MANA;
}
/**************************************************************************/
SPRESULT spell_detect_treeform( int sn, int level, char_data *ch, void *vo,int )
{
char_data *victim = (char_data *) vo;
AFFECT_DATA af;
if ( IS_AFFECTED2(victim, AFF2_DETECT_TREEFORM) )
{
if (victim == ch)
ch->printf( "You area already one with nature.\r\n" );
else
act("$N is already in touch with nature.",ch,NULL,victim,TO_CHAR);
return HALF_MANA;
}
af.where = WHERE_AFFECTS2;
af.type = sn;
af.level = level;
af.duration = level/2;
af.modifier = 0;
af.location = APPLY_NONE;
af.bitvector = AFF2_DETECT_TREEFORM;
affect_to_char( victim, &af );
victim->printf( "You feel more in touch with nature.\r\n" );
act("$n is surrounded with a `#`ggreen`^ aura.", ch, NULL, victim, TO_NOTVICT);
if ( ch != victim )
ch->printf( "Ok.\r\n" );
return FULL_MANA;
}
/**************************************************************************/
/**************************************************************************/