Browse Source

v0.6-dev now using class User

  And ZF_LOG to a file! woot!
david 4 years ago
parent
commit
d56263a869
4 changed files with 474 additions and 449 deletions
  1. 3 2
      CMakeLists.txt
  2. 195 447
      main.cpp
  3. 201 0
      user.cpp
  4. 75 0
      user.h

+ 3 - 2
CMakeLists.txt

@@ -9,6 +9,7 @@ add_subdirectory(opendoors)
 add_subdirectory(zf_log)
 include_directories(${SQLITE3_INCLUDE_DIRS})
 
-add_executable(sc main.cpp)
+add_executable(sc main.cpp user.cpp)
 target_link_libraries(sc opendoors zf_log ${SQLITE3_LIBRARIES})
-target_compile_definitions(sc PUBLIC ZF_LOG_DEF_LEVEL=ZF_LOG_VERBOSE)
+#target_compile_definitions(sc PUBLIC ZF_LOG_DEF_LEVEL=ZF_LOG_VERBOSE)
+target_compile_definitions(sc PUBLIC ZF_LOG_DEF_LEVEL=ZF_LOG_INFO)

File diff suppressed because it is too large
+ 195 - 447
main.cpp


+ 201 - 0
user.cpp

@@ -0,0 +1,201 @@
+/*
+User class
+
+This contains everything needed to have a "player"
+*/
+
+#include "user.h"
+#include <string>
+
+User::User() { this->init(); }
+
+User::User(std::string name, std::string realname) {
+  uid = 0;
+  nick = name;
+  real = realname;
+  experience = 0;
+  laston = 0;
+  armor = 1;
+  armorpoints = 8;
+  shield = 0;
+  shieldpoints = 0;
+  shieldsup = 0;
+  hitpoints = 4;
+  gun = 1;
+  metal = 0;
+  fuel = 10;
+  dirt = true;
+}
+
+User::User(int uuid, std::string name, std::string realname, int exp, int lo, int a, int ap, int s, int sp, int su, int hp, int g, int m, int f) {
+  uid = uuid;
+  nick = name;
+  real = realname;
+  experience = exp;
+  laston = lo;
+  armor = a;
+  armorpoints = ap;
+  shield = s;
+  shieldpoints = sp;
+  shieldsup = su;
+  hitpoints = hp;
+  gun = g;
+  metal = m;
+  fuel = f;
+  dirt = false;
+}
+
+void User::init(void) {
+  uid = 0;
+  nick = "Unknown";
+  real = "Unknown";
+  experience = 0;
+  laston = 0;
+  armor = 1;
+  armorpoints = 8;
+  shield = 0;
+  shieldpoints = 0;
+  shieldsup = 0;
+  hitpoints = 4;
+  gun = 1;
+  metal = 0;
+  fuel = 10;
+  dirt = false;
+}
+
+bool User::dirty(void) {return dirt;}
+// How much metal to add one more cost?
+int User::calcArmor(void) {return (3 * (armor + 1));}
+int User::calcShield(void) {return (6 * (shield + 1));}
+int User::calcGun(void) {return (4 * (gun + 1));}
+// Calc Max value
+int User::calcHP(void) {return (gun + armor + shield + 2);}
+int User::calcSP(void) {return (shield * 3);}
+int User::calcAP(void) {return (armor * 8);}
+// Combat System
+void User::regen(void) {
+  if(shieldsup != 0) {
+    dirt = true;
+    shieldsup -= 1;
+  }
+  if(shieldsup != 0) {
+    dirt = true;
+    shieldpoints += 1;
+  } else {
+    dirt = true;
+    shieldpoints += shield;
+  }
+  if(shieldpoints > calcSP()) {
+    dirt = true;
+    shieldpoints = calcSP();
+  }
+}
+void User::repair(bool docked) {
+  int amount;
+  if(docked) {
+      amount = 4;
+  } else {
+      amount = 2;
+  }
+  if(armorpoints < calcAP()) {
+      if(metal != 0) {
+          dirt = true;
+          metal -= 1;
+          armorpoints += amount;
+          if(armorpoints > calcAP()) {
+            armorpoints = calcAP();
+          }
+      }
+  }
+}
+int User::takeDamage(int dmg) {
+  if(shieldsup == 0) {
+    if(shieldpoints >= dmg) {
+      // Shields Absorbed all damage
+      dirt = true;
+      shieldpoints -= dmg;
+      return 0;
+    } else {
+      // Shields took some damage but more damage to take
+      dirt = true;
+      dmg -= shieldpoints;
+      shieldpoints = 0;
+      shieldsup += (shield + 2);
+    }
+  }
+  if(dmg > 0) {
+    if(armorpoints >= dmg) {
+      // Armor took all remaining damage
+      dirt = true;
+      armorpoints -= dmg;
+      return 0;
+    } else {
+      // Armor took some damage but more damage to take
+      dirt = true;
+      dmg -= armorpoints;
+      armorpoints = 0;
+    }
+  }
+  if(dmg > 0) {
+    if(hitpoints > dmg) {
+      // Hull took all remaining damage
+      dirt = true;
+      hitpoints -= dmg;
+      return 0;
+    } else {
+      // Hull took some damage but more needed to be taken
+      // Our ship is :boom: space debris.
+      dirt = true;
+      int temp = dmg;
+      dmg -= hitpoints;
+      hitpoints -= temp;
+      temp = 0;
+      return dmg;
+    }
+  }
+}
+// Adds and Removes
+void User::addEXP(int amount) {dirt = true; experience += amount;}
+void User::rmEXP(int amount) {dirt = true; experience -= amount;}
+void User::addMetal(int amount) {dirt = true; metal += amount;}
+void User::rmMetal(int amount) {dirt = true; metal -= amount;}
+void User::addFuel(int amount) {dirt = true; fuel += amount;}
+void User::rmFuel(int amount) {dirt = true; fuel -= amount;}
+void User::rmLaston(int amount) {dirt = true; laston -= amount; if(laston < 0) {laston = 0;}}
+void User::addHP(int amount) {dirt = true; hitpoints += amount;}
+void User::addGun(int amount) {dirt = true; gun += amount; addHP(1);}
+void User::addArmor(int amount) {dirt = true; armor += amount; armorpoints += (amount * 8); addHP(1);}
+void User::addShield(int amount) {dirt = true; shield += amount; if(shieldsup == 0) {shieldpoints += (amount * 1);} else {shieldpoints += (amount * 3);} addHP(1);}
+void User::rmSU(int amount) {dirt = true; shieldsup -= amount; if(shieldsup > 0) {shieldsup = 0;}}
+// Sets
+void User::set_dirt(bool val) {dirt = val;}
+void User::set_uid(int val) {uid = val;}
+void User::set_experience(int val) {experience = val;}
+void User::set_gun(int val) {gun = val;}
+void User::set_armor(int val) {armor = val;}
+void User::set_armorpoints(int val) {armorpoints = val;}
+void User::set_shield(int val) {shield = val;}
+void User::set_shieldpoints(int val) {shieldpoints = val;}
+void User::set_shieldsup(int val) {shieldsup = val;}
+void User::set_hitpoints(int val) {hitpoints = val;}
+void User::set_laston(int val) {laston = val;}
+void User::set_nick(std::string val) {nick = val;}
+void User::set_real(std::string val) {real = val;}
+void User::set_metal(int val) {metal = val;}
+void User::set_fuel(int val) {fuel = val;}
+// Gets
+bool User::get_dirt(void) {return dirt;}
+int User::get_uid(void) {return uid;}
+int User::get_experience(void) {return experience;}
+int User::get_gun(void) {return gun;}
+int User::get_armor(void) {return armor;}
+int User::get_armorpoints(void) {return armorpoints;}
+int User::get_shield(void) {return shield;}
+int User::get_shieldpoints(void) {return shieldpoints;}
+int User::get_shieldsup(void) {return shieldsup;}
+int User::get_hitpoints(void) {return hitpoints;}
+int User::get_laston(void) {return laston;}
+int User::get_metal(void) {return metal;}
+int User::get_fuel(void) {return fuel;}
+std::string User::get_nick(void) {return nick;}
+std::string User::get_real(void) {return real;}

