예제 #1
0
 def get(self):
     _trace = TRACE+'Home:: get() '
     logging.info(_trace)        
     battles = models.BattlePin.all().fetch(100)
     monsters = models.MonsterPartyPin.all().fetch(100)
     players = models.PlayerPartyPin.all().fetch(100) 
     battles_json = []
     monsters_json = []
     players_json = []
     for b in battles:
         lat, lon = utils.parseGeoPt(b.location)
         data = {'name': b.name,'lat': lat,'lon': lon}
         battles_json.append(data)
     for m in monsters:
         lat, lon = utils.parseGeoPt(m.location)
         data = {'name': m.name,'lat': lat,'lon': lon}
         monsters_json.append(data)  
     for p in players:
         lat, lon = utils.parseGeoPt(p.location)
         data = {'name': p.name,'lat': lat,'lon': lon}
         players_json.append(data)
           
     logging.info(_trace+'battles = '+simplejson.dumps(battles_json))
     logging.info(_trace+'monsters = '+simplejson.dumps(monsters_json))
     logging.info(_trace+'players = '+simplejson.dumps(players_json))
     template_values = {
         'players': simplejson.dumps(players_json),
         'monsters': simplejson.dumps(monsters_json),
         'battles': simplejson.dumps(battles_json)
     }        
     generate(self, 'main.html', template_values)
예제 #2
0
def spawnLocation(location, meters=60):
    """Creates a new location within random meters of provided location.
    Returns: a new location.
    """   
    _trace=TRACE+"spawnLocation() "
    logging.info(_trace)
    lat, lon = utils.parseGeoPt(location)
    logging.info(_trace+'lat = '+lat)
    logging.info(_trace+'lon = '+lon)
    
    # Randomly determine distance of new lat/lon
    ran_lat_meters = utils.roll(meters, 1)
    ran_lon_meters = utils.roll(meters, 1)
    logging.info(_trace+'ran_lat_meters = '+str(ran_lat_meters))
    logging.info(_trace+'ran_lon_meters = '+str(ran_lon_meters))
        
    lat_meters = ran_lat_meters*.00001
    lon_meters = ran_lon_meters*.00001
    logging.info(_trace+'lat_meters = '+str(lat_meters))
    logging.info(_trace+'lon_meters = '+str(lon_meters))

    # Randomly determine direction of new lat/lon
    pos_lat_vector = random.choice([True, False])
    pos_lon_vector = random.choice([True, False])
    logging.info(_trace+'pos_lat_vector = '+str(pos_lat_vector))
    logging.info(_trace+'pos_lon_vector = '+str(pos_lon_vector))
        
    lat = utils.strToIntOrFloat(lat)
    lon = utils.strToIntOrFloat(lon)
    new_lat = lat
    new_lon = lon
    if pos_lat_vector == False:
        new_lat = lat - lat_meters  
        logging.info(_trace+'False new_lat = '+str(new_lat))
    
    else:
        new_lat = lat + lat_meters              
        logging.info(_trace+'True new_lat = '+str(new_lat))
        
    if pos_lon_vector == False:
        new_lon = lon - lon_meters
        logging.info(_trace+'False new_lon = '+str(new_lon))    
    
    else:
        new_lon = lon + lon_meters
        logging.info(_trace+'True new_lon = '+str(new_lon))
                        
    new_location = db.GeoPt(str(new_lat), str(new_lon))
    return new_location
예제 #3
0
 def get(self, method):
     _trace = TRACE+'Test:: get() '
     logging.info(_trace)
     if method == "start": 
         pc_templates = models.PlayerCharacterTemplate.all().fetch(100) 
         user = users.get_current_user()
         characters = models.Character.all().filter('user ='******'pc_templates': pc_templates,
             'characters': characters,
             'user': user
         }        
         generate(self, 'test/test_start.html', template_values)
         
     elif method == "quest":
         user = users.get_current_user()
         key = self.request.get('key')
         character = db.get(key)
         party = models.PlayerParty.all().filter('leader = ', character).get()
         template_values = {
             'party': party,
             'character': character,
             'user': user
         }        
         generate(self, 'test/test_quest.html', template_values) 
         
     elif method == "attack":
         user = users.get_current_user()
         key = self.request.get('key')
         character = db.get(key)
         items = db.get(character.items)
         powers = db.get(character.powers)
         party = models.PlayerParty.all().filter('leader = ', character).get()
         monster_party = models.NonPlayerParty.get_by_id(171)
         monsters = db.get(monster_party.monsters)
         template_values = {
             'party': party,
             'monster_party': monster_party,
             'monsters': monsters,
             'character': character,
             'items': items,
             'powers': powers,
             'user': user
         }        
         generate(self, 'test/test_attack.html', template_values)   
     
     elif method == "map": 
         battles = models.BattlePin.all().fetch(100)
         monsters = models.MonsterPartyPin.all().fetch(100)
         players = models.PlayerPartyPin.all().fetch(100) 
         battles_json = []
         monsters_json = []
         players_json = []
         for b in battles:
             lat, lon = utils.parseGeoPt(b.location)
             data = {'name': b.name,'lat': lat,'lon': lon}
             battles_json.append(data)
         for m in monsters:
             lat, lon = utils.parseGeoPt(m.location)
             data = {'name': m.name,'lat': lat,'lon': lon}
             monsters_json.append(data)  
         for p in players:
             lat, lon = utils.parseGeoPt(p.location)
             data = {'name': p.name,'lat': lat,'lon': lon}
             players_json.append(data)
           
         logging.info(_trace+'battles = '+simplejson.dumps(battles_json))
         logging.info(_trace+'monsters = '+simplejson.dumps(monsters_json))
         logging.info(_trace+'players = '+simplejson.dumps(players_json))
         template_values = {
             'players': simplejson.dumps(players_json),
             'monsters': simplejson.dumps(monsters_json),
             'battles': simplejson.dumps(battles_json)
         }        
         generate(self, 'test/test_map.html', template_values)