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 狂亂 回復三點生命,並對敵方造成三點傷害 攻擊類卡片 """