From ca0a0513ac2d4bde5383ed7bd9864bd58472069e Mon Sep 17 00:00:00 2001
From: Sage <SageBasilMint@gmail.com>
Date: Mon, 30 Dec 2013 17:28:27 -0800
Subject: [PATCH 1/3] Add MONS_VINE_STALKER.

This shouldn't place. Mainly it is for the player vine stalker glyph.
---
 crawl-ref/source/enum.h          |    1 +
 crawl-ref/source/melee_attack.cc |    2 +-
 crawl-ref/source/mon-data.h      |   12 ++++++++++++
 crawl-ref/source/potion.cc       |    4 ++--
 crawl-ref/source/species.cc      |    4 +++-
 5 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 4b37929..aa09328 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -2826,6 +2826,7 @@ enum monster_type                      // menv[].type
     MONS_DRAGON,                // genus
     MONS_SNAKE,                 // genus
 #endif
+    MONS_VINE_STALKER,
 
     NUM_MONSTERS,               // used for polymorph
 
diff --git a/crawl-ref/source/melee_attack.cc b/crawl-ref/source/melee_attack.cc
index 717acfc..c73d51b 100644
--- a/crawl-ref/source/melee_attack.cc
+++ b/crawl-ref/source/melee_attack.cc
@@ -1619,7 +1619,7 @@ bool melee_attack::player_aux_apply(unarmed_attack_type atk)
 
             antimagic_affects_defender(true);
             mprf("You drain %s%s.",
-                 defender->as_monster()->pronoun(PRONOUN_POSSESSIVE).c_str()
+                 defender->as_monster()->pronoun(PRONOUN_POSSESSIVE).c_str(),
                  spell_user ? " magic" : " power");
 
             if (!defender->as_monster()->is_summoned()
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index 714c914..45b40ae 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -4922,6 +4922,18 @@ static monsterentry mondata[] =
     MONUSE_WEAPONS_ARMOUR, MONEAT_NOTHING, SIZE_MEDIUM
 },
 
+{
+    MONS_VINE_STALKER, 'P', MAGENTA, "vine stalker",
+    M_WARM_BLOOD | M_SPEAKS | M_NO_POLY_TO | M_FAST_REGEN | M_CANT_SPAWN,
+    MR_NO_FLAGS,
+    550, 10, MONS_PLANT, MONS_VINE_STALKER, MH_PLANT, -4,
+    { {AT_HIT, AF_ANTIMAGIC, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+    { 5, 3, 3, 0 },
+    2, 12, MST_NO_SPELLS, CE_CONTAMINATED, Z_SMALL, S_SHOUT,
+    I_NORMAL, HT_LAND, FL_NONE, 10, DEFAULT_ENERGY,
+    MONUSE_WEAPONS_ARMOUR, MONEAT_NOTHING, SIZE_MEDIUM
+},
+
 { // dummy... literally; single vault
     MONS_HALFLING, '@', LIGHTGREY, "halfling",
     M_WARM_BLOOD | M_SPEAKS | M_NO_POLY_TO,
diff --git a/crawl-ref/source/potion.cc b/crawl-ref/source/potion.cc
index 1ace7ea..f23eea3 100644
--- a/crawl-ref/source/potion.cc
+++ b/crawl-ref/source/potion.cc
@@ -83,7 +83,7 @@ bool potion_effect(potion_type pot_eff, int pow, item_def *potion, bool was_know
 
         if (you.mutation[MUT_NO_DEVICE_HEAL]
             && potion && was_known
-            && you.duration[DUR_CONF] == 0 
+            && you.duration[DUR_CONF] == 0
             && you.duration[DUR_POISONING] == 0
             && you.rotting == 0
             && you.disease == 0)
@@ -92,7 +92,7 @@ bool potion_effect(potion_type pot_eff, int pow, item_def *potion, bool was_know
             return false;
         }
 
-        if (!you.mutation[MUT_NO_DEVICE_HEAL]) 
+        if (!you.mutation[MUT_NO_DEVICE_HEAL])
         {
             inc_hp((5 + random2(7)) / factor);
         }
diff --git a/crawl-ref/source/species.cc b/crawl-ref/source/species.cc
index dc92323..ce27781 100644
--- a/crawl-ref/source/species.cc
+++ b/crawl-ref/source/species.cc
@@ -25,7 +25,7 @@ static species_type species_order[] =
     SP_DEEP_ELF,       SP_DEEP_DWARF,
     SP_HILL_ORC,       SP_LAVA_ORC,
     SP_MERFOLK,        SP_FORMICID,
-    SP_VINE_STALKER, 
+    SP_VINE_STALKER,
     // small species
     SP_HALFLING,       SP_KOBOLD,
     SP_SPRIGGAN,
@@ -392,6 +392,8 @@ monster_type player_species_to_mons_species(species_type species)
         return MONS_DJINNI;
     case SP_FORMICID:
         return MONS_FORMICID;
+    case SP_VINE_STALKER:
+        return MONS_VINE_STALKER;
     case SP_ELF:
     case SP_HILL_DWARF:
     case SP_MOUNTAIN_DWARF:
-- 
1.7.9.5


From de8c5da63aa393439abce7e0de10b2c3ef47e121 Mon Sep 17 00:00:00 2001
From: Sage <SageBasilMint@gmail.com>
Date: Mon, 30 Dec 2013 17:43:32 -0800
Subject: [PATCH 2/3] Add adjective and genus for vine stalker naming.

---
 crawl-ref/source/species.cc |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/crawl-ref/source/species.cc b/crawl-ref/source/species.cc
index ce27781..bf89bdc 100644
--- a/crawl-ref/source/species.cc
+++ b/crawl-ref/source/species.cc
@@ -204,8 +204,10 @@ 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_VINE_STALKER:   res = "Vine Stalker";                          break;
 
+        case SP_VINE_STALKER:
+            res = (adj ? "Vine" : genus ? "Vine" : "Vine Stalker");
+            break;
         case SP_DEEP_DWARF:
             res = (adj ? "Dwarven" : genus ? "Dwarf" : "Deep Dwarf");
             break;
-- 
1.7.9.5


From 5b08d8ce6421417fd53800cf129439cba2596aef Mon Sep 17 00:00:00 2001
From: Sage <SageBasilMint@gmail.com>
Date: Mon, 30 Dec 2013 17:47:27 -0800
Subject: [PATCH 3/3] Reduce vine stalker experience apt by 1.

---
 crawl-ref/source/species.cc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crawl-ref/source/species.cc b/crawl-ref/source/species.cc
index bf89bdc..31733df 100644
--- a/crawl-ref/source/species.cc
+++ b/crawl-ref/source/species.cc
@@ -443,7 +443,6 @@ int species_exp_modifier(species_type species)
     case SP_HUMAN:
     case SP_HALFLING:
     case SP_KOBOLD:
-    case SP_VINE_STALKER:
         return 1;
     case SP_HILL_ORC:
     case SP_OGRE:
@@ -454,6 +453,7 @@ int species_exp_modifier(species_type species)
     case SP_OCTOPODE:
     case SP_TENGU:
     case SP_GARGOYLE:
+    case SP_VINE_STALKER:
         return 0;
     case SP_SPRIGGAN:
     case SP_DEEP_DWARF:
-- 
1.7.9.5

