| @@ -55,6 +55,7 @@ namespace THUAI6 | |||
| AddLifeOrAp = 5, | |||
| AddHpOrAp = 6, | |||
| ShieldOrSpear = 7, | |||
| RecoveryFromDizziness = 8, | |||
| }; | |||
| enum class BulletType : unsigned char | |||
| @@ -62,8 +63,8 @@ namespace THUAI6 | |||
| NullBulletType = 0, | |||
| FlyingKnife = 1, | |||
| CommonAttackOfTricker = 2, | |||
| FastBullet = 3, | |||
| OrdinaryBullet = 4, | |||
| BombBomb = 3, | |||
| JumpyDumpty = 4, | |||
| AtomBomb = 5, | |||
| }; | |||
| @@ -80,8 +81,8 @@ namespace THUAI6 | |||
| { | |||
| NullStudentType = 0, | |||
| Athlete = 1, | |||
| StudentType2 = 2, | |||
| StudentType3 = 3, | |||
| Teacher = 2, | |||
| StraightAStudent = 3, | |||
| StudentType4 = 4, | |||
| }; | |||
| @@ -90,8 +91,8 @@ namespace THUAI6 | |||
| { | |||
| NullTrickerType = 0, | |||
| Assassin = 1, | |||
| TrickerType2 = 2, | |||
| TrickerType3 = 3, | |||
| Klee = 2, | |||
| ANoisyPerson = 3, | |||
| TrickerType4 = 4, | |||
| }; | |||
| @@ -99,19 +100,20 @@ namespace THUAI6 | |||
| enum class StudentBuffType : unsigned char | |||
| { | |||
| NullStudentBuffType = 0, | |||
| StudentBuffType1 = 1, | |||
| StudentBuffType2 = 2, | |||
| StudentBuffType3 = 3, | |||
| StudentBuffType4 = 4, | |||
| AddSpeed = 1, | |||
| AddLife = 2, | |||
| Shield = 3, | |||
| Invisible = 4, | |||
| }; | |||
| enum class TrickerBuffType : unsigned char | |||
| { | |||
| NullTrickerBuffType = 0, | |||
| TrickerBuffType1 = 1, | |||
| TrickerBuffType2 = 2, | |||
| TrickerBuffType3 = 3, | |||
| TrickerBuffType4 = 4, | |||
| AddSpeed = 1, | |||
| Spear = 2, | |||
| AddAp = 3, | |||
| Clairaudience = 4, | |||
| Invisible = 5, | |||
| }; | |||
| // 学生状态枚举 | |||
| @@ -258,7 +260,7 @@ namespace THUAI6 | |||
| struct GameInfo | |||
| { | |||
| int32_t gameTime; | |||
| int32_t subjectLeft; | |||
| int32_t subjectFinished; | |||
| int32_t studentGraduated; | |||
| int32_t studentQuited; | |||
| int32_t studentScore; | |||
| @@ -275,6 +277,19 @@ namespace THUAI6 | |||
| {GameState::GameEnd, "GameEnd"}, | |||
| }; | |||
| inline std::map<StudentType, std::string> studentTypeDict{ | |||
| {StudentType::NullStudentType, "NullStudentType"}, | |||
| {StudentType::Athlete, "Athlete"}, | |||
| {StudentType::Teacher, "Teacher"}, | |||
| {StudentType::StraightAStudent, "StraightAStudent"}, | |||
| }; | |||
| inline std::map<TrickerType, std::string> trickerTypeDict{ | |||
| {TrickerType::NullTrickerType, "NullTrickerType"}, | |||
| {TrickerType::Assassin, "Assassin"}, | |||
| {TrickerType::Klee, "Klee"}, | |||
| }; | |||
| inline std::map<PlayerState, std::string> playerStateDict{ | |||
| {PlayerState::NullState, "NullState"}, | |||
| {PlayerState::Idle, "Idle"}, | |||
| @@ -327,6 +342,7 @@ namespace THUAI6 | |||
| {PropType::AddLifeOrAp, "AddLifeOrAp"}, | |||
| {PropType::AddHpOrAp, "AddHpOrAp"}, | |||
| {PropType::ShieldOrSpear, "ShieldOrSpear"}, | |||
| {PropType::RecoveryFromDizziness, "RecoveryFromDizziness"}, | |||
| }; | |||
| @@ -334,18 +350,27 @@ namespace THUAI6 | |||
| {BulletType::NullBulletType, "NullBulletType"}, | |||
| {BulletType::FlyingKnife, "FlyingKnife"}, | |||
| {BulletType::CommonAttackOfTricker, "CommonAttackOfTricker"}, | |||
| {BulletType::FastBullet, "FastBullet"}, | |||
| {BulletType::OrdinaryBullet, "OrdinaryBullet"}, | |||
| {BulletType::BombBomb, "BombBomb"}, | |||
| {BulletType::JumpyDumpty, "JumpyDumpty"}, | |||
| {BulletType::AtomBomb, "AtomBomb"}, | |||
| }; | |||
| inline std::map<StudentBuffType, std::string> studentBuffDict{ | |||
| {StudentBuffType::NullStudentBuffType, "NullStudentBuffType"}, | |||
| {StudentBuffType::AddSpeed, "AddSpeed"}, | |||
| {StudentBuffType::AddLife, "AddLife"}, | |||
| {StudentBuffType::Shield, "Shield"}, | |||
| {StudentBuffType::Invisible, "Invisible"}, | |||
| }; | |||
| inline std::map<TrickerBuffType, std::string> trickerBuffDict{ | |||
| {TrickerBuffType::NullTrickerBuffType, "NullTrickerBuffType"}, | |||
| {TrickerBuffType::AddSpeed, "AddSpeed"}, | |||
| {TrickerBuffType::Spear, "Spear"}, | |||
| {TrickerBuffType::Clairaudience, "Clairaudience"}, | |||
| {TrickerBuffType::AddAp, "AddAp"}, | |||
| {TrickerBuffType::Invisible, "Invisible"}, | |||
| }; | |||
| @@ -95,6 +95,7 @@ namespace Proto2THUAI6 | |||
| {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}, | |||
| {protobuf::PropType::RECOVERY_FROM_DIZZINESS, THUAI6::PropType::RecoveryFromDizziness}, | |||
| }; | |||
| inline std::map<protobuf::PlayerType, THUAI6::PlayerType> playerTypeDict{ | |||
| @@ -106,33 +107,34 @@ namespace Proto2THUAI6 | |||
| inline std::map<protobuf::StudentType, THUAI6::StudentType> studentTypeDict{ | |||
| {protobuf::StudentType::NULL_STUDENT_TYPE, THUAI6::StudentType::NullStudentType}, | |||
| {protobuf::StudentType::ATHLETE, THUAI6::StudentType::Athlete}, | |||
| {protobuf::StudentType::STUDENTTYPE2, THUAI6::StudentType::StudentType2}, | |||
| {protobuf::StudentType::STUDENTTYPE3, THUAI6::StudentType::StudentType3}, | |||
| {protobuf::StudentType::STUDENTTYPE2, THUAI6::StudentType::Teacher}, | |||
| {protobuf::StudentType::STUDENTTYPE3, THUAI6::StudentType::StraightAStudent}, | |||
| {protobuf::StudentType::STUDENTTYPE4, THUAI6::StudentType::StudentType4}, | |||
| }; | |||
| inline std::map<protobuf::TrickerType, THUAI6::TrickerType> trickerTypeDict{ | |||
| {protobuf::TrickerType::NULL_TRICKER_TYPE, THUAI6::TrickerType::NullTrickerType}, | |||
| {protobuf::TrickerType::ASSASSIN, THUAI6::TrickerType::Assassin}, | |||
| {protobuf::TrickerType::TRICKERTYPE2, THUAI6::TrickerType::TrickerType2}, | |||
| {protobuf::TrickerType::TRICKERTYPE3, THUAI6::TrickerType::TrickerType3}, | |||
| {protobuf::TrickerType::TRICKERTYPE2, THUAI6::TrickerType::Klee}, | |||
| {protobuf::TrickerType::TRICKERTYPE3, THUAI6::TrickerType::ANoisyPerson}, | |||
| {protobuf::TrickerType::TRICKERTYPE4, THUAI6::TrickerType::TrickerType4}, | |||
| }; | |||
| inline std::map<protobuf::StudentBuffType, THUAI6::StudentBuffType> studentBuffTypeDict{ | |||
| {protobuf::StudentBuffType::NULL_SBUFF_TYPE, THUAI6::StudentBuffType::NullStudentBuffType}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE1, THUAI6::StudentBuffType::StudentBuffType1}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE2, THUAI6::StudentBuffType::StudentBuffType2}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE3, THUAI6::StudentBuffType::StudentBuffType3}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE4, THUAI6::StudentBuffType::StudentBuffType4}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE1, THUAI6::StudentBuffType::AddSpeed}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE2, THUAI6::StudentBuffType::AddLife}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE3, THUAI6::StudentBuffType::Shield}, | |||
| {protobuf::StudentBuffType::SBUFFTYPE4, THUAI6::StudentBuffType::Invisible}, | |||
| }; | |||
| inline std::map<protobuf::TrickerBuffType, THUAI6::TrickerBuffType> trickerBuffTypeDict{ | |||
| {protobuf::TrickerBuffType::NULL_TBUFF_TYPE, THUAI6::TrickerBuffType::NullTrickerBuffType}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE1, THUAI6::TrickerBuffType::TrickerBuffType1}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE2, THUAI6::TrickerBuffType::TrickerBuffType2}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE3, THUAI6::TrickerBuffType::TrickerBuffType3}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE4, THUAI6::TrickerBuffType::TrickerBuffType4}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE1, THUAI6::TrickerBuffType::AddSpeed}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE2, THUAI6::TrickerBuffType::Spear}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE3, THUAI6::TrickerBuffType::AddAp}, | |||
| {protobuf::TrickerBuffType::TBUFFTYPE4, THUAI6::TrickerBuffType::Clairaudience}, | |||
| {protobuf::TrickerBuffType::INVISIBLE, THUAI6::TrickerBuffType::Invisible}, | |||
| }; | |||
| inline std::map<protobuf::PlayerState, THUAI6::PlayerState> playerStateDict{ | |||
| @@ -168,8 +170,8 @@ namespace Proto2THUAI6 | |||
| {protobuf::BulletType::NULL_BULLET_TYPE, THUAI6::BulletType::NullBulletType}, | |||
| {protobuf::BulletType::FLYING_KNIFE, THUAI6::BulletType::FlyingKnife}, | |||
| {protobuf::BulletType::COMMON_ATTACK_OF_TRICKER, THUAI6::BulletType::CommonAttackOfTricker}, | |||
| {protobuf::BulletType::FAST_BULLET, THUAI6::BulletType::FastBullet}, | |||
| {protobuf::BulletType::ORDINARY_BULLET, THUAI6::BulletType::OrdinaryBullet}, | |||
| {protobuf::BulletType::FAST_BULLET, THUAI6::BulletType::BombBomb}, | |||
| {protobuf::BulletType::ORDINARY_BULLET, THUAI6::BulletType::JumpyDumpty}, | |||
| {protobuf::BulletType::ATOM_BOMB, THUAI6::BulletType::AtomBomb}, | |||
| }; | |||
| @@ -274,7 +276,7 @@ namespace Proto2THUAI6 | |||
| { | |||
| auto gameInfo = std::make_shared<THUAI6::GameInfo>(); | |||
| gameInfo->gameTime = allMsg.game_time(); | |||
| gameInfo->subjectLeft = allMsg.subject_left(); | |||
| gameInfo->subjectFinished = allMsg.subject_finished(); | |||
| gameInfo->studentGraduated = allMsg.student_graduated(); | |||
| gameInfo->studentQuited = allMsg.student_quited(); | |||
| gameInfo->studentScore = allMsg.student_score(); | |||
| @@ -362,8 +364,8 @@ namespace THUAI62Proto | |||
| inline std::map<THUAI6::StudentType, protobuf::StudentType> studentTypeDict{ | |||
| {THUAI6::StudentType::NullStudentType, protobuf::StudentType::NULL_STUDENT_TYPE}, | |||
| {THUAI6::StudentType::Athlete, protobuf::StudentType::ATHLETE}, | |||
| {THUAI6::StudentType::StudentType2, protobuf::StudentType::STUDENTTYPE2}, | |||
| {THUAI6::StudentType::StudentType3, protobuf::StudentType::STUDENTTYPE3}, | |||
| {THUAI6::StudentType::Teacher, protobuf::StudentType::STUDENTTYPE2}, | |||
| {THUAI6::StudentType::StraightAStudent, protobuf::StudentType::STUDENTTYPE3}, | |||
| {THUAI6::StudentType::StudentType4, protobuf::StudentType::STUDENTTYPE4}, | |||
| }; | |||
| @@ -378,8 +380,8 @@ namespace THUAI62Proto | |||
| inline std::map<THUAI6::TrickerType, protobuf::TrickerType> trickerTypeDict{ | |||
| {THUAI6::TrickerType::NullTrickerType, protobuf::TrickerType::NULL_TRICKER_TYPE}, | |||
| {THUAI6::TrickerType::Assassin, protobuf::TrickerType::ASSASSIN}, | |||
| {THUAI6::TrickerType::TrickerType2, protobuf::TrickerType::TRICKERTYPE2}, | |||
| {THUAI6::TrickerType::TrickerType3, protobuf::TrickerType::TRICKERTYPE3}, | |||
| {THUAI6::TrickerType::Klee, protobuf::TrickerType::TRICKERTYPE2}, | |||
| {THUAI6::TrickerType::ANoisyPerson, protobuf::TrickerType::TRICKERTYPE3}, | |||
| {THUAI6::TrickerType::TrickerType4, protobuf::TrickerType::TRICKERTYPE4}, | |||
| }; | |||
| @@ -619,23 +619,24 @@ void StudentDebugAPI::PrintStudent() const | |||
| { | |||
| for (const auto& student : logic.GetStudents()) | |||
| { | |||
| logger->info("******Student Info******"); | |||
| logger->info("\n******Student Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", student->playerID, student->guid, student->x, student->y); | |||
| logger->info("speed={}, view range={}, place={}", student->speed, student->viewRange, THUAI6::placeTypeDict[student->place]); | |||
| logger->info("state={}, determination={}, addiction={}", THUAI6::playerStateDict[student->playerState], student->determination, student->addiction); | |||
| std::string skillTime = "skill time="; | |||
| logger->info("speed={}, view range={}, place={}, radius={}", student->speed, student->viewRange, THUAI6::placeTypeDict[student->place], student->radius); | |||
| std::string skillTime = ""; | |||
| for (const auto& time : student->timeUntilSkillAvailable) | |||
| skillTime += std::to_string(time) + ", "; | |||
| logger->info(skillTime); | |||
| std::string studentBuff = "buff="; | |||
| std::string studentProp = "prop="; | |||
| logger->info("score={}, facing direction={}, skill time={}", student->score, student->facingDirection, skillTime); | |||
| std::string props = ""; | |||
| for (const auto& prop : student->props) | |||
| props += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info("state={}, bullet={}, props={}", THUAI6::playerStateDict[student->playerState], THUAI6::bulletTypeDict[student->bulletType], props); | |||
| logger->info("type={}, determination={}, addiction={}, danger alert={}", THUAI6::studentTypeDict[student->studentType], student->determination, student->addiction, student->dangerAlert); | |||
| logger->info("learning speed={}, treat speed={}, treat progress={}, rescue progress={}", student->learningSpeed, student->treatSpeed, student->treatProgress, student->rescueProgress); | |||
| std::string studentBuff = ""; | |||
| for (const auto& buff : student->buff) | |||
| studentBuff += THUAI6::studentBuffDict[buff] + ", "; | |||
| for (const auto& prop : student->props) | |||
| studentProp += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info(studentBuff); | |||
| logger->info(studentProp); | |||
| logger->info("**********************"); | |||
| logger->info("buff={}", studentBuff); | |||
| logger->info("************************\n"); | |||
| } | |||
| } | |||
| @@ -643,23 +644,24 @@ void TrickerDebugAPI::PrintStudent() const | |||
| { | |||
| for (const auto& student : logic.GetStudents()) | |||
| { | |||
| logger->info("******Student Info******"); | |||
| logger->info("\n******Student Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", student->playerID, student->guid, student->x, student->y); | |||
| logger->info("speed={}, view range={}, place={}", student->speed, student->viewRange, THUAI6::placeTypeDict[student->place]); | |||
| logger->info("state={}, determination={}, addiction={}", THUAI6::playerStateDict[student->playerState], student->determination, student->addiction); | |||
| std::string skillTime = "skill time="; | |||
| logger->info("speed={}, view range={}, place={}, radius={}", student->speed, student->viewRange, THUAI6::placeTypeDict[student->place], student->radius); | |||
| std::string skillTime = ""; | |||
| for (const auto& time : student->timeUntilSkillAvailable) | |||
| skillTime += std::to_string(time) + ", "; | |||
| logger->info(skillTime); | |||
| std::string studentBuff = "buff="; | |||
| std::string studentProp = "prop="; | |||
| logger->info("score={}, facing direction={}, skill time={}", student->score, student->facingDirection, skillTime); | |||
| std::string props = ""; | |||
| for (const auto& prop : student->props) | |||
| props += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info("state={}, bullet={}, props={}", THUAI6::playerStateDict[student->playerState], THUAI6::bulletTypeDict[student->bulletType], props); | |||
| logger->info("type={}, determination={}, addiction={}, danger alert={}", THUAI6::studentTypeDict[student->studentType], student->determination, student->addiction, student->dangerAlert); | |||
| logger->info("learning speed={}, treat speed={}, treat progress={}, rescue progress={}", student->learningSpeed, student->treatSpeed, student->treatProgress, student->rescueProgress); | |||
| std::string studentBuff = ""; | |||
| for (const auto& buff : student->buff) | |||
| studentBuff += THUAI6::studentBuffDict[buff] + ", "; | |||
| for (const auto& prop : student->props) | |||
| studentProp += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info(studentBuff); | |||
| logger->info(studentProp); | |||
| logger->info("**********************"); | |||
| logger->info("buff={}", studentBuff); | |||
| logger->info("************************\n"); | |||
| } | |||
| } | |||
| @@ -667,23 +669,23 @@ void StudentDebugAPI::PrintTricker() const | |||
| { | |||
| for (const auto& tricker : logic.GetTrickers()) | |||
| { | |||
| logger->info("******Tricker Info******"); | |||
| logger->info("\n******Tricker Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", tricker->playerID, tricker->guid, tricker->x, tricker->y); | |||
| logger->info("speed={}, view range={}, place={}", tricker->speed, tricker->viewRange, THUAI6::placeTypeDict[tricker->place]); | |||
| logger->info("state={}", THUAI6::playerStateDict[tricker->playerState]); | |||
| std::string skillTime = "skill time="; | |||
| logger->info("speed={}, view range={}, place={}, radius={}", tricker->speed, tricker->viewRange, THUAI6::placeTypeDict[tricker->place], tricker->radius); | |||
| std::string skillTime = ""; | |||
| for (const auto& time : tricker->timeUntilSkillAvailable) | |||
| skillTime += std::to_string(time) + ", "; | |||
| logger->info(skillTime); | |||
| std::string trickerBuff = "buff="; | |||
| logger->info("score={}, facing direction={}, skill time={}", tricker->score, tricker->facingDirection, skillTime); | |||
| std::string props = ""; | |||
| for (const auto& prop : tricker->props) | |||
| props += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info("state={}, bullet={}, props={}", THUAI6::playerStateDict[tricker->playerState], THUAI6::bulletTypeDict[tricker->bulletType], props); | |||
| logger->info("type={}, trick desire={}, class volume={}", THUAI6::trickerTypeDict[tricker->trickerType], tricker->trickDesire, tricker->classVolume); | |||
| std::string trickerBuff = ""; | |||
| for (const auto& buff : tricker->buff) | |||
| trickerBuff += THUAI6::trickerBuffDict[buff] + ", "; | |||
| logger->info(trickerBuff); | |||
| std::string trickerProp = "prop="; | |||
| for (const auto& prop : tricker->props) | |||
| trickerProp += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info(trickerProp); | |||
| logger->info("************************"); | |||
| logger->info("buff={}", trickerBuff); | |||
| logger->info("************************\n"); | |||
| } | |||
| } | |||
| @@ -691,23 +693,23 @@ void TrickerDebugAPI::PrintTricker() const | |||
| { | |||
| for (auto tricker : logic.GetTrickers()) | |||
| { | |||
| logger->info("******Tricker Info******"); | |||
| logger->info("\n******Tricker Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", tricker->playerID, tricker->guid, tricker->x, tricker->y); | |||
| logger->info("speed={}, view range={}, place={}", tricker->speed, tricker->viewRange, THUAI6::placeTypeDict[tricker->place]); | |||
| logger->info("state={}", THUAI6::playerStateDict[tricker->playerState]); | |||
| std::string skillTime = "skill time="; | |||
| logger->info("speed={}, view range={}, place={}, radius={}", tricker->speed, tricker->viewRange, THUAI6::placeTypeDict[tricker->place], tricker->radius); | |||
| std::string skillTime = ""; | |||
| for (const auto& time : tricker->timeUntilSkillAvailable) | |||
| skillTime += std::to_string(time) + ", "; | |||
| logger->info(skillTime); | |||
| std::string trickerBuff = "buff="; | |||
| logger->info("score={}, facing direction={}, skill time={}", tricker->score, tricker->facingDirection, skillTime); | |||
| std::string props = ""; | |||
| for (const auto& prop : tricker->props) | |||
| props += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info("state={}, bullet={}, props={}", THUAI6::playerStateDict[tricker->playerState], THUAI6::bulletTypeDict[tricker->bulletType], props); | |||
| logger->info("type={}, trick desire={}, class volume={}", THUAI6::trickerTypeDict[tricker->trickerType], tricker->trickDesire, tricker->classVolume); | |||
| std::string trickerBuff = ""; | |||
| for (const auto& buff : tricker->buff) | |||
| trickerBuff += THUAI6::trickerBuffDict[buff] + ", "; | |||
| logger->info(trickerBuff); | |||
| std::string trickerProp = "prop="; | |||
| for (const auto& prop : tricker->props) | |||
| trickerProp += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info(trickerProp); | |||
| logger->info("************************"); | |||
| logger->info("buff={}", trickerBuff); | |||
| logger->info("************************\n"); | |||
| } | |||
| } | |||
| @@ -715,9 +717,9 @@ void StudentDebugAPI::PrintProp() const | |||
| { | |||
| for (auto prop : logic.GetProps()) | |||
| { | |||
| logger->info("******Prop Info******"); | |||
| logger->info("GUID={}, x={}, y={}, place={}", prop->guid, prop->x, prop->y, THUAI6::placeTypeDict[prop->place]); | |||
| logger->info("*********************"); | |||
| logger->info("\n******Prop Info******"); | |||
| logger->info("GUID={}, x={}, y={}, place={}, facing direction={}", prop->guid, prop->x, prop->y, THUAI6::placeTypeDict[prop->place], prop->facingDirection); | |||
| logger->info("*********************\n"); | |||
| } | |||
| } | |||
| @@ -725,54 +727,55 @@ void TrickerDebugAPI::PrintProp() const | |||
| { | |||
| for (auto prop : logic.GetProps()) | |||
| { | |||
| logger->info("******Prop Info******"); | |||
| logger->info("GUID={}, x={}, y={}, place={}", prop->guid, prop->x, prop->y, THUAI6::placeTypeDict[prop->place]); | |||
| logger->info("*********************"); | |||
| logger->info("\n******Prop Info******"); | |||
| logger->info("GUID={}, x={}, y={}, place={}, facing direction={}", prop->guid, prop->x, prop->y, THUAI6::placeTypeDict[prop->place], prop->facingDirection); | |||
| logger->info("*********************\n"); | |||
| } | |||
| } | |||
| void StudentDebugAPI::PrintSelfInfo() const | |||
| { | |||
| auto self = logic.StudentGetSelfInfo(); | |||
| logger->info("******Self Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", self->playerID, self->guid, self->x, self->y); | |||
| logger->info("speed={}, view range={}, place={}", self->speed, self->viewRange, THUAI6::placeTypeDict[self->place]); | |||
| logger->info("state={}, determination={}, addiction", THUAI6::playerStateDict[self->playerState], self->determination, self->addiction); | |||
| std::string skillTime = "skill time="; | |||
| for (const auto& time : self->timeUntilSkillAvailable) | |||
| auto student = logic.StudentGetSelfInfo(); | |||
| logger->info("\n******Self Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", student->playerID, student->guid, student->x, student->y); | |||
| logger->info("speed={}, view range={}, place={}, radius={}", student->speed, student->viewRange, THUAI6::placeTypeDict[student->place], student->radius); | |||
| std::string skillTime = ""; | |||
| for (const auto& time : student->timeUntilSkillAvailable) | |||
| skillTime += std::to_string(time) + ", "; | |||
| logger->info(skillTime); | |||
| std::string studentBuff = "buff="; | |||
| for (const auto& buff : self->buff) | |||
| logger->info("score={}, facing direction={}, skill time={}", student->score, student->facingDirection, skillTime); | |||
| std::string props = ""; | |||
| for (const auto& prop : student->props) | |||
| props += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info("state={}, bullet={}, props={}", THUAI6::playerStateDict[student->playerState], THUAI6::bulletTypeDict[student->bulletType], props); | |||
| logger->info("type={}, determination={}, addiction={}, danger alert={}", THUAI6::studentTypeDict[student->studentType], student->determination, student->addiction, student->dangerAlert); | |||
| logger->info("learning speed={}, treat speed={}, treat progress={}, rescue progress={}", student->learningSpeed, student->treatSpeed, student->treatProgress, student->rescueProgress); | |||
| std::string studentBuff = ""; | |||
| for (const auto& buff : student->buff) | |||
| studentBuff += THUAI6::studentBuffDict[buff] + ", "; | |||
| logger->info(studentBuff); | |||
| std::string studentProp = "prop="; | |||
| for (const auto& prop : self->props) | |||
| studentProp += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info(studentProp); | |||
| logger->info("*********************"); | |||
| logger->info("buff={}", studentBuff); | |||
| logger->info("*********************\n"); | |||
| } | |||
| void TrickerDebugAPI::PrintSelfInfo() const | |||
| { | |||
| auto self = logic.TrickerGetSelfInfo(); | |||
| logger->info("******Self Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", self->playerID, self->guid, self->x, self->y); | |||
| logger->info("speed={}, view range={}, place={}", self->speed, self->viewRange, THUAI6::placeTypeDict[self->place]); | |||
| logger->info("state={}", THUAI6::playerStateDict[self->playerState]); | |||
| std::string skillTime = "skill time="; | |||
| for (const auto& time : self->timeUntilSkillAvailable) | |||
| auto tricker = logic.TrickerGetSelfInfo(); | |||
| logger->info("\n******Self Info******"); | |||
| logger->info("playerID={}, GUID={}, x={}, y={}", tricker->playerID, tricker->guid, tricker->x, tricker->y); | |||
| logger->info("speed={}, view range={}, place={}, radius={}", tricker->speed, tricker->viewRange, THUAI6::placeTypeDict[tricker->place], tricker->radius); | |||
| std::string skillTime = ""; | |||
| for (const auto& time : tricker->timeUntilSkillAvailable) | |||
| skillTime += std::to_string(time) + ", "; | |||
| logger->info(skillTime); | |||
| std::string trickerBuff = "buff="; | |||
| for (const auto& buff : self->buff) | |||
| logger->info("score={}, facing direction={}, skill time={}", tricker->score, tricker->facingDirection, skillTime); | |||
| std::string props = ""; | |||
| for (const auto& prop : tricker->props) | |||
| props += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info("state={}, bullet={}, props={}", THUAI6::playerStateDict[tricker->playerState], THUAI6::bulletTypeDict[tricker->bulletType], props); | |||
| logger->info("type={}, trick desire={}, class volume={}", THUAI6::trickerTypeDict[tricker->trickerType], tricker->trickDesire, tricker->classVolume); | |||
| std::string trickerBuff = ""; | |||
| for (const auto& buff : tricker->buff) | |||
| trickerBuff += THUAI6::trickerBuffDict[buff] + ", "; | |||
| logger->info(trickerBuff); | |||
| std::string trickerProp = "prop="; | |||
| for (const auto& prop : self->props) | |||
| trickerProp += THUAI6::propTypeDict[prop] + ", "; | |||
| logger->info(trickerProp); | |||
| logger->info("*********************"); | |||
| logger->info("buff={}", trickerBuff); | |||
| logger->info("*********************\n"); | |||
| } | |||
| void StudentDebugAPI::Play(IAI& ai) | |||
| @@ -356,7 +356,7 @@ namespace protobuf | |||
| ::_pbi::ConstantInitialized | |||
| ) : | |||
| _impl_{ | |||
| /*decltype(_impl_.game_time_)*/ 0, /*decltype(_impl_.subject_left_)*/ 0, /*decltype(_impl_.student_graduated_)*/ 0, /*decltype(_impl_.student_quited_)*/ 0, /*decltype(_impl_.student_score_)*/ 0, /*decltype(_impl_.tricker_score_)*/ 0, /*decltype(_impl_.gate_opened_)*/ false, /*decltype(_impl_.hidden_gate_refreshed_)*/ false, /*decltype(_impl_.hidden_gate_opened_)*/ false, /*decltype(_impl_._cached_size_)*/ {}} | |||
| /*decltype(_impl_.game_time_)*/ 0, /*decltype(_impl_.subject_finished_)*/ 0, /*decltype(_impl_.student_graduated_)*/ 0, /*decltype(_impl_.student_quited_)*/ 0, /*decltype(_impl_.student_score_)*/ 0, /*decltype(_impl_.tricker_score_)*/ 0, /*decltype(_impl_._cached_size_)*/ {}} | |||
| { | |||
| } | |||
| struct MessageOfAllDefaultTypeInternal | |||
| @@ -644,14 +644,11 @@ const uint32_t TableStruct_Message2Clients_2eproto::offsets[] PROTOBUF_SECTION_V | |||
| ~0u, // no _weak_field_map_ | |||
| ~0u, // no _inlined_string_donated_ | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.game_time_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.subject_left_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.subject_finished_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.student_graduated_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.student_quited_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.student_score_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.tricker_score_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.gate_opened_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.hidden_gate_refreshed_), | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageOfAll, _impl_.hidden_gate_opened_), | |||
| ~0u, // no _has_bits_ | |||
| PROTOBUF_FIELD_OFFSET(::protobuf::MessageToClient, _internal_metadata_), | |||
| ~0u, // no _extensions_ | |||
| @@ -695,9 +692,9 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode | |||
| {163, -1, -1, sizeof(::protobuf::MessageOfNews)}, | |||
| {172, -1, -1, sizeof(::protobuf::MessageOfObj)}, | |||
| {191, -1, -1, sizeof(::protobuf::MessageOfAll)}, | |||
| {206, -1, -1, sizeof(::protobuf::MessageToClient)}, | |||
| {215, -1, -1, sizeof(::protobuf::MoveRes)}, | |||
| {224, -1, -1, sizeof(::protobuf::BoolRes)}, | |||
| {203, -1, -1, sizeof(::protobuf::MessageToClient)}, | |||
| {212, -1, -1, sizeof(::protobuf::MoveRes)}, | |||
| {221, -1, -1, sizeof(::protobuf::BoolRes)}, | |||
| }; | |||
| static const ::_pb::Message* const file_default_instances[] = { | |||
| @@ -796,20 +793,18 @@ const char descriptor_table_protodef_Message2Clients_2eproto[] PROTOBUF_SECTION_ | |||
| "\n \001(\0132\035.protobuf.MessageOfHiddenGateH\000\022/" | |||
| "\n\014news_message\030\013 \001(\0132\027.protobuf.MessageO" | |||
| "fNewsH\000\022-\n\013map_message\030\014 \001(\0132\026.protobuf." | |||
| "MessageOfMapH\000B\020\n\016message_of_obj\"\350\001\n\014Mes" | |||
| "sageOfAll\022\021\n\tgame_time\030\001 \001(\005\022\024\n\014subject_" | |||
| "left\030\002 \001(\005\022\031\n\021student_graduated\030\003 \001(\005\022\026\n" | |||
| "\016student_quited\030\004 \001(\005\022\025\n\rstudent_score\030\005" | |||
| " \001(\005\022\025\n\rtricker_score\030\006 \001(\005\022\023\n\013gate_open" | |||
| "ed\030\007 \001(\010\022\035\n\025hidden_gate_refreshed\030\010 \001(\010\022" | |||
| "\032\n\022hidden_gate_opened\030\t \001(\010\"\224\001\n\017MessageT" | |||
| "oClient\022+\n\013obj_message\030\001 \003(\0132\026.protobuf." | |||
| "MessageOfObj\022\'\n\ngame_state\030\002 \001(\0162\023.proto" | |||
| "buf.GameState\022+\n\013all_message\030\003 \001(\0132\026.pro" | |||
| "tobuf.MessageOfAll\"J\n\007MoveRes\022\024\n\014actual_" | |||
| "speed\030\001 \001(\003\022\024\n\014actual_angle\030\002 \001(\001\022\023\n\013act" | |||
| "_success\030\003 \001(\010\"\036\n\007BoolRes\022\023\n\013act_success" | |||
| "\030\001 \001(\010b\006proto3"; | |||
| "MessageOfMapH\000B\020\n\016message_of_obj\"\234\001\n\014Mes" | |||
| "sageOfAll\022\021\n\tgame_time\030\001 \001(\005\022\030\n\020subject_" | |||
| "finished\030\002 \001(\005\022\031\n\021student_graduated\030\003 \001(" | |||
| "\005\022\026\n\016student_quited\030\004 \001(\005\022\025\n\rstudent_sco" | |||
| "re\030\005 \001(\005\022\025\n\rtricker_score\030\006 \001(\005\"\224\001\n\017Mess" | |||
| "ageToClient\022+\n\013obj_message\030\001 \003(\0132\026.proto" | |||
| "buf.MessageOfObj\022\'\n\ngame_state\030\002 \001(\0162\023.p" | |||
| "rotobuf.GameState\022+\n\013all_message\030\003 \001(\0132\026" | |||
| ".protobuf.MessageOfAll\"J\n\007MoveRes\022\024\n\014act" | |||
| "ual_speed\030\001 \001(\003\022\024\n\014actual_angle\030\002 \001(\001\022\023\n" | |||
| "\013act_success\030\003 \001(\010\"\036\n\007BoolRes\022\023\n\013act_suc" | |||
| "cess\030\001 \001(\010b\006proto3"; | |||
| static const ::_pbi::DescriptorTable* const descriptor_table_Message2Clients_2eproto_deps[1] = { | |||
| &::descriptor_table_MessageType_2eproto, | |||
| }; | |||
| @@ -817,7 +812,7 @@ static ::_pbi::once_flag descriptor_table_Message2Clients_2eproto_once; | |||
| const ::_pbi::DescriptorTable descriptor_table_Message2Clients_2eproto = { | |||
| false, | |||
| false, | |||
| 3454, | |||
| 3378, | |||
| descriptor_table_protodef_Message2Clients_2eproto, | |||
| "Message2Clients.proto", | |||
| &descriptor_table_Message2Clients_2eproto_once, | |||
| @@ -7327,10 +7322,10 @@ namespace protobuf | |||
| MessageOfAll* const _this = this; | |||
| (void)_this; | |||
| new (&_impl_) Impl_{ | |||
| decltype(_impl_.game_time_){}, decltype(_impl_.subject_left_){}, decltype(_impl_.student_graduated_){}, decltype(_impl_.student_quited_){}, decltype(_impl_.student_score_){}, decltype(_impl_.tricker_score_){}, decltype(_impl_.gate_opened_){}, decltype(_impl_.hidden_gate_refreshed_){}, decltype(_impl_.hidden_gate_opened_){}, /*decltype(_impl_._cached_size_)*/ {}}; | |||
| decltype(_impl_.game_time_){}, decltype(_impl_.subject_finished_){}, decltype(_impl_.student_graduated_){}, decltype(_impl_.student_quited_){}, decltype(_impl_.student_score_){}, decltype(_impl_.tricker_score_){}, /*decltype(_impl_._cached_size_)*/ {}}; | |||
| _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); | |||
| ::memcpy(&_impl_.game_time_, &from._impl_.game_time_, static_cast<size_t>(reinterpret_cast<char*>(&_impl_.hidden_gate_opened_) - reinterpret_cast<char*>(&_impl_.game_time_)) + sizeof(_impl_.hidden_gate_opened_)); | |||
| ::memcpy(&_impl_.game_time_, &from._impl_.game_time_, static_cast<size_t>(reinterpret_cast<char*>(&_impl_.tricker_score_) - reinterpret_cast<char*>(&_impl_.game_time_)) + sizeof(_impl_.tricker_score_)); | |||
| // @@protoc_insertion_point(copy_constructor:protobuf.MessageOfAll) | |||
| } | |||
| @@ -7341,7 +7336,7 @@ namespace protobuf | |||
| (void)arena; | |||
| (void)is_message_owned; | |||
| new (&_impl_) Impl_{ | |||
| decltype(_impl_.game_time_){0}, decltype(_impl_.subject_left_){0}, decltype(_impl_.student_graduated_){0}, decltype(_impl_.student_quited_){0}, decltype(_impl_.student_score_){0}, decltype(_impl_.tricker_score_){0}, decltype(_impl_.gate_opened_){false}, decltype(_impl_.hidden_gate_refreshed_){false}, decltype(_impl_.hidden_gate_opened_){false}, /*decltype(_impl_._cached_size_)*/ {}}; | |||
| decltype(_impl_.game_time_){0}, decltype(_impl_.subject_finished_){0}, decltype(_impl_.student_graduated_){0}, decltype(_impl_.student_quited_){0}, decltype(_impl_.student_score_){0}, decltype(_impl_.tricker_score_){0}, /*decltype(_impl_._cached_size_)*/ {}}; | |||
| } | |||
| MessageOfAll::~MessageOfAll() | |||
| @@ -7372,7 +7367,7 @@ namespace protobuf | |||
| // Prevent compiler warnings about cached_has_bits being unused | |||
| (void)cached_has_bits; | |||
| ::memset(&_impl_.game_time_, 0, static_cast<size_t>(reinterpret_cast<char*>(&_impl_.hidden_gate_opened_) - reinterpret_cast<char*>(&_impl_.game_time_)) + sizeof(_impl_.hidden_gate_opened_)); | |||
| ::memset(&_impl_.game_time_, 0, static_cast<size_t>(reinterpret_cast<char*>(&_impl_.tricker_score_) - reinterpret_cast<char*>(&_impl_.game_time_)) + sizeof(_impl_.tricker_score_)); | |||
| _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); | |||
| } | |||
| @@ -7397,11 +7392,11 @@ namespace protobuf | |||
| else | |||
| goto handle_unusual; | |||
| continue; | |||
| // int32 subject_left = 2; | |||
| // int32 subject_finished = 2; | |||
| case 2: | |||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) | |||
| { | |||
| _impl_.subject_left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); | |||
| _impl_.subject_finished_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); | |||
| CHK_(ptr); | |||
| } | |||
| else | |||
| @@ -7447,36 +7442,6 @@ namespace protobuf | |||
| else | |||
| goto handle_unusual; | |||
| continue; | |||
| // bool gate_opened = 7; | |||
| case 7: | |||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) | |||
| { | |||
| _impl_.gate_opened_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); | |||
| CHK_(ptr); | |||
| } | |||
| else | |||
| goto handle_unusual; | |||
| continue; | |||
| // bool hidden_gate_refreshed = 8; | |||
| case 8: | |||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) | |||
| { | |||
| _impl_.hidden_gate_refreshed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); | |||
| CHK_(ptr); | |||
| } | |||
| else | |||
| goto handle_unusual; | |||
| continue; | |||
| // bool hidden_gate_opened = 9; | |||
| case 9: | |||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) | |||
| { | |||
| _impl_.hidden_gate_opened_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); | |||
| CHK_(ptr); | |||
| } | |||
| else | |||
| goto handle_unusual; | |||
| continue; | |||
| default: | |||
| goto handle_unusual; | |||
| } // switch | |||
| @@ -7518,11 +7483,11 @@ namespace protobuf | |||
| target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_game_time(), target); | |||
| } | |||
| // int32 subject_left = 2; | |||
| if (this->_internal_subject_left() != 0) | |||
| // int32 subject_finished = 2; | |||
| if (this->_internal_subject_finished() != 0) | |||
| { | |||
| target = stream->EnsureSpace(target); | |||
| target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_subject_left(), target); | |||
| target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_subject_finished(), target); | |||
| } | |||
| // int32 student_graduated = 3; | |||
| @@ -7553,27 +7518,6 @@ namespace protobuf | |||
| target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_tricker_score(), target); | |||
| } | |||
| // bool gate_opened = 7; | |||
| if (this->_internal_gate_opened() != 0) | |||
| { | |||
| target = stream->EnsureSpace(target); | |||
| target = ::_pbi::WireFormatLite::WriteBoolToArray(7, this->_internal_gate_opened(), target); | |||
| } | |||
| // bool hidden_gate_refreshed = 8; | |||
| if (this->_internal_hidden_gate_refreshed() != 0) | |||
| { | |||
| target = stream->EnsureSpace(target); | |||
| target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_hidden_gate_refreshed(), target); | |||
| } | |||
| // bool hidden_gate_opened = 9; | |||
| if (this->_internal_hidden_gate_opened() != 0) | |||
| { | |||
| target = stream->EnsureSpace(target); | |||
| target = ::_pbi::WireFormatLite::WriteBoolToArray(9, this->_internal_hidden_gate_opened(), target); | |||
| } | |||
| if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) | |||
| { | |||
| target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( | |||
| @@ -7599,10 +7543,10 @@ namespace protobuf | |||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_game_time()); | |||
| } | |||
| // int32 subject_left = 2; | |||
| if (this->_internal_subject_left() != 0) | |||
| // int32 subject_finished = 2; | |||
| if (this->_internal_subject_finished() != 0) | |||
| { | |||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_subject_left()); | |||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_subject_finished()); | |||
| } | |||
| // int32 student_graduated = 3; | |||
| @@ -7629,24 +7573,6 @@ namespace protobuf | |||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_tricker_score()); | |||
| } | |||
| // bool gate_opened = 7; | |||
| if (this->_internal_gate_opened() != 0) | |||
| { | |||
| total_size += 1 + 1; | |||
| } | |||
| // bool hidden_gate_refreshed = 8; | |||
| if (this->_internal_hidden_gate_refreshed() != 0) | |||
| { | |||
| total_size += 1 + 1; | |||
| } | |||
| // bool hidden_gate_opened = 9; | |||
| if (this->_internal_hidden_gate_opened() != 0) | |||
| { | |||
| total_size += 1 + 1; | |||
| } | |||
| return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); | |||
| } | |||
| @@ -7671,9 +7597,9 @@ namespace protobuf | |||
| { | |||
| _this->_internal_set_game_time(from._internal_game_time()); | |||
| } | |||
| if (from._internal_subject_left() != 0) | |||
| if (from._internal_subject_finished() != 0) | |||
| { | |||
| _this->_internal_set_subject_left(from._internal_subject_left()); | |||
| _this->_internal_set_subject_finished(from._internal_subject_finished()); | |||
| } | |||
| if (from._internal_student_graduated() != 0) | |||
| { | |||
| @@ -7691,18 +7617,6 @@ namespace protobuf | |||
| { | |||
| _this->_internal_set_tricker_score(from._internal_tricker_score()); | |||
| } | |||
| if (from._internal_gate_opened() != 0) | |||
| { | |||
| _this->_internal_set_gate_opened(from._internal_gate_opened()); | |||
| } | |||
| if (from._internal_hidden_gate_refreshed() != 0) | |||
| { | |||
| _this->_internal_set_hidden_gate_refreshed(from._internal_hidden_gate_refreshed()); | |||
| } | |||
| if (from._internal_hidden_gate_opened() != 0) | |||
| { | |||
| _this->_internal_set_hidden_gate_opened(from._internal_hidden_gate_opened()); | |||
| } | |||
| _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); | |||
| } | |||
| @@ -7725,7 +7639,7 @@ namespace protobuf | |||
| using std::swap; | |||
| _internal_metadata_.InternalSwap(&other->_internal_metadata_); | |||
| ::PROTOBUF_NAMESPACE_ID::internal::memswap< | |||
| PROTOBUF_FIELD_OFFSET(MessageOfAll, _impl_.hidden_gate_opened_) + sizeof(MessageOfAll::_impl_.hidden_gate_opened_) - PROTOBUF_FIELD_OFFSET(MessageOfAll, _impl_.game_time_)>( | |||
| PROTOBUF_FIELD_OFFSET(MessageOfAll, _impl_.tricker_score_) + sizeof(MessageOfAll::_impl_.tricker_score_) - PROTOBUF_FIELD_OFFSET(MessageOfAll, _impl_.game_time_)>( | |||
| reinterpret_cast<char*>(&_impl_.game_time_), | |||
| reinterpret_cast<char*>(&other->_impl_.game_time_) | |||
| ); | |||
| @@ -4521,14 +4521,11 @@ namespace protobuf | |||
| enum : int | |||
| { | |||
| kGameTimeFieldNumber = 1, | |||
| kSubjectLeftFieldNumber = 2, | |||
| kSubjectFinishedFieldNumber = 2, | |||
| kStudentGraduatedFieldNumber = 3, | |||
| kStudentQuitedFieldNumber = 4, | |||
| kStudentScoreFieldNumber = 5, | |||
| kTrickerScoreFieldNumber = 6, | |||
| kGateOpenedFieldNumber = 7, | |||
| kHiddenGateRefreshedFieldNumber = 8, | |||
| kHiddenGateOpenedFieldNumber = 9, | |||
| }; | |||
| // int32 game_time = 1; | |||
| void clear_game_time(); | |||
| @@ -4540,14 +4537,14 @@ namespace protobuf | |||
| void _internal_set_game_time(int32_t value); | |||
| public: | |||
| // int32 subject_left = 2; | |||
| void clear_subject_left(); | |||
| int32_t subject_left() const; | |||
| void set_subject_left(int32_t value); | |||
| // int32 subject_finished = 2; | |||
| void clear_subject_finished(); | |||
| int32_t subject_finished() const; | |||
| void set_subject_finished(int32_t value); | |||
| private: | |||
| int32_t _internal_subject_left() const; | |||
| void _internal_set_subject_left(int32_t value); | |||
| int32_t _internal_subject_finished() const; | |||
| void _internal_set_subject_finished(int32_t value); | |||
| public: | |||
| // int32 student_graduated = 3; | |||
| @@ -4589,36 +4586,6 @@ namespace protobuf | |||
| int32_t _internal_tricker_score() const; | |||
| void _internal_set_tricker_score(int32_t value); | |||
| public: | |||
| // bool gate_opened = 7; | |||
| void clear_gate_opened(); | |||
| bool gate_opened() const; | |||
| void set_gate_opened(bool value); | |||
| private: | |||
| bool _internal_gate_opened() const; | |||
| void _internal_set_gate_opened(bool value); | |||
| public: | |||
| // bool hidden_gate_refreshed = 8; | |||
| void clear_hidden_gate_refreshed(); | |||
| bool hidden_gate_refreshed() const; | |||
| void set_hidden_gate_refreshed(bool value); | |||
| private: | |||
| bool _internal_hidden_gate_refreshed() const; | |||
| void _internal_set_hidden_gate_refreshed(bool value); | |||
| public: | |||
| // bool hidden_gate_opened = 9; | |||
| void clear_hidden_gate_opened(); | |||
| bool hidden_gate_opened() const; | |||
| void set_hidden_gate_opened(bool value); | |||
| private: | |||
| bool _internal_hidden_gate_opened() const; | |||
| void _internal_set_hidden_gate_opened(bool value); | |||
| public: | |||
| // @@protoc_insertion_point(class_scope:protobuf.MessageOfAll) | |||
| @@ -4632,14 +4599,11 @@ namespace protobuf | |||
| struct Impl_ | |||
| { | |||
| int32_t game_time_; | |||
| int32_t subject_left_; | |||
| int32_t subject_finished_; | |||
| int32_t student_graduated_; | |||
| int32_t student_quited_; | |||
| int32_t student_score_; | |||
| int32_t tricker_score_; | |||
| bool gate_opened_; | |||
| bool hidden_gate_refreshed_; | |||
| bool hidden_gate_opened_; | |||
| mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; | |||
| }; | |||
| union | |||
| @@ -8922,28 +8886,28 @@ namespace protobuf | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.game_time) | |||
| } | |||
| // int32 subject_left = 2; | |||
| inline void MessageOfAll::clear_subject_left() | |||
| // int32 subject_finished = 2; | |||
| inline void MessageOfAll::clear_subject_finished() | |||
| { | |||
| _impl_.subject_left_ = 0; | |||
| _impl_.subject_finished_ = 0; | |||
| } | |||
| inline int32_t MessageOfAll::_internal_subject_left() const | |||
| inline int32_t MessageOfAll::_internal_subject_finished() const | |||
| { | |||
| return _impl_.subject_left_; | |||
| return _impl_.subject_finished_; | |||
| } | |||
| inline int32_t MessageOfAll::subject_left() const | |||
| inline int32_t MessageOfAll::subject_finished() const | |||
| { | |||
| // @@protoc_insertion_point(field_get:protobuf.MessageOfAll.subject_left) | |||
| return _internal_subject_left(); | |||
| // @@protoc_insertion_point(field_get:protobuf.MessageOfAll.subject_finished) | |||
| return _internal_subject_finished(); | |||
| } | |||
| inline void MessageOfAll::_internal_set_subject_left(int32_t value) | |||
| inline void MessageOfAll::_internal_set_subject_finished(int32_t value) | |||
| { | |||
| _impl_.subject_left_ = value; | |||
| _impl_.subject_finished_ = value; | |||
| } | |||
| inline void MessageOfAll::set_subject_left(int32_t value) | |||
| inline void MessageOfAll::set_subject_finished(int32_t value) | |||
| { | |||
| _internal_set_subject_left(value); | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.subject_left) | |||
| _internal_set_subject_finished(value); | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.subject_finished) | |||
| } | |||
| // int32 student_graduated = 3; | |||
| @@ -9042,78 +9006,6 @@ namespace protobuf | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.tricker_score) | |||
| } | |||
| // bool gate_opened = 7; | |||
| inline void MessageOfAll::clear_gate_opened() | |||
| { | |||
| _impl_.gate_opened_ = false; | |||
| } | |||
| inline bool MessageOfAll::_internal_gate_opened() const | |||
| { | |||
| return _impl_.gate_opened_; | |||
| } | |||
| inline bool MessageOfAll::gate_opened() const | |||
| { | |||
| // @@protoc_insertion_point(field_get:protobuf.MessageOfAll.gate_opened) | |||
| return _internal_gate_opened(); | |||
| } | |||
| inline void MessageOfAll::_internal_set_gate_opened(bool value) | |||
| { | |||
| _impl_.gate_opened_ = value; | |||
| } | |||
| inline void MessageOfAll::set_gate_opened(bool value) | |||
| { | |||
| _internal_set_gate_opened(value); | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.gate_opened) | |||
| } | |||
| // bool hidden_gate_refreshed = 8; | |||
| inline void MessageOfAll::clear_hidden_gate_refreshed() | |||
| { | |||
| _impl_.hidden_gate_refreshed_ = false; | |||
| } | |||
| inline bool MessageOfAll::_internal_hidden_gate_refreshed() const | |||
| { | |||
| return _impl_.hidden_gate_refreshed_; | |||
| } | |||
| inline bool MessageOfAll::hidden_gate_refreshed() const | |||
| { | |||
| // @@protoc_insertion_point(field_get:protobuf.MessageOfAll.hidden_gate_refreshed) | |||
| return _internal_hidden_gate_refreshed(); | |||
| } | |||
| inline void MessageOfAll::_internal_set_hidden_gate_refreshed(bool value) | |||
| { | |||
| _impl_.hidden_gate_refreshed_ = value; | |||
| } | |||
| inline void MessageOfAll::set_hidden_gate_refreshed(bool value) | |||
| { | |||
| _internal_set_hidden_gate_refreshed(value); | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.hidden_gate_refreshed) | |||
| } | |||
| // bool hidden_gate_opened = 9; | |||
| inline void MessageOfAll::clear_hidden_gate_opened() | |||
| { | |||
| _impl_.hidden_gate_opened_ = false; | |||
| } | |||
| inline bool MessageOfAll::_internal_hidden_gate_opened() const | |||
| { | |||
| return _impl_.hidden_gate_opened_; | |||
| } | |||
| inline bool MessageOfAll::hidden_gate_opened() const | |||
| { | |||
| // @@protoc_insertion_point(field_get:protobuf.MessageOfAll.hidden_gate_opened) | |||
| return _internal_hidden_gate_opened(); | |||
| } | |||
| inline void MessageOfAll::_internal_set_hidden_gate_opened(bool value) | |||
| { | |||
| _impl_.hidden_gate_opened_ = value; | |||
| } | |||
| inline void MessageOfAll::set_hidden_gate_opened(bool value) | |||
| { | |||
| _internal_set_hidden_gate_opened(value); | |||
| // @@protoc_insertion_point(field_set:protobuf.MessageOfAll.hidden_gate_opened) | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| // MessageToClient | |||
| @@ -39,38 +39,39 @@ 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*\206\001\n\010PropTy" | |||
| "YPE\020\000\022\n\n\006CIRCLE\020\001\022\n\n\006SQUARE\020\002*\243\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"; | |||
| "KEY6\020\007\022\033\n\027RECOVERY_FROM_DIZZINESS\020\010*f\n\017S" | |||
| "tudentBuffType\022\023\n\017NULL_SBUFF_TYPE\020\000\022\016\n\nS" | |||
| "BUFFTYPE1\020\001\022\016\n\nSBUFFTYPE2\020\002\022\016\n\nSBUFFTYPE" | |||
| "3\020\003\022\016\n\nSBUFFTYPE4\020\004*\251\002\n\013PlayerState\022\017\n\013N" | |||
| "ULL_STATUS\020\000\022\010\n\004IDLE\020\001\022\014\n\010LEARNING\020\002\022\014\n\010" | |||
| "ADDICTED\020\003\022\010\n\004QUIT\020\004\022\r\n\tGRADUATED\020\005\022\013\n\007T" | |||
| "REATED\020\006\022\013\n\007RESCUED\020\007\022\013\n\007STUNNED\020\010\022\014\n\010TR" | |||
| "EATING\020\t\022\014\n\010RESCUING\020\n\022\014\n\010SWINGING\020\013\022\r\n\t" | |||
| "ATTACKING\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\023US" | |||
| "ING_SPECIAL_SKILL\020\021\022\022\n\016OPENING_A_GATE\020\022*" | |||
| "u\n\017TrickerBuffType\022\023\n\017NULL_TBUFF_TYPE\020\000\022" | |||
| "\016\n\nTBUFFTYPE1\020\001\022\016\n\nTBUFFTYPE2\020\002\022\016\n\nTBUFF" | |||
| "TYPE3\020\003\022\016\n\nTBUFFTYPE4\020\004\022\r\n\tINVISIBLE\020\005*J" | |||
| "\n\nPlayerType\022\024\n\020NULL_PLAYER_TYPE\020\000\022\022\n\016ST" | |||
| "UDENT_PLAYER\020\001\022\022\n\016TRICKER_PLAYER\020\002*g\n\013St" | |||
| "udentType\022\025\n\021NULL_STUDENT_TYPE\020\000\022\013\n\007ATHL" | |||
| "ETE\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\021NU" | |||
| "LL_TRICKER_TYPE\020\000\022\014\n\010ASSASSIN\020\001\022\020\n\014TRICK" | |||
| "ERTYPE2\020\002\022\020\n\014TRICKERTYPE3\020\003\022\020\n\014TRICKERTY" | |||
| "PE4\020\004*P\n\tGameState\022\023\n\017NULL_GAME_STATE\020\000\022" | |||
| "\016\n\nGAME_START\020\001\022\020\n\014GAME_RUNNING\020\002\022\014\n\010GAM" | |||
| "E_END\020\003b\006proto3"; | |||
| static ::_pbi::once_flag descriptor_table_MessageType_2eproto_once; | |||
| const ::_pbi::DescriptorTable descriptor_table_MessageType_2eproto = { | |||
| false, | |||
| false, | |||
| 1411, | |||
| 1455, | |||
| descriptor_table_protodef_MessageType_2eproto, | |||
| "MessageType.proto", | |||
| &descriptor_table_MessageType_2eproto_once, | |||
| @@ -176,6 +177,7 @@ namespace protobuf | |||
| case 5: | |||
| case 6: | |||
| case 7: | |||
| case 8: | |||
| return true; | |||
| default: | |||
| return false; | |||
| @@ -250,6 +252,7 @@ namespace protobuf | |||
| case 2: | |||
| case 3: | |||
| case 4: | |||
| case 5: | |||
| return true; | |||
| default: | |||
| return false; | |||
| @@ -162,12 +162,13 @@ namespace protobuf | |||
| KEY3 = 5, | |||
| KEY5 = 6, | |||
| KEY6 = 7, | |||
| RECOVERY_FROM_DIZZINESS = 8, | |||
| PropType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(), | |||
| PropType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max() | |||
| }; | |||
| bool PropType_IsValid(int value); | |||
| constexpr PropType PropType_MIN = NULL_PROP_TYPE; | |||
| constexpr PropType PropType_MAX = KEY6; | |||
| constexpr PropType PropType_MAX = RECOVERY_FROM_DIZZINESS; | |||
| constexpr int PropType_ARRAYSIZE = PropType_MAX + 1; | |||
| const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PropType_descriptor(); | |||
| @@ -272,12 +273,13 @@ namespace protobuf | |||
| TBUFFTYPE2 = 2, | |||
| TBUFFTYPE3 = 3, | |||
| TBUFFTYPE4 = 4, | |||
| INVISIBLE = 5, | |||
| TrickerBuffType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(), | |||
| TrickerBuffType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max() | |||
| }; | |||
| bool TrickerBuffType_IsValid(int value); | |||
| constexpr TrickerBuffType TrickerBuffType_MIN = NULL_TBUFF_TYPE; | |||
| constexpr TrickerBuffType TrickerBuffType_MAX = TBUFFTYPE4; | |||
| constexpr TrickerBuffType TrickerBuffType_MAX = INVISIBLE; | |||
| constexpr int TrickerBuffType_ARRAYSIZE = TrickerBuffType_MAX + 1; | |||
| const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TrickerBuffType_descriptor(); | |||
| @@ -295,61 +295,80 @@ class StudentDebugAPI(IStudentAPI, IGameTimer): | |||
| def PrintStudent(self) -> None: | |||
| for student in self.__logic.GetStudents(): | |||
| self.__logger.info("******Student Info******") | |||
| self.__logger.info("\n******Student Info******") | |||
| self.__logger.info( | |||
| f"playerID={student.playerID}, GUID={student.guid}, x={student.x}, y={student.y}") | |||
| self.__logger.info( | |||
| f"speed={student.speed}, view range={student.viewRange}, skill time={student.timeUntilSkillAvailable},place={student.place.name}") | |||
| studentBuff = "buff=" | |||
| for buff in student.buff: | |||
| studentBuff += buff.name + ", " | |||
| self.__logger.info(studentBuff) | |||
| studentProp = "prop=" | |||
| f"speed={student.speed}, view range={student.viewRange}, place={student.place.name}, radius={student.radius}") | |||
| self.__logger.info( | |||
| f"score={student.score}, facing direction={student.facingDirection}, skill time={student.timeUntilSkillAvailable}") | |||
| studentProp = "" | |||
| for prop in student.prop: | |||
| studentProp += prop.name + ", " | |||
| self.__logger.info(studentProp) | |||
| self.__logger.info("**********************") | |||
| self.__logger.info( | |||
| f"state={student.playerState.name}, bullet={student.bulletType.name}, prop={studentProp}") | |||
| self.__logger.info( | |||
| f"type={student.studentType.name}, determination={student.determination}, addiction={student.addiction}, danger alert={student.dangerAlert}") | |||
| self.__logger.info( | |||
| f"learning speed={student.learningSpeed}, treat speed={student.treatSpeed}, treat progress={student.treatProgress}, rescue progress={student.rescueProgress}") | |||
| studentBuff = "" | |||
| for buff in student.buff: | |||
| studentBuff += buff.name + ", " | |||
| self.__logger.info(f"buff={studentBuff}") | |||
| self.__logger.info("************************\n") | |||
| def PrintTricker(self) -> None: | |||
| for tricker in self.__logic.GetTrickers(): | |||
| self.__logger.info("******Tricker Info******") | |||
| self.__logger.info("\n******Tricker Info******") | |||
| self.__logger.info( | |||
| f"playerID={tricker.playerID}, GUID={tricker.guid}, x={tricker.x}, y={tricker.y}") | |||
| self.__logger.info( | |||
| f"speed={tricker.speed}, view range={tricker.viewRange}, skill time={tricker.timeUntilSkillAvailable}, place={tricker.place.name}") | |||
| self.__logger.info("buff=") | |||
| f"speed={tricker.speed}, view range={tricker.viewRange}, place={tricker.place.name}, radius={tricker.radius}") | |||
| self.__logger.info( | |||
| f"score={tricker.score}, facing direction={tricker.facingDirection}, skill time={tricker.timeUntilSkillAvailable}") | |||
| trickerProp = "" | |||
| for prop in tricker.prop: | |||
| trickerProp += prop.name + ", " | |||
| self.__logger.info( | |||
| f"state={tricker.playerState.name}, bullet={tricker.bulletType.name}, prop={trickerProp}") | |||
| self.__logger.info( | |||
| f"type={tricker.trickerType.name}, trick desire={tricker.trickDesire}, class volume={tricker.classVolume}") | |||
| trickerBuff = "" | |||
| for buff in tricker.buff: | |||
| trickerBuff += buff.name + ", " | |||
| self.__logger.info(trickerBuff) | |||
| self.__logger.info("************************") | |||
| self.__logger.info(f"buff={trickerBuff}") | |||
| self.__logger.info("************************\n") | |||
| def PrintProp(self) -> None: | |||
| for prop in self.__logic.GetProps(): | |||
| self.__logger.info("******Prop Info******") | |||
| self.__logger.info( | |||
| f"GUID={prop.guid}, x={prop.x}, y={prop.y}, place={prop.place.name}, ") | |||
| f"GUID={prop.guid}, x={prop.x}, y={prop.y}, place={prop.place.name}, facing direction={prop.facingDirection}") | |||
| self.__logger.info("*********************") | |||
| def PrintSelfInfo(self) -> None: | |||
| mySelf = self.__logic.GetSelfInfo() | |||
| self.__logger.info("******Self Info******") | |||
| student = cast(THUAI6.Student, self.__logic.GetSelfInfo()) | |||
| self.__logger.info("\n******Student Info******") | |||
| self.__logger.info( | |||
| f"playerID={mySelf.playerID}, GUID={mySelf.guid}, x={mySelf.x}, y={mySelf.y}") | |||
| f"playerID={student.playerID}, GUID={student.guid}, x={student.x}, y={student.y}") | |||
| self.__logger.info( | |||
| f"speed={mySelf.speed}, view range={mySelf.viewRange}, skill time={mySelf.timeUntilSkillAvailable}, place={mySelf.place.name}") | |||
| if isinstance(mySelf, THUAI6.Student): | |||
| self.__logger.info( | |||
| f"state={mySelf.playerState.name}, determination={mySelf.determination},") | |||
| mySelfBuff = "buff=" | |||
| for buff in mySelf.buff: | |||
| mySelfBuff += buff.name + ", " | |||
| self.__logger.info(mySelfBuff) | |||
| studentProp = "prop=" | |||
| for prop in mySelf.prop: | |||
| f"speed={student.speed}, view range={student.viewRange}, place={student.place.name}, radius={student.radius}") | |||
| self.__logger.info( | |||
| f"score={student.score}, facing direction={student.facingDirection}, skill time={student.timeUntilSkillAvailable}") | |||
| studentProp = "" | |||
| for prop in student.prop: | |||
| studentProp += prop.name + ", " | |||
| self.__logger.info(studentProp) | |||
| self.__logger.info("*********************") | |||
| self.__logger.info( | |||
| f"state={student.playerState.name}, bullet={student.bulletType.name}, prop={studentProp}") | |||
| self.__logger.info( | |||
| f"type={student.studentType.name}, determination={student.determination}, addiction={student.addiction}, danger alert={student.dangerAlert}") | |||
| self.__logger.info( | |||
| f"learning speed={student.learningSpeed}, treat speed={student.treatSpeed}, treat progress={student.treatProgress}, rescue progress={student.rescueProgress}") | |||
| studentBuff = "" | |||
| for buff in student.buff: | |||
| studentBuff += buff.name + ", " | |||
| self.__logger.info(f"buff={studentBuff}") | |||
| self.__logger.info("************************\n") | |||
| # 人类阵营的特殊函数 | |||
| @@ -410,8 +429,8 @@ class StudentDebugAPI(IStudentAPI, IGameTimer): | |||
| # Timer用 | |||
| def __GetTime(self) -> int: | |||
| return int((datetime.datetime.now() - self.__startPoint).total_seconds() * 1000) | |||
| def __GetTime(self) -> float: | |||
| return (datetime.datetime.now() - self.__startPoint) / datetime.timedelta(milliseconds=1) | |||
| def StartTimer(self) -> None: | |||
| self.__startPoint = datetime.datetime.now() | |||
| @@ -712,57 +731,78 @@ class TrickerDebugAPI(ITrickerAPI, IGameTimer): | |||
| def PrintStudent(self) -> None: | |||
| for student in self.__logic.GetStudents(): | |||
| self.__logger.info("******Student Info******") | |||
| self.__logger.info("\n******Student Info******") | |||
| self.__logger.info( | |||
| f"playerID={student.playerID}, GUID={student.guid}, x={student.x}, y={student.y}") | |||
| self.__logger.info( | |||
| f"speed={student.speed}, view range={student.viewRange}, skill time={student.timeUntilSkillAvailable}, place={student.place.name}") | |||
| f"speed={student.speed}, view range={student.viewRange}, place={student.place.name}, radius={student.radius}") | |||
| self.__logger.info( | |||
| f"score={student.score}, facing direction={student.facingDirection}, skill time={student.timeUntilSkillAvailable}") | |||
| studentProp = "" | |||
| for prop in student.prop: | |||
| studentProp += prop.name + ", " | |||
| self.__logger.info( | |||
| f"state={student.playerState.name}, bullet={student.bulletType.name}, prop={studentProp}") | |||
| self.__logger.info( | |||
| f"type={student.studentType.name}, determination={student.determination}, addiction={student.addiction}, danger alert={student.dangerAlert}") | |||
| self.__logger.info( | |||
| f"state={student.playerState.name}, determination={student.determination}") | |||
| self.__logger.info("buff=") | |||
| f"learning speed={student.learningSpeed}, treat speed={student.treatSpeed}, treat progress={student.treatProgress}, rescue progress={student.rescueProgress}") | |||
| studentBuff = "" | |||
| for buff in student.buff: | |||
| studentBuff += buff.name + ", " | |||
| self.__logger.info(studentBuff) | |||
| self.__logger.info("**********************") | |||
| self.__logger.info(f"buff={studentBuff}") | |||
| self.__logger.info("************************\n") | |||
| def PrintTricker(self) -> None: | |||
| for tricker in self.__logic.GetTrickers(): | |||
| self.__logger.info("******Tricker Info******") | |||
| self.__logger.info("\n******Tricker Info******") | |||
| self.__logger.info( | |||
| f"playerID={tricker.playerID}, GUID={tricker.guid}, x={tricker.x}, y={tricker.y}") | |||
| self.__logger.info( | |||
| f"speed={tricker.speed}, view range={tricker.viewRange}, skill time={tricker.timeUntilSkillAvailable}, place={tricker.place.name}") | |||
| self.__logger.info("buff=") | |||
| f"speed={tricker.speed}, view range={tricker.viewRange}, place={tricker.place.name}, radius={tricker.radius}") | |||
| self.__logger.info( | |||
| f"score={tricker.score}, facing direction={tricker.facingDirection}, skill time={tricker.timeUntilSkillAvailable}") | |||
| trickerProp = "" | |||
| for prop in tricker.prop: | |||
| trickerProp += prop.name + ", " | |||
| self.__logger.info( | |||
| f"state={tricker.playerState.name}, bullet={tricker.bulletType.name}, prop={trickerProp}") | |||
| self.__logger.info( | |||
| f"type={tricker.trickerType.name}, trick desire={tricker.trickDesire}, class volume={tricker.classVolume}") | |||
| trickerBuff = "" | |||
| for buff in tricker.buff: | |||
| trickerBuff += buff.name + ", " | |||
| self.__logger.info(trickerBuff) | |||
| self.__logger.info("************************") | |||
| self.__logger.info(f"buff={trickerBuff}") | |||
| self.__logger.info("************************\n") | |||
| def PrintProp(self) -> None: | |||
| for prop in self.__logic.GetProps(): | |||
| self.__logger.info("******Prop Info******") | |||
| self.__logger.info( | |||
| f"GUID={prop.guid}, x={prop.x}, y={prop.y}, place={prop.place.name}") | |||
| f"GUID={prop.guid}, x={prop.x}, y={prop.y}, place={prop.place.name}, facing direction={prop.facingDirection}") | |||
| self.__logger.info("*********************") | |||
| def PrintSelfInfo(self) -> None: | |||
| mySelf = self.__logic.GetSelfInfo() | |||
| self.__logger.info("******Self Info******") | |||
| tricker = cast(THUAI6.Tricker, self.__logic.GetSelfInfo()) | |||
| self.__logger.info("\n******Tricker Info******") | |||
| self.__logger.info( | |||
| f"playerID={mySelf.playerID}, GUID={mySelf.guid}, x={mySelf.x}, y={mySelf.y}") | |||
| f"playerID={tricker.playerID}, GUID={tricker.guid}, x={tricker.x}, y={tricker.y}") | |||
| self.__logger.info( | |||
| f"speed={mySelf.speed}, view range={mySelf.viewRange}, skill time={mySelf.timeUntilSkillAvailable}, place={mySelf.place.name}") | |||
| if isinstance(mySelf, THUAI6.Student): | |||
| self.__logger.info( | |||
| f"state={mySelf.playerState.name}, determination={mySelf.determination}") | |||
| self.__logger.info("buff=") | |||
| mySelfBuff = "" | |||
| for buff in mySelf.buff: | |||
| mySelfBuff += buff.name + ", " | |||
| self.__logger.info(mySelfBuff) | |||
| self.__logger.info("*********************") | |||
| f"speed={tricker.speed}, view range={tricker.viewRange}, place={tricker.place.name}, radius={tricker.radius}") | |||
| self.__logger.info( | |||
| f"score={tricker.score}, facing direction={tricker.facingDirection}, skill time={tricker.timeUntilSkillAvailable}") | |||
| trickerProp = "" | |||
| for prop in tricker.prop: | |||
| trickerProp += prop.name + ", " | |||
| self.__logger.info( | |||
| f"state={tricker.playerState.name}, bullet={tricker.bulletType.name}, prop={trickerProp}") | |||
| self.__logger.info( | |||
| f"type={tricker.trickerType.name}, trick desire={tricker.trickDesire}, class volume={tricker.classVolume}") | |||
| trickerBuff = "" | |||
| for buff in tricker.buff: | |||
| trickerBuff += buff.name + ", " | |||
| self.__logger.info(f"buff={trickerBuff}") | |||
| self.__logger.info("************************\n") | |||
| # 屠夫阵营的特殊函数 | |||
| @@ -772,7 +812,7 @@ class TrickerDebugAPI(ITrickerAPI, IGameTimer): | |||
| # Timer用 | |||
| def __GetTime(self) -> float: | |||
| return (datetime.datetime.now() - self.__startPoint).total_seconds() * 1000 | |||
| return (datetime.datetime.now() - self.__startPoint) / datetime.timedelta(milliseconds=1) | |||
| def StartTimer(self) -> None: | |||
| self.__startPoint = datetime.datetime.now() | |||
| @@ -45,35 +45,47 @@ class PropType(Enum): | |||
| AddLifeOrAp = 5 | |||
| AddHpOrAp = 6 | |||
| ShieldOrSpear = 7 | |||
| RecoveryFromDizziness = 8 | |||
| class BulletType(Enum): | |||
| NullBulletType = 0 | |||
| FlyingKnife = 1 | |||
| CommonAttackOfTricker = 2 | |||
| FastBullet = 3 | |||
| OrdinaryBullet = 4 | |||
| BombBomb = 3 | |||
| JumpyDumpty = 4 | |||
| AtomBomb = 5 | |||
| class StudentType(Enum): | |||
| NullStudentType = 0 | |||
| Athlete = 1 | |||
| Teacher = 2 | |||
| StraightAStudent = 3 | |||
| class TrickerType(Enum): | |||
| NullTrickerType = 0 | |||
| Assassin = 1 | |||
| Klee = 2 | |||
| ANoisyPerson = 3 | |||
| class StudentBuffType(Enum): | |||
| NullStudentBuffType = 0 | |||
| StudentBuffType1 = 1 | |||
| AddSpeed = 1 | |||
| AddLife = 2 | |||
| Shield = 3 | |||
| Invisible = 4 | |||
| class TrickerBuffType(Enum): | |||
| NullTrickerBuffType = 0 | |||
| TrickerBuffType1 = 1 | |||
| AddSpeed = 1 | |||
| Spear = 2 | |||
| AddAp = 3 | |||
| Clairaudience = 4 | |||
| Invisible = 5 | |||
| class PlayerState(Enum): | |||
| @@ -198,7 +210,7 @@ class GameMap: | |||
| class GameInfo: | |||
| gameTime: int | |||
| subjectLeft: int | |||
| subjectFinished: int | |||
| studentGraduated: int | |||
| studentQuited: int | |||
| studentScore: int | |||
| @@ -91,7 +91,8 @@ class Proto2THUAI6(NoInstance): | |||
| MessageType.ADD_SPEED: THUAI6.PropType.AddSpeed, | |||
| MessageType.ADD_HP_OR_AP: THUAI6.PropType.AddHpOrAp, | |||
| MessageType.ADD_LIFE_OR_AP: THUAI6.PropType.AddLifeOrAp, | |||
| MessageType.SHIELD_OR_SPEAR: THUAI6.PropType.ShieldOrSpear, } | |||
| MessageType.SHIELD_OR_SPEAR: THUAI6.PropType.ShieldOrSpear, | |||
| MessageType.RECOVERY_FROM_DIZZINESS: THUAI6.PropType.RecoveryFromDizziness, } | |||
| playerTypeDict: Final[dict] = { | |||
| MessageType.NULL_PLAYER_TYPE: THUAI6.PlayerType.NullPlayerType, | |||
| @@ -100,19 +101,30 @@ class Proto2THUAI6(NoInstance): | |||
| studentTypeDict: Final[dict] = { | |||
| MessageType.NULL_STUDENT_TYPE: THUAI6.StudentType.NullStudentType, | |||
| MessageType.ATHLETE: THUAI6.StudentType.Athlete, } | |||
| MessageType.ATHLETE: THUAI6.StudentType.Athlete, | |||
| MessageType.STUDENTTYPE2: THUAI6.StudentType.Teacher, | |||
| MessageType.STUDENTTYPE3: THUAI6.StudentType.StraightAStudent, } | |||
| trickerTypeDict: Final[dict] = { | |||
| MessageType.NULL_TRICKER_TYPE: THUAI6.TrickerType.NullTrickerType, | |||
| MessageType.ASSASSIN: THUAI6.TrickerType.Assassin, } | |||
| MessageType.ASSASSIN: THUAI6.TrickerType.Assassin, | |||
| MessageType.TRICKERTYPE2: THUAI6.TrickerType.Klee, | |||
| MessageType.TRICKERTYPE3: THUAI6.TrickerType.ANoisyPerson, } | |||
| studentBuffTypeDict: Final[dict] = { | |||
| MessageType.NULL_SBUFF_TYPE: THUAI6.StudentBuffType.NullStudentBuffType, | |||
| MessageType.SBUFFTYPE1: THUAI6.StudentBuffType.StudentBuffType1, } | |||
| MessageType.SBUFFTYPE1: THUAI6.StudentBuffType.AddSpeed, | |||
| MessageType.SBUFFTYPE2: THUAI6.StudentBuffType.AddLife, | |||
| MessageType.SBUFFTYPE3: THUAI6.StudentBuffType.Shield, | |||
| MessageType.SBUFFTYPE4: THUAI6.StudentBuffType.Invisible, } | |||
| trickerBuffTypeDict: Final[dict] = { | |||
| MessageType.NULL_TBUFF_TYPE: THUAI6.TrickerBuffType.NullTrickerBuffType, | |||
| MessageType.TBUFFTYPE1: THUAI6.TrickerBuffType.TrickerBuffType1, } | |||
| MessageType.TBUFFTYPE1: THUAI6.TrickerBuffType.AddSpeed, | |||
| MessageType.TBUFFTYPE2: THUAI6.TrickerBuffType.Spear, | |||
| MessageType.TBUFFTYPE3: THUAI6.TrickerBuffType.AddAp, | |||
| MessageType.TBUFFTYPE4: THUAI6.TrickerBuffType.Clairaudience, | |||
| MessageType.INVISIBLE: THUAI6.TrickerBuffType.Invisible, } | |||
| playerStateDict: Final[dict] = { | |||
| MessageType.NULL_STATUS: THUAI6.PlayerState.NullState, | |||
| @@ -144,9 +156,9 @@ class Proto2THUAI6(NoInstance): | |||
| bulletTypeDict: Final[dict] = { | |||
| MessageType.NULL_BULLET_TYPE: THUAI6.BulletType.NullBulletType, | |||
| MessageType.FLYING_KNIFE: THUAI6.BulletType.FlyingKnife, | |||
| MessageType.FAST_BULLET: THUAI6.BulletType.FastBullet, | |||
| MessageType.FAST_BULLET: THUAI6.BulletType.BombBomb, | |||
| MessageType.COMMON_ATTACK_OF_TRICKER: THUAI6.BulletType.CommonAttackOfTricker, | |||
| MessageType.ORDINARY_BULLET: THUAI6.BulletType.OrdinaryBullet, | |||
| MessageType.ORDINARY_BULLET: THUAI6.BulletType.JumpyDumpty, | |||
| MessageType.ATOM_BOMB: THUAI6.BulletType.AtomBomb, } | |||
| # 用于将Proto的对象转为THUAI6的对象 | |||
| @@ -229,7 +241,7 @@ class Proto2THUAI6(NoInstance): | |||
| def Protobuf2THUAI6GameInfo(allMsg: Message2Clients.MessageOfAll): | |||
| gameInfo = THUAI6.GameInfo() | |||
| gameInfo.gameTime = allMsg.game_time | |||
| gameInfo.subjectLeft = allMsg.subject_left | |||
| gameInfo.subjectFinished = allMsg.subject_finished | |||
| gameInfo.studentGraduated = allMsg.student_graduated | |||
| gameInfo.studentQuited = allMsg.student_quited | |||
| gameInfo.studentScore = allMsg.student_score | |||
| @@ -290,11 +302,15 @@ class THUAI62Proto(NoInstance): | |||
| studentTypeDict: Final[dict] = { | |||
| THUAI6.StudentType.NullStudentType: MessageType.NULL_STUDENT_TYPE, | |||
| THUAI6.StudentType.Athlete: MessageType.ATHLETE, } | |||
| THUAI6.StudentType.Athlete: MessageType.ATHLETE, | |||
| THUAI6.StudentType.Teacher: MessageType.STUDENTTYPE2, | |||
| THUAI6.StudentType.StraightAStudent: MessageType.STUDENTTYPE3, } | |||
| trickerTypeDict: Final[dict] = { | |||
| THUAI6.TrickerType.NullTrickerType: MessageType.NULL_TRICKER_TYPE, | |||
| THUAI6.TrickerType.Assassin: MessageType.ASSASSIN, } | |||
| THUAI6.TrickerType.Assassin: MessageType.ASSASSIN, | |||
| THUAI6.TrickerType.Klee: MessageType.TRICKERTYPE2, | |||
| THUAI6.TrickerType.ANoisyPerson: MessageType.TRICKERTYPE3, } | |||
| propTypeDict: Final[dict] = { | |||
| THUAI6.PropType.NullPropType: MessageType.NULL_PROP_TYPE, | |||