parent
8547054a60
commit
cbbee7aaa4
@ -0,0 +1,65 @@ |
|||||||
|
Intro: |
||||||
|
Sizes are in proportion to Player Character Size. |
||||||
|
Character in test will be a Warrior Tank kind of character. |
||||||
|
Dungeon map can be just a single corridor for first test. |
||||||
|
Monster Aggro range needs to be figured out. |
||||||
|
Probably better to only spawn Monster if you get close enough to there location. |
||||||
|
I will play Realm of the mad god the next days to check how enemy AI works there. |
||||||
|
I dont want to copy alot of that game but i feel like they are doing combat kinda right. |
||||||
|
|
||||||
|
|
||||||
|
Player Stats |
||||||
|
Hp: 100 |
||||||
|
Atk: 10 |
||||||
|
Move-Spd.: 100% |
||||||
|
Size: 100% |
||||||
|
Attack Range: 150 |
||||||
|
|
||||||
|
Attack Range: 100 Range = 1x Player Character Hitbox |
||||||
|
|
||||||
|
Leftclick: (Auto Attack) |
||||||
|
Cooldown: 0,75 Second |
||||||
|
|
||||||
|
Righclick: (Block) |
||||||
|
Cooldown: 15 Seconds |
||||||
|
Blocks all damage for the next 3 seconds. |
||||||
|
|
||||||
|
Button 1: Ground Slam |
||||||
|
Cooldown: 20 Seconds |
||||||
|
Mana: no Mana during first concept Test |
||||||
|
Dmg: Atk x 2.5 (25 in this case) |
||||||
|
Range: 300 (AoE) |
||||||
|
Location: Center of character. |
||||||
|
|
||||||
|
Monster: |
||||||
|
|
||||||
|
Monster A |
||||||
|
HP: 10 |
||||||
|
Atk: 5 |
||||||
|
Move-Spd: 110% |
||||||
|
Size: 80% |
||||||
|
Strategie: Runs Towards Player, damage on collision |
||||||
|
|
||||||
|
Monster B |
||||||
|
HP: 30 |
||||||
|
Atk: 10 |
||||||
|
Move-Spd: 80% |
||||||
|
Size: 100% |
||||||
|
Strategie: Shoots projectiles with 800 Range, tries to stay 600-700 Range away from player, 1 sec. attack cd |
||||||
|
|
||||||
|
Monster C |
||||||
|
HP: 25 |
||||||
|
Atk: 10 |
||||||
|
Move-Spd: 95% |
||||||
|
Size: 120% |
||||||
|
Strategie: Runs towards player, damage on collision |
||||||
|
|
||||||
|
|
||||||
|
Encounter: |
||||||
|
1: 2x A |
||||||
|
2: 2x A 1x C |
||||||
|
3: 2x B |
||||||
|
4: 3x A 2x B |
||||||
|
5: 2x B 2x C |
||||||
|
6: 5x C |
||||||
|
7: 5x B |
@ -0,0 +1,45 @@ |
|||||||
|
#include "olcPixelGameEngine.h" |
||||||
|
|
||||||
|
enum MonsterStrategy{ |
||||||
|
RUN_TOWARDS, |
||||||
|
SHOOT_AFAR |
||||||
|
}; |
||||||
|
|
||||||
|
struct MonsterData{ |
||||||
|
private: |
||||||
|
int hp; |
||||||
|
int atk; |
||||||
|
float moveSpd;//1.0=100%
|
||||||
|
float size; |
||||||
|
MonsterStrategy strategy; |
||||||
|
public: |
||||||
|
MonsterData(){}; |
||||||
|
MonsterData(int hp,int atk,float moveSpd=1.0f,float size=1.0f,MonsterStrategy strategy=RUN_TOWARDS): |
||||||
|
hp(hp),atk(atk),moveSpd(moveSpd),size(size),strategy(strategy){} |
||||||
|
int GetHealth(){ |
||||||
|
return hp; |
||||||
|
} |
||||||
|
int GetAttack(){ |
||||||
|
return atk; |
||||||
|
} |
||||||
|
float GetMoveSpdMult(){ |
||||||
|
return moveSpd; |
||||||
|
} |
||||||
|
float GetSizeMult(){ |
||||||
|
return size; |
||||||
|
} |
||||||
|
MonsterStrategy GetAIStrategy(){ |
||||||
|
return strategy; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
enum MonsterName{ |
||||||
|
SLIME_GREEN, |
||||||
|
SLIME_BLUE, |
||||||
|
SLIME_RED, |
||||||
|
SLIME_YELLOW, |
||||||
|
}; |
||||||
|
|
||||||
|
struct Monster{ |
||||||
|
|
||||||
|
}; |
@ -0,0 +1,10 @@ |
|||||||
|
#include "olcPixelGameEngine.h" |
||||||
|
#include "Monster.h" |
||||||
|
|
||||||
|
|
||||||
|
std::map<MonsterName,MonsterData>MONSTER_DATA={ |
||||||
|
{SLIME_GREEN,MonsterData(10,5,1.1f,0.8f,MonsterStrategy::RUN_TOWARDS)},
|
||||||
|
{SLIME_BLUE,MonsterData(30,10,0.8f,1.0f,MonsterStrategy::SHOOT_AFAR)}, |
||||||
|
{SLIME_RED,MonsterData(25,10,0.95f,1.2f,MonsterStrategy::RUN_TOWARDS)}, |
||||||
|
//{SLIME_YELLOW,{}},
|
||||||
|
}; |
Loading…
Reference in new issue