| 2649 | } |
| 2650 | |
| 2651 | void |
| 2652 | altar_wrath(coordxy x, coordxy y) |
| 2653 | { |
| 2654 | aligntyp altaralign = a_align(x, y); |
| 2655 | |
| 2656 | if (u.ualign.type == altaralign && u.ualign.record > -rn2(4)) { |
| 2657 | godvoice(altaralign, "How darest thou desecrate my altar!"); |
| 2658 | (void) adjattrib(A_WIS, -1, FALSE); |
| 2659 | u.ualign.record--; |
| 2660 | } else { |
| 2661 | pline("%s %s%s:", |
| 2662 | !Deaf ? "A voice (could it be" |
| 2663 | : "Despite your deafness, you seem to hear", |
| 2664 | align_gname(altaralign), |
| 2665 | !Deaf ? "?) whispers" : " say"); |
| 2666 | SetVoice((struct monst *) 0, 0, 80, voice_deity); |
| 2667 | verbalize("Thou shalt pay, infidel!"); |
| 2668 | /* higher luck is more likely to be reduced; as it approaches -5 |
| 2669 | the chance to lose another point drops down, eventually to 0 */ |
| 2670 | if (Luck > -5 && rn2(Luck + 6)) |
| 2671 | change_luck(rn2(20) ? -1 : -2); |
| 2672 | } |
| 2673 | } |
| 2674 | |
| 2675 | /* assumes isok() at one space away, but not necessarily at two */ |
| 2676 | staticfn boolean |
no test coverage detected