Exemplo n.º 1
0
def lyse(corps, celluleKey):
	j=0
	enemiPopulationLimite = data.get_modeItem("enemiPopulationLimite")
	x = corps[celluleKey]["x"]
	y = corps[celluleKey]["y"]
	rayon = corps[celluleKey]["r"]
	listePos=[[x, y+rayon/2], [x+rayon*math.cos(math.pi/6)/2, y+rayon*math.sin(math.pi/6)/2], [x-rayon*math.cos(math.pi/6)/2, y+rayon*math.sin(math.pi/6)/2]]
	listeVirus = game.GET_OBJET("virus")
	nombreVirus = 0
	
	for k in listeVirus:
		nombreVirus+=1
	
	for pos in listePos:
		continuer = 1
		while continuer:
			if nombreVirus<enemiPopulationLimite:
				if "virus"+str(j) not in corps.keys():
					game.creerObjet(corps, "virus"+str(j), pos[0], pos[1], data.get_objet("virus", "rayon"), data.get_objet("virus", "vitesse"), data.get_objet("virus", "angle"), data.get_objet("virus", "pushUp"), data.get_objet("virus", "pushDown"), data.get_objet("virus", "pushLeft"), data.get_objet("virus", "pushRight"), data.get_objet("virus", "limiteVitesse"), data.get_objet("virus", "acceleration"), math.pi/data.get_objet("virus", "anglePlus"), data.get_objet("virus", "mitoseTime"), None, [0, 0, 0], 0, None)
					continuer=0
				else:
					j+=1
			else:
				continuer=0
			
	

	return True
Exemplo n.º 2
0
def creerVirus(corps):
	global i	
	x, y = 0, 0
	FENETRE = data.get_fenetre()

	if i == -1:
		x = random.randint(FENETRE[0][0], FENETRE[0][1] - 2 * data.get_objet("virus", "rayon"))
		y = random.randint(FENETRE[1][0], FENETRE[1][1] - 2 * data.get_objet("virus", "rayon"))

		game.creerObjet(corps, "virus0", x, y, data.get_objet("virus", "rayon"), data.get_objet("virus", "vitesse"), data.get_objet("virus", "angle"), data.get_objet("virus", "pushUp"), data.get_objet("virus", "pushDown"), data.get_objet("virus", "pushLeft"), data.get_objet("virus", "pushRight"), data.get_objet("virus", "limiteVitesse"), data.get_objet("virus", "acceleration"), math.pi/data.get_objet("virus", "anglePlus"), data.get_objet("virus", "mitoseTime"), None, [0, 0, 0], 0, None)
		i=0
	return True
Exemplo n.º 3
0
def mitose(corps):
	global i
	
	listeCellule = game.GET_OBJET('cellule')
	listeVirus = game.GET_OBJET("virus")
	celluleMap = cell.GET_MAP()
	FENETRE = data.get_fenetre()
	
	# Limit of allowed active bacterias
	enemiPopulationLimite = data.get_modeItem('enemiPopulationLimite')
	x, y, continuer = 0, 0, 0
	
	# Initializes the initial mitosis
	if mode.get() is "bacteria":
		item="bacteria"
		if i == -1:
			for celluleKey in listeCellule:
				continuer = 0
				
				while continuer == 0:
					x = random.randint(FENETRE[0][0], FENETRE[0][1] - 2 * data.get_objet('bacteria', 'rayon'))
					y = random.randint(FENETRE[1][0], FENETRE[1][1] - 2 * data.get_objet('bacteria', 'rayon'))
					game.creerObjet(corps, 'bacteria0', x, y, data.get_objet('bacteria', 'rayon'), data.get_objet('bacteria', 'vitesse'), data.get_objet('bacteria', 'angle'), data.get_objet('bacteria', 'pushUp'), data.get_objet('bacteria', 'pushDown'), data.get_objet('bacteria', 'pushLeft'), data.get_objet('bacteria', 'pushRight'), data.get_objet('bacteria', 'limiteVitesse'), data.get_objet('bacteria', 'acceleration'), math.pi/data.get_objet('bacteria', 'anglePlus'), data.get_objet('bacteria', 'mitoseTime'), data.get_objet('bacteria', 'projectileTime'), [0, 0, 0], 0, None)
				
					if collision.collisionPhagocyteBacteria(corps, 'bacteria0') == True and collision.collisionCellule(corps, 'bacteria0', celluleKey, celluleMap) is not False:
						continuer = 1
					else:
						game.supprimerObjet(corps, 'bacteria0')
			
			i = 0
		
		# Process mitosis
		for key in corps.keys():
			if i > enemiPopulationLimite:
				i = 0
			
			if 'bacteria' in key:
				if corps[key]['clock'][1] == corps[key]['mitoseTime']:
					game.creerObjet(corps, 'bacteria' + str(i), corps[key]['x'] + corps[key]['r'] * 2, corps[key]['y'], data.get_objet('bacteria', 'rayon'), data.get_objet('bacteria', 'vitesse'), data.get_objet('bacteria', 'angle'), data.get_objet('bacteria', 'pushUp'), data.get_objet('bacteria', 'pushDown'), data.get_objet('bacteria', 'pushLeft'), data.get_objet('bacteria', 'pushRight'), data.get_objet('bacteria', 'limiteVitesse'), data.get_objet('bacteria', 'acceleration'), math.pi/data.get_objet('bacteria', 'anglePlus'), data.get_objet('bacteria', 'mitoseTime'), data.get_objet('bacteria', 'projectileTime'), [0, 0, 0], 0, None)
					loiMitose(corps[key], corps['bacteria' + str(i)])
					
					i += 1
					corps[key]['clock'][1] = 0
				
				corps[key]['clock'][1] += 1
		
	return True
