From 21368f6f951b870b46f70f52410baa4252a91b2f Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 17 Jun 2023 22:03:20 -0500 Subject: [PATCH] Define and setup internal class attributes. --- Crawler/Class.cpp | 46 +++++++++++++++++++++++++++++++++ Crawler/Class.h | 12 +++++++++ Crawler/Crawler.cpp | 2 ++ Crawler/Crawler.vcxproj | 2 ++ Crawler/Crawler.vcxproj.filters | 6 +++++ Crawler/DEFINES.h | 3 ++- Crawler/NewClasses.txt | 7 +++++ Crawler/Player.cpp | 14 ++++++---- Crawler/Player.h | 3 +++ 9 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 Crawler/Class.cpp create mode 100644 Crawler/Class.h diff --git a/Crawler/Class.cpp b/Crawler/Class.cpp new file mode 100644 index 00000000..a467236a --- /dev/null +++ b/Crawler/Class.cpp @@ -0,0 +1,46 @@ +#include "Class.h" + +std::mapCLASS_DATA={ + {WARRIOR,{ + "Warrior",WARRIOR, + {"Block",15,VERY_DARK_BLUE,DARK_BLUE}, + {"Battlecry",12}, + {"Ground Slam",15}, + {"Sonic Slash",40} + }}, + {THIEF,{ + "Thief",THIEF, + {"???",15,VERY_DARK_BLUE,DARK_BLUE}, + {"???",12}, + {"???",15}, + {"???",40} + }}, + {RANGER,{ + "Ranger",RANGER, + {"Retreat",7,VERY_DARK_BLUE,DARK_BLUE}, + {"Rapid Fire",12}, + {"Charged Shot",15}, + {"Multishot",25} + }}, + {BARD,{ + "Bard",BARD, + {"???",7,VERY_DARK_BLUE,DARK_BLUE}, + {"???",12}, + {"???",15}, + {"???",25} + }}, + {WIZARD,{ + "Wizard",WIZARD, + {"Teleport",8,VERY_DARK_BLUE,DARK_BLUE}, + {"Firebolt",6}, + {"Lightning Bolt",6}, + {"Meteor",40} + }}, + {WITCH,{ + "Witch",WITCH, + {"???",8,VERY_DARK_BLUE,DARK_BLUE}, + {"???",6}, + {"???",6}, + {"???",40} + }}, +}; \ No newline at end of file diff --git a/Crawler/Class.h b/Crawler/Class.h new file mode 100644 index 00000000..44f80e18 --- /dev/null +++ b/Crawler/Class.h @@ -0,0 +1,12 @@ +#pragma once +#include "Ability.h" +#include "olcPixelGameEngine.h" + +enum Class{ + WARRIOR,THIEF,RANGER,BARD,WIZARD,WITCH +}; +struct ClassData{ + std::string name; + Class cl; + Ability rightClickAbility,ability1,ability2,ability3; +}; \ No newline at end of file diff --git a/Crawler/Crawler.cpp b/Crawler/Crawler.cpp index 8f4ac291..cb395303 100644 --- a/Crawler/Crawler.cpp +++ b/Crawler/Crawler.cpp @@ -4,6 +4,7 @@ #include "DamageNumber.h" #include "Bullet.h" #include "Ability.h" +#include "Class.h" #include "DEFINES.h" //192x192 @@ -55,6 +56,7 @@ bool Crawler::OnUserCreate(){ player.AddAnimation(AnimationState::SWINGSWORD_W); view=TileTransformedView{GetScreenSize(),{1,1}}; + player.SetClass(WARRIOR); player.SetPos({4*24,4*24}); player.UpdateAnimation(AnimationState::IDLE_S); diff --git a/Crawler/Crawler.vcxproj b/Crawler/Crawler.vcxproj index f1b26c1d..0c199478 100644 --- a/Crawler/Crawler.vcxproj +++ b/Crawler/Crawler.vcxproj @@ -132,6 +132,7 @@ + @@ -148,6 +149,7 @@ + diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters index 2699abb8..e3726162 100644 --- a/Crawler/Crawler.vcxproj.filters +++ b/Crawler/Crawler.vcxproj.filters @@ -60,6 +60,9 @@ Header Files + + Header Files + @@ -89,6 +92,9 @@ Source Files + + Source Files + diff --git a/Crawler/DEFINES.h b/Crawler/DEFINES.h index ebc4ea2b..ad8624c9 100644 --- a/Crawler/DEFINES.h +++ b/Crawler/DEFINES.h @@ -5,4 +5,5 @@ #define INCLUDE_DAMAGENUMBER_LIST extern std::vectorDAMAGENUMBER_LIST; #define INCLUDE_game extern Crawler*game; #define INCLUDE_MONSTER_DATA extern std::mapMONSTER_DATA; -#define INCLUDE_BULLET_LIST extern std::vectorBULLET_LIST; \ No newline at end of file +#define INCLUDE_BULLET_LIST extern std::vectorBULLET_LIST; +#define INCLUDE_CLASS_DATA extern std::mapCLASS_DATA; \ No newline at end of file diff --git a/Crawler/NewClasses.txt b/Crawler/NewClasses.txt index 8866310b..2261064b 100644 --- a/Crawler/NewClasses.txt +++ b/Crawler/NewClasses.txt @@ -22,6 +22,8 @@ the Battlecry slow is primarly ment to make it easier to catch up with range uni Ranger +Ranger und bard shoot arrow. little higher cooldown to balance range advantage. like 0.6 maybe. + Rightclick - Retreat Backwardsjump leap 250 Range backwards. @@ -42,7 +44,12 @@ every arrow normal autohit dmg. (can be used as shotgun against large foes for 6 25 sec. cd 55 Mana + + Wizard +Wizard and witch have different attacks. Both Probably around 0.85 sec cd. Skill cooldowns will be lower to balance that out. +Wizard energy bolts that are just like arrows normal projectiles + Rightclick - Teleport Teleports to a location within 650 Range cd 8 sec. diff --git a/Crawler/Player.cpp b/Crawler/Player.cpp index ea182d2b..02befde1 100644 --- a/Crawler/Player.cpp +++ b/Crawler/Player.cpp @@ -9,16 +9,20 @@ INCLUDE_MONSTER_LIST INCLUDE_ANIMATION_DATA INCLUDE_SPAWNER_LIST INCLUDE_DAMAGENUMBER_LIST +INCLUDE_CLASS_DATA INCLUDE_game const float Player::GROUND_SLAM_SPIN_TIME=0.6f; Player::Player(): - state(State::NORMAL),lastReleasedMovementKey(DOWN),facingDirection(DOWN), - rightClickAbility("Block",15,VERY_DARK_BLUE,DARK_BLUE), - ability1("Battlecry",12), - ability2("Ground Slam",15), - ability3("Sonic Slash",40){ + state(State::NORMAL),lastReleasedMovementKey(DOWN),facingDirection(DOWN){} + +void Player::SetClass(Class cl){ + this->cl=CLASS_DATA[cl].cl; + rightClickAbility=CLASS_DATA[cl].rightClickAbility; + ability1=CLASS_DATA[cl].ability1; + ability2=CLASS_DATA[cl].ability2; + ability3=CLASS_DATA[cl].ability3; } void Player::SetX(float x){ diff --git a/Crawler/Player.h b/Crawler/Player.h index 2a07b6a3..f9fc5636 100644 --- a/Crawler/Player.h +++ b/Crawler/Player.h @@ -4,10 +4,12 @@ #include "Monster.h" #include "State.h" #include "Ability.h" +#include "Class.h" struct Player{ friend class Crawler; private: + Class cl=WARRIOR; int hp=100,maxhp=hp; int atk=10; vf2d pos; @@ -42,6 +44,7 @@ private: void SetY(float y); void SetZ(float z); void SetPos(vf2d pos); + void SetClass(Class cl); protected: public: Player();