@ -20,7 +20,7 @@
# define TILEMAP_EDITOR_TILESIZE (32*TILEMAP_EDITOR_DRAW_MULT)
# define TILEMAP_EDITOR_TILESIZE (32*TILEMAP_EDITOR_DRAW_MULT)
# define PARTY_TRAIL_LENGTH 48
# define PARTY_TRAIL_LENGTH 48
# define CAMERA_WAIT_TIME 60
# define CAMERA_WAIT_TIME 60
# define HEALTH_ROLLING_SPEED 1
# define HEALTH_ROLLING_SPEED 2
# define ㅎ
# define ㅎ
# define ㅍ
# define ㅍ
@ -280,9 +280,8 @@ class Entity{
Object * obj ;
Object * obj ;
std : : vector < Battle : : Move * > moveSet ;
std : : vector < Battle : : Move * > moveSet ;
//Used for initializing players.
//Used for initializing players.
Entity ( int HP , int maxHP , int PP , int maxPP , int baseAtk , std : : array < int , 4 > resistances , int speed , std : : vector < Battle : : Move * > moveSet , int damageReduction = 0 , bool smart = false , bool dumb = false ) {
Entity ( int HP , int maxHP , int PP , int maxPP , int baseAtk , std : : array < int , 4 > resistances , int speed , std : : vector < Battle : : Move * > moveSet , int damageReduction = 0 , bool smart = false , bool dumb = false )
Entity ( nullptr , HP , maxHP , PP , maxPP , baseAtk , resistances , speed , moveSet , damageReduction , smart , dumb ) ;
: Entity ( nullptr , HP , maxHP , PP , maxPP , baseAtk , resistances , speed , moveSet , damageReduction , smart , dumb ) { }
}
//Use this for initializing enemies as it lets you specify an object.
//Use this for initializing enemies as it lets you specify an object.
Entity ( Object * obj , int HP , int maxHP , int PP , int maxPP , int baseAtk , std : : array < int , 4 > resistances , int speed , std : : vector < Battle : : Move * > moveSet , int damageReduction = 0 , bool smart = false , bool dumb = false )
Entity ( Object * obj , int HP , int maxHP , int PP , int maxPP , int baseAtk , std : : array < int , 4 > resistances , int speed , std : : vector < Battle : : Move * > moveSet , int damageReduction = 0 , bool smart = false , bool dumb = false )
: obj ( obj ) , HP ( HP ) , maxHP ( maxHP ) , PP ( PP ) , maxPP ( maxPP ) , baseAtk ( baseAtk ) , speed ( speed ) , moveSet ( moveSet ) , damageReduction ( damageReduction ) , smart ( smart ) , dumb ( dumb ) {
: obj ( obj ) , HP ( HP ) , maxHP ( maxHP ) , PP ( PP ) , maxPP ( maxPP ) , baseAtk ( baseAtk ) , speed ( speed ) , moveSet ( moveSet ) , damageReduction ( damageReduction ) , smart ( smart ) , dumb ( dumb ) {
@ -393,6 +392,7 @@ public:
int player_rollpp_counter [ 4 ] [ 3 ] = { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } ;
int player_rollpp_counter [ 4 ] [ 3 ] = { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } ;
int player_rollhp_display [ 4 ] [ 3 ] = { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } ;
int player_rollhp_display [ 4 ] [ 3 ] = { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } ;
int player_rollpp_display [ 4 ] [ 3 ] = { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } ;
int player_rollpp_display [ 4 ] [ 3 ] = { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } ;
int SELECTED_TEST_TARGET = 0 ;
bool MOUSE_PRESSED_DOWN = false , MOUSE_DOWN = false , MOUSE_RELEASED = false ; //TODO Implement Mouse things.
bool MOUSE_PRESSED_DOWN = false , MOUSE_DOWN = false , MOUSE_RELEASED = false ; //TODO Implement Mouse things.
@ -599,34 +599,51 @@ goes on a very long time, I hope you can understand this is only for testing pur
}
}
} else
} else
if ( member - > HP < member - > targetHP ) {
if ( member - > HP < member - > targetHP ) {
if ( player_rollhp_counter [ i ] [ 0 ] > = 13 ) {
if ( player_rollhp_counter [ i ] [ 0 ] > = 0 ) {
player_rollhp_display [ i ] [ 0 ] + + ;
player_rollhp_display [ i ] [ 0 ] + + ;
player_rollhp_counter [ i ] [ 0 ] = 0 ;
player_rollhp_counter [ i ] [ 0 ] = - 13 ;
member - > HP + + ;
member - > HP + + ;
if ( player_rollhp_display [ i ] [ 0 ] > 9 ) {
if ( player_rollhp_display [ i ] [ 0 ] > 9 ) {
player_rollhp_display [ i ] [ 0 ] = 0 ;
player_rollhp_display [ i ] [ 0 ] = 0 ;
player_rollhp_counter [ i ] [ 0 ] = 0 ;
player_rollhp_counter [ i ] [ 0 ] = - 13 ;
player_rollhp_display [ i ] [ 1 ] + + ;
player_rollhp_display [ i ] [ 1 ] + + ;
player_rollhp_counter [ i ] [ 1 ] = 0 ;
player_rollhp_counter [ i ] [ 1 ] = - 13 ;
if ( player_rollhp_display [ i ] [ 1 ] > 9 ) {
if ( player_rollhp_display [ i ] [ 1 ] > 9 ) {
player_rollhp_display [ i ] [ 1 ] = 0 ;
player_rollhp_display [ i ] [ 1 ] = 0 ;
player_rollhp_counter [ i ] [ 1 ] = 0 ;
player_rollhp_counter [ i ] [ 1 ] = - 13 ;
player_rollhp_display [ i ] [ 2 ] + + ;
player_rollhp_display [ i ] [ 2 ] + + ;
player_rollhp_counter [ i ] [ 2 ] = 0 ;
player_rollhp_counter [ i ] [ 2 ] = - 13 ;
}
}
}
}
}
}
if ( player_rollhp_counter [ i ] [ 0 ] < 13 ) {
if ( player_rollhp_counter [ i ] [ 0 ] < 0 ) {
player_rollhp_counter [ i ] [ 0 ] + = HEALTH_ROLLING_SPEED ;
player_rollhp_counter [ i ] [ 0 ] + = HEALTH_ROLLING_SPEED ;
}
}
if ( player_rollhp_counter [ i ] [ 1 ] < 13 ) {
if ( player_rollhp_counter [ i ] [ 1 ] < 0 ) {
player_rollhp_counter [ i ] [ 1 ] + + ;
player_rollhp_counter [ i ] [ 1 ] + + ;
}
}
if ( player_rollhp_counter [ i ] [ 2 ] < 13 ) {
if ( player_rollhp_counter [ i ] [ 2 ] < 0 ) {
player_rollhp_counter [ i ] [ 2 ] + + ;
player_rollhp_counter [ i ] [ 2 ] + + ;
}
}
} else {
} else {
player_rollhp_counter [ i ] [ 0 ] = player_rollhp_counter [ i ] [ 1 ] = player_rollhp_counter [ i ] [ 2 ] = 0 ;
if ( player_rollhp_counter [ i ] [ 0 ] < 0 ) {
player_rollhp_counter [ i ] [ 0 ] + + ;
}
if ( player_rollhp_counter [ i ] [ 1 ] < 0 ) {
player_rollhp_counter [ i ] [ 1 ] + + ;
}
if ( player_rollhp_counter [ i ] [ 2 ] < 0 ) {
player_rollhp_counter [ i ] [ 2 ] + + ;
}
if ( player_rollhp_counter [ i ] [ 0 ] > 0 ) {
player_rollhp_counter [ i ] [ 0 ] - - ;
}
if ( player_rollhp_counter [ i ] [ 1 ] > 0 ) {
player_rollhp_counter [ i ] [ 1 ] - - ;
}
if ( player_rollhp_counter [ i ] [ 2 ] > 0 ) {
player_rollhp_counter [ i ] [ 2 ] - - ;
}
}
}
}
}
} break ;
} break ;
@ -984,6 +1001,19 @@ goes on a very long time, I hope you can understand this is only for testing pur
ConsoleShow ( F1 , false ) ;
ConsoleShow ( F1 , false ) ;
}
}
if ( BATTLE_ENCOUNTER ! = nullptr ) {
if ( GetMouseWheel ( ) > 0 ) {
SELECTED_TEST_TARGET = ( SELECTED_TEST_TARGET + 1 ) % 4 ;
printf ( " Selected Test Target:%d \n " , SELECTED_TEST_TARGET ) ;
}
if ( GetKey ( PGUP ) . bPressed ) {
PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ SELECTED_TEST_TARGET ] ] - > targetHP = std : : clamp ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ SELECTED_TEST_TARGET ] ] - > targetHP + 10 , 0 , PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ SELECTED_TEST_TARGET ] ] - > maxHP ) ;
}
if ( GetKey ( PGDN ) . bPressed ) {
PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ SELECTED_TEST_TARGET ] ] - > targetHP = std : : clamp ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ SELECTED_TEST_TARGET ] ] - > targetHP - 10 , 0 , PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ SELECTED_TEST_TARGET ] ] - > maxHP ) ;
}
}
switch ( GAME_STATE ) {
switch ( GAME_STATE ) {
case GameState : : TILE_SELECT : {
case GameState : : TILE_SELECT : {
if ( UpPressed ( ) ) {
if ( UpPressed ( ) ) {
@ -1569,6 +1599,7 @@ goes on a very long time, I hope you can understand this is only for testing pur
void SetupPartyMemberStats ( ) {
void SetupPartyMemberStats ( ) {
for ( int i = 0 ; i < 7 ; i + + ) {
for ( int i = 0 ; i < 7 ; i + + ) {
PARTY_MEMBER_STATS [ i ] = new Entity ( 120 , 120 , 30 , 30 , 8 , { 0 , 0 , 0 , 0 } , 4 , { MOVELIST [ BattleMoveName : : TESTMOVE1 ] } ) ;
PARTY_MEMBER_STATS [ i ] = new Entity ( 120 , 120 , 30 , 30 , 8 , { 0 , 0 , 0 , 0 } , 4 , { MOVELIST [ BattleMoveName : : TESTMOVE1 ] } ) ;
printf ( " HP:%d Max HP:%d " , PARTY_MEMBER_STATS [ i ] - > HP , PARTY_MEMBER_STATS [ i ] - > maxHP ) ;
}
}
}
}
@ -2107,9 +2138,9 @@ goes on a very long time, I hope you can understand this is only for testing pur
FillRectDecal ( { ( float ) ( pos . x + 21 ) , ( float ) ( pos . y - 2 ) } , { 28 , 11 } , olc : : GREY ) ;
FillRectDecal ( { ( float ) ( pos . x + 21 ) , ( float ) ( pos . y - 2 ) } , { 28 , 11 } , olc : : GREY ) ;
DrawLineDecal ( { ( float ) ( pos . x + 30 ) , ( float ) ( pos . y - 3 ) } , { ( float ) ( pos . x + 30 ) , ( float ) ( pos . y + 10 ) } , olc : : DARK_GREY ) ;
DrawLineDecal ( { ( float ) ( pos . x + 30 ) , ( float ) ( pos . y - 3 ) } , { ( float ) ( pos . x + 30 ) , ( float ) ( pos . y + 10 ) } , olc : : DARK_GREY ) ;
DrawLineDecal ( { ( float ) ( pos . x + 40 ) , ( float ) ( pos . y - 3 ) } , { ( float ) ( pos . x + 40 ) , ( float ) ( pos . y + 10 ) } , olc : : DARK_GREY ) ;
DrawLineDecal ( { ( float ) ( pos . x + 40 ) , ( float ) ( pos . y - 3 ) } , { ( float ) ( pos . x + 40 ) , ( float ) ( pos . y + 10 ) } , olc : : DARK_GREY ) ;
DrawPartialDecal ( { ( float ) ( pos . x + 22 ) , ( float ) ( pos . y - 1 ) } , { 7 , 9 } , SPRITES [ " rollingcounter.png " ] , { 0 , ( float ) ( rollcounter [ 2 ] * 13 + rolloffset [ 2 ] ) } , { 7 , 9 } ) ;
DrawPartialDecal ( { ( float ) ( pos . x + 22 ) , ( float ) ( pos . y - 1 ) } , { 7 , 9 } , SPRITES [ " rollingcounter.png " ] , { 0 , ( float ) ( rollcounter [ 2 ] * 13 + rolloffset [ 2 ] + 13 ) } , { 7 , 9 } ) ;
DrawPartialDecal ( { ( float ) ( pos . x + 31 ) , ( float ) ( pos . y - 1 ) } , { 7 , 9 } , SPRITES [ " rollingcounter.png " ] , { 0 , ( float ) ( rollcounter [ 1 ] * 13 + rolloffset [ 1 ] ) } , { 7 , 9 } ) ;
DrawPartialDecal ( { ( float ) ( pos . x + 31 ) , ( float ) ( pos . y - 1 ) } , { 7 , 9 } , SPRITES [ " rollingcounter.png " ] , { 0 , ( float ) ( rollcounter [ 1 ] * 13 + rolloffset [ 1 ] + 13 ) } , { 7 , 9 } ) ;
DrawPartialDecal ( { ( float ) ( pos . x + 41 ) , ( float ) ( pos . y - 1 ) } , { 7 , 9 } , SPRITES [ " rollingcounter.png " ] , { 0 , ( float ) ( rollcounter [ 0 ] * 13 + rolloffset [ 0 ] ) } , { 7 , 9 } ) ;
DrawPartialDecal ( { ( float ) ( pos . x + 41 ) , ( float ) ( pos . y - 1 ) } , { 7 , 9 } , SPRITES [ " rollingcounter.png " ] , { 0 , ( float ) ( rollcounter [ 0 ] * 13 + rolloffset [ 0 ] + 13 ) } , { 7 , 9 } ) ;
}
}
void ResetBattleState ( ) {
void ResetBattleState ( ) {