… | |
… | |
291 | |
291 | |
292 | /* this should be passed to this fctn, not effiecent cpu use this way */ |
292 | /* this should be passed to this fctn, not effiecent cpu use this way */ |
293 | int batches = abs (nbatches); |
293 | int batches = abs (nbatches); |
294 | |
294 | |
295 | |
295 | |
296 | LOG (llevDebug, "A %s <=> %s\n", &(rp->cauldron), &(cauldron->arch->name)); |
|
|
297 | /* is the cauldron the right type? */ |
296 | /* is the cauldron the right type? */ |
298 | if (strcmp (rp->cauldron, cauldron->arch->name) != 0) |
297 | if (strcmp (rp->cauldron, cauldron->arch->name) != 0) |
299 | { |
298 | { |
300 | new_draw_info (NDI_UNIQUE, 0, caster, "You are not using the proper" " facilities for this formula."); |
299 | new_draw_info (NDI_UNIQUE, 0, caster, "You are not using the proper" " facilities for this formula."); |
301 | return 0; |
300 | return 0; |
… | |
… | |
309 | /* code required for this recipe, search the caster */ |
308 | /* code required for this recipe, search the caster */ |
310 | if (rp->keycode) |
309 | if (rp->keycode) |
311 | { |
310 | { |
312 | object *tmp; |
311 | object *tmp; |
313 | |
312 | |
314 | for (tmp = caster->inv; tmp != NULL; tmp = tmp->below) |
313 | for (tmp = caster->inv; tmp; tmp = tmp->below) |
315 | { |
314 | { |
316 | if (tmp->type == FORCE && tmp->slaying && !strcmp (rp->keycode, tmp->slaying)) |
315 | if (tmp->type == FORCE && tmp->slaying && !strcmp (rp->keycode, tmp->slaying)) |
317 | break; |
316 | break; |
318 | } |
317 | } |
|
|
318 | |
319 | if (tmp == NULL) |
319 | if (!tmp) |
320 | { /* failure--no code found */ |
320 | { /* failure--no code found */ |
321 | new_draw_info (NDI_UNIQUE, 0, caster, "You know the ingredients," " but not the technique. Go learn how to do this recipe."); |
321 | new_draw_info (NDI_UNIQUE, 0, caster, "You know the ingredients," " but not the technique. Go learn how to do this recipe."); |
322 | return 0; |
322 | return 0; |
323 | } |
323 | } |
324 | } |
324 | } |
… | |
… | |
341 | /* new_draw_info_format(NDI_UNIQUE, 0,caster, |
341 | /* new_draw_info_format(NDI_UNIQUE, 0,caster, |
342 | "Your spell causes the %s to explode!",&cauldron->name); */ |
342 | "Your spell causes the %s to explode!",&cauldron->name); */ |
343 | /* kaboom_cauldron(); */ |
343 | /* kaboom_cauldron(); */ |
344 | } |
344 | } |
345 | else |
345 | else |
346 | { |
|
|
347 | new_draw_info_format (NDI_UNIQUE, 0, caster, "The %s %s.", &cauldron->name, cauldron_sound ()); |
346 | new_draw_info_format (NDI_UNIQUE, 0, caster, "The %s %s.", &cauldron->name, cauldron_sound ()); |
348 | } |
|
|
349 | } |
347 | } |
|
|
348 | |
350 | return item; |
349 | return item; |
351 | } |
350 | } |
352 | |
351 | |
353 | |
352 | |
354 | |
353 | |
355 | /**
|
354 | /** |
356 | * We adjust the nrof, exp and level of the final product, based |
355 | * We adjust the nrof, exp and level of the final product, based |
357 | * on the item's default parameters, and the relevant caster skill level.
|
356 | * on the item's default parameters, and the relevant caster skill level.
|
358 | */ |
357 | */ |
359 |
void |
358 | void |
360 | adjust_product (object *item, int lvl, int yield) |
359 | adjust_product (object *item, int lvl, int yield) |
361 | { |
360 | { |
362 | int nrof = 1; |
361 | int nrof = 1; |
363 | |
362 | |
364 | if (!yield) |
363 | if (!yield) |
365 | yield = 1; |
364 | yield = 1; |
|
|
365 | |
366 | if (lvl <= 0) |
366 | if (lvl <= 0) |
367 | lvl = 1; /* lets avoid div by zero! */ |
367 | lvl = 1; /* lets avoid div by zero! */ |
|
|
368 | |
368 | if (item->nrof) |
369 | if (item->nrof) |
369 | { |
370 | { |
370 | nrof = (int) ((1.0 - 1.0 / (lvl / 10.0 + 1.0)) * (rndm (0, yield - 1) + rndm (0, yield - 1) + rndm (0, yield - 1)) + 1); |
371 | nrof = (int) ((1.0 - 1.0 / (lvl / 10.0 + 1.0)) * (rndm (0, yield - 1) + rndm (0, yield - 1) + rndm (0, yield - 1)) + 1); |
|
|
372 | |
371 | if (nrof > yield) |
373 | if (nrof > yield) |
372 | nrof = yield; |
374 | nrof = yield; |
|
|
375 | |
373 | item->nrof = nrof; |
376 | item->nrof = nrof; |
374 | } |
377 | } |
375 | } |
378 | } |
376 | |
379 | |
377 | |
380 | |