… | |
… | |
122 | * great a plus, the default is used. |
122 | * great a plus, the default is used. |
123 | * The # of arrows created also goes up with level, so if a 30th level mage |
123 | * The # of arrows created also goes up with level, so if a 30th level mage |
124 | * wants LOTS of arrows, and doesn't care what the plus is he could |
124 | * wants LOTS of arrows, and doesn't care what the plus is he could |
125 | * create nonnmagic arrows, or even -1, etc... |
125 | * create nonnmagic arrows, or even -1, etc... |
126 | */ |
126 | */ |
127 | |
|
|
128 | int |
127 | int |
129 | cast_create_missile (object *op, object *caster, object *spell, int dir, const char *stringarg) |
128 | cast_create_missile (object *op, object *caster, object *spell, int dir, const char *stringarg) |
130 | { |
129 | { |
131 | int missile_plus = 0, bonus_plus = 0; |
130 | int missile_plus = 0, bonus_plus = 0; |
132 | const char *missile_name; |
131 | const char *missile_name; |
… | |
… | |
256 | && at_tmp->weight < at->weight))) |
255 | && at_tmp->weight < at->weight))) |
257 | at = at_tmp; |
256 | at = at_tmp; |
258 | } |
257 | } |
259 | } |
258 | } |
260 | } |
259 | } |
|
|
260 | |
261 | /* Pretty unlikely (there are some very low food items), but you never |
261 | /* Pretty unlikely (there are some very low food items), but you never |
262 | * know |
262 | * know |
263 | */ |
263 | */ |
264 | if (!at) |
264 | if (!at) |
265 | { |
265 | { |
… | |
… | |
290 | if (!dir) |
290 | if (!dir) |
291 | { |
291 | { |
292 | examine_monster (op, op); |
292 | examine_monster (op, op); |
293 | return 1; |
293 | return 1; |
294 | } |
294 | } |
|
|
295 | |
295 | maxrange = spell_ob->range + SP_level_range_adjust (caster, spell_ob); |
296 | maxrange = spell_ob->range + SP_level_range_adjust (caster, spell_ob); |
296 | for (r = 1; r < maxrange; r++) |
297 | for (r = 1; r < maxrange; r++) |
297 | { |
298 | { |
298 | sint16 x = op->x + r * freearr_x[dir], y = op->y + r * freearr_y[dir]; |
299 | sint16 x = op->x + r * freearr_x[dir], y = op->y + r * freearr_y[dir]; |
299 | |
300 | |
… | |
… | |
319 | examine_monster (op, tmp); |
320 | examine_monster (op, tmp); |
320 | return 1; |
321 | return 1; |
321 | } |
322 | } |
322 | } |
323 | } |
323 | } |
324 | } |
|
|
325 | |
324 | new_draw_info (NDI_UNIQUE, 0, op, "You detect nothing."); |
326 | new_draw_info (NDI_UNIQUE, 0, op, "You detect nothing."); |
325 | return 1; |
327 | return 1; |
326 | } |
328 | } |
327 | |
|
|
328 | |
329 | |
329 | /* This checks to see if 'pl' is invisible to 'mon'. |
330 | /* This checks to see if 'pl' is invisible to 'mon'. |
330 | * does race check, undead check, etc |
331 | * does race check, undead check, etc |
331 | * Returns TRUE if mon can't see pl, false |
332 | * Returns TRUE if mon can't see pl, false |
332 | * otherwise. This doesn't check range, walls, etc. It |
333 | * otherwise. This doesn't check range, walls, etc. It |