make erinyes more dangerous based on your alignment abuse */
| 5919 | |
| 5920 | /* make erinyes more dangerous based on your alignment abuse */ |
| 5921 | void |
| 5922 | adj_erinys(unsigned abuse) |
| 5923 | { |
| 5924 | struct permonst *pm = &mons[PM_ERINYS]; |
| 5925 | |
| 5926 | if (abuse > 5L) { |
| 5927 | pm->mflags1 |= M1_SEE_INVIS; |
| 5928 | } |
| 5929 | if (abuse > 10L) { |
| 5930 | pm->mflags1 |= M1_AMPHIBIOUS; |
| 5931 | } |
| 5932 | if (abuse > 15L) { |
| 5933 | pm->mflags1 |= M1_FLY; |
| 5934 | } |
| 5935 | if (abuse > 20L) { |
| 5936 | /* more powerful attack */ |
| 5937 | pm->mattk[0].damn = 3; |
| 5938 | } |
| 5939 | if (abuse > 25L) { |
| 5940 | pm->mflags1 |= M1_REGEN; |
| 5941 | } |
| 5942 | if (abuse > 30L) { |
| 5943 | pm->mflags1 |= M1_TPORT_CNTRL; |
| 5944 | } |
| 5945 | if (abuse > 35L) { |
| 5946 | /* second attack */ |
| 5947 | pm->mattk[1].aatyp = AT_WEAP; |
| 5948 | pm->mattk[1].adtyp = AD_DRST; |
| 5949 | pm->mattk[1].damn = 3; |
| 5950 | pm->mattk[1].damd = 4; |
| 5951 | } |
| 5952 | if (abuse > 40L) { |
| 5953 | pm->mflags1 |= M1_TPORT; |
| 5954 | } |
| 5955 | if (abuse > 50L) { |
| 5956 | /* third (spellcasting) attack */ |
| 5957 | pm->mattk[2].aatyp = AT_MAGC; |
| 5958 | pm->mattk[2].adtyp = AD_SPEL; |
| 5959 | pm->mattk[2].damn = 3; |
| 5960 | pm->mattk[2].damd = 4; |
| 5961 | } |
| 5962 | |
| 5963 | /* also adjust level and difficulty */ |
| 5964 | pm->mlevel = min(7 + u.ualign.abuse, 50); |
| 5965 | pm->difficulty = min(10 + (u.ualign.abuse / 3), 25); |
| 5966 | } |
| 5967 | |
| 5968 | /* mark individual monster type as seen from close-up, |
| 5969 | if we haven't seen it nearby before */ |
no outgoing calls
no test coverage detected