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.6 kB

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