when attempting to use (controlled) berserk while wielding an inappropriate weapon. (FR 1956656)
Make monsters stop patrolling/travelling if they change levels (or are banished).
Disable the friendly pickup toggle for characters unable to use them. Currently, only worshippers of TSO and Beogh are capable of gaining allies that are permanent (not summoned), permanently friendly (not charmed) and intelligent enough to pick up stuff (no zombies). I don't know if you keep your friends if you leave TSO. If so, the toggle should be enabled while that is the case (i.e. if you're still worshipping a good god)
Re-order the wizmode commands in the help screen. They're now not listed strictly alphabetically anymore, but rather sorted into different categories that should make actually finding commands easier.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5819 c06c8d41-db1a-0410-9941-cceddc491573
BINKDWGFGUPTOA7IE5KK4ZIELGU5WC3X47MYXOWU4X43EGAC5DUAC
ZHIAOVRIUZ2SHSLYRMQKTJENFRYL5O7SGLAQNRFY2ZS2MZEWGUVAC
6UPER45WCBHPKPFFOIRO634DPLDJA53E4OLPKRPDZE2C5NIY6V3AC
KATZLWENEIQMKKWIV4ZLXJ5HFUW6SU5K4ZU6NENBOL4XAAVTDUKAC
AV3T4BN5IFAAE4CQURI5BKTUW22AKA7DVCTPXM4ZVCI6P62UULCAC
5KTPCJG42MF2B34CEH6VXAJIOZR6QOS2BWYNW7DXM3WA7N3GH4HQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
HAI4YDKI72OBDT5KMMVCO3DOU765OPWCU7GTRKTALFNSDOI4R2LAC
IBOWTB7TZLGE454RTNFG3L3VCSBSU6A43AZ3TSAH545QFV7OEACAC
IDWM4TPSETNZMHQY3V6PGMZPWOJSTJ77PD3ZUOJLLZADQ2KKAVJQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
NIPYIQRBDDHMDXJ55S5LALVPYXR3VOBSQ2VM5EKJWCNOUVYCLJRQC
LOJYD6QZRNLNDDZJKVBMKQIBPTKSRN2ETCYGNVV47M7L3QLUJUJAC
XKAJWK6MPHS3ZCZIPPLTIMOPF6AROGLRDDCS6EFE3IGE4AHT7MYQC
6PAG7GHXHIYXJPPTEK4KZQZT4CL2SJDAGTVIUDB4KK66PVSTWUMAC
UKN6HTZXDUUOWKNWNKWPHKGUGL474JIAQN5JU3DM3DU26WGMNP4AC
4O3VTUJT5T7NBNF3Q45XO2WHS6TCJXVLH6CKX4K36WUBDRT5F6KAC
KYVZGUJXV23ELA4CKPVQZO3NTJCODXMCWYAZJYWVWJVLPETNHLGQC
WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC
F4OEQBDSUTQ627GZ5CEGXLQ2TU2NMEU5QCF5SBN2A2F2BNO4LECAC
72CRUTBD2POKUMP3YTYBBN5YTMZ3SBKILNNAA6TQK45GLX5E52VQC
XEC3L6W6TGIRWHINULNLKCIP4UBMHFYE33WJL7272I2GRRCFZBWAC
CRUW4EVU3UDWNKXBCPWWHWXXGE7EMEHKK3PLLUD7NWPYY4K2R3YAC
HQSI2RK5QGNSOR5Y67GZDK4ZWFZ5DSRPASXAV4VHYVB5TUXFZWJQC
X4OCLD5YEXCYVQNMOQORLIO72AKUEMT3BT6FB3TW2HARKN5X7MEQC
UBJ3K77N3ESM5ZHZAND4FDTONECSSB3NUNL6QQA7ATSESSCW5QUQC
TTCA2KKE56DAAKEVUGAP7ZRNF5KDLOWRVO37E3D6KDNMLDBVL7MAC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
R3ZUGT5VJ2DG5NFPG4RBWDWTULDE7L4REYSGVPHJPDXFG6OBIXYAC
JGKYRZ34S3I23PMJX6IUBR7EHEFD6I4XXEGXNT7GKT2M2VIRBSMQC
6TEISZD7HYSSL24EOKIBNURU66KGSQX7B7SNAHBP4DQSAOTGH2MQC
OXHOOJE4XEQKGI3JKURNSITG6CRQFAOFQ2EKKG6M5DCLN7LS4GUAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RQR4PTMGQLTRWLYRU3KXIIDGND7FBORESJWMWFVD3WYU5SISZXAAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
SQYAXIFB4Y2N2TIJ77ZMKC5MYV23MMB7MOYEZXOSWPMLCYYKRMJAC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
PI5BATR2SER3RFE76IUGHM2AGXVFOUM3PLU7WC2K2Q2BA5K2E73QC
OWNMHNCGA5H3A6AULXXW473PKC7N6IINE3LJCB3KCFG2XA3TYCQQC
NPTVMSNYWIALN2GSKESU6NKX7XNG7QDH2TNIWUB6R6NHCLK32NFAC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
IDGC4LG4GCIAM4DC4WOQUB7TGTY3PHGTBF6NGMGJDS24HHJNY35QC
DBGS3HXMW24VO5GBITT3UI2ZNIISUXUHAEAYUI52QPUT7IO46ITQC
LTX72QGIPNUGWQN5ULPOMFCOPZTK7472DQY4AYX5WM3WHSUVXI5QC
5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC
XE5FBYASPYLMBNHWKL5MRN7TQGIWR4O6PF72I7WXRTUJ7HS2O2LAC
5JS3QSE3EIXSBVI4DATH2EIFD7QN3POAFEUM7MK4NRMPH5JOPAAQC
WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC
KBNY5FWKTEAKABFCLPC3QFKFSVZKAGXINPCIFV6WDSWFO4VCKNTAC
ARORC5GJNHLAPL2MJ3PUYIAR55ETDDAPXYSYH4OBMXHADNWSGYPAC
6ECDSRJ6V3FSIAQC6FZK5SV4NGXXR6PW5S4KADSPISPP36CXLTYQC
XX62GOJVDP352L4BH7MELNYXHMZNA6VAGF7B6RWWOSULX7VJR5YAC
PQ3SLWFD5CF33ZHBG2V7YJEKAL6HTSDYOV25OKUTBCW2QF7TL4AAC
// different message from when first joining a religion
mpr( "You prostrate yourself in front of the altar and pray." );
// Different message from when first joining a religion.
mpr("You prostrate yourself in front of the altar and pray.");
const bool you_evil = you.is_undead || you.species == SP_DEMONSPAWN;
if ( (you_evil && is_good_god(which_god)) ||
(you.species != SP_HILL_ORC && which_god == GOD_BEOGH) )
const bool you_evil = (you.is_undead || you.species == SP_DEMONSPAWN);
if (you_evil && is_good_god(which_god)
|| which_god == GOD_BEOGH && you.species != SP_HILL_ORC)
if (you.religion == GOD_BEOGH || you.religion == GOD_SHINING_ONE)
{
// With these two, you can get permanent followers, so enable
// ally pickup control.
you.friendly_pickup = Options.default_friendly_pickup;
}
else
{
// With other gods you can only get stupid (zombies!), summoned
// or charmed allies, so pickup control makes no sense.
// Sorry about that!
you.friendly_pickup = FRIENDLY_PICKUP_NONE;
}
// Returns false if the player is wielding a weapon inappropriate for Berserk.
bool berserk_check_wielded_weapon()
{
if (you.equip[EQ_WEAPON] == -1)
return (true);
const item_def weapon = you.inv[you.equip[EQ_WEAPON]];
if (is_valid_item(weapon) && weapon.base_type != OBJ_STAVES
&& (weapon.base_type != OBJ_WEAPONS || is_range_weapon(weapon))
|| you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED])
{
std::string prompt = "Do you really want to go berserk while "
"wielding " + weapon.name(DESC_NOCAP_YOUR)
+ "? ";
if (!yesno(prompt.c_str(), true, 'n'))
{
canned_msg(MSG_OK);
return (false);
}
you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED] = 0;
}
return (true);
}
if (you.received_weapon_warning == false
&& weapon && weapon->base_type != OBJ_STAVES
&& (weapon->base_type != OBJ_WEAPONS || is_range_weapon(*weapon)))
bool result = true;
if (!you.received_weapon_warning
&& weapon && weapon->base_type != OBJ_STAVES
&& (weapon->base_type != OBJ_WEAPONS || is_range_weapon(*weapon))
|| you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED])
mpr("You might want to wield a more suitable implement when "
"attacking monsters.", MSGCH_WARN);
if (item_cursed(*weapon))
{
mpr("You might want to wield a more suitable implement when "
"attacking monsters.", MSGCH_WARN);
}
else
{
std::string prompt = "Really attack while wielding "
+ weapon->name(DESC_NOCAP_YOUR) + "? ";
result = yesno(prompt.c_str(), true, 'n');
}
"<w>Ctrl-A</w> : generate new Abyss area\n"
"<w>b</w> : controlled blink\n"
"<w>B</w> : banish yourself to the Abyss\n"
"<w>g</w> : add a skill\n"
"<w>r</w> : change character's species\n"
"<w>s</w> : gain 20000 skill points\n"
"<w>S</w> : set skill to level\n"
"<w>x</w> : gain an experience level\n"
"<w>Ctrl-X</w> : change experience level\n"
"<w>$</w> : get 1000 gold\n"
"<w>]</w> : get a mutation\n"
"<w>[</w> : get a demonspawn mutation\n"
"<w>^</w> : gain piety\n"
"<w>_</w> : gain religion\n"
"<w>@</w> : set Str Int Dex\n"
"\n"
"<yellow>Other player related effects</yellow>\n"
"<w>p</w> : make entrance to pandemonium\n"
"<w>P</w> : make a portal (i.e., bazaars)\n"
"<w>r</w> : change character's species\n"
"<w>s</w> : gain 20000 skill points\n"
"<w>S</w> : set skill to level\n",
"<w>t</w> : tweak object properties\n"
"<w>v</w> : show gold value of an item\n"
"<w>|</w> : create all unrand/fixed artefacts\n"
"<w>+</w> : make randart from item\n"
"<w>'</w> : list items\n",
"<w>t</w> : tweak object properties\n"
"<yellow>Monster related commands</yellow>\n"
"<w>G</w> : banish all monsters\n"
"<w>m</w>/<w>M</w> : create monster by number/name\n"
"<w>\"</w> : list monsters\n"
"\n"
"<yellow>Create level features</yellow>\n"
"<w>l</w> : make entrance to labyrinth\n"
"<w>L</w> : place a vault by name\n"
"<w>p</w> : make entrance to pandemonium\n"
"<w>P</w> : make a portal (i.e., bazaars)\n"
"<w>^</w> : gain piety\n"
"<w>_</w> : gain religion\n"
"<w>'</w> : list items\n"
"<w>\"</w> : list monsters\n"
"<w>?</w> : list wizard commands\n"
"<w>|</w> : create all unrand/fixed artefacts\n"
"<w>+</w> : make randart from item\n"
"<w>@</w> : set Str Int Dex\n"
"<w>\\</w> : make a shop\n",
"\n"
"<yellow>Debugging commands</yellow>\n"
"<w>f</w> : player combat damage stats\n"
"<w>F</w> : combat stats with fsim_kit\n"
"<w>Ctrl-F</w> : combat stats (monster vs PC)\n"
"<w>Ctrl-I</w> : item generation stats\n"
"\n"
"\n"
"<w>?</w> : list wizard commands\n",
if (you.religion != GOD_SHINING_ONE && you.religion != GOD_BEOGH)
{
mpr("I'm sorry, your allies won't ever be able to pick up items.");
if (Options.tutorial_left)
{
mpr("Only intelligent permanent allies may equip themselves, "
"and these two restrictions are only met by allies of the "
"followers of two gods in the pantheon: the Shining One "
"and Beogh.", MSGCH_TUTORIAL);
}
break;
}
// no turning back now... {dlb}
if ((tal.which == ABIL_EVOKE_BERSERK || tal.which == ABIL_TROG_BERSERK)
&& !berserk_check_wielded_weapon())
{
crawl_state.zero_turns_taken();
return (false);
}
// No turning back now... {dlb}