… | |
… | |
591 | |
591 | |
592 | /** |
592 | /** |
593 | * This does the prepare weapon scroll. |
593 | * This does the prepare weapon scroll. |
594 | * Checks for sacrifice, and so on. |
594 | * Checks for sacrifice, and so on. |
595 | */ |
595 | */ |
596 | |
|
|
597 | int |
596 | int |
598 | prepare_weapon (object *op, object *improver, object *weapon) |
597 | prepare_weapon (object *op, object *improver, object *weapon) |
599 | { |
598 | { |
600 | int sacrifice_count, i; |
599 | int sacrifice_count, i; |
601 | char buf[MAX_BUF]; |
600 | char buf[MAX_BUF]; |
… | |
… | |
603 | if (weapon->level != 0) |
602 | if (weapon->level != 0) |
604 | { |
603 | { |
605 | new_draw_info (NDI_UNIQUE, 0, op, "Weapon already prepared."); |
604 | new_draw_info (NDI_UNIQUE, 0, op, "Weapon already prepared."); |
606 | return 0; |
605 | return 0; |
607 | } |
606 | } |
|
|
607 | |
608 | for (i = 0; i < NROFATTACKS; i++) |
608 | for (i = 0; i < NROFATTACKS; i++) |
609 | if (weapon->resist[i]) |
609 | if (weapon->resist[i]) |
610 | break; |
610 | break; |
611 | |
611 | |
612 | /* If we break out, i will be less than nrofattacks, preventing |
612 | /* If we break out, i will be less than nrofattacks, preventing |
… | |
… | |
618 | weapon->stats.ac) /* AC - only taifu's I think */ |
618 | weapon->stats.ac) /* AC - only taifu's I think */ |
619 | { |
619 | { |
620 | new_draw_info (NDI_UNIQUE, 0, op, "Cannot prepare magic weapons."); |
620 | new_draw_info (NDI_UNIQUE, 0, op, "Cannot prepare magic weapons."); |
621 | return 0; |
621 | return 0; |
622 | } |
622 | } |
|
|
623 | |
623 | sacrifice_count = check_sacrifice (op, improver); |
624 | sacrifice_count = check_sacrifice (op, improver); |
624 | if (sacrifice_count <= 0) |
625 | if (sacrifice_count <= 0) |
625 | return 0; |
626 | return 0; |
|
|
627 | |
626 | weapon->level = isqrt (sacrifice_count); |
628 | weapon->level = isqrt (sacrifice_count); |
627 | new_draw_info (NDI_UNIQUE, 0, op, "Your sacrifice was accepted."); |
629 | new_draw_info (NDI_UNIQUE, 0, op, "Your sacrifice was accepted."); |
628 | eat_item (op, improver->slaying, sacrifice_count); |
630 | eat_item (op, improver->slaying, sacrifice_count); |
629 | |
631 | |
630 | new_draw_info_format (NDI_UNIQUE, 0, op, "Your *%s may be improved %d times.", &weapon->name, weapon->level); |
632 | new_draw_info_format (NDI_UNIQUE, 0, op, "Your *%s may be improved %d times.", &weapon->name, weapon->level); |