@ -33,46 +33,6 @@ enum{
SIGMA = Σ ,
SIGMA = Σ ,
} ;
} ;
enum class BattleMoveName {
TESTMOVE1 ,
TESTMOVE2 ,
TESTMOVE3 ,
BASH ,
DEFEND ,
HAILSTORM_A ,
HAILSTORM_B ,
HAILSTORM_G ,
HAILSTORM_O ,
HURRICANE_A ,
HURRICANE_B ,
HURRICANE_G ,
HURRICANE_O ,
METEORRAIN_A ,
METEORRAIN_B ,
METEORRAIN_G ,
METEORRAIN_O ,
PKFREEZE_A ,
PKFREEZE_B ,
PKFREEZE_G ,
PKFREEZE_O ,
PKSHIELD_A ,
PKSHIELD_B ,
PKSHIELD_O ,
PKSHIELD_S ,
PKLIFEUP_A ,
PKLIFEUP_B ,
PKLIFEUP_G ,
PKLIFEUP_O ,
PKFUN_A ,
PKFUN_B ,
PKFUN_G ,
PKFUN_O ,
PKFIRE_A ,
PKFIRE_B ,
PKFIRE_G ,
PKFIRE_O ,
} ;
template < typename T , typename F > inline T transform_to ( F str ) noexcept { if ( str . empty ( ) ) return { } ; return { std : : begin ( str ) , std : : end ( str ) } ; } ;
template < typename T , typename F > inline T transform_to ( F str ) noexcept { if ( str . empty ( ) ) return { } ; return { std : : begin ( str ) , std : : end ( str ) } ; } ;
class Map {
class Map {
@ -976,7 +936,7 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"),
}
}
if ( ACTIONKEYPRESSED ) {
if ( ACTIONKEYPRESSED ) {
ITEM_REQUIRES_EQUIPPING = true ;
ITEM_REQUIRES_EQUIPPING = true ;
PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove = MOVELIST [ BattleMoveName : : BASH ] ;
PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove = MOVELIST [ BattleMoveName : : BASH_CHANGE ] ;
SetupTargetSelect ( ) ;
SetupTargetSelect ( ) ;
}
}
} break ;
} break ;
@ -1352,14 +1312,30 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"),
std : : wstring label = L " " ;
std : : wstring label = L " " ;
if ( CURRENT_TURN < 0 ) {
if ( CURRENT_TURN < 0 ) {
std : : wstring baseStr = PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > attackMsg ;
std : : wstring baseStr = PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > attackMsg ;
label = baseStr . replace ( baseStr . find ( L " $USER " ) , 5 , transform_to < std : : wstring > ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > obj - > name ) )
label = baseStr ;
. replace ( baseStr . find ( L " $POWER " ) , 6 , transform_to < std : : wstring > ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > name ) + L " " + ( ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade ! = 0 ) ? std : : wstring ( 1 , PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade ) : L " " ) ) ;
if ( label . find ( L " $USER " ) ! = std : : string : : npos ) {
label = label . replace ( label . find ( L " $USER " ) , 5 , transform_to < std : : wstring > ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > obj - > name ) ) ;
}
if ( label . find ( L " $POWER " ) ! = std : : string : : npos ) {
label = label . replace ( label . find ( L " $POWER " ) , 6 , transform_to < std : : wstring > ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > name ) + L " " + ( ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade ! = 0 ) ? std : : wstring ( 1 , PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade ) : L " " ) ) ;
}
if ( label . find ( L " $ITEM " ) ! = std : : string : : npos ) {
label = label . replace ( label . find ( L " $ITEM " ) , 5 , transform_to < std : : wstring > ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > equipment [ EquipSlot : : WEAPON ] - > name ) ) ;
}
} else {
} else {
std : : wstring baseStr = BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > attackMsg ;
std : : wstring baseStr = BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > attackMsg ;
label = baseStr . replace ( baseStr . find ( L " $USER " ) , 5 , transform_to < std : : wstring > ( BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > obj - > name ) )
label = baseStr ;
. replace ( baseStr . find ( L " $POWER " ) , 6 , transform_to < std : : wstring > ( ( BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade ! = 0 ) ? std : : wstring ( 1 , BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade ) : L " " ) ) ;
if ( label . find ( L " $USER " ) ! = std : : string : : npos ) {
label = label . replace ( label . find ( L " $USER " ) , 5 , transform_to < std : : wstring > ( BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > obj - > name ) ) ;
}
if ( label . find ( L " $POWER " ) ! = std : : string : : npos ) {
label = label . replace ( label . find ( L " $POWER " ) , 6 , transform_to < std : : wstring > ( ( BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade ! = 0 ) ? std : : wstring ( 1 , BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade ) : L " " ) ) ;
}
if ( label . find ( L " $ITEM " ) ! = std : : string : : npos ) {
label = label . replace ( label . find ( L " $ITEM " ) , 5 , transform_to < std : : wstring > ( BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > equipment [ EquipSlot : : WEAPON ] - > name ) ) ;
}
}
}
DrawFancyStringDecal ( { 2 , 2 } , Wrap ( label , ScreenWidth ( ) - 2 , false , { 2 , 2 } ) , WHITE , { 2 , 2 } ) ;
DrawFancyStringDecal ( { 2 , 2 } , Wrap ( label , ScreenWidth ( ) - 2 , false , { 1 , 2 } ) , WHITE , { 1 , 2 } ) ;
}
}
if ( BATTLE_STATE ! = BattleState : : MOVE_CAMERA ) {
if ( BATTLE_STATE ! = BattleState : : MOVE_CAMERA ) {
SetDrawTarget ( layer : : INTERFACE ) ;
SetDrawTarget ( layer : : INTERFACE ) ;
@ -1896,6 +1872,7 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"),
MOVELIST [ BattleMoveName : : TESTMOVE2 ] = new Battle : : Move ( " Test Move 2 " , " An attack " , 40 , 10 , ㅍ 0 , 1 , 0 , false , { 0 , 0 , 0 , 0 } ) ;
MOVELIST [ BattleMoveName : : TESTMOVE2 ] = new Battle : : Move ( " Test Move 2 " , " An attack " , 40 , 10 , ㅍ 0 , 1 , 0 , false , { 0 , 0 , 0 , 0 } ) ;
MOVELIST [ BattleMoveName : : TESTMOVE3 ] = new Battle : : Move ( " Test Move 3 " , " An attack " , 25 , 5 , ㅍ 0 , 3 , 0 , false , { 0 , 0 , 20 , 0 } ) ;
MOVELIST [ BattleMoveName : : TESTMOVE3 ] = new Battle : : Move ( " Test Move 3 " , " An attack " , 25 , 5 , ㅍ 0 , 3 , 0 , false , { 0 , 0 , 20 , 0 } ) ;
MOVELIST [ BattleMoveName : : BASH ] = new Battle : : Move ( " Bash " , " Regular attack. " , 5 , 5 , ㅍ 0 , 1 , 0 , false , { 0 , 0 , 0 , 0 } ) ;
MOVELIST [ BattleMoveName : : BASH ] = new Battle : : Move ( " Bash " , " Regular attack. " , 5 , 5 , ㅍ 0 , 1 , 0 , false , { 0 , 0 , 0 , 0 } ) ;
MOVELIST [ BattleMoveName : : BASH_CHANGE ] = new Battle : : Move ( MOVELIST [ BattleMoveName : : BASH ] - > name , " Regular attack. " , MOVELIST [ BattleMoveName : : BASH ] - > baseDmg , MOVELIST [ BattleMoveName : : BASH ] - > randomDmg , ㅍ MOVELIST [ BattleMoveName : : BASH ] - > PPCost , MOVELIST [ BattleMoveName : : BASH ] - > range , MOVELIST [ BattleMoveName : : BASH ] - > composition , L " $USER equipped the $ITEM instead and attacks. " , MOVELIST [ BattleMoveName : : BASH ] - > eff , MOVELIST [ BattleMoveName : : BASH ] - > pctDamage , MOVELIST [ BattleMoveName : : BASH ] - > properties ) ;
MOVELIST [ BattleMoveName : : DEFEND ] = new Battle : : Move ( " Defend " , " Defend. " , 0 , 0 , ㅍ 0 , 1 , 5 * 60 , true , { 0 , 0 , 0 , 0 } ) ;
MOVELIST [ BattleMoveName : : DEFEND ] = new Battle : : Move ( " Defend " , " Defend. " , 0 , 0 , ㅍ 0 , 1 , 5 * 60 , true , { 0 , 0 , 0 , 0 } ) ;
MOVELIST [ BattleMoveName : : HAILSTORM_A ] = new Battle : : Move ( " Hailstorm " , " Causes heavy ice rocks to crash " , ALPHA , 40 , 20 , ㅍ 4 , 4 , 0 , false , { 0 , 0 , 20 , 0 } ) ;
MOVELIST [ BattleMoveName : : HAILSTORM_A ] = new Battle : : Move ( " Hailstorm " , " Causes heavy ice rocks to crash " , ALPHA , 40 , 20 , ㅍ 4 , 4 , 0 , false , { 0 , 0 , 20 , 0 } ) ;
MOVELIST [ BattleMoveName : : HAILSTORM_B ] = new Battle : : Move ( " Hailstorm " , " Causes heavy ice rocks to crash " , BETA , 80 , 20 , ㅍ 12 , 4 , 0 , false , { 0 , 0 , 20 , 0 } ) ;
MOVELIST [ BattleMoveName : : HAILSTORM_B ] = new Battle : : Move ( " Hailstorm " , " Causes heavy ice rocks to crash " , BETA , 80 , 20 , ㅍ 12 , 4 , 0 , false , { 0 , 0 , 20 , 0 } ) ;