… | |
… | |
2596 | // we do not model noise in the map, so instead put |
2596 | // we do not model noise in the map, so instead put |
2597 | // a temporary light into the noise source |
2597 | // a temporary light into the noise source |
2598 | // could use the map instead, but that's less reliable for our |
2598 | // could use the map instead, but that's less reliable for our |
2599 | // goal, which is to make invisibility a bit harder to exploit |
2599 | // goal, which is to make invisibility a bit harder to exploit |
2600 | |
2600 | |
|
|
2601 | // currently only works sensibly for players |
|
|
2602 | if (!is_player ()) |
|
|
2603 | return; |
|
|
2604 | |
2601 | // find old force, or create new one |
2605 | // find old force, or create new one |
2602 | object *force = force_find (shstr_noise_force); |
2606 | object *force = force_find (shstr_noise_force); |
2603 | |
2607 | |
2604 | if (force) |
2608 | if (force) |
2605 | force->speed = 1.f / 4; // patch old speed up |
2609 | force->speed = 1.f / 4; // patch old speed up |
2606 | else |
2610 | else |
2607 | { |
|
|
2608 | force = get_archetype (shstr_noise_force); |
2611 | force_add (shstr_noise_force, 4); |
2609 | |
|
|
2610 | force->slaying = name; |
|
|
2611 | force->stats.food = 1; |
|
|
2612 | force->speed_left = -1.f; |
|
|
2613 | |
|
|
2614 | force->set_speed (1.f / 4); |
|
|
2615 | force->flag [FLAG_IS_USED_UP] = true; |
|
|
2616 | force->flag [FLAG_APPLIED] = true; |
|
|
2617 | |
|
|
2618 | insert (force); |
|
|
2619 | } |
|
|
2620 | } |
2612 | } |
2621 | |
2613 | |