From 10d5d8f0022b281e028b981444be74d7f5aa0188 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Thu, 5 Feb 2026 14:38:25 +0800 Subject: [PATCH] feat: add new rule in BMapInspector --- Ballance/BMapInspector/Rule.cpp | 1 + Ballance/BMapInspector/Rule/BBugRules.cpp | 30 +++++++++++++++++++++++ Ballance/BMapInspector/Rule/BBugRules.hpp | 16 ++++++++++++ Ballance/BMapInspector/Rule/LXRules.cpp | 4 +-- Ballance/BMapInspector/Rule/SSBRules.cpp | 3 +-- 5 files changed, 50 insertions(+), 4 deletions(-) diff --git a/Ballance/BMapInspector/Rule.cpp b/Ballance/BMapInspector/Rule.cpp index 81afb4d..6797b80 100644 --- a/Ballance/BMapInspector/Rule.cpp +++ b/Ballance/BMapInspector/Rule.cpp @@ -29,6 +29,7 @@ namespace BMapInspector::Rule { //rules.emplace_back(new Chirs1Rule()); rules.emplace_back(new YYCRule1()); rules.emplace_back(new YYCRule2()); + rules.emplace_back(new BBugRule1()); rules.emplace_back(new SOneRule1()); rules.emplace_back(new SSBRule1()); rules.emplace_back(new LXRule1()); diff --git a/Ballance/BMapInspector/Rule/BBugRules.cpp b/Ballance/BMapInspector/Rule/BBugRules.cpp index e69de29..d0100d9 100644 --- a/Ballance/BMapInspector/Rule/BBugRules.cpp +++ b/Ballance/BMapInspector/Rule/BBugRules.cpp @@ -0,0 +1,30 @@ +#include "BBugRules.hpp" +#include "Shared.hpp" + +namespace L = LibCmo; +namespace C = LibCmo::CK2; +namespace O = LibCmo::CK2::ObjImpls; + +namespace BMapInspector::Rule { + +#pragma region BBug Rule 1 + + constexpr char8_t BBUG1[] = u8"BBUG1"; + + BBugRule1::BBugRule1() : IRule() {} + + BBugRule1::~BBugRule1() {} + + std::u8string_view BBugRule1::GetRuleName() const { + return BBUG1; + } + + void BBugRule1::Check(Reporter::Reporter& reporter, Map::Level& level) const { + if (!level.GetTargetLights().empty()) { + reporter.WriteInfo(BBUG1, u8"Using light in map is not suggested."); + } + } + +#pragma endregion + +} // namespace BMapInspector::Rule diff --git a/Ballance/BMapInspector/Rule/BBugRules.hpp b/Ballance/BMapInspector/Rule/BBugRules.hpp index 1f4df78..428298d 100644 --- a/Ballance/BMapInspector/Rule/BBugRules.hpp +++ b/Ballance/BMapInspector/Rule/BBugRules.hpp @@ -3,4 +3,20 @@ namespace BMapInspector::Rule { + /** + * @brief BBug Rule 1 + * @details + * Using light in map is not suggested. + */ + class BBugRule1 : public IRule { + public: + BBugRule1(); + virtual ~BBugRule1(); + YYCC_DELETE_COPY_MOVE(BBugRule1) + + public: + std::u8string_view GetRuleName() const override; + void Check(Reporter::Reporter& reporter, Map::Level& level) const override; + }; + } diff --git a/Ballance/BMapInspector/Rule/LXRules.cpp b/Ballance/BMapInspector/Rule/LXRules.cpp index bb6be5f..e201b98 100644 --- a/Ballance/BMapInspector/Rule/LXRules.cpp +++ b/Ballance/BMapInspector/Rule/LXRules.cpp @@ -1,6 +1,5 @@ -#include "YYCRules.hpp" -#include "Shared.hpp" #include "LXRules.hpp" +#include "Shared.hpp" #include namespace L = LibCmo; @@ -8,6 +7,7 @@ namespace C = LibCmo::CK2; namespace O = LibCmo::CK2::ObjImpls; namespace BMapInspector::Rule { + #pragma region LX Rule 1 constexpr char8_t LX1[] = u8"LX1"; diff --git a/Ballance/BMapInspector/Rule/SSBRules.cpp b/Ballance/BMapInspector/Rule/SSBRules.cpp index f5dc3af..f73121e 100644 --- a/Ballance/BMapInspector/Rule/SSBRules.cpp +++ b/Ballance/BMapInspector/Rule/SSBRules.cpp @@ -1,6 +1,5 @@ -#include "YYCRules.hpp" -#include "Shared.hpp" #include "SSBRules.hpp" +#include "Shared.hpp" namespace L = LibCmo; namespace C = LibCmo::CK2;