MCPcopy Create free account
hub / github.com/NetHack/NetHack / flip_coin

Function flip_coin

src/apply.c:4526–4556  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4524}
4525
4526staticfn int
4527flip_coin(struct obj *obj)
4528{
4529 struct obj *otmp = obj;
4530 boolean lose_coin = FALSE;
4531
4532 You("flip %s.", an(singular(obj, xname)));
4533 if (Underwater) {
4534 pline("It tumbles away.");
4535 lose_coin = TRUE;
4536 } else if (Glib || Fumbling
4537 || (ACURR(A_DEX) < 10 && !rn2(ACURR(A_DEX)))) {
4538 pline("It slips between your %s.", fingers_or_gloves(FALSE));
4539 lose_coin = TRUE;
4540 }
4541
4542 if (lose_coin) {
4543 if (otmp->quan > 1L)
4544 otmp = splitobj(otmp, 1L);
4545 dropx(otmp);
4546 return ECMD_TIME;
4547 }
4548 if (Hallucination) {
4549 pline(rn2(100) ? "Wow, a double header!"
4550 /* edge case */
4551 : "The coin miraculously lands on its edge!");
4552 } else {
4553 pline("It comes up %s.", rn2(2) ? "heads" : "tails");
4554 }
4555 return ECMD_TIME;
4556}
4557
4558/*apply.c*/

Callers 1

doapplyFunction · 0.85

Calls 8

YouFunction · 0.85
anFunction · 0.85
singularFunction · 0.85
rn2Function · 0.85
fingers_or_glovesFunction · 0.85
splitobjFunction · 0.85
dropxFunction · 0.85
plineFunction · 0.70

Tested by

no test coverage detected