bool Wizard::enchant(Character * const opponent) { cout << get_character_name() << " trollar lite på " << opponent->get_character_name() << "." << endl; opponent->damage(7); cout << "Du skadade 7!" << endl; mana--; cout << "Du trollade lite och har " << get_mana() << " mana kvar!" << endl; if (opponent->is_dead()) { return true; } return false; }
/** * ------------------------------------------------------------------------ * Asking for the player's chosen name. * ------------------------------------------------------------------------ */ static enum birth_stage get_name_command(void) { enum birth_stage next; char name[32]; if (get_character_name(name, sizeof(name))) { cmdq_push(CMD_NAME_CHOICE); cmd_set_arg_string(cmdq_peek(), "name", name); next = BIRTH_HISTORY_CHOICE; } else { next = BIRTH_BACK; } return next; }
/** * Hack -- change name */ void do_cmd_change_name(void) { ui_event ke; int mode = 0; const char *p; bool more = true; /* Prompt */ p = "['c' to change name, 'f' to file, 'h' to change mode, or ESC]"; /* Save screen */ screen_save(); /* Forever */ while (more) { /* Display the player */ display_player(mode); /* Prompt */ Term_putstr(2, 23, -1, COLOUR_WHITE, p); /* Query */ ke = inkey_ex(); if ((ke.type == EVT_KBRD)||(ke.type == EVT_BUTTON)) { switch (ke.key.code) { case ESCAPE: more = false; break; case 'c': { if(arg_force_name) msg("You are not allowed to change your name!"); else { char namebuf[32] = ""; /* Set player name */ if (get_character_name(namebuf, sizeof namebuf)) my_strcpy(player->full_name, namebuf, sizeof(player->full_name)); } break; } case 'f': { char buf[1024]; char fname[80]; /* Get the filesystem-safe name and append .txt */ player_safe_name(fname, sizeof(fname), player->full_name, false); my_strcat(fname, ".txt", sizeof(fname)); if (get_file(fname, buf, sizeof buf)) { if (dump_save(buf)) msg("Character dump successful."); else msg("Character dump failed!"); } break; } case 'h': case ARROW_LEFT: case ' ': mode = (mode + 1) % INFO_SCREENS; break; case 'l': case ARROW_RIGHT: mode = (mode - 1) % INFO_SCREENS; break; } } else if (ke.type == EVT_MOUSE) { if (ke.mouse.button == 1) { /* Flip through the screens */ mode = (mode + 1) % INFO_SCREENS; } else if (ke.mouse.button == 2) { /* exit the screen */ more = false; } else { /* Flip backwards through the screens */ mode = (mode - 1) % INFO_SCREENS; } } /* Flush messages */ event_signal(EVENT_MESSAGE_FLUSH); } /* Load screen */ screen_load(); }