def from_json(name, count=0): from hearthbreaker.tags.selector import UserPicker, AllPicker, RandomPicker if name == "user": return UserPicker() elif name == "all": return AllPicker() elif name == "random": return RandomPicker(count) else: raise TypeError("What are you even doing?")
def __init__(self, buffs, picker=AllPicker()): if isinstance(buffs, Status): self.buffs = [Buff(buffs)] elif isinstance(buffs, list): self.buffs = buffs if isinstance(buffs[0], Aura): raise TypeError("Aura passed where buff was expected") elif isinstance(buffs, Aura): raise TypeError("Aura passed where buff was expected") else: self.buffs = [buffs] self.picker = picker
def __from_json__(self, buffs=None, effects=None, auras=None, picker=None): if effects: # To allow for give to work with effects as well, we check at load time return GiveEffect.__new__(GiveEffect).__from_json__(effects) if auras: # To allow for give to work with auras as well, we check at load time return GiveAura.__new__(GiveAura).__from_json__(auras) self.buffs = [] for buff in buffs: if "until" in buff: self.buffs.append(BuffUntil.from_json(**buff)) else: self.buffs.append(Buff.from_json(**buff)) if not picker: self.picker = AllPicker() else: self.picker = Picker.from_json(**picker) return self