Add tests for CDR checking. Move Game State initialize change to Main Menu into the actual initialization function instead of hiding inside the Game State's Initialize function. 78/78 tests passing.
This commit is contained in:
parent
183b8ef29d
commit
e57f281ac4
@ -74,6 +74,9 @@ namespace PlayerTests
|
||||
Menu::InitializeMenus();
|
||||
Tutorial::Initialize();
|
||||
Stats::InitializeDamageReductionTable();
|
||||
|
||||
GameState::Initialize();
|
||||
GameState::STATE=GameState::states.at(States::State::GAME_RUN);
|
||||
|
||||
#pragma region Setup a fake test map and test monster
|
||||
game->MAP_DATA["CAMPAIGN_1_1"];
|
||||
@ -90,7 +93,9 @@ namespace PlayerTests
|
||||
Menu::themes.SetInitialized();
|
||||
GFX.SetInitialized();
|
||||
}
|
||||
|
||||
TEST_METHOD_CLEANUP(CleanupTests){
|
||||
testGame->EndGame();
|
||||
}
|
||||
TEST_METHOD(PlayerAlive){
|
||||
Assert::IsTrue(player->IsAlive());
|
||||
}
|
||||
@ -416,5 +421,23 @@ namespace PlayerTests
|
||||
Inventory::EquipItem(setArmor,EquipSlot::ARMOR);
|
||||
Assert::AreEqual(2.f,player->GetMoveSpdMult(),L"100% Move Spd should double the move speed from 100% to 200%");
|
||||
}
|
||||
TEST_METHOD(CDRStatEquipCheck){
|
||||
std::weak_ptr<Item>setArmor{Inventory::AddItem("Test Armor2"s)};
|
||||
|
||||
Assert::AreEqual(0.f,player->GetCooldownReductionPct(),L"CDR is 0%");
|
||||
|
||||
Inventory::EquipItem(setArmor,EquipSlot::ARMOR);
|
||||
Assert::AreEqual(1.f,player->GetCooldownReductionPct(),L"Player should have 100% CDR");
|
||||
testKey->bHeld=true; //Force the key to be held down for testing purposes.
|
||||
player->CheckAndPerformAbility(player->GetAbility1(),testKeyboardInput);
|
||||
player->CheckAndPerformAbility(player->GetAbility2(),testKeyboardInput);
|
||||
player->CheckAndPerformAbility(player->GetAbility3(),testKeyboardInput);
|
||||
player->CheckAndPerformAbility(player->GetAbility4(),testKeyboardInput);
|
||||
game->OnUserUpdate(0.01f); //Let 0.01 seconds go by. All abilities should be off cooldown.
|
||||
Assert::AreEqual(0.f,player->GetAbility1().cooldown,L"Using an ability with 100% CDR should result in a 0 second cooldown.");
|
||||
Assert::AreEqual(0.f,player->GetAbility2().cooldown,L"Using an ability with 100% CDR should result in a 0 second cooldown.");
|
||||
Assert::AreEqual(0.f,player->GetAbility3().cooldown,L"Using an ability with 100% CDR should result in a 0 second cooldown.");
|
||||
Assert::AreEqual(0.f,player->GetAbility4().cooldown,L"Using an ability with 100% CDR should result in a 0 second cooldown.");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -304,6 +304,7 @@ bool AiL::OnUserCreate(){
|
||||
ChangePlayerClass(WARRIOR);
|
||||
|
||||
GameState::Initialize();
|
||||
GameState::ChangeState(States::MAIN_MENU);
|
||||
|
||||
Unlock::Initialize();
|
||||
ItemDrop::Initialize();
|
||||
@ -376,23 +377,24 @@ bool AiL::OnUserUpdate(float fElapsedTime){
|
||||
InputListener::Update();
|
||||
Tutorial::Update();
|
||||
Audio::Update();
|
||||
GameState::STATE->Draw(this);
|
||||
RenderMenu();
|
||||
GameState::STATE->DrawOverlay(this);
|
||||
RenderFadeout();
|
||||
LoadingScreen::Draw();
|
||||
RenderVersionInfo();
|
||||
#ifndef __EMSCRIPTEN__
|
||||
if(Discord){
|
||||
auto result=Discord->RunCallbacks();
|
||||
if(result!=::discord::Result::Ok){
|
||||
LOG("Discord Error Code "<<int(result));
|
||||
delete Discord;
|
||||
Discord=nullptr;
|
||||
if(!game->TestingModeEnabled()){
|
||||
GameState::STATE->Draw(this);
|
||||
RenderMenu();
|
||||
GameState::STATE->DrawOverlay(this);
|
||||
RenderFadeout();
|
||||
LoadingScreen::Draw();
|
||||
RenderVersionInfo();
|
||||
#ifndef __EMSCRIPTEN__
|
||||
if(Discord){
|
||||
auto result=Discord->RunCallbacks();
|
||||
if(result!=::discord::Result::Ok){
|
||||
LOG("Discord Error Code "<<int(result));
|
||||
delete Discord;
|
||||
Discord=nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if(QuitRequested())EndGame();
|
||||
#endif
|
||||
}
|
||||
return !gameEnd;
|
||||
}
|
||||
|
||||
@ -1014,7 +1016,6 @@ void AiL::RenderTile(TileRenderData&tileSheet,Pixel col){
|
||||
}
|
||||
|
||||
void AiL::RenderWorld(float fElapsedTime){
|
||||
|
||||
LayerTag*bridgeLayer=nullptr;
|
||||
bool bridgeLayerFade=false;
|
||||
Player*pl=GetPlayer();
|
||||
|
@ -56,8 +56,6 @@ void GameState::Initialize(){
|
||||
NEW_STATE(States::STORY,State_Story);
|
||||
NEW_STATE(States::GAME_HUB,State_GameHub);
|
||||
NEW_STATE(States::DEATH,State_Death);
|
||||
|
||||
GameState::ChangeState(States::MAIN_MENU);
|
||||
}
|
||||
|
||||
void GameState::_ChangeState(States::State newState){
|
||||
|
@ -186,6 +186,7 @@ void Minimap::Update(){
|
||||
}
|
||||
|
||||
void Minimap::UpdateChunk(const MapName map,const vi2d chunkPos,const InitialLoad initialLoad){
|
||||
if(game->TestingModeEnabled())return;
|
||||
loadedChunks[map].insert(std::format("{}_{}",chunkPos.x,chunkPos.y));
|
||||
|
||||
if(game->GetCurrentMapName()!=map)return; //Don't update the minimap when the map name doesn't match the current map.
|
||||
|
@ -875,16 +875,20 @@ void Player::Moved(MoveFlag::MoveFlag flags){
|
||||
}
|
||||
}
|
||||
const std::map<std::string,std::vector<ZoneData>>&zoneData=game->GetZones(game->GetCurrentLevel());
|
||||
for(const ZoneData&upperLevelZone:zoneData.at("UpperZone")){
|
||||
if(geom2d::overlaps(upperLevelZone.zone,pos)){
|
||||
upperLevel=true;
|
||||
if(zoneData.count("UpperZone")){
|
||||
for(const ZoneData&upperLevelZone:zoneData.at("UpperZone")){
|
||||
if(geom2d::overlaps(upperLevelZone.zone,pos)){
|
||||
upperLevel=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
for(const ZoneData&lowerLevelZone:zoneData.at("LowerZone")){
|
||||
if(geom2d::overlaps(lowerLevelZone.zone,pos)){
|
||||
upperLevel=false;
|
||||
}else if(!game->TestingModeEnabled())ERR(std::format("WARNING! Map {} is missing Upper Zones! THIS SHOULD NOT BE HAPPENING!",game->GetCurrentMapDisplayName()));
|
||||
if(zoneData.count("LowerZone")){
|
||||
for(const ZoneData&lowerLevelZone:zoneData.at("LowerZone")){
|
||||
if(geom2d::overlaps(lowerLevelZone.zone,pos)){
|
||||
upperLevel=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(!game->TestingModeEnabled())ERR(std::format("WARNING! Map {} is missing Lower Zones! THIS SHOULD NOT BE HAPPENING!",game->GetCurrentMapDisplayName()));
|
||||
EnvironmentalAudio::UpdateEnvironmentalAudio();
|
||||
|
||||
if(!std::isfinite(pos.x)){
|
||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
||||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 3
|
||||
#define VERSION_BUILD 9928
|
||||
#define VERSION_BUILD 9937
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
Loading…
x
Reference in New Issue
Block a user