统一形式

This commit is contained in:
星外之神 2022-06-04 14:07:33 +08:00
parent 1df7d937f4
commit dd7c81f45f
4 changed files with 15 additions and 12 deletions

View File

@ -1770,7 +1770,7 @@ class FumeShroom(Plant):
class IceFrozenPlot(Plant): class IceFrozenPlot(Plant):
def __init__(self, x, y): def __init__(self, x, y):
Plant.__init__(self, x, y, c.ICE_FROZEN_PLOT, c.INF, None) Plant.__init__(self, x, y, c.ICEFROZENPLOT, c.INF, None)
self.timer = 0 self.timer = 0
def idling(self): def idling(self):

View File

@ -1116,10 +1116,10 @@ class Zomboni(Zombie):
# 造冰 # 造冰
mapX, mapY = self.map.getMapIndex(self.rect.right - 40, self.rect.bottom) mapX, mapY = self.map.getMapIndex(self.rect.right - 40, self.rect.bottom)
if 0 <= mapX < c.GRID_X_LEN: if 0 <= mapX < c.GRID_X_LEN:
if c.ICE_FROZEN_PLOT not in self.map.map[mapY][mapX]: if c.ICEFROZENPLOT not in self.map.map[mapY][mapX]:
x, y = self.map.getMapGridPos(mapX, mapY) x, y = self.map.getMapGridPos(mapX, mapY)
self.plant_group.add(self.IceFrozenPlot(x, y)) self.plant_group.add(self.IceFrozenPlot(x, y))
self.map.map[mapY][mapX][c.MAP_PLANT].add(c.ICE_FROZEN_PLOT) self.map.map[mapY][mapX][c.MAP_PLANT].add(c.ICEFROZENPLOT)
self.speed = max(0.6, 1.5 - (c.GRID_X_LEN + 1 - mapX)*0.225) self.speed = max(0.6, 1.5 - (c.GRID_X_LEN + 1 - mapX)*0.225)

View File

@ -193,7 +193,7 @@ PANEL_Y_INTERNAL = 69
PANEL_X_INTERNAL = 53 PANEL_X_INTERNAL = 53
BAR_CARD_X_INTERNAL = 51 BAR_CARD_X_INTERNAL = 51
# 所选植物信息索引 # 植物卡片信息索引
PLANT_NAME_INDEX = 0 PLANT_NAME_INDEX = 0
CARD_INDEX = 1 CARD_INDEX = 1
SUN_INDEX = 2 SUN_INDEX = 2
@ -237,7 +237,7 @@ SEASHROOM = 'SeaShroom'
TALLNUT = 'TallNut' TALLNUT = 'TallNut'
TANGLEKLEP = 'TangleKlep' TANGLEKLEP = 'TangleKlep'
DOOMSHROOM = 'DoomShroom' DOOMSHROOM = 'DoomShroom'
ICE_FROZEN_PLOT = 'IceFrozenPlot' ICEFROZENPLOT = 'IceFrozenPlot'
HOLE = 'Hole' HOLE = 'Hole'
GRAVE = 'Grave' GRAVE = 'Grave'
GRAVEBUSTER = 'GraveBuster' GRAVEBUSTER = 'GraveBuster'
@ -246,9 +246,9 @@ GARLIC = 'Garlic'
# 植物集体属性集合 # 植物集体属性集合
# 在生效时不用与僵尸进行碰撞检测的对象 # 在生效时不用与僵尸进行碰撞检测的对象(即生效时不可发生被僵尸啃食的事件)
SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = { SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = {
# 注意爆炸坚果的触发也是啃食类碰撞,因此这里不能省略 # 注意爆炸坚果的触发也是啃食类碰撞,因此只能算作爆炸后不检测
SQUASH, ICESHROOM, SQUASH, ICESHROOM,
REDWALLNUTBOWLING, CHERRYBOMB, REDWALLNUTBOWLING, CHERRYBOMB,
JALAPENO, DOOMSHROOM, JALAPENO, DOOMSHROOM,
@ -257,12 +257,15 @@ SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = {
# 非植物对象 # 非植物对象
NON_PLANT_OBJECTS = { NON_PLANT_OBJECTS = {
HOLE, ICE_FROZEN_PLOT, HOLE, ICEFROZENPLOT,
GRAVE, GRAVE,
} }
# 所有可能不用与僵尸进行碰撞检测的对象 # 所有可能不用与僵尸进行碰撞检测的对象
CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 这里运用了集合运算 CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 这里运用了集合运算
# 注意这个外围的小括号是用来换行的
# 各个部分末尾千万不能加逗号!!!
# 生效时不检测的植物 # 生效时不检测的植物
SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING | SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING |
# 非植物对象 # 非植物对象
@ -274,7 +277,7 @@ CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 这里运用了集合运算
# 死亡时不触发音效的对象 # 死亡时不触发音效的对象
PLANT_DIE_SOUND_EXCEPTIONS = { PLANT_DIE_SOUND_EXCEPTIONS = {
WALLNUTBOWLING, TANGLEKLEP, WALLNUTBOWLING, TANGLEKLEP,
ICE_FROZEN_PLOT, HOLE, ICEFROZENPLOT, HOLE,
GRAVE, JALAPENO, GRAVE, JALAPENO,
REDWALLNUTBOWLING, CHERRYBOMB, REDWALLNUTBOWLING, CHERRYBOMB,
} }

View File

@ -189,7 +189,7 @@ class Level(tool.State):
unoccupied = [] unoccupied = []
occupied = [] occupied = []
# 毁灭菇坑与冰道应当特殊化 # 毁灭菇坑与冰道应当特殊化
exceptionObjects = {c.HOLE, c.ICE_FROZEN_PLOT} exceptionObjects = {c.HOLE, c.ICEFROZENPLOT}
# 遍历能生成墓碑的区域 # 遍历能生成墓碑的区域
for mapY in range(0, 4): for mapY in range(0, 4):
for mapX in range(4, 8): for mapX in range(4, 8):
@ -1145,7 +1145,7 @@ class Level(tool.State):
else: else:
_move = random.randint(0, 1)*2 - 1 _move = random.randint(0, 1)*2 - 1
if self.map.map[i][0][c.MAP_PLOT_TYPE] != self.map.map[i + _move][0][c.MAP_PLOT_TYPE]: if self.map.map[i][0][c.MAP_PLOT_TYPE] != self.map.map[i + _move][0][c.MAP_PLOT_TYPE]:
_move = -_move _move = -(_move)
zombie.targetMapY = i + _move zombie.targetMapY = i + _move
zombie.targetYChange = _move * self.map.gridHeightSize zombie.targetYChange = _move * self.map.gridHeightSize
else: else:
@ -1351,7 +1351,7 @@ class Level(tool.State):
targetPlant.explode_x_range, effect=c.BULLET_EFFECT_UNICE) targetPlant.explode_x_range, effect=c.BULLET_EFFECT_UNICE)
# 消除冰道 # 消除冰道
for item in self.plant_groups[i]: for item in self.plant_groups[i]:
if item.name == c.ICE_FROZEN_PLOT: if item.name == c.ICEFROZENPLOT:
item.health = 0 item.health = 0
elif targetPlant.name == c.ICESHROOM: elif targetPlant.name == c.ICESHROOM:
self.freezeZombies(targetPlant) self.freezeZombies(targetPlant)