Import Advanced Rogue 7.7 from the Roguelike Restoration Project (r1490)
This commit is contained in:
parent
6af92da76a
commit
cf121ade21
51 changed files with 37593 additions and 0 deletions
130
arogue7/eat.c
Normal file
130
arogue7/eat.c
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
* eat.c - Functions for dealing with digestion
|
||||
*
|
||||
* Advanced Rogue
|
||||
* Copyright (C) 1984, 1985, 1986 Michael Morgan, Ken Dalka and AT&T
|
||||
* All rights reserved.
|
||||
*
|
||||
* Based on "Rogue: Exploring the Dungeons of Doom"
|
||||
* Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
|
||||
* All rights reserved.
|
||||
*
|
||||
* See the file LICENSE.TXT for full copyright and licensing information.
|
||||
*/
|
||||
|
||||
#include "curses.h"
|
||||
#include "rogue.h"
|
||||
|
||||
/*
|
||||
* eat:
|
||||
* He wants to eat something, so let him try
|
||||
*/
|
||||
|
||||
eat()
|
||||
{
|
||||
register struct linked_list *item;
|
||||
int which;
|
||||
unsigned long temp;
|
||||
|
||||
if (player.t_action != C_EAT) {
|
||||
if ((item = get_item(pack, "eat", FOOD, FALSE, FALSE)) == NULL)
|
||||
return;
|
||||
|
||||
player.t_using = item; /* Remember what it is */
|
||||
player.t_action = C_EAT; /* We are eating */
|
||||
which = (OBJPTR(item))->o_which;
|
||||
player.t_no_move = max(foods[which].mi_food/100, 1) * movement(&player);
|
||||
return;
|
||||
}
|
||||
|
||||
/* We have waited our time, let's eat the food */
|
||||
item = player.t_using;
|
||||
player.t_using = NULL;
|
||||
player.t_action = A_NIL;
|
||||
|
||||
which = (OBJPTR(item))->o_which;
|
||||
if ((food_left += foods[which].mi_food) > STOMACHSIZE)
|
||||
food_left = STOMACHSIZE;
|
||||
del_pack(item);
|
||||
if (hungry_state == F_SATIATED && food_left == STOMACHSIZE && rnd(4) == 1) {
|
||||
pstats.s_hpt = 0;
|
||||
msg ("You choke on all that food and die! -- More --");
|
||||
wait_for(' ');
|
||||
death(D_FOOD_CHOKE);
|
||||
}
|
||||
if (food_left >= STOMACHSIZE-MORETIME) {
|
||||
hungry_state = F_SATIATED;
|
||||
msg ("You have trouble getting all that food down.");
|
||||
msg ("Your stomach feels like its about to burst!");
|
||||
}
|
||||
else {
|
||||
hungry_state = F_OKAY;
|
||||
switch (rnd(3)) {
|
||||
case 0: msg("My, that was a yummy %s", foods[which].mi_name);
|
||||
when 1: msg("Mmmm, that was a tasty %s", foods[which].mi_name);
|
||||
when 2: msg("Wow, that was a scrumptious %s", foods[which].mi_name);
|
||||
}
|
||||
}
|
||||
updpack(TRUE, &player);
|
||||
switch(which) {
|
||||
case E_WHORTLEBERRY:
|
||||
add_abil[A_INTELLIGENCE](1);
|
||||
|
||||
when E_SWEETSOP:
|
||||
add_abil[A_DEXTERITY](1);
|
||||
|
||||
when E_SOURSOP:
|
||||
add_abil[A_STRENGTH](1);
|
||||
|
||||
when E_SAPODILLA:
|
||||
add_abil[A_WISDOM](1);
|
||||
|
||||
when E_RAMBUTAN:
|
||||
add_abil[A_CONSTITUTION](1);
|
||||
|
||||
when E_PEACH:
|
||||
add_abil[A_CHARISMA](1);
|
||||
|
||||
when E_STRAWBERRY:
|
||||
temp = pstats.s_exp/100;
|
||||
pstats.s_exp += temp;
|
||||
if (temp > 0)
|
||||
msg("You feel slightly more experienced now");
|
||||
check_level();
|
||||
|
||||
when E_PITANGA:
|
||||
max_stats.s_hpt++;
|
||||
pstats.s_hpt++;
|
||||
if (terse)
|
||||
msg("You feel a bit tougher now");
|
||||
else
|
||||
msg("You feel a bit tougher now. Go get 'em!");
|
||||
|
||||
when E_HAGBERRY:
|
||||
pstats.s_arm--;
|
||||
msg("Your skin feels more resilient now");
|
||||
|
||||
when E_DEWBERRY:
|
||||
if (chant_time > 0) {
|
||||
chant_time -= 50;
|
||||
if (chant_time < 0)
|
||||
chant_time = 0;
|
||||
msg("You feel you have more chant ability");
|
||||
}
|
||||
if (pray_time > 0) {
|
||||
pray_time -= 50;
|
||||
if (pray_time < 0)
|
||||
pray_time = 0;
|
||||
msg("You feel you have more prayer ability");
|
||||
}
|
||||
if (spell_power > 0) {
|
||||
spell_power -= 50;
|
||||
if (spell_power < 0)
|
||||
spell_power = 0;
|
||||
msg("You feel you have more spell casting ability");
|
||||
}
|
||||
|
||||
otherwise: /* all the foods don't have to do something */
|
||||
break;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue