Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/crawl-ref/source/aptitudes.h b/crawl-ref/source/aptitudes.h
- index 6abad71..544929b 100644
- --- a/crawl-ref/source/aptitudes.h
- +++ b/crawl-ref/source/aptitudes.h
- @@ -1484,6 +1484,45 @@ static const species_skill_aptitude species_skill_aptitudes[] =
- APT(SP_VINE_STALKER, SK_POISON_MAGIC, 0),
- APT(SP_VINE_STALKER, SK_INVOCATIONS, 0),
- APT(SP_VINE_STALKER, SK_EVOCATIONS, 0),
- +
- + // SP_ACCURSED
- + APT(SP_ACCURSED, SK_FIGHTING, 1),
- + APT(SP_ACCURSED, SK_SHORT_BLADES, 1),
- + APT(SP_ACCURSED, SK_LONG_BLADES, 1),
- + APT(SP_ACCURSED, SK_AXES, 1),
- + APT(SP_ACCURSED, SK_MACES_FLAILS, 1),
- + APT(SP_ACCURSED, SK_POLEARMS, 1),
- + APT(SP_ACCURSED, SK_STAVES, 1),
- + APT(SP_ACCURSED, SK_SLINGS, 1),
- + APT(SP_ACCURSED, SK_BOWS, 1),
- + APT(SP_ACCURSED, SK_CROSSBOWS, 1),
- + APT(SP_ACCURSED, SK_THROWING, 1),
- + APT(SP_ACCURSED, SK_ARMOUR, 1),
- + APT(SP_ACCURSED, SK_DODGING, 1),
- + APT(SP_ACCURSED, SK_STEALTH, 1),
- +#if TAG_MAJOR_VERSION == 34
- + APT(SP_ACCURSED, SK_STABBING, -99),
- +#endif
- + APT(SP_ACCURSED, SK_SHIELDS, 1),
- +#if TAG_MAJOR_VERSION == 34
- + APT(SP_ACCURSED, SK_TRAPS, -99),
- +#endif
- + APT(SP_ACCURSED, SK_UNARMED_COMBAT, 1),
- + APT(SP_ACCURSED, SK_SPELLCASTING, 1),
- + APT(SP_ACCURSED, SK_CONJURATIONS, 1),
- + APT(SP_ACCURSED, SK_HEXES, 1),
- + APT(SP_ACCURSED, SK_CHARMS, 1),
- + APT(SP_ACCURSED, SK_SUMMONINGS, 1),
- + APT(SP_ACCURSED, SK_NECROMANCY, 1),
- + APT(SP_ACCURSED, SK_TRANSLOCATIONS, 1),
- + APT(SP_ACCURSED, SK_TRANSMUTATIONS, 1),
- + APT(SP_ACCURSED, SK_FIRE_MAGIC, 1),
- + APT(SP_ACCURSED, SK_ICE_MAGIC, 1),
- + APT(SP_ACCURSED, SK_AIR_MAGIC, 1),
- + APT(SP_ACCURSED, SK_EARTH_MAGIC, 1),
- + APT(SP_ACCURSED, SK_POISON_MAGIC, 1),
- + APT(SP_ACCURSED, SK_INVOCATIONS, -1),
- + APT(SP_ACCURSED, SK_EVOCATIONS, 1),
- };
- #endif
- diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
- index 48bc409..c3c39b0 100644
- --- a/crawl-ref/source/enum.h
- +++ b/crawl-ref/source/enum.h
- @@ -3463,6 +3463,7 @@ enum mutation_type
- MUT_FLAME_CLOUD_IMMUNITY,
- #endif
- MUT_FORLORN,
- + MUT_MARK,
- MUT_PLACID_MAGIC,
- NUM_MUTATIONS,
- @@ -3825,7 +3826,8 @@ enum species_type
- SP_GARGOYLE,
- SP_FORMICID,
- SP_VINE_STALKER,
- - LAST_VALID_SPECIES = SP_VINE_STALKER,
- + SP_ACCURSED,
- + LAST_VALID_SPECIES = SP_ACCURSED,
- // The high scores viewer still needs enums for removed species.
- SP_ELF, // (placeholder)
- SP_HILL_DWARF, // (placeholder)
- diff --git a/crawl-ref/source/mon-behv.cc b/crawl-ref/source/mon-behv.cc
- index c87aa51..d98ccd0 100644
- --- a/crawl-ref/source/mon-behv.cc
- +++ b/crawl-ref/source/mon-behv.cc
- @@ -807,7 +807,7 @@ void handle_behaviour(monster* mon)
- // Creatures not currently pursuing another foe are
- // alerted by a sentinel's mark
- - if (mon->foe == MHITNOT && you.duration[DUR_SENTINEL_MARK]
- + if (mon->foe == MHITNOT && (you.duration[DUR_SENTINEL_MARK] || you.mutation[MUT_MARK])
- && (!isFriendly && !mons_is_avatar(mon->type) && !isNeutral
- && !isPacified
- || mon->has_ench(ENCH_INSANE)))
- diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
- index c47f3f0..1bf3c03 100644
- --- a/crawl-ref/source/mon-util.cc
- +++ b/crawl-ref/source/mon-util.cc
- @@ -4763,7 +4763,7 @@ mon_threat_level_type mons_threat_level(const monster *mon, bool real)
- bool mons_foe_is_marked(const monster* mon)
- {
- if (mon->foe == MHITYOU)
- - return you.duration[DUR_SENTINEL_MARK];
- + return (you.duration[DUR_SENTINEL_MARK] || you.mutation[MUT_MARK]);
- else
- return false;
- }
- diff --git a/crawl-ref/source/mutation-data.h b/crawl-ref/source/mutation-data.h
- index 5c79889..8a7a144 100644
- --- a/crawl-ref/source/mutation-data.h
- +++ b/crawl-ref/source/mutation-data.h
- @@ -1045,6 +1045,16 @@ static const mutation_def mut_data[] =
- "forlorn"
- },
- +{ MUT_MARK, 3, 1, MUTFLAG_BAD, false,
- + "marked",
- +
- + {"Your position is always known to enemies.","",""},
- + {"You feel obvious.","",""},
- + {"You feel less known.","",""},
- +
- + "marked"
- +},
- +
- { MUT_STOCHASTIC_TORMENT_RESISTANCE, 0, 1, MUTFLAG_GOOD, false,
- "50% torment resistance",
- diff --git a/crawl-ref/source/ng-restr.cc b/crawl-ref/source/ng-restr.cc
- index 8bf8a8b..6f0cd70 100644
- --- a/crawl-ref/source/ng-restr.cc
- +++ b/crawl-ref/source/ng-restr.cc
- @@ -29,7 +29,8 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_MINOTAUR:
- case SP_GARGOYLE:
- case SP_CENTAUR:
- - return CC_UNRESTRICTED;
- + case SP_ACCURSED:
- + return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- }
- @@ -45,6 +46,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_MINOTAUR:
- case SP_GARGOYLE:
- case SP_CENTAUR:
- + case SP_ACCURSED:
- return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- @@ -190,6 +192,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_OCTOPODE:
- case SP_HUMAN:
- case SP_MUMMY:
- + case SP_ACCURSED:
- return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- @@ -204,6 +207,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_TENGU:
- case SP_BASE_DRACONIAN:
- case SP_DEMIGOD:
- + case SP_ACCURSED:
- return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- @@ -263,6 +267,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_DEMIGOD:
- case SP_DEMONSPAWN:
- case SP_TROLL:
- + case SP_ACCURSED:
- return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- @@ -278,6 +283,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_TENGU:
- case SP_DEMIGOD:
- case SP_GARGOYLE:
- + case SP_ACCURSED:
- return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- @@ -414,6 +420,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci)
- case SP_BASE_DRACONIAN:
- case SP_HUMAN:
- case SP_DEMONSPAWN:
- + case SP_ACCURSED:
- return CC_UNRESTRICTED;
- default:
- return CC_RESTRICTED;
- @@ -836,6 +843,20 @@ char_choice_restriction job_allowed(species_type speci, job_type job)
- default:
- return CC_RESTRICTED;
- }
- + case SP_ACCURSED:
- + switch (job)
- + {
- + case JOB_MONK:
- + case JOB_FIRE_ELEMENTALIST:
- + case JOB_SKALD:
- + case JOB_HUNTER:
- + case JOB_NECROMANCER:
- + case JOB_EARTH_ELEMENTALIST:
- + case JOB_ICE_ELEMENTALIST:
- + return CC_UNRESTRICTED;
- + default:
- + return CC_RESTRICTED;
- + }
- default:
- return CC_BANNED;
- }
- diff --git a/crawl-ref/source/ng-setup.cc b/crawl-ref/source/ng-setup.cc
- index 796a7fd..3b61e7c 100644
- --- a/crawl-ref/source/ng-setup.cc
- +++ b/crawl-ref/source/ng-setup.cc
- @@ -80,6 +80,7 @@ static void _species_stat_init(species_type which_species)
- case SP_TENGU: s = 8; i = 8; d = 9; break; // 25
- case SP_FORMICID: s = 12; i = 7; d = 6; break; // 25
- case SP_VINE_STALKER: s = 10; i = 8; d = 9; break; // 27
- + case SP_ACCURSED: s = 9; i = 9; d = 9; break; // 27
- case SP_KOBOLD: s = 6; i = 6; d = 11; break; // 23
- case SP_HALFLING: s = 8; i = 7; d = 9; break; // 24
- @@ -331,6 +332,10 @@ void give_basic_mutations(species_type speci)
- you.mutation[MUT_NO_DEVICE_HEAL] = 3;
- you.mutation[MUT_ROT_IMMUNITY] = 1;
- break;
- + case SP_ACCURSED:
- + you.mutation[MUT_FORLORN] = 1;
- + you.mutation[MUT_MARK] = 1;
- + break;
- default:
- break;
- }
- diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
- index 9053caa..fc8a8a6 100644
- --- a/crawl-ref/source/player.cc
- +++ b/crawl-ref/source/player.cc
- @@ -8083,13 +8083,17 @@ void player::sentinel_mark(bool trap)
- mpr("The mark upon you grows brighter.");
- increase_duration(DUR_SENTINEL_MARK, random_range(20, 40), 180);
- }
- - else
- + else if (!you.mutation[MUT_MARK])
- {
- mprf(MSGCH_WARN, "A sentinel's mark forms upon you.");
- increase_duration(DUR_SENTINEL_MARK, trap ? random_range(25, 40)
- : random_range(35, 60),
- 250);
- }
- + else // Player has permamark
- + {
- + mprf(MSGCH_WARN, "Your innate mark wards off the nostile enchantment.");
- + }
- }
- bool player::made_nervous_by(const coord_def &p)
- diff --git a/crawl-ref/source/species.cc b/crawl-ref/source/species.cc
- index 7d94cef..b8120ee 100644
- --- a/crawl-ref/source/species.cc
- +++ b/crawl-ref/source/species.cc
- @@ -30,6 +30,7 @@ static species_type species_order[] =
- SP_VINE_STALKER,
- // celestial species
- SP_DEMIGOD, SP_DEMONSPAWN,
- + SP_ACCURSED,
- // undead species
- SP_MUMMY, SP_GHOUL,
- SP_VAMPIRE,
- @@ -203,6 +204,7 @@ string species_name(species_type speci, bool genus, bool adj)
- case SP_TENGU: res = "Tengu"; break;
- case SP_GARGOYLE: res = "Gargoyle"; break;
- case SP_FORMICID: res = "Formicid"; break;
- + case SP_ACCURSED: res = "Accursed"; break;
- case SP_VINE_STALKER:
- res = (adj ? "Vine" : genus ? "Vine" : "Vine Stalker");
- @@ -386,6 +388,8 @@ monster_type player_species_to_mons_species(species_type species)
- return MONS_MINOTAUR;
- case SP_DEMONSPAWN:
- return MONS_DEMONSPAWN;
- + case SP_ACCURSED:
- + return MONS_HUMAN;
- case SP_GARGOYLE:
- return MONS_GARGOYLE;
- case SP_GHOUL:
- @@ -459,6 +463,7 @@ int species_exp_modifier(species_type species)
- case SP_HALFLING:
- case SP_KOBOLD:
- case SP_FORMICID:
- + case SP_ACCURSED:
- return 1;
- case SP_HILL_ORC:
- case SP_OGRE:
- @@ -530,6 +535,7 @@ int species_hp_modifier(species_type species)
- return -1;
- default:
- return 0;
- + case SP_ACCURSED:
- case SP_CENTAUR:
- case SP_DEMIGOD:
- case SP_BASE_DRACONIAN:
- @@ -576,6 +582,7 @@ int species_mp_modifier(species_type species)
- case SP_TENGU:
- case SP_VINE_STALKER:
- case SP_FORMICID:
- + case SP_ACCURSED:
- return 1;
- case SP_FELID:
- case SP_HIGH_ELF:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement