整理代码

This commit is contained in:
星外之神 2022-05-15 19:49:07 +08:00
parent bd59b16905
commit 47ec6367c8

View File

@ -106,18 +106,25 @@ BACKGROUND_TRIPLE = 8
# 地图类型集合 # 地图类型集合
# 白天场地(泛指蘑菇睡觉的场地) # 白天场地(泛指蘑菇睡觉的场地)
DAYTIME_BACKGROUNDS = { BACKGROUND_DAY, BACKGROUND_POOL, DAYTIME_BACKGROUNDS = {
BACKGROUND_DAY, BACKGROUND_POOL,
BACKGROUND_ROOF, BACKGROUND_WALLNUTBOWLING, BACKGROUND_ROOF, BACKGROUND_WALLNUTBOWLING,
BACKGROUND_SINGLE, BACKGROUND_TRIPLE, BACKGROUND_SINGLE, BACKGROUND_TRIPLE,
} }
# 带有泳池的场地 # 带有泳池的场地
POOL_EQUIPPED_BACKGROUNDS = { BACKGROUND_POOL, BACKGROUND_FOG, POOL_EQUIPPED_BACKGROUNDS = {
BACKGROUND_POOL, BACKGROUND_FOG,
} }
# 屋顶上的场地 # 屋顶上的场地
ON_ROOF_BACKGROUNDS = { BACKGROUND_ROOF, BACKGROUND_ROOFNIGHT, ON_ROOF_BACKGROUNDS = {
BACKGROUND_ROOF, BACKGROUND_ROOFNIGHT,
} }
# BACKGROUND_DAY场地的变体 # BACKGROUND_DAY场地的变体
BACKGROUND_DAY_LIKE_BACKGROUNDS = { BACKGROUND_DAY, BACKGROUND_SINGLE, BACKGROUND_DAY_LIKE_BACKGROUNDS = {
BACKGROUND_DAY, BACKGROUND_SINGLE,
BACKGROUND_TRIPLE, BACKGROUND_TRIPLE,
} }
@ -232,45 +239,59 @@ GRAVE = 'Grave'
GRAVEBUSTER = 'GraveBuster' GRAVEBUSTER = 'GraveBuster'
FUMESHROOM = 'FumeShroom' FUMESHROOM = 'FumeShroom'
# 植物集体属性
# 植物集体属性集合
# 在生效时不用与僵尸进行碰撞检测的对象 # 在生效时不用与僵尸进行碰撞检测的对象
SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = {# 注意爆炸坚果的触发也是啃食类碰撞,因此这里不能省略 SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING = {
# 注意爆炸坚果的触发也是啃食类碰撞,因此这里不能省略
SQUASH, ICESHROOM, SQUASH, ICESHROOM,
REDWALLNUTBOWLING, CHERRYBOMB, REDWALLNUTBOWLING, CHERRYBOMB,
JALAPENO, DOOMSHROOM, JALAPENO, DOOMSHROOM,
POTATOMINE, POTATOMINE,
} }
# 非植物对象 # 非植物对象
NON_PLANT_OBJECTS = { HOLE, ICE_FROZEN_PLOT, NON_PLANT_OBJECTS = {
HOLE, ICE_FROZEN_PLOT,
GRAVE, GRAVE,
} }
# 所有可能不用与僵尸进行碰撞检测的对象 # 所有可能不用与僵尸进行碰撞检测的对象
CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 生效时不检测的植物 CAN_SKIP_ZOMBIE_COLLISION_CHECK = ( # 这里运用了集合运算
# 生效时不检测的植物
SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING | SKIP_ZOMBIE_COLLISION_CHECK_WHEN_WORKING |
# 非植物对象 # 非植物对象
NON_PLANT_OBJECTS | NON_PLANT_OBJECTS |
# 地刺类 # 地刺类
{SPIKEWEED, } {SPIKEWEED, }
) )
# 死亡时不触发音效的对象 # 死亡时不触发音效的对象
PLANT_DIE_SOUND_EXCEPTIONS = { WALLNUTBOWLING, TANGLEKLEP, PLANT_DIE_SOUND_EXCEPTIONS = {
WALLNUTBOWLING, TANGLEKLEP,
ICE_FROZEN_PLOT, HOLE, ICE_FROZEN_PLOT, HOLE,
GRAVE, JALAPENO, GRAVE, JALAPENO,
REDWALLNUTBOWLING, CHERRYBOMB, REDWALLNUTBOWLING, CHERRYBOMB,
} }
# color_key为白色的对象 # color_key为白色的对象
PLANT_COLOR_KEY_WHITE = { POTATOMINE, SPIKEWEED, PLANT_COLOR_KEY_WHITE = {
POTATOMINE, SPIKEWEED,
JALAPENO, SCAREDYSHROOM, JALAPENO, SCAREDYSHROOM,
SUNSHROOM, ICESHROOM, SUNSHROOM, ICESHROOM,
HYPNOSHROOM, SQUASH, HYPNOSHROOM, SQUASH,
WALLNUTBOWLING, REDWALLNUTBOWLING, WALLNUTBOWLING, REDWALLNUTBOWLING,
} }
# 直接水生植物 # 直接水生植物
WATER_PLANTS = { LILYPAD, SEASHROOM, WATER_PLANTS = {
LILYPAD, SEASHROOM,
TANGLEKLEP, TANGLEKLEP,
} }
# 不用使用通用方法检验攻击状态的植物 # 不用使用通用方法检验攻击状态的植物
PLANT_NON_CHECK_ATTACK_STATE = ({ # 单独指定攻击状态的植物 PLANT_NON_CHECK_ATTACK_STATE = ( # 这里运用了集合运算
{# 单独指定攻击状态的植物
WALLNUTBOWLING, WALLNUTBOWLING,
# 没有攻击状态的植物 # 没有攻击状态的植物
WALLNUT, TALLNUT, WALLNUT, TALLNUT,
@ -282,11 +303,14 @@ PLANT_NON_CHECK_ATTACK_STATE = ({ # 单独指定攻击状态的植物
# 非植物类 # 非植物类
NON_PLANT_OBJECTS NON_PLANT_OBJECTS
) )
# 范围爆炸植物,即灰烬植物与寒冰菇 # 范围爆炸植物,即灰烬植物与寒冰菇
ASH_PLANTS_AND_ICESHROOM = { REDWALLNUTBOWLING, CHERRYBOMB, ASH_PLANTS_AND_ICESHROOM = {
REDWALLNUTBOWLING, CHERRYBOMB,
JALAPENO, DOOMSHROOM, JALAPENO, DOOMSHROOM,
ICESHROOM,} ICESHROOM,}
# 植物生命值 # 植物生命值
PLANT_HEALTH = 300 PLANT_HEALTH = 300
WALLNUT_HEALTH = 4000 WALLNUT_HEALTH = 4000
@ -419,31 +443,37 @@ ZOMBIE_WALK_INTERVAL = 60 # 僵尸步行间隔
# 僵尸生成位置 # 僵尸生成位置
ZOMBIE_START_X = SCREEN_WIDTH + 50 # 场宽度不一样,用于拟合 ZOMBIE_START_X = SCREEN_WIDTH + 50 # 场宽度不一样,用于拟合
# 僵尸集体属性
# 僵尸集体属性集合
# 僵尸生成信息字典:包含生成僵尸名称、僵尸级别、生成权重 # 僵尸生成信息字典:包含生成僵尸名称、僵尸级别、生成权重
CREATE_ZOMBIE_DICT = { # 生成僵尸:(级别, 权重) CREATE_ZOMBIE_DICT = { # 生成僵尸:(级别, 权重)
NORMAL_ZOMBIE:(1, 4000), NORMAL_ZOMBIE: (1, 4000),
FLAG_ZOMBIE:(1, 0), FLAG_ZOMBIE: (1, 0),
CONEHEAD_ZOMBIE:(2, 4000), CONEHEAD_ZOMBIE: (2, 4000),
BUCKETHEAD_ZOMBIE:(4, 3000), BUCKETHEAD_ZOMBIE: (4, 3000),
NEWSPAPER_ZOMBIE:(2, 1000), NEWSPAPER_ZOMBIE: (2, 1000),
FOOTBALL_ZOMBIE:(7, 2000), FOOTBALL_ZOMBIE: (7, 2000),
DUCKY_TUBE_ZOMBIE:(1, 0), # 作为变种,不主动生成 DUCKY_TUBE_ZOMBIE: (1, 0), # 作为变种,不主动生成
CONEHEAD_DUCKY_TUBE_ZOMBIE:(2, 0), # 作为变种,不主动生成 CONEHEAD_DUCKY_TUBE_ZOMBIE: (2, 0), # 作为变种,不主动生成
BUCKETHEAD_DUCKY_TUBE_ZOMBIE:(4, 0), # 作为变种,不主动生成 BUCKETHEAD_DUCKY_TUBE_ZOMBIE: (4, 0), # 作为变种,不主动生成
SCREEN_DOOR_ZOMBIE:(4, 3500), SCREEN_DOOR_ZOMBIE: (4, 3500),
POLE_VAULTING_ZOMBIE:(2, 2000), POLE_VAULTING_ZOMBIE: (2, 2000),
ZOMBONI:(7, 2000), ZOMBONI: (7, 2000),
} }
# 记录陆生僵尸的水生变种 # 记录陆生僵尸的水生变种
CONVERT_ZOMBIE_IN_POOL = { NORMAL_ZOMBIE:DUCKY_TUBE_ZOMBIE, CONVERT_ZOMBIE_IN_POOL = {
CONEHEAD_ZOMBIE:CONEHEAD_DUCKY_TUBE_ZOMBIE, NORMAL_ZOMBIE: DUCKY_TUBE_ZOMBIE,
BUCKETHEAD_ZOMBIE:BUCKETHEAD_DUCKY_TUBE_ZOMBIE} CONEHEAD_ZOMBIE: CONEHEAD_DUCKY_TUBE_ZOMBIE,
BUCKETHEAD_ZOMBIE: BUCKETHEAD_DUCKY_TUBE_ZOMBIE}
# 水上僵尸集合 # 水上僵尸集合
WATER_ZOMBIE = { DUCKY_TUBE_ZOMBIE, CONEHEAD_DUCKY_TUBE_ZOMBIE, WATER_ZOMBIE = {
DUCKY_TUBE_ZOMBIE, CONEHEAD_DUCKY_TUBE_ZOMBIE,
BUCKETHEAD_DUCKY_TUBE_ZOMBIE, BUCKETHEAD_DUCKY_TUBE_ZOMBIE,
} }
# 状态类型 # 状态类型
IDLE = 'idle' IDLE = 'idle'
FLY = 'fly' FLY = 'fly'