diff --git src/files.c src/files.c index a34c3c4..52bcf5f 100644 --- src/files.c +++ src/files.c @@ -120,6 +120,10 @@ void player_flags(bitflag f[OF_SIZE]) /* Some classes become immune to fear at a certain plevel */ if (player_has(PF_BRAVERY_30) && p_ptr->lev >= 30) of_on(f, OF_RES_FEAR); + + /* Extra speed */ + if (player_has(PF_EXTRA_SPEED) && p_ptr->lev >= 10) + of_on(f, OF_SPEED); } diff --git src/list-player-flags.h src/list-player-flags.h index cfbdc3d..6610e45 100644 --- src/list-player-flags.h +++ src/list-player-flags.h @@ -19,3 +19,4 @@ PF(PSEUDO_ID_IMPROV, "get better at psudo id with experience") PF(KNOW_MUSHROOM, "easily recognize mushrooms") PF(KNOW_ZAPPER, "easily recognize magic devices") PF(SEE_ORE, "can sense ore in the walls") +PF(EXTRA_SPEED, "receive extra speed") diff --git src/player/calcs.c src/player/calcs.c index d8c4763..af633be 100644 --- src/player/calcs.c +++ src/player/calcs.c @@ -1848,6 +1848,9 @@ void calc_bonuses(object_type inventory[], player_state *state, bool id_only) /* Searching slows the player down */ if (p_ptr->searching) state->speed -= 10; + /* Extra speed */ + if (player_has(PF_EXTRA_SPEED)) state->speed += p_ptr->lev / 10; + /* Sanity check on extreme speeds */ if (state->speed < 0) state->speed = 0; if (state->speed > 199) state->speed = 199; diff --git src/ui-birth.c src/ui-birth.c index 4df2852..fb90aed 100644 --- src/ui-birth.c +++ src/ui-birth.c @@ -253,6 +253,7 @@ static const char *get_pflag_desc(bitflag flag) case PF_KNOW_MUSHROOM: return "Identifies mushrooms"; case PF_KNOW_ZAPPER: return "Identifies magic devices"; case PF_SEE_ORE: return "Senses ore/minerals"; + case PF_EXTRA_SPEED: return "Gains extra speed"; default: return "Undocumented pflag"; } }