书写实验报告 调整开始界面 修复逃跑后重新进入战斗的问题
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
#define main mana_pet_world_real_main
|
||||
#include "../../src/app/main.cpp"
|
||||
#undef main
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
#include <filesystem>
|
||||
|
||||
namespace {
|
||||
|
||||
void StartBattleHidesTriggeredMonster()
|
||||
{
|
||||
const std::filesystem::path savePath = std::filesystem::temp_directory_path() / "mana_pet_world_battle_encounter_test_save.txt";
|
||||
std::filesystem::remove(savePath);
|
||||
|
||||
Runtime rt;
|
||||
rt.currentMapName = "TestMap";
|
||||
rt.savePath = savePath;
|
||||
|
||||
Entity wild;
|
||||
wild.name = "TestMonster";
|
||||
wild.objectKey = "TestMap#monster#1";
|
||||
wild.pet = MakePet("Lulea", 20, 7);
|
||||
wild.active = true;
|
||||
wild.moving = true;
|
||||
wild.respawnDelay = 42.0f;
|
||||
rt.wildPets.push_back(wild);
|
||||
|
||||
StartBattle(rt, 0);
|
||||
|
||||
assert(rt.mode == Mode::Battle);
|
||||
assert(rt.battlePetIndex == 0);
|
||||
assert(!rt.wildPets[0].active);
|
||||
assert(!rt.wildPets[0].moving);
|
||||
assert(std::fabs(rt.wildPets[0].respawnTimer - wild.respawnDelay) < 0.001f);
|
||||
assert(rt.monsterRespawnUntil.find(wild.objectKey) != rt.monsterRespawnUntil.end());
|
||||
|
||||
std::filesystem::remove(savePath);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main()
|
||||
{
|
||||
StartBattleHidesTriggeredMonster();
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
#include "TitleMenu.h"
|
||||
|
||||
#include <cassert>
|
||||
|
||||
using mana::app::BuildTitleMenuItems;
|
||||
using mana::app::TitleMenuAction;
|
||||
|
||||
namespace {
|
||||
|
||||
void MenuWithoutSaveOffersNewGameHelpAndQuit()
|
||||
{
|
||||
const auto items = BuildTitleMenuItems(false);
|
||||
|
||||
assert(items.size() == 3);
|
||||
assert(items[0].action == TitleMenuAction::NewGame);
|
||||
assert(items[0].label == "开始新游戏");
|
||||
assert(items[1].action == TitleMenuAction::Help);
|
||||
assert(items[1].label == "帮助");
|
||||
assert(items[2].action == TitleMenuAction::Quit);
|
||||
assert(items[2].label == "退出游戏");
|
||||
}
|
||||
|
||||
void MenuWithSaveKeepsContinueFirstAndQuitLast()
|
||||
{
|
||||
const auto items = BuildTitleMenuItems(true);
|
||||
|
||||
assert(items.size() == 4);
|
||||
assert(items.front().action == TitleMenuAction::ContinueGame);
|
||||
assert(items.front().label == "继续游戏");
|
||||
assert(items.back().action == TitleMenuAction::Quit);
|
||||
assert(items.back().label == "退出游戏");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main()
|
||||
{
|
||||
MenuWithoutSaveOffersNewGameHelpAndQuit();
|
||||
MenuWithSaveKeepsContinueFirstAndQuitLast();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user