+ 75 - 0
user.h

@@ -0,0 +1,75 @@
+#ifndef USER_H
+#define USER_H
+
+#include <string>
+
+class User {
+  private:
+    int uid, experience, gun, fuel, metal, armor, shield, hitpoints, armorpoints, shieldpoints, shieldsup, laston;
+    bool dirt;
+    std::string nick, real;
+  public:
+    // Constructors
+    User(void);
+    User(std::string, std::string);
+    User(int uuid, std::string name, std::string realname, int exp, int lo, int a, int ap, int s, int sp, int su, int hp, int g, int m, int f);
+    // Initalizer
+    void init(void);
+    // Methods
+    bool dirty(void);
+    int calcArmor(void);
+    int calcShield(void);
+    int calcGun(void);
+    int calcHP(void);
+    int calcAP(void);
+    int calcSP(void);
+    void regen(void);
+    void repair(bool);
+    int takeDamage(int);
+    // Sets and Gets
+    void set_dirt(bool);
+    bool get_dirt(void);
+    void set_uid(int);
+    int get_uid(void);
+    void set_experience(int);
+    int get_experience(void);
+    void set_gun(int);
+    int get_gun(void);
+    void set_armor(int);
+    int get_armor(void);
+    void set_shield(int);
+    int get_shield(void);
+    void set_armorpoints(int);
+    int get_armorpoints(void);
+    void set_shieldpoints(int);
+    int get_shieldpoints(void);
+    void set_shieldsup(int);
+    int get_shieldsup(void);
+    void set_hitpoints(int);
+    int get_hitpoints(void);
+    void set_laston(int);
+    int get_laston(void);
+    void set_metal(int);
+    int get_metal(void);
+    void set_fuel(int);
+    int get_fuel(void);
+    void set_nick(std::string);
+    std::string get_nick(void);
+    void set_real(std::string);
+    std::string get_real(void);
+    // Adds and Removes
+    void addEXP(int);
+    void rmEXP(int);
+    void addMetal(int);
+    void rmMetal(int);
+    void addFuel(int);
+    void rmFuel(int);
+    void rmLaston(int);
+    void addHP(int);
+    void addGun(int);
+    void addArmor(int);
+    void addShield(int);
+    void rmSU(int);
+};
+
+#endif

Some files were not shown because too many files changed in this diff