void spell_bless(byte level, struct char_data *ch, void spell_bless(byte level, struct char_data *ch, struct char_data *victim, struct obj_data *obj) struct char_data *victim, struct obj_data *obj) { { struct affected_type af; struct affected_type af; | assert(ch && (victim || obj)); | if(ch && (victim || obj)){ assert((level >= 0) && (level <= 50)); | | if (obj) { if (obj) { | if((5*level > GET_OBJ_WEIGHT(obj)) && if ( (5*GET_LEVEL(ch) > GET_OBJ_WEIGHT(obj)) && | (GET_POS(ch) != POSITION_FIGHTING) && (GET_POS(ch) != POSITION_FIGHTING) && | !IS_OBJ_STAT(obj, ITEM_EVIL)) { !IS_OBJ_STAT(obj, ITEM_EVIL)) { | SET_BIT(obj->obj_flags.extra_flags, ITEM_BLESS); SET_BIT(obj->obj_flags.extra_flags, ITEM_BLESS); | act("$p briefly glows.",FALSE,ch,obj,0,TO_CHAR); act("$p briefly glows.",FALSE,ch,obj,0,TO_CHAR); | } } | } else { } else { | if(!victim)return; | if (affected_by_spell(victim, SPELL_BLESS)) if ((GET_POS(victim) != POSITION_FIGHTING) && | affect_from_char(victim, SPELL_BLESS); (!affected_by_spell(victim, SPELL_BLESS))) { | | send_to_char("The spectral image of a raven soars down send_to_char("You feel righteous.\n\r", victim); < af.type = SPELL_BLESS; af.type = SPELL_BLESS; af.duration = 6+level; af.duration = 6+level; af.modifier = 1; | af.modifier = 5; af.location = APPLY_HITROLL; af.location = APPLY_HITROLL; af.bitvector = 0; | af.bitvector = 0; affect_to_char(victim, &af); affect_to_char(victim, &af); af.location = APPLY_SAVING_SPELL; af.location = APPLY_SAVING_SPELL; af.modifier = -1; /* Make better */ af.modifier = -1; /* Make better */ affect_to_char(victim, &af); affect_to_char(victim, &af); } } } } } }