"I am sometimes shocked by... the nuns who never take a bath without * wearing a bathrobe all the time. When asked why, since no man can see them, * they reply 'Oh, but you forget the good God'. Apparently they conceive of * the Deity as a Peeping Tom, whose omnipotence enables Him to see through * bathroom walls, but who is foiled by bathrobes." --Bertrand Russell, 1943 * Divine wrath, dun
| 607 | * Divine wrath, dungeon walls, and armor follow the same principle. |
| 608 | */ |
| 609 | staticfn void |
| 610 | god_zaps_you(aligntyp resp_god) |
| 611 | { |
| 612 | if (u.uswallow) { |
| 613 | pline( |
| 614 | "Suddenly a bolt of lightning comes down at you from the heavens!"); |
| 615 | pline("It strikes %s!", mon_nam(u.ustuck)); |
| 616 | if (!resists_elec(u.ustuck)) { |
| 617 | pline("%s fries to a crisp!", Monnam(u.ustuck)); |
| 618 | /* Yup, you get experience. It takes guts to successfully |
| 619 | * pull off this trick on your god, anyway. |
| 620 | * Other credit/blame applies (luck or alignment adjustments), |
| 621 | * but not direct kill count (pacifist conduct). |
| 622 | */ |
| 623 | xkilled(u.ustuck, XKILL_NOMSG | XKILL_NOCONDUCT); |
| 624 | } else |
| 625 | pline("%s seems unaffected.", Monnam(u.ustuck)); |
| 626 | } else { |
| 627 | pline("Suddenly, a bolt of lightning strikes you!"); |
| 628 | if (Reflecting) { |
| 629 | shieldeff(u.ux, u.uy); |
| 630 | if (Blind) |
| 631 | pline("For some reason you're unaffected."); |
| 632 | else |
| 633 | (void) ureflects("%s reflects from your %s.", "It"); |
| 634 | monstseesu(M_SEEN_REFL); |
| 635 | } else if (Shock_resistance) { |
| 636 | shieldeff(u.ux, u.uy); |
| 637 | pline("It seems not to affect you."); |
| 638 | monstseesu(M_SEEN_ELEC); |
| 639 | monstunseesu(M_SEEN_REFL); |
| 640 | } else { |
| 641 | fry_by_god(resp_god, FALSE); |
| 642 | monstunseesu(M_SEEN_REFL | M_SEEN_ELEC); |
| 643 | } |
| 644 | } |
| 645 | |
| 646 | pline("%s is not deterred...", align_gname(resp_god)); |
| 647 | if (u.uswallow) { |
| 648 | pline("A wide-angle disintegration beam aimed at you hits %s!", |
| 649 | mon_nam(u.ustuck)); |
| 650 | if (!resists_disint(u.ustuck)) { |
| 651 | pline("%s disintegrates into a pile of dust!", Monnam(u.ustuck)); |
| 652 | xkilled(u.ustuck, XKILL_NOMSG | XKILL_NOCORPSE | XKILL_NOCONDUCT); |
| 653 | } else |
| 654 | pline("%s seems unaffected.", Monnam(u.ustuck)); |
| 655 | } else { |
| 656 | pline("A wide-angle disintegration beam hits you!"); |
| 657 | |
| 658 | /* disintegrate shield and body armor before disintegrating |
| 659 | * the impudent mortal, like black dragon breath -3. |
| 660 | */ |
| 661 | if (uarms && !(EReflecting & W_ARMS) |
| 662 | && !(EDisint_resistance & W_ARMS)) |
| 663 | (void) disintegrate_arm(uarms); |
| 664 | if (uarmc && !(EReflecting & W_ARMC) |
| 665 | && !(EDisint_resistance & W_ARMC)) |
| 666 | (void) disintegrate_arm(uarmc); |
no test coverage detected