… | |
… | |
885 | object *tmp; |
885 | object *tmp; |
886 | int attempt_shadow_alchemy; |
886 | int attempt_shadow_alchemy; |
887 | |
887 | |
888 | ave_chance = fl->total_chance / (float)fl->number; |
888 | ave_chance = fl->total_chance / (float)fl->number; |
889 | |
889 | |
890 | ability += (int) (skill->level * ((4.0 + cauldron->magic) / 4.0)); |
890 | ability += skill->level * ((4.0 + cauldron->magic) / 4.0); |
891 | |
891 | |
892 | /* determine value of ingredients */ |
892 | /* determine value of ingredients */ |
893 | value_ingredients = 0; |
893 | value_ingredients = 0; |
894 | for (tmp = cauldron->inv; tmp; tmp = tmp->below) |
894 | for (tmp = cauldron->inv; tmp; tmp = tmp->below) |
895 | value_ingredients += query_cost (tmp, NULL, F_TRUE); |
895 | value_ingredients += query_cost (tmp, NULL, F_TRUE); |
… | |
… | |
916 | "Forcing failure for shadow alchemy recipe because price of ingredients (%llu) is less than price of result (%llu).\n", |
916 | "Forcing failure for shadow alchemy recipe because price of ingredients (%llu) is less than price of result (%llu).\n", |
917 | value_ingredients, value_item); |
917 | value_ingredients, value_item); |
918 | #endif |
918 | #endif |
919 | } |
919 | } |
920 | /* roll the dice */ |
920 | /* roll the dice */ |
921 | else if ((float) (random_roll (0, 101, caster, PREFER_LOW)) <= 100.0 * success_chance) |
921 | else if (random_roll (0, 101, caster, PREFER_LOW) <= 100.0 * success_chance) |
922 | { |
922 | { |
923 | change_exp (caster, rp->exp, rp->skill, SK_EXP_NONE); |
923 | change_exp (caster, rp->exp, rp->skill, SK_EXP_NONE); |
924 | |
924 | |
925 | // let alchemy consume some time, so that exploits are less easy |
925 | // let alchemy consume some time, so that exploits are less easy |
926 | caster->speed_left -= 1.0; |
926 | caster->speed_left -= 1.0; |