进一步将常数性内容汇总到constants.py中

This commit is contained in:
星外之神 2022-06-01 13:39:56 +08:00
parent c4a756756b
commit d054ff498b
3 changed files with 134 additions and 132 deletions

View File

@ -4,129 +4,6 @@ import pygame as pg
from .. import tool from .. import tool
from .. import constants as c from .. import constants as c
plantInfo = (# 元组 (植物名称, 卡片名称, 阳光, 冷却时间)
(c.PEASHOOTER,
c.CARD_PEASHOOTER,
100,
7500),
(c.SUNFLOWER,
c.CARD_SUNFLOWER,
50,
7500),
(c.CHERRYBOMB,
c.CARD_CHERRYBOMB,
150,
50000),
(c.WALLNUT,
c.CARD_WALLNUT,
50,
30000),
(c.POTATOMINE,
c.CARD_POTATOMINE,
25,
30000),
(c.SNOWPEASHOOTER,
c.CARD_SNOWPEASHOOTER,
175,
7500),
(c.CHOMPER,
c.CARD_CHOMPER,
150,
7500),
(c.REPEATERPEA,
c.CARD_REPEATERPEA,
200,
7500),
(c.PUFFSHROOM,
c.CARD_PUFFSHROOM,
0,
7500),
(c.SUNSHROOM,
c.CARD_SUNSHROOM,
25,
7500),
(c.FUMESHROOM,
c.CARD_FUMESHROOM,
75,
7500),
(c.GRAVEBUSTER,
c.CARD_GRAVEBUSTER,
75,
7500),
(c.HYPNOSHROOM,
c.CARD_HYPNOSHROOM,
75,
30000),
(c.SCAREDYSHROOM,
c.CARD_SCAREDYSHROOM,
25,
7500),
(c.ICESHROOM,
c.CARD_ICESHROOM,
75,
50000),
(c.DOOMSHROOM,
c.CARD_DOOMSHROOM,
75,
50000),
(c.LILYPAD,
c.CARD_LILYPAD,
25,
7500),
(c.SQUASH,
c.CARD_SQUASH,
50,
30000),
(c.TANGLEKLEP,
c.CARD_TANGLEKLEP,
25,
30000),
(c.THREEPEASHOOTER,
c.CARD_THREEPEASHOOTER,
325,
7500),
(c.JALAPENO,
c.CARD_JALAPENO,
125,
50000),
(c.SPIKEWEED,
c.CARD_SPIKEWEED,
100,
7500),
(c.TORCHWOOD,
c.CARD_TORCHWOOD,
175,
7500),
(c.TALLNUT,
c.CARD_TALLNUT,
125,
30000),
(c.SEASHROOM,
c.CARD_SEASHROOM,
125,
30000),
(c.STARFRUIT,
c.CARD_STARFRUIT,
125,
7500),
(c.COFFEEBEAN,
c.CARD_COFFEEBEAN,
75,
7500),
# 应当保证这两个在一般模式下不可选的特殊植物恒在最后
(c.WALLNUTBOWLING,
c.CARD_WALLNUT,
0,
0),
(c.REDWALLNUTBOWLING,
c.CARD_REDWALLNUT,
0,
0),
)
# 指定了哪些卡可选
cards_to_choose = range(len(plantInfo) - 2)
def getSunValueImage(sun_value): def getSunValueImage(sun_value):
# for pack, must include ttf # for pack, must include ttf
@ -148,7 +25,7 @@ def getSunValueImage(sun_value):
def getCardPool(data): def getCardPool(data):
card_pool = [] card_pool = []
for card in data: for card in data:
for i,name in enumerate(plantInfo): for i,name in enumerate(c.PLANT_CARD_INFO):
if name[c.PLANT_NAME_INDEX] == card: if name[c.PLANT_NAME_INDEX] == card:
card_pool.append(i) card_pool.append(i)
break break
@ -156,14 +33,14 @@ def getCardPool(data):
class Card(): class Card():
def __init__(self, x, y, index, scale=0.5): def __init__(self, x, y, index, scale=0.5):
self.loadFrame(plantInfo[index][c.CARD_INDEX], scale) self.loadFrame(c.PLANT_CARD_INFO[index][c.CARD_INDEX], scale)
self.rect = self.orig_image.get_rect() self.rect = self.orig_image.get_rect()
self.rect.x = x self.rect.x = x
self.rect.y = y self.rect.y = y
self.index = index self.index = index
self.sun_cost = plantInfo[index][c.SUN_INDEX] self.sun_cost = c.PLANT_CARD_INFO[index][c.SUN_INDEX]
self.frozen_time = plantInfo[index][c.FROZEN_INDEX] self.frozen_time = c.PLANT_CARD_INFO[index][c.FROZEN_INDEX]
self.frozen_timer = -self.frozen_time self.frozen_timer = -self.frozen_time
self.refresh_timer = 0 self.refresh_timer = 0
self.select = True self.select = True
@ -285,7 +162,7 @@ class MenuBar():
for card in self.card_list: for card in self.card_list:
if card.checkMouseClick(mouse_pos): if card.checkMouseClick(mouse_pos):
if card.canClick(self.sun_value, self.current_time): if card.canClick(self.sun_value, self.current_time):
result = (plantInfo[card.index][c.PLANT_NAME_INDEX], card) result = (c.PLANT_CARD_INFO[card.index][c.PLANT_NAME_INDEX], card)
break break
return result return result
@ -306,7 +183,7 @@ class MenuBar():
def setCardFrozenTime(self, plant_name): def setCardFrozenTime(self, plant_name):
for card in self.card_list: for card in self.card_list:
if plantInfo[card.index][c.PLANT_NAME_INDEX] == plant_name: if c.PLANT_CARD_INFO[card.index][c.PLANT_NAME_INDEX] == plant_name:
card.setFrozenTime(self.current_time) card.setFrozenTime(self.current_time)
break break
@ -522,8 +399,8 @@ class MoveBar():
y = 6 y = 6
index = random.randint(0, len(self.card_pool) - 1) index = random.randint(0, len(self.card_pool) - 1)
card_index = self.card_pool[index] card_index = self.card_pool[index]
card_name = plantInfo[card_index][c.CARD_INDEX] + '_move' card_name = c.PLANT_CARD_INFO[card_index][c.CARD_INDEX] + '_move'
plant_name = plantInfo[card_index][c.PLANT_NAME_INDEX] plant_name = c.PLANT_CARD_INFO[card_index][c.PLANT_NAME_INDEX]
self.card_list.append(MoveCard(x, y, card_name, plant_name)) self.card_list.append(MoveCard(x, y, card_name, plant_name))
return True return True

