Crossfire Server, Branches 1.12
R18729
|
Go to the source code of this file.
Macros | |
#define | sqr(x) ((x)*(x)) |
Functions | |
int | dispel_rune (object *op, object *caster, object *spell, object *skill, int dir) |
static void | rune_attack (object *op, object *victim) |
void | spring_trap (object *trap, object *victim) |
void | trap_adjust (object *trap, int difficulty) |
int | trap_disarm (object *disarmer, object *trap, int risk, object *skill) |
int | trap_see (object *op, object *trap) |
int | trap_show (object *trap, object *where) |
int | write_rune (object *op, object *caster, object *spell, int dir, const char *runename) |
All rune-related functions.
Definition in file rune.c.
#define sqr | ( | x | ) | ((x)*(x)) |
Definition at line 43 of file rune.c.
Referenced by trap_disarm().
Someone is trying to disarm a rune. The actual attempt is done in trap_disarm().
op | object trying to disarm. |
caster | object casting the disarm spell. |
spell | actual spell for casting. |
skill | skill to disarm runes. |
dir | direction to disarm. |
0 | rune wasn't disarmed. |
1 | a rune was disarmed. |
Definition at line 323 of file rune.c.
References obj::above, obj::arch, obj::below, draw_ext_info(), free_object(), freearr_x, freearr_y, get_map_flags(), GET_MAP_OB, obj::inv, obj::map, MSG_TYPE_SPELL, MSG_TYPE_SPELL_FAILURE, MSG_TYPE_SPELL_SUCCESS, archt::name, NDI_UNIQUE, P_OUT_OF_MAP, remove_ob(), RUNE, SIGN, TRAP, trap_disarm(), obj::type, obj::x, and obj::y.
Referenced by cast_spell().
This function handles those runes which detonate but do not cast spells. Typically, poisoned or diseased runes.
op | rune. |
victim | victim of the rune. |
Definition at line 197 of file rune.c.
References obj::attacktype, obj::count, create_treasure(), liv::dam, mapdef::difficulty, DISEASE, free_object(), HAS_RANDOM_ITEMS, hit_map(), hit_player(), infect_object(), obj::inv, obj::map, obj::randomitems, remove_ob(), obj::stats, obj::type, and was_destroyed.
Referenced by spring_trap().
This function generalizes attacks by runes/traps. This ought to make it possible for runes to attack from the inventory, it'll spring the trap on the victim.
trap | trap that activates. |
victim | victim of the trap. |
Definition at line 227 of file rune.c.
References arch_to_object(), cast_spell(), archt::clone, obj::count, obj::direction, rv_vector::distance, draw_ext_info(), FLAG_ALIVE, FLAG_IS_LINKED, FLAG_IS_USED_UP, liv::food, free_object(), get_rangevector(), liv::hp, insert_ob_in_map(), obj::inv, obj::map, MAX, liv::maxhp, obj::msg, MSG_TYPE_APPLY, MSG_TYPE_APPLY_TRAP, NDI_UNIQUE, object_get_env_recursive(), obj::other_arch, PLAYER, QUERY_FLAG, remove_ob(), rune_attack(), SET_FLAG, SIGN, SPELL, obj::stats, trap_show(), obj::type, use_trigger(), was_destroyed, obj::x, and obj::y.
Referenced by attempt_pick_lock(), cfapi_object_spring_trap(), common_trap_type_move_on(), hit_player(), player_attack_door(), save_throw_object(), trap_disarm(), and treasure_type_apply().
void trap_adjust | ( | object * | trap, |
int | difficulty | ||
) |
Adjust trap difficulty to the map. The default traps are too strong for wimpy level 1 players, and unthreatening to anyone of high level
trap | trap to adjust. |
difficulty | map difficulty. |
Definition at line 508 of file rune.c.
References AT_DEATH, AT_POISON, obj::attacktype, liv::Cha, liv::dam, obj::inv, obj::level, obj::other_arch, rndm(), and obj::stats.
Try to disarm a trap/rune.
disarmer | object disarming the trap/rune. |
trap | trap to disarm. |
risk | if 0, trap/rune won't spring if disarm failure. Else it will spring. |
skill | spell used to disarm. |
Definition at line 459 of file rune.c.
References liv::dam, destroy_object(), liv::Dex, mapdef::difficulty, draw_ext_info(), draw_ext_info_format(), obj::inv, obj::level, obj::map, MAX, MIN, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_FAILURE, MSG_TYPE_COMMAND_SUCCESS, obj::name, NDI_UNIQUE, obj::owner, PLAYER, PREFER_LOW, random_roll(), spring_trap(), sqr, obj::stats, and obj::type.
Referenced by dispel_rune(), and remove_trap().
Should op see trap?
op | living that could spot the trap. |
trap | trap that is invisible. |
0 | trap wasn't spotted. |
1 | trap was spotted. |
Definition at line 403 of file rune.c.
References liv::Cha, mapdef::difficulty, draw_ext_info_format(), obj::level, obj::map, MAX, MIN, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, obj::name, NDI_UNIQUE, PREFER_HIGH, random_roll(), and obj::stats.
Referenced by find_traps().
Handles showing a trap/rune detonation.
trap | trap that detonates. |
where | object at the location to detonate. |
0 | no animation inserted. |
1 | animation inserted. |
Definition at line 431 of file rune.c.
References create_archetype(), obj::face, GET_ANIMATION, insert_ob_in_map(), obj::map, new_faces, obj::x, and obj::y.
Referenced by find_traps(), remove_trap(), and spring_trap().
Player is attempting to write a magical rune. This function does all checks for paths, sp/gr, ...
op | rune writer. |
caster | object used for casting this rune. |
spell | writing spell. |
dir | orientation of rune, direction rune's contained spell will be cast in, if applicable |
runename | name of the rune or message displayed by the rune for a rune of marking. |
0 | no rune was written. |
1 | rune written. |
Definition at line 66 of file rune.c.
References obj::above, add_string(), arch_to_object(), obj::below, blank_face, caster_level(), liv::Cha, copy_object(), create_archetype(), obj::direction, draw_ext_info(), draw_ext_info_format(), obj::face, freearr_x, freearr_y, GENERIC_RUNE, get_map_flags(), GET_MAP_OB, get_object(), liv::grace, insert_ob_in_map(), insert_ob_in_ob(), obj::inv, item_matched_string(), obj::level, obj::map, MAX_BUF, obj::msg, MSG_TYPE_SPELL, MSG_TYPE_SPELL_ERROR, obj::name, NDI_UNIQUE, obj::other_arch, obj::path_attuned, obj::path_denied, RUNE, set_owner(), set_spell_skill(), obj::skill, snprintf(), liv::sp, SP_level_spellpoint_cost(), SPELL, SPELL_GRACE, SPELL_MANA, obj::stats, obj::type, obj::x, and obj::y.
Referenced by cast_spell().