You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

structures.py 3.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. from enum import Enum
  2. from typing import List, Dict
  3. import sys
  4. if sys.version_info < (3, 9):
  5. from typing import Tuple
  6. else:
  7. Tuple = tuple
  8. class GameState(Enum):
  9. NullGameState = 0
  10. GameStart = 1
  11. GameRunning = 2
  12. GameEnd = 3
  13. class PlaceType(Enum):
  14. NullPlaceType = 0
  15. Land = 1
  16. Wall = 2
  17. Grass = 3
  18. ClassRoom = 4
  19. Gate = 5
  20. HiddenGate = 6
  21. Window = 7
  22. Door3 = 8
  23. Door5 = 9
  24. Door6 = 10
  25. Chest = 11
  26. class ShapeType(Enum):
  27. NullShapeType = 0
  28. Square = 1
  29. Circle = 2
  30. class PlayerType(Enum):
  31. NullPlayerType = 0
  32. StudentPlayer = 1
  33. TrickerPlayer = 2
  34. class PropType(Enum):
  35. NullPropType = 0
  36. Key3 = 1
  37. Key5 = 2
  38. Key6 = 3
  39. AddSpeed = 4
  40. AddLifeOrClairaudience = 5
  41. AddHpOrAp = 6
  42. ShieldOrSpear = 7
  43. RecoveryFromDizziness = 8
  44. class BulletType(Enum):
  45. NullBulletType = 0
  46. FlyingKnife = 1
  47. CommonAttackOfTricker = 2
  48. BombBomb = 3
  49. JumpyDumpty = 4
  50. AtomBomb = 5
  51. class StudentType(Enum):
  52. NullStudentType = 0
  53. Athlete = 1
  54. Teacher = 2
  55. StraightAStudent = 3
  56. Robot = 4
  57. TechOtaku = 5
  58. class TrickerType(Enum):
  59. NullTrickerType = 0
  60. Assassin = 1
  61. Klee = 2
  62. ANoisyPerson = 3
  63. Idol = 4
  64. class StudentBuffType(Enum):
  65. NullStudentBuffType = 0
  66. AddSpeed = 1
  67. AddLife = 2
  68. Shield = 3
  69. Invisible = 4
  70. class TrickerBuffType(Enum):
  71. NullTrickerBuffType = 0
  72. AddSpeed = 1
  73. Spear = 2
  74. AddAp = 3
  75. Clairaudience = 4
  76. Invisible = 5
  77. class PlayerState(Enum):
  78. NullState = 0
  79. Idle = 1
  80. Learning = 2
  81. Addicted = 3
  82. Quit = 4
  83. Graduated = 5
  84. Encouraged = 6
  85. Roused = 7
  86. Stunned = 8
  87. Encouraging = 9
  88. Rousing = 10
  89. Swinging = 11
  90. Attacking = 12
  91. Locking = 13
  92. Rummaging = 14
  93. Climbing = 15
  94. OpeningAChest = 16
  95. UsingSpecialSkill = 17
  96. OpeningAGate = 18
  97. class MessageOfObj(Enum):
  98. NullMessageOfObj = 0
  99. StudentMessage = 1
  100. TrickerMessage = 2
  101. PropMessage = 3
  102. BulletMessage = 4
  103. BombedBulletMessage = 5
  104. ClassroomMessage = 6
  105. GateMessage = 7
  106. ChestMessage = 8
  107. DoorMessage = 9
  108. MapMessage = 10
  109. NewsMessage = 11
  110. HiddenGateMessage = 12
  111. class HiddenGateState(Enum):
  112. Null = 0
  113. Refreshed = 1
  114. Opened = 2
  115. class Player:
  116. x: int
  117. y: int
  118. speed: int
  119. viewRange: int
  120. playerID: int
  121. guid: int
  122. radius: int
  123. score: int
  124. facingDirection: float
  125. timeUntilSkillAvailable: List[float] = []
  126. playerType: PlayerType
  127. prop: List[PropType] = []
  128. place: PlaceType
  129. bulletType: BulletType
  130. playerState: PlayerState
  131. class Student(Player):
  132. studentType: StudentType
  133. determination: int
  134. addiction: int
  135. encourageProgress: int
  136. rouseProgress: int
  137. learningSpeed: int
  138. encourageSpeed: int
  139. dangerAlert: float
  140. buff: List[StudentBuffType] = []
  141. class Tricker(Player):
  142. trickerType: TrickerType
  143. trickDesire: float
  144. classVolume: float
  145. buff: List[TrickerBuffType] = []
  146. class Prop:
  147. x: int
  148. y: int
  149. guid: int
  150. type: PropType
  151. place: PlaceType
  152. facingDirection: float
  153. class Bullet:
  154. bulletType: BulletType
  155. x: int
  156. y: int
  157. facingDirection: float
  158. guid: int
  159. team: PlayerType
  160. place: PlaceType
  161. bombRange: float
  162. speed: int
  163. class BombedBullet:
  164. bulletType: BulletType
  165. x: int
  166. y: int
  167. facingDirection: float
  168. mappingID: int
  169. bombRange: float
  170. class GameMap:
  171. classroomState: Dict[Tuple[int, int], int] = {}
  172. gateState: Dict[Tuple[int, int], int] = {}
  173. chestState: Dict[Tuple[int, int], int] = {}
  174. doorState: Dict[Tuple[int, int], bool] = {}
  175. doorProgress: Dict[Tuple[int, int], int] = {}
  176. hiddenGateState: Dict[Tuple[int, int], HiddenGateState] = {}
  177. class GameInfo:
  178. gameTime: int
  179. subjectFinished: int
  180. studentGraduated: int
  181. studentQuited: int
  182. studentScore: int
  183. trickerScore: int