View File

@ -368,6 +368,131 @@ CARD_DOOMSHROOM = 'card_doomshroom'
CARD_GRAVEBUSTER = 'card_gravebuster' CARD_GRAVEBUSTER = 'card_gravebuster'
CARD_FUMESHROOM = 'card_fumeshroom' CARD_FUMESHROOM = 'card_fumeshroom'
# 植物卡片信息(包括植物名称, 卡片名称, 阳光, 冷却时间)
PLANT_CARD_INFO = (# 元组 (植物名称, 卡片名称, 阳光, 冷却时间)
(PEASHOOTER,
CARD_PEASHOOTER,
100,
7500),
(SUNFLOWER,
CARD_SUNFLOWER,
50,
7500),
(CHERRYBOMB,
CARD_CHERRYBOMB,
150,
50000),
(WALLNUT,
CARD_WALLNUT,
50,
30000),
(POTATOMINE,
CARD_POTATOMINE,
25,
30000),
(SNOWPEASHOOTER,
CARD_SNOWPEASHOOTER,
175,
7500),
(CHOMPER,
CARD_CHOMPER,
150,
7500),
(REPEATERPEA,
CARD_REPEATERPEA,
200,
7500),
(PUFFSHROOM,
CARD_PUFFSHROOM,
0,
7500),
(SUNSHROOM,
CARD_SUNSHROOM,
25,
7500),
(FUMESHROOM,
CARD_FUMESHROOM,
75,
7500),
(GRAVEBUSTER,
CARD_GRAVEBUSTER,
75,
7500),
(HYPNOSHROOM,
CARD_HYPNOSHROOM,
75,
30000),
(SCAREDYSHROOM,
CARD_SCAREDYSHROOM,
25,
7500),
(ICESHROOM,
CARD_ICESHROOM,
75,
50000),
(DOOMSHROOM,
CARD_DOOMSHROOM,
75,
50000),
(LILYPAD,
CARD_LILYPAD,
25,
7500),
(SQUASH,
CARD_SQUASH,
50,
30000),
(TANGLEKLEP,
CARD_TANGLEKLEP,
25,
30000),
(THREEPEASHOOTER,
CARD_THREEPEASHOOTER,
325,
7500),
(JALAPENO,
CARD_JALAPENO,
125,
50000),
(SPIKEWEED,
CARD_SPIKEWEED,
100,
7500),
(TORCHWOOD,
CARD_TORCHWOOD,
175,
7500),
(TALLNUT,
CARD_TALLNUT,
125,
30000),
(SEASHROOM,
CARD_SEASHROOM,
125,
30000),
(STARFRUIT,
CARD_STARFRUIT,
125,
7500),
(COFFEEBEAN,
CARD_COFFEEBEAN,
75,
7500),
# 应当保证这两个在一般模式下不可选的特殊植物恒在最后
(WALLNUTBOWLING,
CARD_WALLNUT,
0,
0),
(REDWALLNUTBOWLING,
CARD_REDWALLNUT,
0,
0),
)
# 指定了哪些卡可选
CARDS_TO_CHOOSE = range(len(PLANT_CARD_INFO) - 2)
# 子弹信息 # 子弹信息
# 子弹类型 # 子弹类型
BULLET_PEA = 'PeaNormal' BULLET_PEA = 'PeaNormal'

View File

@ -364,7 +364,7 @@ class Level(tool.State):
def initChoose(self): def initChoose(self):
self.state = c.CHOOSE self.state = c.CHOOSE
self.panel = menubar.Panel(menubar.cards_to_choose, self.map_data[c.INIT_SUN_NAME]) self.panel = menubar.Panel(c.CARDS_TO_CHOOSE, self.map_data[c.INIT_SUN_NAME])
# 播放选卡音乐 # 播放选卡音乐
pg.mixer.music.stop() pg.mixer.music.stop()