forked from SilverStudioGames/WTS
Bug fixes and improvements
* Implemented sort method for DollCloth types * Fixed opacity matrix multiplications * Fixed wardrobe outfit hash mismatch due to inserted body layers in compare objects
This commit is contained in:
parent
b610494c5f
commit
babbc11cf0
@ -54,6 +54,11 @@ init python:
|
|||||||
return NotImplemented
|
return NotImplemented
|
||||||
return self._hash == obj._hash
|
return self._hash == obj._hash
|
||||||
|
|
||||||
|
def __lt__(self, obj):
|
||||||
|
if not isinstance(obj, DollCloth):
|
||||||
|
return NotImplemented
|
||||||
|
return self._hash < obj._hash
|
||||||
|
|
||||||
def generate_hash(self):
|
def generate_hash(self):
|
||||||
salt = str( [self.name, self.char.pose, self.type, self.id, str(self.color), str(self.char.body._hash)] )
|
salt = str( [self.name, self.char.pose, self.type, self.id, str(self.color), str(self.char.body._hash)] )
|
||||||
return hash(salt)
|
return hash(salt)
|
||||||
@ -200,8 +205,8 @@ init python:
|
|||||||
def apply_color(self, img, n):
|
def apply_color(self, img, n):
|
||||||
"""Takes image and int layer number. Used internally."""
|
"""Takes image and int layer number. Used internally."""
|
||||||
try:
|
try:
|
||||||
c = TintMatrix(self.color[n])
|
c = self.color[n]
|
||||||
return Transform(img, matrixcolor=c)
|
return Transform(img, matrixcolor=TintMatrix(c)*OpacityMatrix(c.alpha))
|
||||||
except TypeError:
|
except TypeError:
|
||||||
print(f"Item doesn't support colors but was supplied with a list; Try removing numbered files in its directory:\n{self.__repr__()}")
|
print(f"Item doesn't support colors but was supplied with a list; Try removing numbered files in its directory:\n{self.__repr__()}")
|
||||||
d = At(Frame(Text("TypeErr", color="#ffff00"), tile=True), blink_repeat)
|
d = At(Frame(Text("TypeErr", color="#ffff00"), tile=True), blink_repeat)
|
||||||
|
@ -501,8 +501,8 @@ init python:
|
|||||||
return [x[0] for x in self.states.values() if istype(x[0], DollClothDynamic) and type == x[0].tracking]
|
return [x[0] for x in self.states.values() if istype(x[0], DollClothDynamic) and type == x[0].tracking]
|
||||||
|
|
||||||
def create_outfit(self, temp=False):
|
def create_outfit(self, temp=False):
|
||||||
"""Creates a copy of the current character clothes and stores it."""
|
"""Creates a copy of the current character clothes and stores it. Used only for comparing instances inside the wardrobe."""
|
||||||
return DollOutfit([x[0] for x in self.states.values() if x[0]], True, temp=temp)
|
return DollOutfit([x[0] for x in self.states.values() if x[0] and x[0].type not in self.body_layers], True, temp=temp)
|
||||||
|
|
||||||
def import_outfit(self, path, fromfile=True):
|
def import_outfit(self, path, fromfile=True):
|
||||||
"""Imports outfit from .png file or clipboard text."""
|
"""Imports outfit from .png file or clipboard text."""
|
||||||
|
@ -6,6 +6,7 @@ init python:
|
|||||||
|
|
||||||
def __init__(self, group, unlocked=False, name="", desc="", price=0, temp=False, schedule={}, hidden=False, addons=[]):
|
def __init__(self, group, unlocked=False, name="", desc="", price=0, temp=False, schedule={}, hidden=False, addons=[]):
|
||||||
self.group = [x.clone() if not x.parent else x for x in group]
|
self.group = [x.clone() if not x.parent else x for x in group]
|
||||||
|
self.group.sort()
|
||||||
self.name = name
|
self.name = name
|
||||||
self.desc = desc
|
self.desc = desc
|
||||||
self.price = price
|
self.price = price
|
||||||
@ -34,7 +35,7 @@ init python:
|
|||||||
return self._hash == obj._hash
|
return self._hash == obj._hash
|
||||||
|
|
||||||
def generate_hash(self):
|
def generate_hash(self):
|
||||||
salt = str( [self.name, str([x._hash for x in self.group]) ] )
|
salt = str( [x._hash for x in self.group] )
|
||||||
return hash(salt)
|
return hash(salt)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
|
@ -2872,7 +2872,7 @@ Farewell, my little [word_03].{/size}
|
|||||||
|
|
||||||
pause 2
|
pause 2
|
||||||
|
|
||||||
$ states.her.ev.yule_ball.completed = True
|
$ states.her.ev.yule_ball.complete = True
|
||||||
$ persistent.game_complete = True
|
$ persistent.game_complete = True
|
||||||
$ persistent.gold = game.gold
|
$ persistent.gold = game.gold
|
||||||
|
|
||||||
|
@ -255,7 +255,7 @@ label quests:
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
# Ending events
|
# Ending events
|
||||||
if states.her.ev.yule_ball.started and not states.her.ev.yule_ball.completed:
|
if states.her.ev.yule_ball.started and not states.her.ev.yule_ball.complete:
|
||||||
jump ball_ending_E1
|
jump ball_ending_E1
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user