import pygame
import main					#able to load the lib
main.init()					#
import data, color, spr_type				#then load the libs
from color import *
import random

def init():
	global sgrey_img
	global sgrey_rect
	global sblue_img
	global sblue_rect
	global sred_img
	global sred_rect
	global syell_img
	global syell_rect
	sgrey_img = data.load_img('sgrey.png')
	sgrey_rect = sgrey_img.get_rect()
	sgrey_img.convert()
	sgrey_img.set_colorkey(white)
	sblue_img = data.load_img('sblue.png')
	sblue_rect = sblue_img.get_rect()
	sblue_img.convert()
	sblue_img.set_colorkey(white)
	sred_img = data.load_img('sred.png')
	sred_rect = sred_img.get_rect()
	sred_img.convert()
	sred_img.set_colorkey(white)
	syell_img = data.load_img('syell.png')
	syell_rect = syell_img.get_rect()
	syell_img.convert()
	syell_img.set_colorkey(white)

class spring(pygame.sprite.Sprite):
	def __init__(self,x,y,color):
		pygame.sprite.Sprite.__init__(self)
		self.spr_type = spr_type.type_spring
		if color == grey:
			self.color = grey
			self.image = sgrey_img
			self.rect = sgrey_rect
		if color == blue:
			self.color = blue
			self.image = sblue_img
			self.rect = sblue_rect
		if color == yellow:
			self.color = yellow
			self.image = syell_img
			self.rect = syell_rect
		if color == red:
			self.color = red
			self.image = sred_img
			self.rect = sred_rect
		self.rect = self.rect.move(x,y)
		self.bong = True
		self.fall = False
		self.dropx, self.dropy = (random.randint(80,560),random.randint(80,400))

	def update(self):
		if self.bong:
			if self.rect.bottom > 0:
				self.rect.centery -= 20
			else:
				self.rect.centerx = self.dropx
				self.fall = True
				self.bong = False
		if self.fall:
			if self.rect.bottom < self.dropy:
				self.rect.centery += 7
			else:
				self.fall = False
				self.dropx, self.dropy = None, None


	def draw(self,screen):
		screen.blit(self.image, self.rect)

		

if __name__=="__main__":
	#tester
	pygame.init()					#first
	screen = pygame.display.set_mode((640,480))	#the screen
	clock = pygame.time.Clock()			#the time

	#accelerator
	exit_button = pygame.QUIT
	pygame.event.set_blocked(None)
	pygame.event.set_allowed(exit_button)
	happen = pygame.event.peek
	fps = clock.tick
	flip = pygame.display.flip
	cls = screen.fill
	white = color.white

	#spring
	init()
	springs = pygame.sprite.Group()

	#main loop
	end = False
	while not end:
		fps(40)
		flip()
		cls(white)
		if happen(exit_button):
			end = True
		else:
			pygame.event.clear()
		#test spring
		if True in pygame.mouse.get_pressed():
			(x,y) = pygame.mouse.get_pos()
			springs.add(spring(x,y,grey))
		springs.update()
		springs.draw(screen)

