]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/item.cpp
Shrunk the dependencies immensely with forward declarations in all H files instead...
[irc/gameservirc.git] / gameserv / item.cpp
index d98d744fb3687529dc78de8f67dd577752883ae5..d23620131c596f61fa8070070228cea3e482fa41 100644 (file)
@@ -1,6 +1,16 @@
 #include "item.h"
+#include "player.h"
 
-item::item(char *name, int p, int uses, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
+item::item()
+{
+  myname = "New Item";
+  myprice = 0;
+  myuses = 0;
+  for (int x = 0; x < 8; x++)
+    mymodifiers[x] = 0;
+}
+
+item::item(const char *name, long int p, int uses, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
 {
   myname = name; // string = char*
   myprice = p;
@@ -15,7 +25,7 @@ item::item(char *name, int p, int uses, int m1, int m2, int m3, int m4, int m5,
   mymodifiers[7] = m8;
 }
 
-item::item(string name, int p, int uses, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
+item::item(string name, long int p, int uses, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
 {
   myname = name; // string = char*
   myprice = p;
@@ -80,6 +90,32 @@ void weapon::undo(Player *p)
   p->maxhp -= mymodifiers[2];
 }
 
+void armor::undo(Player *p)
+{
+  p->strength -= mymodifiers[0];
+  p->defense -= mymodifiers[1];
+  p->maxhp -= mymodifiers[2];
+}
+
+bool armor::use(Player *p)
+{
+  //  weapon(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0)
+  if (myuses == 0)
+    return false;
+  else
+    {
+      p->strength += mymodifiers[0];
+      p->defense += mymodifiers[1];
+      p->maxhp += mymodifiers[2];
+    }
+
+  if (myuses > 0)
+    {
+      myuses--;
+    }
+  return true;
+}
+
 bool potion::use(Player *p)
 {
   // potion(char *name, int p=0, int uses = 1, int strength=0, int defense=0, int maxhp=0, int hp=0, int forest_fights=0, int player_fights=0, int gold=0, int bank=0)
@@ -104,3 +140,8 @@ bool potion::use(Player *p)
     }
   return true;
 }
+
+void potion::undo(Player *p)
+{
+  return;
+}