Exemple #1
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype) \
       and data[0].name == "Punch":
         self.total_discount += 1
 def trigger(self, ttype, data, player, active, immediate):
     if trigger.test(immediate,\
         trigger.ATTACKING, \
         self.trigger, \
         player,ttype):
         player.triggers.remove(self.trigger)
         return effects.attack(data[0],
                               data[1],
                               by_player=player,
                               avoid_twise=True)
 def triggerAA(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.AVOIDED_ATTACK, \
         self.triggerAA, \
         player,ttype,active):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         player.draw_card(from_card=False)
Exemple #4
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.DESTROY, \
         self.trigger, \
         player,ttype,active):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         self.player.gain_a_weakness()
Exemple #5
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.END_TURN, \
         self.trigger, \
         player,ttype):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         player.persona.active = True
Exemple #6
0
 def trigger(self, ttype, data, player, active, immediate):
     if trigger.test(immediate,\
         trigger.GAIN_CARD, \
         self.trigger, \
         player,ttype,active) \
       and data[1].owner_type == owners.LINEUP \
       and data[0] == False \
       and effects.ok_or_no(f"Would you like to put {data[1].name} on the bottom of your deck?",player,data[1],ai_hint.ALWAYS):
         player.deck.contents.insert(0, data[1])
         return True
Exemple #7
0
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.trigger, \
						player,ttype,active) \
				and data[0].ctype_eq(cardtype.EQUIPMENT):
			if globe.DEBUG:
				print("active",self.name,flush=True)
			player.played.plus_power(1)
 def triggerDE(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.triggerDE, \
         player,ttype,active) \
       and data[0].defence:
         if globe.DEBUG:
             print("active", self.name, flush=True)
         player.played.plus_power(1)
Exemple #9
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.DISCARD, \
         self.trigger, \
         player,ttype) \
       and data[0].name == "Punch":
         if globe.DEBUG:
             print("active", self.name, flush=True)
         player.played.plus_power(1)
Exemple #10
0
 def triggerSV(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(immediate,\
         trigger.PRICE, \
         self.triggerSV, \
         player,ttype) \
       and data[1].owner_type == owners.VILLAINDECK:
         if globe.DEBUG:
             print("active", self.name, flush=True)
         return data[0] - self.total_discount
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(immediate,\
						trigger.DRAW, \
						self.trigger, \
						player,ttype,active):
			if globe.DEBUG:
				print("active",self.name,flush=True)
			revealed = player.reveal_card(public = True)
			if revealed != None and effects.ok_or_no(f"Would you like to discard the {revealed.name}?",player,revealed,ai_hint.IFBAD):
				player.discard_a_card(revealed)
Exemple #12
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype) \
       and data[0].ctype_eq(cardtype.STARTER):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         self.played_starter = True
         player.triggers.remove(self.trigger)
Exemple #13
0
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.DRAW, \
						self.trigger, \
						player,ttype) \
				and data[1] == True:
			if globe.DEBUG:
				print("active",self.name,flush=True)
			if active:
				player.draw_card(from_card = False)
			player.triggers.remove(self.trigger)
 def trigger(self, ttype, data, player, active, immediate):
     if trigger.test(not immediate,\
         trigger.DRAW, \
         self.trigger, \
         player,ttype) \
       and data[1]:
         player.triggers.remove(self.trigger)
         instruction_text = "Would you like to put one drawn cards under your Super Hero?"
         result = effects.may_choose_one_of(instruction_text, player,
                                            data[2])
         if result != None:
             result.pop_self()
             player.under_superhero.contents.append(result)
Exemple #15
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype) \
       and data[0].name == "Punch":
         if globe.DEBUG:
             print("active", self.name, flush=True)
         player.triggers.remove(self.trigger)
         player.draw_card()
         return True
