def _setup_camp(m): cfire=m.make('campfire',pos=(100,-50,settlement_height)) m.make('fire',pos=(0,0,0),parent=cfire.id) cfire=m.make('campfire',pos=(90,-50,settlement_height)) m.make('fire',pos=(0,0,0),parent=cfire.id) for i in range(10, 350, 5): direction=Vector3D(sin(radians(i)) * uniform(0,2), cos(radians(i)) * uniform(0,2), 10).unit_vector() orient=Quaternion(Vector3D(0, 1, 0), direction) m.make('stake', pos=(100 + 14 * sin(radians(i)), -50 + 16 * cos(radians(i)), -1), bbox=[-0.5,-0.5,0,0.5,0.5,5 + uniform(0,2)], orientation=orient.as_list()) camp_area_points=[] for i in range(10, 350, 17): camp_area_points.append([14 * sin(radians(i)), 16 * cos(radians(i))]) camp_area={'shape': {'points': camp_area_points, 'type': 'polygon'}, 'layer': 7 } m.make('path', name='camp_area', pos=camp_pos, area=camp_area, bbox=[-14, -16, 0, 14, 16, 1], spawn={'name': 'goblin village', 'character_types': ['goblin'], 'contains': ['shirt', 'pants', 'cloak', 'boots', 'hat']})
def _setup_camp(m): cfire=m.make('campfire',pos=(100,-50,settlement_height)) m.make('fire',pos=(0,0,0),parent=cfire.id) cfire=m.make('campfire',pos=(90,-50,settlement_height)) m.make('fire',pos=(0,0,0),parent=cfire.id) for i in range(10, 350, 5): direction=Vector3D(sin(radians(i)) * uniform(0,2), cos(radians(i)) * uniform(0,2), 10).unit_vector() orient=Quaternion(Vector3D(0,0,1), direction) m.make('stake', pos=(100 + 14 * sin(radians(i)), -50 + 16 * cos(radians(i)), -1), bbox=[-0.5,-0.5,0,0.5,0.5,5 + uniform(0,2)], orientation=orient.as_list()) camp_area_points=[] for i in range(10, 350, 17): camp_area_points.append([14 * sin(radians(i)), 16 * cos(radians(i))]) camp_area={'shape': {'points': camp_area_points, 'type': 'polygon'}, 'layer': 7 } m.make('path', name='camp_area', pos=camp_pos, area=camp_area, bbox=[-14, -16, 0, 14, 16, 1], spawn={'name': 'goblin village', 'character_types': ['goblin'], 'contains': ['shirt', 'trousers', 'cloak', 'boots', 'hat']})
def _setup_camp(m): cfire = m.make("campfire", pos=(100, -50, settlement_height)) m.make("fire", pos=(0, 0, 0), parent=cfire.id) cfire = m.make("campfire", pos=(90, -50, settlement_height)) m.make("fire", pos=(0, 0, 0), parent=cfire.id) for i in range(10, 350, 5): direction = Vector3D(sin(radians(i)) * uniform(0, 2), cos(radians(i)) * uniform(0, 2), 10).unit_vector() orient = Quaternion(Vector3D(0, 0, 1), direction) m.make( "stake", pos=(100 + 14 * sin(radians(i)), -50 + 16 * cos(radians(i)), -1), bbox=[-0.5, -0.5, 0, 0.5, 0.5, 5 + uniform(0, 2)], orientation=orient.as_list(), ) camp_area_points = [] for i in range(10, 350, 17): camp_area_points.append([14 * sin(radians(i)), 16 * cos(radians(i))]) camp_area = {"shape": {"points": camp_area_points, "type": "polygon"}, "layer": 7} m.make( "path", name="camp_area", pos=camp_pos, area=camp_area, bbox=[-14, -16, 0, 14, 16, 1], spawn={ "name": "goblin village", "character_types": ["goblin"], "contains": ["shirt", "trousers", "cloak", "boots", "hat"], }, )
def _add_obstacles(m): for i in range(0, num_obstacles): xpos = uniform(xmin, xmax) ypos = uniform(ymin, ymax) orient = Quaternion(Vector3D(0, 1, 0), uniform(0, pi * 2.0)) m.make('stone_palisade', pos=(xpos, ypos, defaultZ), orientation=orient.as_list())
def _add_agents(m): for i in range(0, num_humans): xpos = uniform(xmin, xmax) ypos = uniform(ymin, ymax) orient = Quaternion(Vector3D(0, 0, 1), uniform(0, pi * 2.0)) h = m.make('human', pos=(xpos, ypos, defaultZ), orientation=orient.as_list()) m.know(h, [('w1', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ)) , ('w2', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ)) , ('w3', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ)) , ('w4', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ))]) m.learn(h, [(il.patrol, "patrol(['w1', 'w2', 'w3', 'w4'])")])