WTS/game/scripts/minigames/dueling/classes.rpy

182 lines
6.6 KiB
Plaintext

# init python:
# # TODO: Optimize the render functions, they seem to be too resource heavy.
# class class_draw_sign(renpy.Displayable):
# def __init__(self, width, height, shape):
# super(class_draw_sign, self).__init__(self)
# self.width = width
# self.height = height
# self.shape = shape
# def render(self, width, height, st, at):
# render = renpy.Render(self.width, self.height)
# for i in self.shape:
# render.canvas().circle((0, 0, 0), i, 10, 0)
# return render
# class class_draw_shape(renpy.Displayable):
# def __init__(self, color, width, height, mode):
# super(class_draw_shape, self).__init__(self)
# self.color = color
# self.mode = mode
# self.width = width
# self.height = height
# self.shape = []
# self.drawing = False
# self.active = True
# self.cached = False
# def render(self, width, height, st, at):
# render = renpy.Render(self.width, self.height)
# if self.mode == 0:
# for i in self.shape:
# render.canvas().circle(self.color, i, 5, 0)
# elif self.mode == 1:
# if self.shape:
# render.canvas().lines(self.color, False, self.shape, 10)
# return render
# def event(self, ev, x, y, st):
# if self.active:
# if renpy.map_event(ev, 'mousedown_1'):
# self.drawing = True
# elif renpy.map_event(ev, 'mouseup_1'):
# self.drawing = False
# self.cached = False
# if self.drawing:
# if ev.type == pygame.MOUSEMOTION:
# self.shape.append((x, y))
# if self.mode == 1:
# renpy.redraw(self, 0)
# else:
# if not self.cached:
# self.cached = True
# renpy.redraw(self, 0)
# class class_draw_canvas(renpy.Displayable):
# _precision = 10
# interactive = True
# mode = 1 # 0 Precise, 1 fast
# color = (211, 211, 211) # Green
# def __init__(self, width, height, sign):
# super(class_draw_canvas, self).__init__(self)
# self.width = width
# self.height = height
# self.sign = class_draw_sign(self.width, self.height, sign)
# self.children = []
# self.current_child = None
# self.score = 0
# self.set_boundries()
# def render(self, width, height, st, at):
# render = renpy.Render(self.width, self.height)
# render.place(self.sign, 0, 0)
# for child in self.children:
# render.place(child, 0, 0)
# return render
# def event(self, ev, x, y, st):
# if self.width > x > 0 and self.height > y > 0:
# if self.interactive:
# if renpy.map_event(ev, 'mousedown_1'):
# #self.clear()
# new_child = class_draw_shape(self.color, self.width, self.height, self.mode)
# self.children.append(new_child)
# self.current_child = new_child
# renpy.redraw(self, 0)
# if renpy.map_event(ev, 'mouseup_1'):
# self.current_child.cached = False
# self.current_child.active = False
# self.check_shape()
# for child in self.children:
# child.event(ev, x, y, st)
# def clear(self):
# for i in self.children:
# del i
# self.children = []
# self.score = 0
# renpy.redraw(self, 0)
# def visit(self):
# return self.children
# def check_shape(self):
# global _sign_value, _sign_max
# max_score = len(self.sign.shape)
# score = 0
# temp = []
# if self.current_child.shape != []:
# for t in self.sign.shape:
# if t in temp:
# continue
# for i in self.current_child.shape:
# if t[0]-self.precision <= i[0] <= t[0]+self.precision and t[1]-self.precision <= i[1] <= t[1]+self.precision:
# temp.append(t)
# score += 1
# break
# for i in self.current_child.shape:
# if not self.boundries[0] <= i[0] <= self.boundries[2] or not self.boundries[1] <= i[1] <= self.boundries[3]:
# score -= 1
# if len(temp) < max_score:
# score -= max_score-len(temp)
# print "scored %s out of %s" % (score, max_score)
# print "boundries = %s" % self.boundries
# if score > 0:
# self.score = round(100 * float(score)/float(max_score), 2)
# else:
# self.score = 0.0
# _sign_value = 0.0
# _sign_max = self.score
# renpy.end_interaction(("result", self.score))
# return
# def set_boundries(self):
# self.boundries = [1000, 1000, -1000, -1000]
# for i in self.sign.shape:
# self.boundries[0] = min(self.boundries[0], i[0])
# self.boundries[1] = min(self.boundries[1], i[1])
# self.boundries[2] = max(self.boundries[2], i[0])
# self.boundries[3] = max(self.boundries[3], i[1])
# self.boundries[0], self.boundries[1], self.boundries[2], self.boundries[3] = self.boundries[0]-self.precision, self.boundries[1]-self.precision, self.boundries[2]+self.precision, self.boundries[3]+self.precision
# return
# @property
# def precision(self):
# return self._precision
# @precision.setter
# def precision(self, value):
# self._precision = value
# self.set_boundries()
# def force_redraw(self):
# renpy.redraw(self, 0)
# return
#