Exemplo n.º 1
0
void p_movefunction(int movef)
{
    /* loc functs above traps should be activated whether levitating or not */
    drawvision(Player.x,Player.y);
    sign_print(Player.x,Player.y,false);
    if (Player.status[SHADOWFORM])
        switch(movef) {	/* player in shadow form is unable to do most things */
        case L_CHAOS:
            l_chaos();
            break;
        case L_ABYSS:
            l_abyss();
            break;
        case L_ARENA_EXIT:
            l_arena_exit();
            break;
        case L_ENTER_COURT:
            l_enter_court();
            break;
        case L_ESCALATOR:
            l_escalator();
            break;
        case L_COLLEGE:
            l_college();
            break;
        case L_SORCERORS:
            l_sorcerors();
            break;
        case L_ALTAR:
            l_altar();
            break;
        case L_TACTICAL_EXIT:
            l_tactical_exit();
            break;
        case L_HOUSE_EXIT:
            l_house_exit();
            break;
        case L_HOUSE:
            l_house();
            break;
        case L_HOVEL:
            l_hovel();
            break;
        case L_MANSION:
            l_mansion();
            break;
        case L_COUNTRYSIDE:
            l_countryside();
            break;
        case L_ORACLE:
            l_oracle();
            break;
        case L_TEMPLE_WARNING:
            l_temple_warning();
            break;
        case L_ENTER_CIRCLE:
            l_enter_circle();
            break;
        case L_CIRCLE_LIBRARY:
            l_circle_library();
            break;
        case L_TOME1:
            l_tome1();
            break;
        case L_TOME2:
            l_tome2();
            break;
        case L_ADEPT:
            l_adept();
            break;
        case L_VOICE1:
            l_voice1();
            break;
        case L_VOICE2:
            l_voice2();
            break;
        case L_VOICE3:
            l_voice3();
            break;
        case L_VOID:
            l_void();
            break;
        case L_FIRE_STATION:
            l_fire_station();
            break;
        case L_EARTH_STATION:
            l_earth_station();
            break;
        case L_WATER_STATION:
            l_water_station();
            break;
        case L_AIR_STATION:
            l_air_station();
            break;
        case L_VOID_STATION:
            l_void_station();
            break;
        }
    else if ((! Player.status[LEVITATING]) ||
             State.getMounted() ||
             (Cmd == '@') || /* @ command activates all effects under player */
             (movef < LEVITATION_AVOIDANCE)) {
        if (movef != L_NO_OP) {
            State.setFastMove(false);
            dataprint();
        }
        switch(movef) {
            /* miscellaneous */
        case L_NO_OP:
            l_no_op();
            break;
        case L_HEDGE:
            l_hedge();
            break;
        case L_WATER:
            l_water();
            break;
        case L_LIFT:
            l_lift();
            break;
        case L_LAVA:
            l_lava();
            break;
        case L_FIRE:
            l_fire();
            break;
        case L_WHIRLWIND:
            l_whirlwind();
            break;
        case L_RUBBLE:
            l_rubble();
            break;
        case L_MAGIC_POOL:
            l_magic_pool();
            break;
        case L_CHAOS:
            l_chaos();
            break;
        case L_ABYSS:
            l_abyss();
            break;

        case L_PORTCULLIS_TRAP:
            l_portcullis_trap();
            break;
        case L_RAISE_PORTCULLIS:
            l_raise_portcullis();
            break;
        case L_DROP_EVERY_PORTCULLIS:
            l_drop_every_portcullis();
            break;
        case L_ARENA_EXIT:
            l_arena_exit();
            break;
        case L_TRIFID:
            l_trifid();
            break;
        case L_ENTER_COURT:
            l_enter_court();
            break;
        case L_ESCALATOR:
            l_escalator();
            break;
        case L_THRONE:
            l_throne();
            break;

        case L_TRAP_DART:
            l_trap_dart();
            break;
        case L_TRAP_SIREN:
            l_trap_siren();
            break;
        case L_TRAP_PIT:
            l_trap_pit();
            break;
        case L_TRAP_DOOR:
            l_trap_door();
            break;
        case L_TRAP_SNARE:
            l_trap_snare();
            break;
        case L_TRAP_BLADE:
            l_trap_blade();
            break;
        case L_TRAP_FIRE:
            l_trap_fire();
            break;
        case L_TRAP_TELEPORT:
            l_trap_teleport();
            break;
        case L_TRAP_DISINTEGRATE:
            l_trap_disintegrate();
            break;
        case L_TRAP_SLEEP_GAS:
            l_trap_sleepgas();
            break;
        case L_TRAP_MANADRAIN:
            l_trap_manadrain();
            break;
        case L_TRAP_ACID:
            l_trap_acid();
            break;
        case L_TRAP_ABYSS:
            l_trap_abyss();
            break;

            /*door functions */
        case L_BANK:
            l_bank();
            break;
        case L_ARMORER:
            l_armorer();
            break;
        case L_CLUB:
            l_club();
            break;
        case L_GYM:
            l_gym();
            break;
        case L_BROTHEL:
            l_brothel();
            break;
        case L_THIEVES_GUILD:
            l_thieves_guild();
            break;
        case L_COLLEGE:
            l_college();
            break;
        case L_HEALER:
            l_healer();
            break;
        case L_STATUE_WAKE:
            l_statue_wake();
            break;
        case L_CASINO:
            l_casino();
            break;
        case L_COMMANDANT:
            l_commandant();
            break;
        case L_DINER:
            l_diner();
            break;
        case L_CRAP:
            l_crap();
            break;
        case L_TAVERN:
            l_tavern();
            break;
        case L_MERC_GUILD:
            l_merc_guild();
            break;
        case L_MONASTERY:
            l_monastery();
            break;
        case L_ALCHEMIST:
            l_alchemist();
            break;
        case L_SORCERORS:
            l_sorcerors();
            break;
        case L_CASTLE:
            l_castle();
            break;
        case L_ARENA:
            l_arena();
            break;
        case L_VAULT:
            l_vault();
            break;
        case L_DPW:
            l_dpw();
            break;
        case L_LIBRARY:
            l_library();
            break;
        case L_PAWN_SHOP:
            l_pawn_shop();
            break;
        case L_CONDO:
            l_condo();
            break;
        case L_TOURIST:
            l_tourist();
            break;
        case L_ALTAR:
            l_altar();
            break;
        case L_TACTICAL_EXIT:
            l_tactical_exit();
            break;
        case L_HOUSE_EXIT:
            l_house_exit();
            break;
        case L_SAFE:
            l_safe();
            break;
        case L_HOUSE:
            l_house();
            break;
        case L_HOVEL:
            l_hovel();
            break;
        case L_MANSION:
            l_mansion();
            break;
        case L_COUNTRYSIDE:
            l_countryside();
            break;
        case L_ORACLE:
            l_oracle();
            break;
        case L_ORDER:
            l_order();
            break;
        case L_CARTOGRAPHER:
            l_cartographer();
            break;

        case L_TEMPLE_WARNING:
            l_temple_warning();
            break;
        case L_ENTER_CIRCLE:
            l_enter_circle();
            break;
        case L_CIRCLE_LIBRARY:
            l_circle_library();
            break;
        case L_TOME1:
            l_tome1();
            break;
        case L_TOME2:
            l_tome2();
            break;

        case L_CHARITY:
            l_charity();
            break;

        case L_CHAOSTONE:
            l_chaostone();
            break;
        case L_VOIDSTONE:
            l_voidstone();
            break;
        case L_BALANCESTONE:
            l_balancestone();
            break;
        case L_LAWSTONE:
            l_lawstone();
            break;
        case L_SACRIFICESTONE:
            l_sacrificestone();
            break;
        case L_MINDSTONE:
            l_mindstone();
            break;

            /* challenge functions */
        case L_ADEPT:
            l_adept();
            break;
        case L_VOICE1:
            l_voice1();
            break;
        case L_VOICE2:
            l_voice2();
            break;
        case L_VOICE3:
            l_voice3();
            break;
        case L_VOID:
            l_void();
            break;
        case L_FIRE_STATION:
            l_fire_station();
            break;
        case L_EARTH_STATION:
            l_earth_station();
            break;
        case L_WATER_STATION:
            l_water_station();
            break;
        case L_AIR_STATION:
            l_air_station();
            break;
        case L_VOID_STATION:
            l_void_station();
            break;
        }
    }
}
Exemplo n.º 2
0
void send_to_jail(void)
{
    if (Player.rank[ORDER] > 0) {
        print1("A member of the Order of Paladins sent to jail!");
        print2("It cannot be!");
        morewait();
        print1("You are immediately expelled permanently from the Order!");
        print2("Your name is expunged from the records....");
        Player.rank[ORDER] = -1;
    }
    else if (gamestatusp(DESTROYED_ORDER))
        print1("The destruction of the Order of Paladins has negated the law!");
    else if ((Current_Environment != E_CITY) &&
             (Last_Environment != E_CITY))
        print1("Fortunately, there is no jail around here, so you are freed!");
    else {
        pacify_guards();
        if (((Current_Environment == E_HOUSE) ||
                (Current_Environment == E_MANSION) ||
                (Current_Environment == E_HOVEL)) &&
                (Last_Environment == E_CITY))
        {
            setgamestatus(SUPPRESS_PRINTING);
            change_environment(E_CITY);
            resetgamestatus(SUPPRESS_PRINTING);
        }
        if (Current_Environment == E_CITY) {
            if (gamestatusp(UNDEAD_GUARDS)) {
                print1("You are taken to a weirdly deserted chamber where an undead");
                print2("Magistrate presides over a court of ghosts and haunts.");
                morewait();
                print1("'Mr. Foreman, what is the verdict?'");
                print2("'Guilty as charged, your lordship.'");
                morewait();
                clearmsg();
                print1("'Guilty...");
                morewait();
                nprint1("Guilty...");
                morewait();
                nprint1("Guilty...");
                morewait();
                nprint1("Guilty...'");
                clearmsg();
                print1("The members of the court close in around, fingers pointing.");
                print2("You feel insubstantial hands closing around your throat....");
                print3("You feel your life draining away!");
                while(Player.level > 0) {
                    Player.level--;
                    Player.xp /= 2;
                    Player.hp /= 2;
                    dataprint();
                }
                Player.maxhp = Player.maxcon;
                morewait();
                print1("You are finally released, a husk of your former self....");
                Player.x = 58;
                Player.y = 40;
                screencheck(Player.x,Player.y);
            }
            /* Hmm...  The sorcerors ought to be able to get you free, too,
             * although of course they should have their *own* price. */
            else if (Player.alignment + random_range(200) < 0) {
                print1("Luckily for you, a smooth-tongued advocate from the");
                print2("Rampart Chaotic Liberties Union gets you off!");
                Player.x = 58;
                Player.y = 40;
                screencheck(Player.x,Player.y);
            }
            else switch(Imprisonment++) {
                case 0:
                    print1("The Magistrate sternly reprimands you.");
                    print2("As a first-time offender, you are given probation.");
                    Player.y = 58;
                    Player.x = 40;
                    screencheck(Player.x,Player.y);
                    break;
                case 1:
                    print1("The Magistrate expresses shame for your conduct.");
                    print2("You are thrown in jail!");
                    morewait();
                    repair_jail();
                    Player.y = 54;
                    Player.x = 37 + (2*random_range(4));
                    screencheck(Player.x,Player.y);
                    l_portcullis_trap();
                    break;
                default:
                    print1("The Magistrate renders summary judgement.");
                    print2("You are sentenced to prison!");
                    morewait();
                    print1("The guards recognize you as a 'three-time-loser'");
                    print2("...and beat you up a little to teach you a lesson.");
                    p_damage(random_range(Imprisonment * 10),
                             UNSTOPPABLE,
                             "police brutality");
                    morewait();
                    repair_jail();
                    Player.y = 54;
                    Player.x = 37 + (2*random_range(4));
                    screencheck(Player.x,Player.y);
                    l_portcullis_trap();
                }
        }
    }
}