static void attack_good() { object ply; if (!objectp(ply = this_player()) || ply->query_invis() || is_evil(ply)) { return; } do_attack(ply); }
void Character::spell_enchant_weapon (int sn, int lvl, void *vo) { Object *obj = (Object *) vo; Affect *paf; if (obj->item_type != ITEM_WEAPON || obj->is_obj_stat(ITEM_MAGIC) || !obj->affected.empty()) return; paf = new Affect(); paf->type = sn; paf->duration = -1; paf->location = APPLY_HITROLL; paf->modifier = lvl / 5; paf->bitvector = 0; obj->affected.push_back(paf); paf = new Affect(); paf->type = -1; paf->duration = -1; paf->location = APPLY_DAMROLL; paf->modifier = lvl / 10; paf->bitvector = 0; obj->affected.push_back(paf); obj->level = number_fuzzy (level - 5); if (is_good ()) { SET_BIT (obj->extra_flags, ITEM_ANTI_EVIL); act ("$p glows blue.", obj, NULL, TO_CHAR); } else if (is_evil ()) { SET_BIT (obj->extra_flags, ITEM_ANTI_GOOD); act ("$p glows red.", obj, NULL, TO_CHAR); } else { SET_BIT (obj->extra_flags, ITEM_ANTI_EVIL); SET_BIT (obj->extra_flags, ITEM_ANTI_GOOD); act ("$p glows yellow.", obj, NULL, TO_CHAR); } send_to_char ("Ok.\r\n"); return; }
bool is_aggressive( char_data* ch, char_data* victim ) { char_data* opponent; if( ch == victim || ch->position <= POS_SLEEPING ) return FALSE; if( ( opponent = victim->fighting ) != NULL ) if( join_fight( opponent, victim, ch ) ) return TRUE; if( ch->pcdata != NULL || is_set( &victim->in_room->room_flags, RFLAG_SAFE ) || !victim->Seen( ch ) ) return FALSE; if( ch->shdata->race == RACE_PLANT && is_set( victim->affected_by, AFF_PROT_PLANTS ) ) return FALSE; if( is_evil( victim ) ) if( is_set( &ch->status, STAT_AGGR_EVIL ) && is_set( ch->affected_by, AFF_DETECT_EVIL ) ) return TRUE; else if( is_good( victim ) ) if( is_set( &ch->status, STAT_AGGR_GOOD ) && is_set( ch->affected_by, AFF_DETECT_GOOD ) ) return TRUE; if( is_set( &ch->status, STAT_PET ) ) return FALSE; if( victim->species == NULL ) { if( victim->shdata->level >= LEVEL_BUILDER ) return FALSE; if( is_set( &ch->status, STAT_AGGR_ALL ) || is_enemy( ch, victim ) ) return TRUE; } return FALSE; }
static int modify_damage(int dmg, string type, object foe, string loc, int prot, int resist, int vuln, int ac, object wpn) { object env; if (!objectp(env = environment())) { return 0; } if (lower_case(type) == "fire") { tell_room(env, "The demon does not seem to be affected by the fire.\n"); heal_self(dmg / 2); return -dmg; } if (is_evil(wpn)) { return -dmg / 2; } if (dmg > 30) { command("scream ago"); } if (resist < -10) { command("cackle"); } if (prot < -20) { command("hydr ehv"); } if (dmg < 10 && random(100) > 25) { return 0; } if (is_good(wpn)) { tell_object(foe, "Your " + wpn->query_name() + " rips straight " + "through the demon's skin!\n"); return 2 * dmg; } if (is_good(foe)) { tell_object(foe, "You rip straight through the demon's skin.\n"); return dmg; } return 0; }
void Character::spell_dispel_evil (int sn, int lvl, void *vo) { Character *victim = (Character *) vo; if (!is_npc () && is_evil ()) victim = this; if (victim->is_good ()) { act ("God protects $N.", NULL, victim, TO_ROOM); return; } if (victim->is_neutral ()) { act ("$N does not seem to be affected.", NULL, victim, TO_CHAR); return; } int dam = dice (lvl, 4); if (victim->saves_spell (lvl)) dam /= 2; damage (this, victim, dam, sn); return; }
int print_properties_num(longnum num) { printf("%llu:\nprime factors: ", num); print_prime_factors(num); printf("\n"); if ( is_abundant(num) ) printf(" abundant"); if ( is_amicable(num) ) printf(" amicable"); if ( is_apocalyptic_power(num) ) printf(" apocalyptic_power"); if ( is_aspiring(num) ) printf(" aspiring"); if ( is_automorphic(num) ) printf(" automorphic"); if ( is_cake(num) ) printf(" cake"); if ( is_carmichael(num) ) printf(" carmichael"); if ( is_catalan(num) ) printf(" catalan"); if ( is_composite(num) ) printf(" composite"); if ( is_compositorial(num) ) printf(" compositorial"); if ( is_cube(num) ) printf(" cube"); if ( is_deficient(num) ) printf(" deficient"); if ( is_easy_to_remember(num) ) printf(" easy_to_remember"); if ( is_ecci1(num) ) printf(" ecci1"); if ( is_ecci2(num) ) printf(" ecci2"); if ( is_even(num) ) printf(" even"); if ( is_evil(num) ) printf(" evil"); if ( is_factorial(num) ) printf(" factorial"); if ( is_fermat(num) ) printf(" fermat"); if ( is_fibonacci(num) ) printf(" fibonacci"); if ( is_google(num) ) printf(" google"); if ( is_happy(num) ) printf(" happy"); if ( is_hungry(num) ) printf(" hungry"); if ( is_hypotenuse(num) ) printf(" hypotenuse"); if ( is_lazy_caterer(num) ) printf(" lazy_caterer"); if ( is_lucky(num) ) printf(" lucky"); if ( is_mersenne_prime(num) ) printf(" mersenne_prime"); if ( is_mersenne(num) ) printf(" mersenne"); if ( is_narcissistic(num) ) printf(" narcissistic"); if ( is_odd(num) ) printf(" odd"); if ( is_odious(num) ) printf(" odious"); if ( is_palindrome(num) ) printf(" palindrome"); if ( is_palindromic_prime(num) ) printf(" palindromic_prime"); if ( is_parasite(num) ) printf(" parasite"); if ( is_pentagonal(num) ) printf(" pentagonal"); if ( is_perfect(num) ) printf(" perfect"); if ( is_persistent(num) ) printf(" persistent"); if ( is_power_of_2(num) ) printf(" power_of_2"); if ( is_powerful(num) ) printf(" powerful"); if ( is_practical(num) ) printf(" practical"); if ( is_prime(num) ) printf(" prime"); if ( is_primorial(num) ) printf(" primorial"); if ( is_product_perfect(num) ) printf(" product_perfect"); if ( is_pronic(num) ) printf(" pronic"); if ( is_repdigit(num) ) printf(" repdigit"); if ( is_repunit(num) ) printf(" repunit"); if ( is_smith(num) ) printf(" smith"); if ( is_sociable(num) ) printf(" sociable"); if ( is_square_free(num) ) printf(" square_free"); if ( is_square(num) ) printf(" square"); if ( is_tetrahedral(num) ) printf(" tetrahedral"); if ( is_triangular(num) ) printf(" triangular"); if ( is_twin(num) ) printf(" twin"); if ( is_ulam(num) ) printf(" ulam"); if ( is_undulating(num) ) printf(" undulating"); if ( is_untouchable(num) ) printf(" untouchable"); if ( is_vampire(num) ) printf(" vampire"); if ( is_weird(num) ) printf(" weird"); printf("\n\n"); return 0; }