110 lines
3.2 KiB
Python
110 lines
3.2 KiB
Python
class Card:
|
|
ATK = 0
|
|
DEF = 1
|
|
OTHER = 2
|
|
SP_ATK = 3
|
|
SP_DEF = 4
|
|
SP_OTHER = 5
|
|
|
|
def __init__(self, cardtype):
|
|
self.type = cardtype
|
|
|
|
|
|
class ATKCard(Card):
|
|
def __init__(self, id, name):
|
|
super(ATKCard, self).__init__(Card.ATK)
|
|
self.id = id
|
|
self.name = name
|
|
self.damage = 0
|
|
self.text = ""
|
|
self.texts = []
|
|
def __repr__(self):
|
|
#return str(self.id) + ". " + self.name + "(ATK)"
|
|
return self.name + "(ATK)"
|
|
def active(self, cur, ene):
|
|
pass
|
|
|
|
class DEFCard(Card):
|
|
def __init__(self, id, name):
|
|
super(DEFCard, self).__init__(Card.DEF)
|
|
self.id = id
|
|
self.name = name
|
|
def __repr__(self):
|
|
return self.name + "(DEF)"
|
|
def passive(self):
|
|
pass
|
|
|
|
|
|
class OtherCard(Card):
|
|
def __init__(self, id, name):
|
|
super(OtherCard, self).__init__(Card.OTHER)
|
|
self.id = id
|
|
self.name = name
|
|
def __repr__(self):
|
|
return self.name + "(Other)"
|
|
def active(self):
|
|
pass
|
|
|
|
# Abstract Class Definition
|
|
|
|
class Attack(ATKCard):
|
|
def __init__(self):
|
|
super(Attack, self).__init__(1 ,"攻擊")
|
|
self.damage = 2
|
|
self.text = "可悲垃圾{}打了{}2"
|
|
def active(self, cur, ene):
|
|
self.texts = [cur.name, ene.name]
|
|
ene.inc_hp(0-self.damage)
|
|
print(self.text.format(*self.texts))
|
|
|
|
class Defend(DEFCard):
|
|
def __init__(self):
|
|
super(Defend, self).__init__(2 ,"防禦")
|
|
def passive(self):
|
|
print("防禦成功~")
|
|
|
|
class Heal(OtherCard):
|
|
def __init__(self):
|
|
super(Heal, self).__init__(3 ,"治癒")
|
|
def active(self, cur, ene):
|
|
cur.inc_hp(2)
|
|
|
|
class Supply(OtherCard):
|
|
def __init__(self):
|
|
super(Supply, self).__init__(4 ,"補給")
|
|
def active(self, cur, ene):
|
|
cur.draw(2)
|
|
|
|
class Rob(ATKCard):
|
|
def __init__(self):
|
|
super(Rob, self).__init__(5 ,"搶奪")
|
|
self.text = "{}從{}那搶走了{}"
|
|
def active(self, cur, ene):
|
|
self.texts = [cur.name, ene.name]
|
|
card = ene.drop()
|
|
cur.get(card)
|
|
self.texts.append(card)
|
|
|
|
print(self.text.format(*self.texts))
|
|
|
|
class Bless(OtherCard):
|
|
def __init__(self):
|
|
super(Bless, self).__init__(11 ,"加護")
|
|
def active(self, cur, ene):
|
|
cur.inc_hp(3)
|
|
cur.poison = 0
|
|
"""
|
|
v 1 攻擊 對敵方造成兩點傷害 攻擊類卡片
|
|
x 2 防禦 抵擋攻擊類卡片 防禦類卡片
|
|
v 3 治癒 回復兩點生命
|
|
v 4 補給 抽取兩張手牌
|
|
x 5 強奪 從敵方手牌中選擇一張加入自己的手牌 攻擊類卡片
|
|
x 6 奇襲 對敵方造成一點傷害,並使其隨機損失一張手牌 攻擊類卡片
|
|
x 8 洞悉 抵擋攻擊類卡片,並抽取一張手牌、抵擋強奪的效果 防禦類卡片
|
|
x 9 妙策 從牌庫中隨機挑出三張卡片,選擇一張加入手牌
|
|
v 10 掃射 對敵方造成零~五點傷害 攻擊類卡片
|
|
v 11 加護 回復三點生命,並解除中毒
|
|
v 12 劇毒 使敵方中毒:每個回合,玩家會損失一點生命
|
|
x 14 反制 抵擋攻擊類卡片,並反彈其傷害和效果 防禦類卡片
|
|
x 15 狂亂 回復三點生命,並對敵方造成三點傷害 攻擊類卡片
|
|
""" |