修复撑杆跳被同一行的寒冰菇冻结后丢失杆的bug
This commit is contained in:
parent
6f6594db9c
commit
25bf28e4f4
@ -1072,23 +1072,47 @@ class Level(tool.State):
|
|||||||
if zombie.canSwim and (not zombie.swimming):
|
if zombie.canSwim and (not zombie.swimming):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# 以下代码为了实现各个功能,极其凌乱,尚未优化性能
|
# 以下代码为了实现各个功能,较为凌乱
|
||||||
attackableCommonPlants = []
|
attackableCommonPlants = []
|
||||||
attackableBackupPlant = []
|
attackableBackupPlant = []
|
||||||
# 利用更加精细的循环判断啃咬优先顺序
|
# 利用更加精细的循环判断啃咬优先顺序
|
||||||
for plant in self.plant_groups[i]:
|
for plant in self.plant_groups[i]:
|
||||||
if collided_func(plant, zombie):
|
if collided_func(plant, zombie):
|
||||||
if plant.name in {"南瓜头(未实现)"}:
|
# 优先攻击南瓜头
|
||||||
|
if plant.name == "南瓜头(未实现)":
|
||||||
targetPlant = plant
|
targetPlant = plant
|
||||||
break
|
break
|
||||||
|
# 衬底植物情形
|
||||||
elif plant.name in {c.LILYPAD, "花盆(未实现)"}:
|
elif plant.name in {c.LILYPAD, "花盆(未实现)"}:
|
||||||
attackableBackupPlant.append(plant)
|
attackableBackupPlant.append(plant)
|
||||||
# 注意要剔除掉两个“假植物”,以及不能被啃的地刺
|
# 一般植物情形
|
||||||
elif plant.name == c.SQUASH:
|
# 同时也忽略了不可啃食对象
|
||||||
# 跳起后不得被啃食
|
elif plant.name not in {# 不可啃食对象
|
||||||
|
# 非植物对象
|
||||||
|
c.HOLE, c.ICE_FROZEN_PLOT,
|
||||||
|
c.GRAVE,
|
||||||
|
# 对一般僵尸无条件不可啃食植物:地刺
|
||||||
|
c.SPIKEWEED,
|
||||||
|
# 对一般僵尸有条件不可啃食植物:跳起的倭瓜、释放效果后的爆炸类植物
|
||||||
|
# 这类在后面还需要判断
|
||||||
|
c.SQUASH, c.ICESHROOM,
|
||||||
|
c.REDWALLNUTBOWLING, c.CHERRYBOMB,
|
||||||
|
c.JALAPENO, c.DOOMSHROOM,
|
||||||
|
c.POTATOMINE
|
||||||
|
}:
|
||||||
|
attackableCommonPlants.append(plant)
|
||||||
|
# 在某些状态下忽略啃食碰撞但某些状况下不能忽略的情形
|
||||||
|
elif plant.name in {# 注意爆炸坚果的触发也是啃食类碰撞,因此这里不能省略
|
||||||
|
c.SQUASH, c.ICESHROOM,
|
||||||
|
c.REDWALLNUTBOWLING, c.CHERRYBOMB,
|
||||||
|
c.JALAPENO, c.DOOMSHROOM,
|
||||||
|
c.POTATOMINE,
|
||||||
|
}:
|
||||||
|
if plant.name == c.SQUASH:
|
||||||
if not plant.squashing:
|
if not plant.squashing:
|
||||||
attackableCommonPlants.append(plant)
|
attackableCommonPlants.append(plant)
|
||||||
elif plant.name not in {c.HOLE, c.ICE_FROZEN_PLOT, c.GRAVE, c.SPIKEWEED}:
|
else:
|
||||||
|
if not plant.start_boom:
|
||||||
attackableCommonPlants.append(plant)
|
attackableCommonPlants.append(plant)
|
||||||
else:
|
else:
|
||||||
if attackableCommonPlants:
|
if attackableCommonPlants:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user