2026-02-02 22:26:41 +08:00
|
|
|
#pragma once
|
|
|
|
|
#include "../Rule.hpp"
|
|
|
|
|
|
|
|
|
|
namespace BMapInspector::Rule {
|
|
|
|
|
|
2026-02-20 16:00:00 +08:00
|
|
|
/**
|
|
|
|
|
* @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 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 IRule {
|
|
|
|
|
public:
|
|
|
|
|
ZZQRule2();
|
|
|
|
|
virtual ~ZZQRule2();
|
|
|
|
|
YYCC_DEFAULT_COPY_MOVE(ZZQRule2)
|
|
|
|
|
|
|
|
|
|
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 IRule {
|
|
|
|
|
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;
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-02 22:26:41 +08:00
|
|
|
}
|