Exemplo n.º 4
0
def creerCellule(corps):
	global i
	
	celluleMap = data.get_celluleMap()
	
	if i == -1:
		for cel in celluleMap:
			i += 1
			
			game.creerObjet(corps, 'cellule' + str(cel[3]), cel[0], cel[1], data.get_objet('cellule', 'rayon'), data.get_objet('cellule', 'vitesse'), data.get_objet('cellule', 'angle'), data.get_objet('cellule', 'pushUp'), data.get_objet('cellule', 'pushDown'), data.get_objet('cellule', 'pushLeft'), data.get_objet('cellule', 'pushRight'), data.get_objet('cellule', 'limiteVitesse'), data.get_objet('cellule', 'acceleration'), data.get_objet('cellule', 'anglePlus'), data.get_objet('cellule', 'mitoseTime'), data.get_objet('cellule', 'projectileTime'), [0, 0, 0], [[0, 0], [0, 0]], [False, 0, data.get_objet("cellule", "lyseTime")])
		
		i=0
	
	else:
		listeCellule = game.GET_OBJET('cellule')
		mitose(corps, celluleMap, listeCellule)
	
	return True
Exemplo n.º 5
0
def creerProjectile(corps):
	for key in corps.keys():
		if 'bacteria' in key:
			if corps[key]['projectileTime'] <= corps[key]['clock'][2]:
				i = 0	
				continuer = 1
				
				while continuer:
					if 'projectile' + str(i)  not in corps.keys():
						game.creerObjet(corps, 'projectile' + str(i), corps[key]['x'], corps[key]['y'], data.get_objet('projectile', 'rayon'), data.get_objet('projectile', 'vitesse'), data.get_objet('projectile', 'angle'), data.get_objet('projectile', 'pushUp'), data.get_objet('projectile', 'pushDown'), data.get_objet('projectile', 'pushLeft'), data.get_objet('projectile', 'pushRight'), data.get_objet('projectile', 'limiteVitesse'), data.get_objet('projectile', 'acceleration'), data.get_objet('projectile', 'anglePlus'), None, None, [0, 0], 0, None)
						
						corps[key]['clock'][2] = 0
						continuer = 0
					
					i += 1
				
				dynamics.projectileAngle(corps, 'projectile' + str(i - 1))
			
			corps[key]['clock'][2] += 1
	
	return True
Exemplo n.º 6
0
def mitose(corps, celluleMap, listeCellule):
	doubleMitose = 0
	celluleManquante = 0
	celluleMap=data.get_celluleMap()
	
	# Generate a random mitosis for each cell
	for key in listeCellule:
		celMap = 0
		celMapCible1 = 0
		celMapCible2 = 0
		celMap = celluleMap[int(key.strip('cellule'))]
		
		if celMap[4][0] != -1:
			celMapCible1 = celluleMap[celMap[4][0]]
		
		if celMap[4][1] != -1:
			celMapCible2 = celluleMap[celMap[4][1]]
		
		if celMapCible1 != 0:
			if celMapCible1[2] == 0:
				if corps[key]['clock'][1] >= corps[key]['mitoseTime']:
					game.creerObjet(corps, 'cellule' + str(celMapCible1[3]), celMapCible1[0], celMapCible1[1], data.get_objet('cellule', 'rayon'), data.get_objet('cellule', 'vitesse'), data.get_objet('cellule', 'angle'), data.get_objet('cellule', 'pushUp'), data.get_objet('cellule', 'pushDown'), data.get_objet('cellule', 'pushLeft'), data.get_objet('cellule', 'pushRight'), data.get_objet('cellule', 'limiteVitesse'), data.get_objet('cellule', 'acceleration'), data.get_objet('cellule', 'anglePlus'), data.get_objet('cellule', 'mitoseTime'), data.get_objet('cellule', 'projectileTime'), [0, 0, 0], [[0, 0], [0, 0]], [False, 0, data.get_objet("cellule", "lyseTime")])
					corps[key]['clock'][1] = 0
					doubleMitose = 1
				
				else:
					 
					corps[key]['clock'][1] += 1
		
		if celMapCible2 != 0 and not doubleMitose:
			if celMapCible2[2] == 0:
				if corps[key]['clock'][1] >= corps[key]['mitoseTime']:
					game.creerObjet(corps, 'cellule' + str(celMapCible2[3]), celMapCible2[0], celMapCible2[1], data.get_objet('cellule', 'rayon'), data.get_objet('cellule', 'vitesse'), data.get_objet('cellule', 'angle'), data.get_objet('cellule', 'pushUp'), data.get_objet('cellule', 'pushDown'), data.get_objet('cellule', 'pushLeft'), data.get_objet('cellule', 'pushRight'), data.get_objet('cellule', 'limiteVitesse'), data.get_objet('cellule', 'acceleration'), data.get_objet('cellule', 'anglePlus'), data.get_objet('cellule', 'mitoseTime'), data.get_objet('cellule', 'projectileTime'), [0, 0, 0], [[0, 0], [0, 0]], [False, 0, data.get_objet("cellule", "lyseTime")])
					corps[key]['clock'][1] = 0
				
				else:
					corps[key]['clock'][1] += 1
	return True