def apply_action(self): # WHOLE BUNCH OF MEGA HACK old = self.target g = Game.getgame() old_life, maxlife_delta = old.life, old.maxlife - old.__class__.maxlife ActionStage.force_break() ''' turn = PlayerTurn.get_current(old) try: turn.pending_stages[:] = [] except Exception: pass ''' tgt = KOFCharacterSwitchHandler.switch(old) tgt.life = old_life tgt.maxlife += maxlife_delta for l in ('cards', 'showncards', 'equips', 'fatetell', 'special'): s, t = getattr(old, l), getattr(tgt, l) for i in list(s): i.move_to(t) for s in old.skills: if 'character' not in s.skill_category: tgt.skills.append(s) for act in g.action_stack: # Meh... good enough if act.source is old: act.source = tgt if act.target is old: act.target = tgt if isinstance(act, LaunchCard): act.target_list[:] = [ tgt if p is old else p for p in act.target_list ] tgt.tags = old.tags tgt.choices.append(CharChoice(old.__class__)) if tgt.life > tgt.maxlife: g.process_action(LifeLost(tgt, tgt, tgt.life - tgt.maxlife)) self.transition = [old, tgt] g.emit_event('character_debut', (old, tgt)) return True
def apply_action(self): tgt = self.target ActionStage.force_break() turn = PlayerTurn.get_current(tgt) try: turn.pending_stages.remove(DropCardStage) turn.pending_stages.remove(FinalizeStage) except Exception: pass return True