统一形式

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

View File

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

View File

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

View File

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