From 1e86ad16eae3832dd5343190c07da242911c820f 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 16:27:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E6=9D=A8=E6=A1=83=E5=90=91=E5=90=8E?= =?UTF-8?q?=E5=8F=91=E5=B0=84=E7=9A=84=E5=AD=90=E5=BC=B9=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E4=BA=8C=E7=B1=BB=E9=98=B2=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/component/plant.py | 12 ++++++++---- source/state/level.py | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/source/component/plant.py b/source/component/plant.py index c4e009e..68f5eb7 100755 --- a/source/component/plant.py +++ b/source/component/plant.py @@ -38,7 +38,7 @@ class Car(pg.sprite.Sprite): # 豌豆及孢子类普通子弹 class Bullet(pg.sprite.Sprite): - def __init__(self, x, start_y, dest_y, name, damage, effect=None, passedTorchWood=None): + def __init__(self, x, start_y, dest_y, name, damage, effect=None, passedTorchWood=None, damageType=c.ZOMBIE_DEAFULT_DAMAGE): pg.sprite.Sprite.__init__(self) self.name = name @@ -55,6 +55,7 @@ class Bullet(pg.sprite.Sprite): self.y_vel = 15 if (dest_y > start_y) else -15 self.x_vel = 10 self.damage = damage + self.damageType = damageType self.effect = effect self.state = c.FLY self.current_time = 0 @@ -182,8 +183,8 @@ class Fume(pg.sprite.Sprite): # 杨桃的子弹 class StarBullet(Bullet): - def __init__(self, x, start_y, damage, direction, level): # direction指星星飞行方向 - Bullet.__init__(self, x, start_y, start_y, c.BULLET_STAR, damage) + def __init__(self, x, start_y, damage, direction, level, damageType = c.ZOMBIE_DEAFULT_DAMAGE): # direction指星星飞行方向 + Bullet.__init__(self, x, start_y, start_y, c.BULLET_STAR, damage, damageType = damageType) self.level = level _, self.map_y = self.level.map.getMapIndex(self.rect.x, self.rect.centery) @@ -1338,7 +1339,9 @@ class StarFruit(Plant): if self.shoot_timer == 0: self.shoot_timer = self.current_time - 700 elif (self.current_time - self.shoot_timer) >= 1400: - self.bullet_group.add(StarBullet(self.rect.left - 10, self.rect.y + 15, c.BULLET_DAMAGE_NORMAL, c.STAR_BACKWARD, self.level)) + # 向后打的杨桃子弹无视铁门与报纸防具 + self.bullet_group.add(StarBullet(self.rect.left - 10, self.rect.y + 15, c.BULLET_DAMAGE_NORMAL, c.STAR_BACKWARD, self.level, damageType = c.ZOMBIE_COMMON_DAMAGE)) + # 其他方向的杨桃子弹伤害效果与豌豆等同 self.bullet_group.add(StarBullet(self.rect.centerx - 20, self.rect.bottom - self.rect.h - 15, c.BULLET_DAMAGE_NORMAL, c.STAR_UPWARD, self.level)) self.bullet_group.add(StarBullet(self.rect.centerx - 20, self.rect.bottom - 5, c.BULLET_DAMAGE_NORMAL, c.STAR_DOWNWARD, self.level)) self.bullet_group.add(StarBullet(self.rect.right - 5, self.rect.bottom - 20, c.BULLET_DAMAGE_NORMAL, c.STAR_FORWARD_DOWN, self.level)) @@ -1589,6 +1592,7 @@ class DoomShroom(Plant): else: self.image.set_alpha(255) + # 用于描述毁灭菇的坑 class Hole(Plant): def __init__(self, x, y, plotType): diff --git a/source/state/level.py b/source/state/level.py index 7629700..3f253b1 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -1015,7 +1015,7 @@ class Level(tool.State): continue if collided_func(zombie, bullet): if zombie.state != c.DIE: - zombie.setDamage(bullet.damage, effect=bullet.effect, damageType=c.ZOMBIE_DEAFULT_DAMAGE) + zombie.setDamage(bullet.damage, effect=bullet.effect, damageType=bullet.damageType) bullet.setExplode() # 火球有溅射伤害 if bullet.name == c.BULLET_FIREBALL: