1
0
Files
libcmo21/Ballance/BMapInspector/Ruleset/ZZQRules.hpp

65 lines
1.7 KiB
C++
Raw Normal View History

#pragma once
#include "../Rule.hpp"
namespace BMapInspector::Ruleset {
/**
* @brief ZZQ Rule 1
* @details
* Only the first object grouped into "Phys_FloorStopper" can make sound in game.
* So it would be better to make "Phys_FloorStopper" only have one item.
*
* At the same time, show which object is the first object in "Phys_FloorStopper"
* to know which object can make sound in game,
* if mapper require the stopper which can not make sound them by design.
*/
class ZZQRule1 : public Rule::IRule {
public:
ZZQRule1();
virtual ~ZZQRule1();
YYCC_DELETE_COPY_MOVE(ZZQRule1)
public:
std::u8string_view GetRuleName() const override;
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
};
2026-02-24 13:49:20 +08:00
/**
* @brief ZZQ Rule 2
* @details
* The Ballance should only be included only one group.
* This rule will check whether there is intersection between different sector group.
*/
class ZZQRule2 : public Rule::IRule {
2026-02-24 13:49:20 +08:00
public:
ZZQRule2();
virtual ~ZZQRule2();
2026-03-04 13:58:34 +08:00
YYCC_DELETE_COPY_MOVE(ZZQRule2)
2026-02-24 13:49:20 +08:00
public:
std::u8string_view GetRuleName() const override;
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
};
2026-03-02 23:51:53 +08:00
/**
* @brief ZZQ Rule 3
* @details
* A minimalist level must contains following items:
* \li One start point.
* \li One end point (spaceship).
* \li One reset point.
* \li "Sector_01" group.
*/
class ZZQRule3 : public Rule::IRule {
2026-03-02 23:51:53 +08:00
public:
ZZQRule3();
virtual ~ZZQRule3();
YYCC_DELETE_COPY_MOVE(ZZQRule3)
public:
std::u8string_view GetRuleName() const override;
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
};
}