1
0
Files
libcmo21/Ballance/BMapInspector/Rule/GpRules.hpp
yyc12345 c11220d54b feat: finish one rule in BMapInspector.
- finish one rule in BMapInspector.
- fix CKObjectManager find object by name feature.
2026-02-04 17:03:53 +08:00

59 lines
1.4 KiB
C++

#pragma once
#include "../Rule.hpp"
namespace BMapInspector::Rule {
// Reference: https://tieba.baidu.com/p/3182981807
/**
* @brief Gamepiaynmo Rule 1
* @details
* The most comprehensive group checker inspired from Ballance Blender Plugin.
*/
class Gp1Rule : public IRule {
public:
Gp1Rule();
virtual ~Gp1Rule();
YYCC_DELETE_COPY_MOVE(Gp1Rule)
public:
std::u8string_view GetRuleName() const override;
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
};
/**
* @brief Gamepiaynmo Rule 2
* @details
* This rule make sure that one Ballance element must be grouped into only one sector group.
* Multiple grouping and none grouping will throw error.
*/
class Gp2Rule : public IRule {
public:
Gp2Rule();
virtual ~Gp2Rule();
YYCC_DELETE_COPY_MOVE(Gp2Rule)
public:
std::u8string_view GetRuleName() const override;
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
};
/**
* @brief Gamepiaynmo Rule 3
* @details
* This rule make sure that all Ballance element is grouped into correct element group.
* This rule will check the mesh of PH and guess which element it is.
*/
class Gp3Rule : public IRule {
public:
Gp3Rule();
virtual ~Gp3Rule();
YYCC_DELETE_COPY_MOVE(Gp3Rule)
public:
std::u8string_view GetRuleName() const override;
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
};
}