diff --git a/CAPI/cpp/API/include/structures.h b/CAPI/cpp/API/include/structures.h index d5bc1c1..c94840d 100644 --- a/CAPI/cpp/API/include/structures.h +++ b/CAPI/cpp/API/include/structures.h @@ -51,7 +51,10 @@ namespace THUAI6 Key3 = 1, Key5 = 2, Key6 = 3, - PropType4 = 4, + AddSpeed = 4, + AddLifeOrAp = 5, + AddHpOrAp = 6, + ShieldOrSpear = 7, }; enum class BulletType : unsigned char @@ -323,6 +326,10 @@ namespace THUAI6 {PropType::Key3, "Key3"}, {PropType::Key5, "Key5"}, {PropType::Key6, "Key6"}, + {PropType::AddSpeed, "AddSpeed"}, + {PropType::AddLifeOrAp, "AddLifeOrAp"}, + {PropType::AddHpOrAp, "AddHpOrAp"}, + {PropType::ShieldOrSpear, "ShieldOrSpear"}, }; diff --git a/CAPI/cpp/API/include/utils.hpp b/CAPI/cpp/API/include/utils.hpp index 82ba41e..0ccadea 100644 --- a/CAPI/cpp/API/include/utils.hpp +++ b/CAPI/cpp/API/include/utils.hpp @@ -87,7 +87,10 @@ namespace Proto2THUAI6 {protobuf::PropType::KEY3, THUAI6::PropType::Key3}, {protobuf::PropType::KEY5, THUAI6::PropType::Key5}, {protobuf::PropType::KEY6, THUAI6::PropType::Key6}, - {protobuf::PropType::PTYPE4, THUAI6::PropType::PropType4}, + {protobuf::PropType::ADD_SPEED, THUAI6::PropType::AddSpeed}, + {protobuf::PropType::ADD_HP_OR_AP, THUAI6::PropType::AddHpOrAp}, + {protobuf::PropType::ADD_LIFE_OR_AP, THUAI6::PropType::AddLifeOrAp}, + {protobuf::PropType::SHIELD_OR_SPEAR, THUAI6::PropType::ShieldOrSpear}, }; inline std::map playerTypeDict{ @@ -338,7 +341,10 @@ namespace THUAI62Proto {THUAI6::PropType::Key3, protobuf::PropType::KEY3}, {THUAI6::PropType::Key5, protobuf::PropType::KEY5}, {THUAI6::PropType::Key6, protobuf::PropType::KEY6}, - {THUAI6::PropType::PropType4, protobuf::PropType::PTYPE4}, + {THUAI6::PropType::AddHpOrAp, protobuf::PropType::ADD_HP_OR_AP}, + {THUAI6::PropType::AddLifeOrAp, protobuf::PropType::ADD_LIFE_OR_AP}, + {THUAI6::PropType::AddSpeed, protobuf::PropType::ADD_SPEED}, + {THUAI6::PropType::ShieldOrSpear, protobuf::PropType::SHIELD_OR_SPEAR}, }; inline std::map playerTypeDict{ diff --git a/CAPI/cpp/API/src/AI.cpp b/CAPI/cpp/API/src/AI.cpp index 01f1354..68b9f1b 100644 --- a/CAPI/cpp/API/src/AI.cpp +++ b/CAPI/cpp/API/src/AI.cpp @@ -18,8 +18,10 @@ extern const THUAI6::StudentType studentType = THUAI6::StudentType::Athlete; void AI::play(IStudentAPI& api) { api.Move(100, 1); + api.PrintSelfInfo(); } void AI::play(ITrickerAPI& api) { + api.Move(100, 1); } diff --git a/CAPI/cpp/API/src/DebugAPI.cpp b/CAPI/cpp/API/src/DebugAPI.cpp index ddf7c72..dbefca3 100644 --- a/CAPI/cpp/API/src/DebugAPI.cpp +++ b/CAPI/cpp/API/src/DebugAPI.cpp @@ -26,6 +26,7 @@ StudentDebugAPI::StudentDebugAPI(ILogic& logic, bool file, bool print, bool warn if (warnOnly) printLogger->set_level(spdlog::level::warn); logger = std::make_unique("apiLogger", spdlog::sinks_init_list{fileLogger, printLogger}); + logger->flush_on(spdlog::level::warn); } TrickerDebugAPI::TrickerDebugAPI(ILogic& logic, bool file, bool print, bool warnOnly, int64_t playerID) : diff --git a/CAPI/cpp/API/src/logic.cpp b/CAPI/cpp/API/src/logic.cpp index 08164ca..924d3f3 100644 --- a/CAPI/cpp/API/src/logic.cpp +++ b/CAPI/cpp/API/src/logic.cpp @@ -324,7 +324,13 @@ void Logic::ProcessMessage() } bufferState->gameMap = std::move(map); currentState->gameMap = bufferState->gameMap; + logger->info("Map loaded!"); } + if (currentState->gameMap.empty()) + { + logger->error("Map not loaded!"); + throw std::runtime_error("Map not loaded!"); + } LoadBuffer(clientMsg); AILoop = true; @@ -734,7 +740,6 @@ void Logic::Main(CreateAIFunc createAI, std::string IP, std::string port, bool f if (file) { fileLogger->set_level(spdlog::level::trace); - spdlog::flush_every(std::chrono::seconds(1)); } else fileLogger->set_level(spdlog::level::off); @@ -745,6 +750,7 @@ void Logic::Main(CreateAIFunc createAI, std::string IP, std::string port, bool f if (warnOnly) printLogger->set_level(spdlog::level::warn); logger = std::make_unique("logicLogger", spdlog::sinks_init_list{fileLogger, printLogger}); + logger->flush_on(spdlog::level::warn); // 打印当前的调试信息 logger->info("*********Basic Info*********"); diff --git a/CAPI/cpp/proto/MessageType.pb.cc b/CAPI/cpp/proto/MessageType.pb.cc index 1537d5b..899e967 100644 --- a/CAPI/cpp/proto/MessageType.pb.cc +++ b/CAPI/cpp/proto/MessageType.pb.cc @@ -39,36 +39,38 @@ const char descriptor_table_protodef_MessageType_2eproto[] PROTOBUF_SECTION_VARI "SSROOM\020\004\022\010\n\004GATE\020\005\022\017\n\013HIDDEN_GATE\020\006\022\n\n\006W" "INDOW\020\007\022\t\n\005DOOR3\020\010\022\t\n\005DOOR5\020\t\022\t\n\005DOOR6\020\n" "\022\t\n\005CHEST\020\013*8\n\tShapeType\022\023\n\017NULL_SHAPE_T" - "YPE\020\000\022\n\n\006CIRCLE\020\001\022\n\n\006SQUARE\020\002*H\n\010PropTyp" - "e\022\022\n\016NULL_PROP_TYPE\020\000\022\010\n\004KEY3\020\001\022\010\n\004KEY5\020" - "\002\022\010\n\004KEY6\020\003\022\n\n\006PTYPE4\020\004*f\n\017StudentBuffTy" - "pe\022\023\n\017NULL_SBUFF_TYPE\020\000\022\016\n\nSBUFFTYPE1\020\001\022" - "\016\n\nSBUFFTYPE2\020\002\022\016\n\nSBUFFTYPE3\020\003\022\016\n\nSBUFF" - "TYPE4\020\004*\251\002\n\013PlayerState\022\017\n\013NULL_STATUS\020\000" - "\022\010\n\004IDLE\020\001\022\014\n\010LEARNING\020\002\022\014\n\010ADDICTED\020\003\022\010" - "\n\004QUIT\020\004\022\r\n\tGRADUATED\020\005\022\013\n\007TREATED\020\006\022\013\n\007" - "RESCUED\020\007\022\013\n\007STUNNED\020\010\022\014\n\010TREATING\020\t\022\014\n\010" - "RESCUING\020\n\022\014\n\010SWINGING\020\013\022\r\n\tATTACKING\020\014\022" - "\013\n\007LOCKING\020\r\022\r\n\tRUMMAGING\020\016\022\014\n\010CLIMBING\020" - "\017\022\023\n\017OPENING_A_CHEST\020\020\022\027\n\023USING_SPECIAL_" - "SKILL\020\021\022\022\n\016OPENING_A_GATE\020\022*f\n\017TrickerBu" - "ffType\022\023\n\017NULL_TBUFF_TYPE\020\000\022\016\n\nTBUFFTYPE" - "1\020\001\022\016\n\nTBUFFTYPE2\020\002\022\016\n\nTBUFFTYPE3\020\003\022\016\n\nT" - "BUFFTYPE4\020\004*J\n\nPlayerType\022\024\n\020NULL_PLAYER" - "_TYPE\020\000\022\022\n\016STUDENT_PLAYER\020\001\022\022\n\016TRICKER_P" - "LAYER\020\002*g\n\013StudentType\022\025\n\021NULL_STUDENT_T" - "YPE\020\000\022\013\n\007ATHLETE\020\001\022\020\n\014STUDENTTYPE2\020\002\022\020\n\014" - "STUDENTTYPE3\020\003\022\020\n\014STUDENTTYPE4\020\004*h\n\013Tric" - "kerType\022\025\n\021NULL_TRICKER_TYPE\020\000\022\014\n\010ASSASS" - "IN\020\001\022\020\n\014TRICKERTYPE2\020\002\022\020\n\014TRICKERTYPE3\020\003" - "\022\020\n\014TRICKERTYPE4\020\004*P\n\tGameState\022\023\n\017NULL_" - "GAME_STATE\020\000\022\016\n\nGAME_START\020\001\022\020\n\014GAME_RUN" - "NING\020\002\022\014\n\010GAME_END\020\003b\006proto3"; + "YPE\020\000\022\n\n\006CIRCLE\020\001\022\n\n\006SQUARE\020\002*\206\001\n\010PropTy" + "pe\022\022\n\016NULL_PROP_TYPE\020\000\022\r\n\tADD_SPEED\020\001\022\022\n" + "\016ADD_LIFE_OR_AP\020\002\022\020\n\014ADD_HP_OR_AP\020\003\022\023\n\017S" + "HIELD_OR_SPEAR\020\004\022\010\n\004KEY3\020\005\022\010\n\004KEY5\020\006\022\010\n\004" + "KEY6\020\007*f\n\017StudentBuffType\022\023\n\017NULL_SBUFF_" + "TYPE\020\000\022\016\n\nSBUFFTYPE1\020\001\022\016\n\nSBUFFTYPE2\020\002\022\016" + "\n\nSBUFFTYPE3\020\003\022\016\n\nSBUFFTYPE4\020\004*\251\002\n\013Playe" + "rState\022\017\n\013NULL_STATUS\020\000\022\010\n\004IDLE\020\001\022\014\n\010LEA" + "RNING\020\002\022\014\n\010ADDICTED\020\003\022\010\n\004QUIT\020\004\022\r\n\tGRADU" + "ATED\020\005\022\013\n\007TREATED\020\006\022\013\n\007RESCUED\020\007\022\013\n\007STUN" + "NED\020\010\022\014\n\010TREATING\020\t\022\014\n\010RESCUING\020\n\022\014\n\010SWI" + "NGING\020\013\022\r\n\tATTACKING\020\014\022\013\n\007LOCKING\020\r\022\r\n\tR" + "UMMAGING\020\016\022\014\n\010CLIMBING\020\017\022\023\n\017OPENING_A_CH" + "EST\020\020\022\027\n\023USING_SPECIAL_SKILL\020\021\022\022\n\016OPENIN" + "G_A_GATE\020\022*f\n\017TrickerBuffType\022\023\n\017NULL_TB" + "UFF_TYPE\020\000\022\016\n\nTBUFFTYPE1\020\001\022\016\n\nTBUFFTYPE2" + "\020\002\022\016\n\nTBUFFTYPE3\020\003\022\016\n\nTBUFFTYPE4\020\004*J\n\nPl" + "ayerType\022\024\n\020NULL_PLAYER_TYPE\020\000\022\022\n\016STUDEN" + "T_PLAYER\020\001\022\022\n\016TRICKER_PLAYER\020\002*g\n\013Studen" + "tType\022\025\n\021NULL_STUDENT_TYPE\020\000\022\013\n\007ATHLETE\020" + "\001\022\020\n\014STUDENTTYPE2\020\002\022\020\n\014STUDENTTYPE3\020\003\022\020\n" + "\014STUDENTTYPE4\020\004*h\n\013TrickerType\022\025\n\021NULL_T" + "RICKER_TYPE\020\000\022\014\n\010ASSASSIN\020\001\022\020\n\014TRICKERTY" + "PE2\020\002\022\020\n\014TRICKERTYPE3\020\003\022\020\n\014TRICKERTYPE4\020" + "\004*P\n\tGameState\022\023\n\017NULL_GAME_STATE\020\000\022\016\n\nG" + "AME_START\020\001\022\020\n\014GAME_RUNNING\020\002\022\014\n\010GAME_EN" + "D\020\003b\006proto3"; static ::_pbi::once_flag descriptor_table_MessageType_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_MessageType_2eproto = { false, false, - 1348, + 1411, descriptor_table_protodef_MessageType_2eproto, "MessageType.proto", &descriptor_table_MessageType_2eproto_once, @@ -171,6 +173,9 @@ namespace protobuf case 2: case 3: case 4: + case 5: + case 6: + case 7: return true; default: return false; diff --git a/CAPI/cpp/proto/MessageType.pb.h b/CAPI/cpp/proto/MessageType.pb.h index 93bcfed..bed31d1 100644 --- a/CAPI/cpp/proto/MessageType.pb.h +++ b/CAPI/cpp/proto/MessageType.pb.h @@ -155,16 +155,19 @@ namespace protobuf enum PropType : int { NULL_PROP_TYPE = 0, - KEY3 = 1, - KEY5 = 2, - KEY6 = 3, - PTYPE4 = 4, + ADD_SPEED = 1, + ADD_LIFE_OR_AP = 2, + ADD_HP_OR_AP = 3, + SHIELD_OR_SPEAR = 4, + KEY3 = 5, + KEY5 = 6, + KEY6 = 7, PropType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits::min(), PropType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits::max() }; bool PropType_IsValid(int value); constexpr PropType PropType_MIN = NULL_PROP_TYPE; - constexpr PropType PropType_MAX = PTYPE4; + constexpr PropType PropType_MAX = KEY6; constexpr int PropType_ARRAYSIZE = PropType_MAX + 1; const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PropType_descriptor(); diff --git a/dependency/proto/Message2Server.proto b/dependency/proto/Message2Server.proto index 0995d93..d14b3cd 100755 --- a/dependency/proto/Message2Server.proto +++ b/dependency/proto/Message2Server.proto @@ -46,6 +46,12 @@ message IDMsg int64 player_id = 1; } +message TreatAndRescueMsg +{ + int64 player_id = 1; + int64 to_player_id = 2; +} + message SkillMsg { int64 player_id = 1; diff --git a/dependency/proto/py_output.sh b/dependency/proto/py_output.sh index e1744c9..7b52a86 100755 --- a/dependency/proto/py_output.sh +++ b/dependency/proto/py_output.sh @@ -3,5 +3,5 @@ python3 -m grpc_tools.protoc -I. --python_out=. --pyi_out=. Message2Clients.prot python3 -m grpc_tools.protoc -I. --python_out=. --pyi_out=. Message2Server.proto python3 -m grpc_tools.protoc -I. --python_out=. --pyi_out=. --grpc_python_out=. Services.proto chmod -R 755 ./ -mv -f ./*.py ../../PyAPI/proto -mv -f ./*.pyi ../../PyAPI/proto +mv -f ./*.py ../../CAPI/python/proto +mv -f ./*.pyi ../../CAPI/python/proto diff --git a/installer/Installer/MainWindow.xaml b/installer/Installer/MainWindow.xaml index 957889f..3f54032 100644 --- a/installer/Installer/MainWindow.xaml +++ b/installer/Installer/MainWindow.xaml @@ -5,16 +5,17 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Installer" mc:Ignorable="d" - Title="Installer" Height="450" Width="800"> + Title="Installer" Height="200" Window.SizeToContent="Width"> - - - - + + + + + @@ -26,22 +27,44 @@ - - - + + + + + +