code: def buff(self, target, buff, **kwargs):
  		
  		ret = self.controller.card(buff, self)
  		ret.source = self
  		ret.apply(target)
  		for k, v in kwargs.items():
  			setattr(ret, k, v)
  		return ret
docs: Summon \a buff and apply it to \a target
  		If keyword arguments are given, attempt to set the given
  		values to the buff. Example:
  		player.buff(target, health=random.randint(1, 5))
  		NOTE: Any Card can buff any other Card. The controller of the
  		Card that buffs the target becomes the controller of the buff.