Color functions return a new Color object

This commit is contained in:
Izalia Mae 2021-07-09 20:55:47 -04:00
parent 5157ffb4d3
commit b1bbafecc6

View file

@ -181,7 +181,7 @@ class Color(Colour):
def multi(self, multiplier):
if multiplier >= 100:
return 1
return 100
elif multiplier <= 0:
return 0
@ -190,26 +190,28 @@ class Color(Colour):
def alter(self, action, multiplier):
new_color = Color(self)
if action == 'lighten':
self.luminance += ((1 - self.luminance) * self.multi(multiplier))
new_color.luminance += ((1 - self.luminance) * self.multi(multiplier))
elif action == 'darken':
self.luminance -= (self.luminance * self.multi(multiplier))
new_color.luminance -= (self.luminance * self.multi(multiplier))
elif action == 'saturate':
self.saturation += ((1 - self.saturation) * self.multi(multiplier))
new_color.saturation += ((1 - self.saturation) * self.multi(multiplier))
elif action == 'desaturate':
self.saturation -= (self.saturation * self.multi(multiplier))
new_color.saturation -= (self.saturation * self.multi(multiplier))
elif action == 'rgba':
red = self.red*255
green = self.green*255
blue = self.blue*255
trans = self.multi(multiplier)
return f'rgba({red:0.2f}, {green:0.2f}, {blue:0.2f}, {trans:0.2f})'
return f'rgba({red:0.2f}, {green:0.2f}, {blue:0.2f}, {trans})'
return self
return new_color
def color_func(action, color, multi):