diff options
author | elliptic <hyperelliptical@gmail.com> | 2014-02-14 18:06:45 -0500 |
---|---|---|
committer | elliptic <hyperelliptical@gmail.com> | 2014-02-14 18:14:26 -0500 |
commit | 3acc414d9ce85084a622dc802e939a0f8602d907 (patch) | |
tree | 92e7e94e604ddfd7ed9b63d27e510d947d8de8ce /crawl-ref/source/ng-restr.cc | |
parent | ca34044fbe5f090299dc4d8b8401a6855b98d256 (diff) | |
download | crawl-ref-3acc414d9ce85084a622dc802e939a0f8602d907.tar.gz crawl-ref-3acc414d9ce85084a622dc802e939a0f8602d907.zip |
New species/background recommendations.
This provides a list of 6-8 (9 for DE) recommended backgrounds for each
species, and also a list of 6-7 species for each background. The lists were
developed in a group effort on IRC involving many players.
We tried to balance two main goals when coming up with this list: picking
strong combos and providing some variety of choices.
Diffstat (limited to 'crawl-ref/source/ng-restr.cc')
-rw-r--r-- | crawl-ref/source/ng-restr.cc | 736 |
1 files changed, 243 insertions, 493 deletions
diff --git a/crawl-ref/source/ng-restr.cc b/crawl-ref/source/ng-restr.cc index 5bbe306558..bcc5fe9fae 100644 --- a/crawl-ref/source/ng-restr.cc +++ b/crawl-ref/source/ng-restr.cc @@ -13,7 +13,7 @@ #include "species.h" #include "jobs.h" -char_choice_restriction job_allowed(species_type speci, job_type job) +char_choice_restriction species_allowed(job_type job, species_type speci) { if (!is_species_valid_choice(speci) || !is_job_valid_choice(job)) return CC_BANNED; @@ -23,21 +23,15 @@ char_choice_restriction job_allowed(species_type speci, job_type job) case JOB_FIGHTER: switch (speci) { - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_MERFOLK: - case SP_KOBOLD: - case SP_SPRIGGAN: - case SP_NAGA: - case SP_OGRE: - case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_VAMPIRE: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_DEEP_DWARF: + case SP_HILL_ORC: + case SP_TROLL: + case SP_MINOTAUR: + case SP_GARGOYLE: + case SP_CENTAUR: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_GLADIATOR: @@ -45,44 +39,30 @@ char_choice_restriction job_allowed(species_type speci, job_type job) { case SP_FELID: return CC_BANNED; - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_HALFLING: - case SP_KOBOLD: - case SP_SPRIGGAN: - case SP_NAGA: - case SP_OGRE: - case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_VAMPIRE: - case SP_OCTOPODE: - case SP_DJINNI: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_DEEP_DWARF: + case SP_HILL_ORC: + case SP_MERFOLK: + case SP_MINOTAUR: + case SP_GARGOYLE: + case SP_CENTAUR: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_MONK: switch (speci) { - case SP_HIGH_ELF: - case SP_DEEP_ELF: - case SP_DEEP_DWARF: - case SP_HALFLING: - case SP_KOBOLD: - case SP_SPRIGGAN: - case SP_NAGA: - case SP_OGRE: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_OCTOPODE: - case SP_DJINNI: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_HILL_ORC: + case SP_TROLL: + case SP_MINOTAUR: + case SP_GARGOYLE: + case SP_GHOUL: + case SP_MERFOLK: + case SP_VAMPIRE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_BERSERKER: @@ -90,19 +70,16 @@ char_choice_restriction job_allowed(species_type speci, job_type job) { case SP_DEMIGOD: return CC_BANNED; - case SP_HIGH_ELF: - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_SPRIGGAN: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_OCTOPODE: - case SP_DJINNI: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_HILL_ORC: + case SP_HALFLING: + case SP_OGRE: + case SP_MERFOLK: + case SP_MINOTAUR: + case SP_GARGOYLE: + case SP_DEMONSPAWN: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_CHAOS_KNIGHT: @@ -110,6 +87,14 @@ char_choice_restriction job_allowed(species_type speci, job_type job) { case SP_DEMIGOD: return CC_BANNED; + case SP_HILL_ORC: + case SP_TROLL: + case SP_CENTAUR: + case SP_MERFOLK: + case SP_MINOTAUR: + case SP_BASE_DRACONIAN: + case SP_DEMONSPAWN: + return CC_UNRESTRICTED; default: return CC_RESTRICTED; } @@ -120,22 +105,15 @@ char_choice_restriction job_allowed(species_type speci, job_type job) case SP_DEMIGOD: case SP_GARGOYLE: return CC_BANNED; - case SP_HIGH_ELF: - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_DEEP_DWARF: - case SP_HALFLING: - case SP_KOBOLD: - case SP_SPRIGGAN: - case SP_OGRE: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_FELID: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_HUMAN: + case SP_HILL_ORC: + case SP_TROLL: + case SP_MERFOLK: + case SP_MINOTAUR: + case SP_DEMONSPAWN: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_ABYSSAL_KNIGHT: @@ -143,24 +121,15 @@ char_choice_restriction job_allowed(species_type speci, job_type job) { case SP_DEMIGOD: return CC_BANNED; - case SP_HIGH_ELF: - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_DEEP_DWARF: - case SP_KOBOLD: - case SP_OGRE: + case SP_HILL_ORC: + case SP_SPRIGGAN: case SP_TROLL: - case SP_MINOTAUR: - case SP_TENGU: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_FELID: - case SP_OCTOPODE: - case SP_GARGOYLE: - return CC_RESTRICTED; - default: + case SP_MERFOLK: + case SP_BASE_DRACONIAN: + case SP_DEMONSPAWN: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_HEALER: @@ -172,411 +141,292 @@ char_choice_restriction job_allowed(species_type speci, job_type job) case SP_GHOUL: case SP_VAMPIRE: return CC_BANNED; - case SP_HIGH_ELF: - case SP_DEEP_ELF: - case SP_HALFLING: - case SP_SPRIGGAN: - case SP_OGRE: + case SP_NAGA: + case SP_DEEP_DWARF: + case SP_HILL_ORC: case SP_MINOTAUR: - case SP_TENGU: - case SP_FELID: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_BASE_DRACONIAN: + case SP_GARGOYLE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_SKALD: switch (speci) { - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_DEEP_DWARF: - case SP_KOBOLD: - case SP_SPRIGGAN: + case SP_HIGH_ELF: + case SP_HALFLING: case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: - case SP_TENGU: - case SP_MUMMY: - case SP_GHOUL: - case SP_FELID: - case SP_OCTOPODE: - case SP_FORMICID: - case SP_DJINNI: - return CC_RESTRICTED; - default: + case SP_MERFOLK: + case SP_BASE_DRACONIAN: + case SP_VAMPIRE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_WARPER: switch (speci) { - case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_MERFOLK: - case SP_KOBOLD: + case SP_HALFLING: + case SP_HIGH_ELF: + case SP_DEEP_DWARF: + case SP_SPRIGGAN: case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: - case SP_TENGU: case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_OCTOPODE: - case SP_FORMICID: - return CC_RESTRICTED; - default: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_WIZARD: switch (speci) { - case SP_DEEP_DWARF: - case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_MERFOLK: - case SP_HALFLING: - case SP_KOBOLD: - case SP_CENTAUR: - case SP_MINOTAUR: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_FELID: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_HIGH_ELF: + case SP_DEEP_ELF: + case SP_NAGA: + case SP_BASE_DRACONIAN: + case SP_OCTOPODE: + case SP_HUMAN: + case SP_MUMMY: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case JOB_CONJURER: switch (speci) { - case SP_SLUDGE_ELF: - case SP_DEEP_DWARF: - case SP_LAVA_ORC: - case SP_MERFOLK: + case SP_HIGH_ELF: + case SP_DEEP_ELF: + case SP_NAGA: + case SP_TENGU: + case SP_BASE_DRACONIAN: + case SP_DEMIGOD: + return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; + } + + case JOB_ENCHANTER: + switch (speci) + { + case SP_DEEP_ELF: case SP_HALFLING: case SP_KOBOLD: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: - case SP_GHOUL: + case SP_SPRIGGAN: + case SP_NAGA: case SP_VAMPIRE: - case SP_FORMICID: - return CC_RESTRICTED; - default: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_ENCHANTER: + case JOB_SUMMONER: switch (speci) { - case SP_HIGH_ELF: - case SP_SLUDGE_ELF: - case SP_DEEP_DWARF: + case SP_DEEP_ELF: case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: + case SP_VINE_STALKER: + case SP_MERFOLK: case SP_TENGU: - case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_DEMONSPAWN: - case SP_MUMMY: - case SP_GHOUL: - case SP_FELID: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_VAMPIRE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_SUMMONER: + case JOB_NECROMANCER: switch (speci) { - case SP_HIGH_ELF: + case SP_DEEP_ELF: case SP_DEEP_DWARF: case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_MERFOLK: - case SP_HALFLING: - case SP_SPRIGGAN: - case SP_NAGA: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: + case SP_DEMONSPAWN: case SP_MUMMY: - case SP_GHOUL: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_VAMPIRE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_NECROMANCER: + case JOB_TRANSMUTER: switch (speci) { - case SP_HIGH_ELF: + case SP_MUMMY: + case SP_GHOUL: + return CC_BANNED; + case SP_NAGA: case SP_MERFOLK: - case SP_HALFLING: - case SP_CENTAUR: - case SP_OGRE: + case SP_BASE_DRACONIAN: + case SP_DEMIGOD: + case SP_DEMONSPAWN: case SP_TROLL: - case SP_MINOTAUR: - case SP_DJINNI: - case SP_GARGOYLE: - case SP_FORMICID: - return CC_RESTRICTED; - default: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_TRANSMUTER: + case JOB_FIRE_ELEMENTALIST: switch (speci) { - case SP_MUMMY: - case SP_GHOUL: - return CC_BANNED; case SP_HIGH_ELF: case SP_DEEP_ELF: - case SP_DEEP_DWARF: case SP_HILL_ORC: - case SP_HALFLING: - case SP_KOBOLD: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: + case SP_NAGA: case SP_TENGU: - case SP_VAMPIRE: - case SP_DJINNI: + case SP_DEMIGOD: case SP_GARGOYLE: - return CC_RESTRICTED; - default: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_FIRE_ELEMENTALIST: + case JOB_ICE_ELEMENTALIST: switch (speci) { - case SP_DEEP_DWARF: + case SP_HIGH_ELF: + case SP_DEEP_ELF: case SP_MERFOLK: - case SP_HALFLING: - case SP_SPRIGGAN: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_FELID: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_NAGA: + case SP_BASE_DRACONIAN: + case SP_DEMIGOD: + case SP_GARGOYLE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_ICE_ELEMENTALIST: + case JOB_AIR_ELEMENTALIST: switch (speci) { - case SP_DEEP_DWARF: - case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_HALFLING: - case SP_SPRIGGAN: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: + case SP_HIGH_ELF: + case SP_DEEP_ELF: case SP_TENGU: - case SP_FELID: - case SP_DJINNI: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_BASE_DRACONIAN: + case SP_NAGA: + case SP_VINE_STALKER: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_AIR_ELEMENTALIST: + case JOB_EARTH_ELEMENTALIST: switch (speci) { + case SP_DEEP_ELF: case SP_DEEP_DWARF: - case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_MERFOLK: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_FELID: + case SP_SPRIGGAN: case SP_GARGOYLE: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_DEMIGOD: + case SP_GHOUL: + case SP_OCTOPODE: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_EARTH_ELEMENTALIST: + case JOB_VENOM_MAGE: switch (speci) { - case SP_HIGH_ELF: + case SP_DEEP_ELF: + case SP_SPRIGGAN: + case SP_NAGA: case SP_MERFOLK: - case SP_HALFLING: - case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: - case SP_MINOTAUR: case SP_TENGU: - case SP_MUMMY: - case SP_VAMPIRE: case SP_FELID: - case SP_DJINNI: - return CC_RESTRICTED; - default: + case SP_DEMONSPAWN: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_VENOM_MAGE: + case JOB_ASSASSIN: switch (speci) { - case SP_HIGH_ELF: - case SP_DEEP_DWARF: - case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_HALFLING: - case SP_CENTAUR: - case SP_OGRE: + case SP_FELID: + return CC_BANNED; case SP_TROLL: - case SP_MINOTAUR: - case SP_MUMMY: - case SP_GHOUL: + case SP_HALFLING: + case SP_SPRIGGAN: + case SP_DEMONSPAWN: case SP_VAMPIRE: - case SP_DJINNI: - return CC_RESTRICTED; - default: + case SP_VINE_STALKER: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_ASSASSIN: + case JOB_HUNTER: switch (speci) { case SP_FELID: return CC_BANNED; case SP_HIGH_ELF: - case SP_DEEP_ELF: - case SP_DEEP_DWARF: case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_NAGA: - case SP_CENTAUR: + case SP_HALFLING: + case SP_KOBOLD: case SP_OGRE: case SP_TROLL: - case SP_MINOTAUR: - case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_DEMONSPAWN: - case SP_MUMMY: - case SP_GHOUL: - case SP_OCTOPODE: - case SP_DJINNI: - case SP_FORMICID: - return CC_RESTRICTED; - default: + case SP_CENTAUR: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_HUNTER: + case JOB_ARTIFICER: switch (speci) { - case SP_FELID: - return CC_BANNED; - case SP_DEEP_ELF: - case SP_HILL_ORC: - case SP_LAVA_ORC: - case SP_MERFOLK: + case SP_DEEP_DWARF: + case SP_HALFLING: + case SP_KOBOLD: case SP_SPRIGGAN: - case SP_NAGA: - case SP_TENGU: case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_DEMONSPAWN: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_ARTIFICER: + case JOB_ARCANE_MARKSMAN: switch (speci) { case SP_FELID: + return CC_BANNED; case SP_HIGH_ELF: case SP_DEEP_ELF: - case SP_SLUDGE_ELF: - case SP_NAGA: - case SP_CENTAUR: - case SP_OGRE: + case SP_KOBOLD: + case SP_SPRIGGAN: case SP_TROLL: - case SP_MINOTAUR: - case SP_TENGU: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_GHOUL: - case SP_VAMPIRE: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_CENTAUR: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - - case JOB_ARCANE_MARKSMAN: + case JOB_WANDERER: switch (speci) { case SP_FELID: return CC_BANNED; - case SP_DEEP_DWARF: case SP_HILL_ORC: - case SP_LAVA_ORC: + case SP_SPRIGGAN: + case SP_CENTAUR: case SP_MERFOLK: - case SP_NAGA: - case SP_TROLL: - case SP_MINOTAUR: - case SP_TENGU: case SP_BASE_DRACONIAN: - case SP_DEMIGOD: - case SP_MUMMY: - case SP_GHOUL: - case SP_OCTOPODE: - return CC_RESTRICTED; - default: + case SP_HUMAN: + case SP_DEMONSPAWN: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } - case JOB_WANDERER: - return CC_RESTRICTED; default: return CC_BANNED; } } -char_choice_restriction species_allowed(job_type job, species_type speci) +char_choice_restriction job_allowed(species_type speci, job_type job) { if (!is_species_valid_choice(speci) || !is_job_valid_choice(job)) return CC_BANNED; @@ -586,23 +436,21 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case SP_HUMAN: switch (job) { - // note the reversed logic - this should change with more - // restrictions - case JOB_WANDERER: - case JOB_CHAOS_KNIGHT: - return CC_RESTRICTED; - default: + case JOB_BERSERKER: + case JOB_DEATH_KNIGHT: + case JOB_CONJURER: + case JOB_NECROMANCER: + case JOB_FIRE_ELEMENTALIST: + case JOB_ICE_ELEMENTALIST: return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; } case SP_HIGH_ELF: switch (job) { - case JOB_FIGHTER: - case JOB_GLADIATOR: case JOB_HUNTER: case JOB_SKALD: - case JOB_WARPER: - case JOB_ARCANE_MARKSMAN: case JOB_WIZARD: case JOB_CONJURER: case JOB_FIRE_ELEMENTALIST: @@ -615,8 +463,6 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case SP_DEEP_ELF: switch (job) { - case JOB_ARCANE_MARKSMAN: - case JOB_ENCHANTER: case JOB_WIZARD: case JOB_CONJURER: case JOB_SUMMONER: @@ -636,14 +482,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_FIGHTER: case JOB_HUNTER: case JOB_ASSASSIN: - case JOB_ARTIFICER: case JOB_BERSERKER: - case JOB_ABYSSAL_KNIGHT: - case JOB_SKALD: - case JOB_WARPER: - case JOB_ARCANE_MARKSMAN: case JOB_ENCHANTER: - case JOB_EARTH_ELEMENTALIST: + case JOB_AIR_ELEMENTALIST: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -653,17 +494,12 @@ char_choice_restriction species_allowed(job_type job, species_type speci) { case JOB_FIGHTER: case JOB_GLADIATOR: - case JOB_MONK: - case JOB_ARTIFICER: case JOB_BERSERKER: case JOB_ABYSSAL_KNIGHT: case JOB_DEATH_KNIGHT: case JOB_HEALER: - case JOB_SKALD: - case JOB_CONJURER: case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: - case JOB_EARTH_ELEMENTALIST: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -673,18 +509,11 @@ char_choice_restriction species_allowed(job_type job, species_type speci) { case JOB_HUNTER: case JOB_ASSASSIN: - case JOB_ARTIFICER: case JOB_BERSERKER: - case JOB_HEALER: case JOB_ARCANE_MARKSMAN: case JOB_ENCHANTER: - case JOB_SUMMONER: - case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: - case JOB_AIR_ELEMENTALIST: - case JOB_EARTH_ELEMENTALIST: - case JOB_VENOM_MAGE: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -699,6 +528,8 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_CONJURER: case JOB_NECROMANCER: case JOB_ICE_ELEMENTALIST: + case JOB_FIRE_ELEMENTALIST: + case JOB_SUMMONER: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -707,19 +538,12 @@ char_choice_restriction species_allowed(job_type job, species_type speci) switch (job) { case JOB_BERSERKER: - case JOB_ABYSSAL_KNIGHT: - case JOB_DEATH_KNIGHT: - case JOB_HEALER: - case JOB_SKALD: case JOB_TRANSMUTER: case JOB_ENCHANTER: - case JOB_CONJURER: - case JOB_SUMMONER: - case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: - case JOB_AIR_ELEMENTALIST: - case JOB_EARTH_ELEMENTALIST: + case JOB_WARPER: + case JOB_WIZARD: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; default: @@ -732,6 +556,8 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_BERSERKER: case JOB_ARCANE_MARKSMAN: case JOB_WIZARD: + case JOB_FIRE_ELEMENTALIST: + case JOB_DEATH_KNIGHT: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -740,12 +566,11 @@ char_choice_restriction species_allowed(job_type job, species_type speci) switch (job) { case JOB_FIGHTER: - case JOB_GLADIATOR: case JOB_MONK: case JOB_HUNTER: case JOB_BERSERKER: - case JOB_DEATH_KNIGHT: - case JOB_HEALER: + case JOB_WARPER: + case JOB_EARTH_ELEMENTALIST: case JOB_WIZARD: return CC_UNRESTRICTED; default: @@ -754,18 +579,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case SP_BASE_DRACONIAN: switch (job) { - case JOB_MONK: - case JOB_ARTIFICER: case JOB_BERSERKER: - case JOB_ABYSSAL_KNIGHT: - case JOB_DEATH_KNIGHT: - case JOB_HEALER: - case JOB_SKALD: case JOB_TRANSMUTER: - case JOB_WIZARD: case JOB_CONJURER: - case JOB_SUMMONER: - case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: case JOB_AIR_ELEMENTALIST: @@ -780,13 +596,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) { case JOB_FIGHTER: case JOB_GLADIATOR: - case JOB_MONK: case JOB_HUNTER: - case JOB_BERSERKER: - case JOB_ABYSSAL_KNIGHT: case JOB_DEATH_KNIGHT: - case JOB_HEALER: - case JOB_TRANSMUTER: + case JOB_WARPER: case JOB_ARCANE_MARKSMAN: return CC_UNRESTRICTED; default: @@ -801,17 +613,12 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_DEATH_KNIGHT: case JOB_HEALER: return CC_BANNED; - case JOB_SKALD: case JOB_TRANSMUTER: - case JOB_WIZARD: case JOB_CONJURER: - case JOB_SUMMONER: - case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: case JOB_AIR_ELEMENTALIST: case JOB_EARTH_ELEMENTALIST: - case JOB_VENOM_MAGE: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -822,14 +629,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_ASSASSIN: case JOB_ARTIFICER: case JOB_ABYSSAL_KNIGHT: - case JOB_TRANSMUTER: case JOB_WARPER: - case JOB_ARCANE_MARKSMAN: case JOB_ENCHANTER: - case JOB_WIZARD: case JOB_CONJURER: - case JOB_NECROMANCER: - case JOB_AIR_ELEMENTALIST: case JOB_EARTH_ELEMENTALIST: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; @@ -854,26 +656,13 @@ char_choice_restriction species_allowed(job_type job, species_type speci) { case JOB_HEALER: return CC_BANNED; - case JOB_FIGHTER: case JOB_GLADIATOR: - case JOB_MONK: - case JOB_HUNTER: - case JOB_ARTIFICER: case JOB_BERSERKER: case JOB_ABYSSAL_KNIGHT: - case JOB_DEATH_KNIGHT: - case JOB_SKALD: - case JOB_TRANSMUTER: - case JOB_WARPER: - case JOB_ARCANE_MARKSMAN: case JOB_WIZARD: - case JOB_CONJURER: - case JOB_SUMMONER: case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: - case JOB_AIR_ELEMENTALIST: - case JOB_EARTH_ELEMENTALIST: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; default: @@ -885,7 +674,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_HEALER: case JOB_TRANSMUTER: return CC_BANNED; - case JOB_FIGHTER: + case JOB_WARPER: case JOB_GLADIATOR: case JOB_MONK: case JOB_NECROMANCER: @@ -898,16 +687,10 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case SP_TENGU: switch (job) { - case JOB_FIGHTER: - case JOB_GLADIATOR: - case JOB_MONK: - case JOB_ASSASSIN: case JOB_BERSERKER: - case JOB_DEATH_KNIGHT: case JOB_WIZARD: case JOB_CONJURER: case JOB_SUMMONER: - case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: case JOB_AIR_ELEMENTALIST: case JOB_VENOM_MAGE: @@ -919,16 +702,11 @@ char_choice_restriction species_allowed(job_type job, species_type speci) switch (job) { case JOB_GLADIATOR: - case JOB_MONK: - case JOB_ASSASSIN: - case JOB_ARTIFICER: case JOB_BERSERKER: - case JOB_ABYSSAL_KNIGHT: case JOB_DEATH_KNIGHT: - case JOB_HEALER: case JOB_SKALD: case JOB_TRANSMUTER: - case JOB_ENCHANTER: + case JOB_SUMMONER: case JOB_ICE_ELEMENTALIST: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; @@ -942,10 +720,8 @@ char_choice_restriction species_allowed(job_type job, species_type speci) return CC_BANNED; case JOB_MONK: case JOB_ASSASSIN: - case JOB_SKALD: - case JOB_ARCANE_MARKSMAN: case JOB_ENCHANTER: - case JOB_SUMMONER: + case JOB_EARTH_ELEMENTALIST: case JOB_NECROMANCER: case JOB_ICE_ELEMENTALIST: return CC_UNRESTRICTED; @@ -956,12 +732,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) switch (job) { case JOB_FIGHTER: - case JOB_GLADIATOR: case JOB_HUNTER: - case JOB_ARTIFICER: case JOB_BERSERKER: case JOB_HEALER: - case JOB_WARPER: case JOB_NECROMANCER: case JOB_EARTH_ELEMENTALIST: return CC_UNRESTRICTED; @@ -976,15 +749,13 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_ASSASSIN: case JOB_ARCANE_MARKSMAN: return CC_BANNED; - case JOB_FIGHTER: - case JOB_MONK: case JOB_BERSERKER: - case JOB_DEATH_KNIGHT: + case JOB_FIRE_ELEMENTALIST: case JOB_TRANSMUTER: - case JOB_WARPER: + case JOB_ICE_ELEMENTALIST: case JOB_CONJURER: case JOB_SUMMONER: - case JOB_NECROMANCER: + case JOB_AIR_ELEMENTALIST: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; default: @@ -996,11 +767,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_TRANSMUTER: case JOB_WIZARD: case JOB_CONJURER: - case JOB_SUMMONER: - case JOB_NECROMANCER: + case JOB_ASSASSIN: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: - case JOB_AIR_ELEMENTALIST: case JOB_EARTH_ELEMENTALIST: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; @@ -1010,20 +779,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case SP_DJINNI: switch (job) { - case JOB_FIGHTER: - case JOB_HUNTER: - case JOB_ARTIFICER: - case JOB_ABYSSAL_KNIGHT: - case JOB_DEATH_KNIGHT: - case JOB_HEALER: - case JOB_WARPER: - case JOB_ARCANE_MARKSMAN: - case JOB_ENCHANTER: - case JOB_WIZARD: - case JOB_CONJURER: - case JOB_SUMMONER: - case JOB_FIRE_ELEMENTALIST: - case JOB_AIR_ELEMENTALIST: + case JOB_CHAOS_KNIGHT: return CC_UNRESTRICTED; default: return CC_RESTRICTED; @@ -1033,17 +789,13 @@ char_choice_restriction species_allowed(job_type job, species_type speci) { case JOB_FIGHTER: case JOB_GLADIATOR: - case JOB_MONK: - case JOB_ARTIFICER: case JOB_BERSERKER: case JOB_ABYSSAL_KNIGHT: case JOB_DEATH_KNIGHT: case JOB_HEALER: - case JOB_SKALD: - case JOB_TRANSMUTER: case JOB_NECROMANCER: case JOB_FIRE_ELEMENTALIST: - case JOB_EARTH_ELEMENTALIST: + return CC_UNRESTRICTED; default: return CC_RESTRICTED; } @@ -1055,17 +807,7 @@ char_choice_restriction species_allowed(job_type job, species_type speci) case JOB_FIGHTER: case JOB_GLADIATOR: case JOB_MONK: - case JOB_HUNTER: - case JOB_ASSASSIN: - case JOB_ARTIFICER: case JOB_BERSERKER: - case JOB_HEALER: - case JOB_SKALD: - case JOB_WARPER: - case JOB_ARCANE_MARKSMAN: - case JOB_ENCHANTER: - case JOB_WIZARD: - case JOB_SUMMONER: case JOB_FIRE_ELEMENTALIST: case JOB_ICE_ELEMENTALIST: case JOB_EARTH_ELEMENTALIST: @@ -1079,13 +821,9 @@ char_choice_restriction species_allowed(job_type job, species_type speci) { case JOB_FIGHTER: case JOB_HUNTER: - case JOB_ARTIFICER: case JOB_ABYSSAL_KNIGHT: - case JOB_DEATH_KNIGHT: case JOB_HEALER: - case JOB_TRANSMUTER: case JOB_ARCANE_MARKSMAN: - case JOB_ENCHANTER: case JOB_EARTH_ELEMENTALIST: case JOB_VENOM_MAGE: return CC_UNRESTRICTED; @@ -1093,7 +831,19 @@ char_choice_restriction species_allowed(job_type job, species_type speci) return CC_RESTRICTED; } case SP_VINE_STALKER: - return CC_RESTRICTED; // todo: figure this out + switch (job) + { + case JOB_MONK: + case JOB_ASSASSIN: + case JOB_ENCHANTER: + case JOB_CONJURER: + case JOB_NECROMANCER: + case JOB_AIR_ELEMENTALIST: + case JOB_ICE_ELEMENTALIST: + return CC_UNRESTRICTED; + default: + return CC_RESTRICTED; + } default: return CC_BANNED; } |