Exemple #16
0
	def triggerSP(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test - SP",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.triggerSP, \
						player,ttype) \
				and data[0].ctype_eq(cardtype.SUPERPOWER):
			if globe.DEBUG:
				print("active - SP",self.name,flush=True)
			if active:
				player.played.plus_power(1)
			player.triggers.remove(self.triggerSP)
Exemple #17
0
	def triggerEQ(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test - EQ",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.triggerEQ, \
						player,ttype) \
				and data[0].ctype_eq(cardtype.EQUIPMENT):
			if globe.DEBUG:
				print("active - EQ",self.name,flush=True)
			if active:
				player.draw_card(from_card = False)
			player.triggers.remove(self.triggerEQ)
Exemple #18
0
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(immediate,\
						trigger.GAIN_CARD, \
						self.trigger, \
						player,ttype,active) \
				and data[0] == False \
				and data[1].cost <= 5 \
				and effects.ok_or_no(f"Would you like to put {data[1].name} on top of your deck?",player,data[1],ai_hint.ALWAYS):
			if globe.DEBUG:
				print("active",self.name,flush=True)
			player.deck.contents.append(data[1])
			return True
Exemple #19
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype) \
       and data[0].ctype_eq(cardtype.VILLAIN):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         self.action = actions.special_action("The Joker",
                                              self.special_action_click)
         player.played.special_options.append(self.action)
         player.triggers.remove(self.trigger)
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(immediate,\
         trigger.AVOIDED_ATTACK, \
         self.trigger, \
         player,ttype,active):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         instruction_text = f"Would you like to that {data[2].name} on top of your deck?"
         if effects.ok_or_no(instruction_text,player,data[2],ai_hint.ALWAYS) \
           and data[2].owner == player:
             data[2].pop_self()
             player.under_superhero.contents.append(data[2])
Exemple #21
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype,active) \
       and player.played.played_this_turn.index(data[0]) == 0 \
       and data[0].cost >= 1:
         if globe.DEBUG:
             print("active", self.name, flush=True)
         self.action = actions.special_action("Bane",
                                              self.special_action_click)
         player.played.special_options.append(self.action)
         player.triggers.remove(self.trigger)
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(immediate,\
         trigger.GAIN_CARD, \
         self.trigger, \
         player,ttype,active) \
       and data[1].owner_type == owners.LINEUP \
       and data[1].ctype_eq(cardtype.VILLAIN) \
       and data[0] == False \
       and effects.ok_or_no(f"Would you like to put {data[1].name} under your Super Hero?",player,data[1],ai_hint.ALWAYS):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         player.under_superhero.contents.append(data[1])
         return True
 def trigger(self, ttype, data, player, active, immediate):
     if trigger.test(not immediate,\
         trigger.GAIN_CARD, \
         self.trigger, \
         player,ttype) \
       and data[1].ctype_eq(cardtype.VILLAIN):
         assemble = []
         assemble.extend(player.discard.contents)
         assemble.extend(player.hand.contents)
         if len(assemble) > 0:
             result = effects.may_choose_one_of(
                 "You may destory a card in your hand or disscard pile.",
                 player, assemble, ai_hint.IFBAD)
             if result != None:
                 result.destroy(player)
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.trigger, \
						player,ttype,active) \
				and data[0].ctype_eq(cardtype.SUPERPOWER):
			already_played = False
			for c in self.player.played.played_this_turn:
				if c != data[0] and data[0].name == c.name:
					already_played = True
			if not already_played:
				top_card = player.reveal_card(public = True)
				if top_card != None and top_card.cost == 0:
					player.draw_card()
Exemple #25
0
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.trigger, \
						player,ttype,active):
			if globe.DEBUG:
				print("active",self.name,flush=True)
			names = set()
			for c in player.played.played_this_turn:
				if c.cost >= 1:
					names.add(c.name)
			if len(names) >= 3:
				player.played.plus_power(3)
				player.triggers.remove(self.trigger)
Exemple #26
0
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.trigger, \
						player,ttype,active) \
				and data[0].ctype_eq(cardtype.SUPERPOWER):
			if globe.DEBUG:
				print("active",self.name,flush=True)
			already_played = False
			for c in player.played.played_this_turn:
				if c != data[0] and data[0].name == c.name:
					already_played = True
			if not already_played:
				player.played.plus_power(1)
	def trigger(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.trigger, \
						player,ttype,active) \
				and data[0].ctype_eq(cardtype.SUPERPOWER):
			already_played = False
			for c in self.player.played.played_this_turn:
				if c != data[0] and data[0].name == c.name:
					already_played = True
			if not already_played:
				for c in player.discard.contents:
					if c.name == "Punch":
						c.pop_self()
						player.hand.contents.append(c)
Exemple #28
0
	def triggerHE(self,ttype,data,player,active,immediate):
		if globe.DEBUG:
			print("test - HE",self.name,flush=True)
		if trigger.test(not immediate,\
						trigger.PLAY, \
						self.triggerHE, \
						player,ttype,active) \
				and data[0].ctype_eq(cardtype.HERO):
			if globe.DEBUG:
				print("active - HE",self.name,flush=True)
			villain_count = 0
			for c in player.played.played_this_turn:
				if c.ctype_eq(cardtype.HERO):
					villain_count += 1
			if villain_count >= 2:
				player.played.plus_power(3)
				player.triggers.remove(self.triggerHE)
Exemple #29
0
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype,active) \
       and data[0].ctype_eq(cardtype.SUPERPOWER):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         instruction_text = "Would you like to destory it? If you do, draw a card and gain 1 VP."
         if effects.ok_or_no(instruction_text, player, data[0],
                             ai_hint.IFBAD):
             data[0].destroy(player)
             player.draw_card(from_card=False)
             player.gain_vp(1)
         player.triggers.remove(self.trigger)
 def trigger(self, ttype, data, player, active, immediate):
     if globe.DEBUG:
         print("test", self.name, flush=True)
     if trigger.test(not immediate,\
         trigger.PLAY, \
         self.trigger, \
         player,ttype,active) \
       and data[0].ctype_eq(cardtype.EQUIPMENT):
         if globe.DEBUG:
             print("active", self.name, flush=True)
         number_played = 0
         for c in self.player.played.played_this_turn:
             if c.ctype_eq(cardtype.EQUIPMENT):
                 number_played += 1
         if number_played == 1:
             player.played.plus_power(1)
         elif number_played == 2:
             player.draw_card(from_card=False)
             player.triggers.remove(self.trigger)