Ejemplo n.º 1
0
	def kill( self ):
		'''Decreases the number of hits necessary for the target to be destroyed and changes the target's color. Called everytime a OBJECT(BraitenbergBall) hits the target.'''
		self.control.playTargetSound()
		self.counter -= 1
		self.setColor( breve.vector( 0, 1, self.counter * 0.2 ) )
		if self.counter==0:
			breve.deleteInstance(self)
			self.control.updateTargets()
Ejemplo n.º 2
0
    def iterate(self):
        super(Environ, self).iterate()

        if self.next_plant_born < time.time():
            self.bord_plant()
            self.next_plant_born = time.time() + random.random()*2.0 + 1.0

        try:
            for plant in self.plants:
                if plant.energy < 0.01:
                    print "Plant eaten"
                    self.plants.remove(plant)
                    breve.deleteInstance(plant)

            for rabbit in self.rabbits:
                if rabbit.fat < 0.01:
                    print "Rabbit eaten"
                    self.__on_rabbit_die(rabbit, LiveLog.EATEN)
                    self.rabbits.remove(rabbit)
                    breve.deleteInstance(rabbit)
                elif rabbit.get_age() > rabbit.die_at_age:
                    print "Rabbit died"
                    self.__on_rabbit_die(rabbit, LiveLog.AGE)
                    self.rabbits.remove(rabbit)
                    breve.deleteInstance(rabbit)
                elif rabbit.dead and not rabbit.was_eaten:
                    if not rabbit.logged:
                        print "Rabbit starved"
                    self.__on_rabbit_die(rabbit, LiveLog.STARV)
                elif rabbit.dead:
                    self.__on_rabbit_die(rabbit, LiveLog.EATEN)

            for wolf in self.wolves:
                if wolf.health < 0.01:
                    print "Wolf eaten"
                    self.wolves.remove(wolf)
                    self.__on_wolf_die(wolf, LiveLog.STARV)
                    breve.deleteInstance(wolf)
                elif wolf.get_age() > wolf.die_at_age:
                    print "Wolf died"
                    self.wolves.remove(wolf)
                    self.__on_wolf_die(wolf, LiveLog.AGE)
                    breve.deleteInstance(wolf)
        except Exception, e:
            print "ERROR: %s" % e