From dd7c81f45f652a2df4780ccce126910e09641ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Sat, 4 Jun 2022 14:07:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=BD=A2=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/component/plant.py | 2 +- source/component/zombie.py | 4 ++-- source/constants.py | 15 +++++++++------ source/state/level.py | 6 +++--- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/source/component/plant.py b/source/component/plant.py index 7d91866..c4e009e 100755 --- a/source/component/plant.py +++ b/source/component/plant.py @@ -1770,7 +1770,7 @@ class FumeShroom(Plant): class IceFrozenPlot(Plant): 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 def idling(self): diff --git a/source/component/zombie.py b/source/component/zombie.py index 63fe4e1..1e6c517 100755 --- a/source/component/zombie.py +++ b/source/component/zombie.py @@ -1116,10 +1116,10 @@ class Zomboni(Zombie): # 造冰 mapX, mapY = self.map.getMapIndex(self.rect.right - 40, self.rect.bottom) 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) 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) diff --git a/source/constants.py b/source/constants.py index 3dee972..96c26f8 100755 --- a/source/constants.py +++ b/source/constants.py @@ -193,7 +193,7 @@ PANEL_Y_INTERNAL = 69 PANEL_X_INTERNAL = 53 BAR_CARD_X_INTERNAL = 51 -# 所选植物信息索引 +# 植物卡片信息索引 PLANT_NAME_INDEX = 0 CARD_INDEX = 1 SUN_INDEX = 2 @@ -237,7 +237,7 @@ SEASHROOM = 'SeaShroom' TALLNUT = 'TallNut' TANGLEKLEP = 'TangleKlep' DOOMSHROOM = 'DoomShroom' -ICE_FROZEN_PLOT = 'IceFrozenPlot' +ICEFROZENPLOT = 'IceFrozenPlot' HOLE = 'Hole' GRAVE = 'Grave' GRAVEBUSTER = 'GraveBuster' @@ -246,9 +246,9 @@ GARLIC = 'Garlic' # 植物集体属性集合 -# 在生效时不用与僵尸进行碰撞检测的对象 +# 在生效时不用与僵尸进行碰撞检测的对象(即生效时不可发生被僵尸啃食的事件) SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = { - # 注意爆炸坚果的触发也是啃食类碰撞,因此这里不能省略 + # 注意爆炸坚果的触发也是啃食类碰撞,因此只能算作爆炸后不检测 SQUASH, ICESHROOM, REDWALLNUTBOWLING, CHERRYBOMB, JALAPENO, DOOMSHROOM, @@ -257,12 +257,15 @@ SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = { # 非植物对象 NON_PLANT_OBJECTS = { - HOLE, ICE_FROZEN_PLOT, + HOLE, ICEFROZENPLOT, GRAVE, } # 所有可能不用与僵尸进行碰撞检测的对象 CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 这里运用了集合运算 + # 注意这个外围的小括号是用来换行的 + # 各个部分末尾千万不能加逗号!!! + # 生效时不检测的植物 SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING | # 非植物对象 @@ -274,7 +277,7 @@ CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 这里运用了集合运算 # 死亡时不触发音效的对象 PLANT_DIE_SOUND_EXCEPTIONS = { WALLNUTBOWLING, TANGLEKLEP, - ICE_FROZEN_PLOT, HOLE, + ICEFROZENPLOT, HOLE, GRAVE, JALAPENO, REDWALLNUTBOWLING, CHERRYBOMB, } diff --git a/source/state/level.py b/source/state/level.py index e4411e5..7629700 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -189,7 +189,7 @@ class Level(tool.State): unoccupied = [] occupied = [] # 毁灭菇坑与冰道应当特殊化 - exceptionObjects = {c.HOLE, c.ICE_FROZEN_PLOT} + exceptionObjects = {c.HOLE, c.ICEFROZENPLOT} # 遍历能生成墓碑的区域 for mapY in range(0, 4): for mapX in range(4, 8): @@ -1145,7 +1145,7 @@ class Level(tool.State): else: _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]: - _move = -_move + _move = -(_move) zombie.targetMapY = i + _move zombie.targetYChange = _move * self.map.gridHeightSize else: @@ -1351,7 +1351,7 @@ class Level(tool.State): targetPlant.explode_x_range, effect=c.BULLET_EFFECT_UNICE) # 消除冰道 for item in self.plant_groups[i]: - if item.name == c.ICE_FROZEN_PLOT: + if item.name == c.ICEFROZENPLOT: item.health = 0 elif targetPlant.name == c.ICESHROOM: self.freezeZombies(targetPlant)