Browse Source

feat(CAPI): update debug logger

tags/0.1.0
DragonAura 2 years ago
parent
commit
dff7e0b01a
10 changed files with 379 additions and 470 deletions
  1. +42
    -17
      CAPI/cpp/API/include/structures.h
  2. +21
    -19
      CAPI/cpp/API/include/utils.hpp
  3. +89
    -86
      CAPI/cpp/API/src/DebugAPI.cpp
  4. +33
    -119
      CAPI/cpp/proto/Message2Clients.pb.cc
  5. +21
    -129
      CAPI/cpp/proto/Message2Clients.pb.h
  6. +28
    -25
      CAPI/cpp/proto/MessageType.pb.cc
  7. +4
    -2
      CAPI/cpp/proto/MessageType.pb.h
  8. +98
    -58
      CAPI/python/PyAPI/DebugAPI.py
  9. +17
    -5
      CAPI/python/PyAPI/structures.py
  10. +26
    -10
      CAPI/python/PyAPI/utils.py

+ 42
- 17
CAPI/cpp/API/include/structures.h View File

@@ -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"},

};



+ 21
- 19
CAPI/cpp/API/include/utils.hpp View File

@@ -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},
};



+ 89
- 86
CAPI/cpp/API/src/DebugAPI.cpp View File

@@ -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)


+ 33
- 119
CAPI/cpp/proto/Message2Clients.pb.cc View File

@@ -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_)
);


+ 21
- 129
CAPI/cpp/proto/Message2Clients.pb.h View File

@@ -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


+ 28
- 25
CAPI/cpp/proto/MessageType.pb.cc View File

@@ -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;


+ 4
- 2
CAPI/cpp/proto/MessageType.pb.h View File

@@ -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();


+ 98
- 58
CAPI/python/PyAPI/DebugAPI.py View File

@@ -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()


+ 17
- 5
CAPI/python/PyAPI/structures.py View File

@@ -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


+ 26
- 10
CAPI/python/PyAPI/utils.py View File

@@ -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,


Loading…
Cancel
Save