#This file is distributed under the terms of the GNU General Public license. #Copyright (C) 1999 Aloril (See the file COPYING for details). #Copyright (C) 2000-2008 Alistair Riddoch from atlas import * from random import * from mind.panlingua import interlinguish il=interlinguish from cyphesis import probability from cyphesis.editor import editor from physics import Quaternion from physics import Vector3D import time from math import * from define_world import * def test_skeleton(host='', account='', password='', **args): # general things m=create_editor(host, account, password) skeleton = m.make('skeleton', pos=(-38,-25,settlement_height)) m.learn(skeleton,skeleton_goals) def test_pig(host='', account='', password='', **args): # general things m=create_editor(host, account, password) pig = m.make('pig', pos=(3,3,settlement_height)) m.learn(pig,pig_goals) m.make('acorn', pos=(4,4,settlement_height)) def test_browse(host='', account='', password='', **args): # test if browsing works m=create_editor(host, account, password) deer = m.make('deer', pos=(5, 0, settlement_height)) m.learn(deer, (il.browse,"browse('fir', 0.8)")) m.make('fir',pos=(-10,-0,settlement_height)) m.make('fir',pos=(-0,-10,settlement_height)) m.make('fir',pos=(0,10,settlement_height)) m.make('fir',pos=(10,0,settlement_height)) def test_forest(host='', account='', password='', **args): # test if browsing works m=create_editor(host, account, password) for i in forests: for j in range(0, i[1]): m.make(i[0],pos=(uniform(i[2],i[3]),uniform(i[4],i[5]),i[6]), orientation=directions[randint(0,7)]) def test_coll(host='', account='', password='', **args): m=create_editor(host, account, password) sty=m.make('sty',pos=pig_sty_pos,status=1.0,bbox=[5,5,3], orientation=directions[0]) def test_butcher(host='', account='', password='', **args): m=create_editor(host, account, password) butcher=m.make('merchant', name='Ulad Bargan',desc='the butcher', pos=(3,3,0),age=probability.fertility_age) cleaver=m.make('cleaver', place='market', pos=(3,2.5,settlement_height)) m.own(butcher,cleaver) m.learn(butcher,(il.trade,"trade('pig', 'cleaver', 'cut', 'ham', 'market')")) piglet = m.make('pig', pos=(3,2,0)) def test_pig(host='', account='', password='', **args): m=create_editor(host, account, password) piglet = m.make('pig', pos=(-3,-1,settlement_height)) m.learn(piglet,pig_goals) def test_settler(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('axe',pos=(0,0,0),parent=settler.id) m.own(settler,axe) m.know(settler,[('forest','location',(30,30,0))]) m.learn(settler,(il.trade,"harvest_resource('lumber','oak','forest','axe')")) m.make('oak',pos=(32,32,0)) def test_forester(host='', account='', password='', **args): m=create_editor(host, account, password) # An NPC forester settler=m.make('settler', name='forester',pos=(0, 12, 0)) trowel=m.make('trowel',pos=(0,0,0),parent=settler.id) m.own(settler, trowel) m.know(settler,[('forest','location',(30,30,0))]) m.learn(settler,(il.trade,"plant_seeds('acorn','oak','forest','trowel')")) m.make('oak',pos=(32,32,0)) def test_warrior(host='', account='', password='', **args): m=create_editor(host, account, password) # An NPC warrior warrior=m.make('mercenary',pos=(0, 12, 0)) m.learn(warrior,(il.trade,"gather(['loaf', 'axe'])")) def test_chicken(host='', account='', password='', **args): m=create_editor(host, account, password) chuck = m.make('chicken', pos=(-3,-1,settlement_height)) m.learn(chuck,chicken_goals) def test_path(host='', account='', password='', **args): m=create_editor(host, account, password) path_area={'points' : [ [2,0], [22, 40], [132,122], [140,127], [144.5, 146.5], [169, 153], [169,155], [142.5,148.5], [138,129], [130,124], [18,40], [-2,-1] ], 'layer' : 7} m.make('path', name='path to village',pos=(10, 20,settlement_height), area=path_area,bbox=[169,154,1]) lych2_knowledge=[('w1','location',(-140,110,graveyard_height)), ('w2','location',(-50,160,graveyard_height)), ('w3','location',(-80,40,graveyard_height)), ('w4','location',(-180,150,graveyard_height))] lych2_goals=[(il.assemble, "assemble(self, 'skeleton', ['skull', 'ribcage', 'arm', 'pelvis', 'thigh', 'shin'])"), (il.patrol,"patrol(['w1', 'w2', 'w3', 'w4'])")] def test_graveyard(host='', account='', password='', **args): m = create_editor(host, account, password) m.make('mausoleum', name='mausoleum of harrington', pos=mausoleum_pos, orientation=directions[0]) m.make('wall', name='steps',pos=(-160,100,graveyard_height),bbox=[4,4,2]) graveyard_area={'points': [[-10, -8], [15, -11], [13,23], [-8, 8]], 'layer':7 } m.make('path', name='graveyard', pos=(-150, 110, graveyard_height), area=graveyard_area, bbox=[-10, -11,0, 15, 23, 1]) path_area={'points' : [ [2, 0], [20, 20], [45, 60], [65, 70], [83, 40], [106, -15], [105, -12], [82, 36], [66, 67], [44, 57], [18, 16], [0, -4]], 'layer' : 7} m.make('path', name='path to graveyard',pos=(-150, 110, graveyard_height), area=path_area,bbox=[100,8,1]) gravestone_styles = ['simple', 'rounded', 'stylish'] m.make('gravestone', name='gravestone1', pos=(-145, 107, graveyard_height), orientation=directions[1], style = gravestone_styles[randint(0,2)]) m.make('gravestone', name='gravestone2', pos=(-147, 104, graveyard_height), orientation=directions[2], style = gravestone_styles[randint(0,2)]) m.make('gravestone', name='gravestone3', pos=(-148, 109, graveyard_height), orientation=directions[3], style = gravestone_styles[randint(0,2)]) m.make('gravestone', name='gravestone4', pos=(-150, 117, graveyard_height), orientation=directions[2], style = gravestone_styles[randint(0,2)]) m.make('gravestone', name='gravestone5', pos=(-143, 111, graveyard_height), orientation=directions[4], style = gravestone_styles[randint(0,2)]) m.make('gravestone', name='gravestone6', pos=(-149, 110, graveyard_height), orientation=directions[3], style = gravestone_styles[randint(0,2)]) m.make('gravestone', name='gravestone7', pos=(-147, 116, graveyard_height), orientation=directions[2], style = gravestone_styles[randint(0,2)]) lych=m.make('lych', pos=(-140, 130, graveyard_height)) m.learn(lych,lych2_goals) m.know(lych,lych2_knowledge) m.tell_importance(lych,il.assemble,'>',il.patrol) def test_fire(host='', account='', password='', **args): m = create_editor(host, account, password) cfire=m.make('campfire',pos=(3,9,settlement_height)) m.make('fire',pos=(0,0,0),parent=cfire.id) m.make('lumber',pos=(0,0,0),parent=cfire.id) def test_own(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('axe',pos=(0,0,0),parent=settler.id) m.own(settler,axe) def test_goblins(host='', account='', password='', **args): m=create_editor(host, account, password) goblin_guards=[] goblin=m.make('goblin', pos=(102, -33, settlement_height)) goblin_guards.append(goblin) goblin=m.make('goblin', pos=(98, -33, settlement_height)) goblin_guards.append(goblin) m.learn(goblin_guards,(il.defend,"defend('settler', 10)")) def test_deer(host='', account='', password='', **args): m=create_editor(host, account, password) d=m.make('deer', pos=(5, 0, settlement_height)) m.learn(d,deer_goals) # m.make('settler', pos=(0, 0, settlement_height)) def kill_world(host='', account='', password='', **args): m=create_editor(host, account, password) world=m.look() m.set(world.id, status=-1) def kill_tree(host='', account='', password='', **args): m=create_editor(host, account, password) tree=m.make('oak') m.set(tree.id, status=-1) def test_oak(host='', account='', password='', **args): m=create_editor(host, account, password) tree=m.make('oak') def test_attachment(host='', account='', password='', **args): m=create_editor(host, account, password) m.make('axe', attachment=23) def make_shirt(host='', account='', password='', **args): m=create_editor(host, account, password) m.make('shirt', worn='chest', attachment=23, mass=2) m.make('acorn', worn='chest', pos=(1,1,1), attachment=23, mass=2) def test_decays(host='', account='', password='', **args): m=create_editor(host, account, password) m.make('axe', decays='oak') def test_device(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('door',pos=(0,0,0)) m.learn(settler,(il.trade,"activate_device('door')")) world=m.look() def test_tmods(host='', account='', password='', **args): # general things m=create_editor(host, account, password) world=m.look() points = { } for i in range(-8, 7): for j in range(-6, 7): if i>=5 or j>=5: points['%ix%i'%(i,j)] = [i, j, uniform(100, 150)] elif i<=-5 or j <= -5: points['%ix%i'%(i,j)] = [i, j, uniform(-30, -10)] elif (i==2 or i==3) and (j==2 or j==3): points['%ix%i'%(i,j)] = [i, j, uniform(20, 25)] elif i==4 or j==4: points['%ix%i'%(i,j)] = [i, j, uniform(30, 80)] elif i==-4 or j==-4: points['%ix%i'%(i,j)] = [i, j, uniform(-5, 5)] else: points['%ix%i'%(i,j)] = [i, j, 1+uniform(3, 11)*(abs(i)+abs(j))] points['-4x-1'] = [-4, -1, 12.4] points['-4x-2'] = [-4, -2, -8.3] points['-3x-2'] = [-3, -2, -6.2] points['-3x-1'] = [-3, -1, -5.3] points['-2x-1'] = [-2, -1, -4.1] points['-1x-1'] = [-1, -1, -16.8] points['0x-1'] = [0, -1, -3.8] points['-1x0'] = [-1, 0, -2.8] points['-1x1'] = [-1, 1, -1.8] points['-1x2'] = [-1, 2, -1.7] points['0x2'] = [0, 2, -1.6] points['1x2'] = [1, 2, -1.3] points['1x3'] = [1, 3, -1.1] points['1x4'] = [1, 4, -0.6] points['1x-1'] = [1, -1, 15.8] points['0x0'] = [0, 0, 12.8] points['1x0'] = [1, 0, 23.1] points['0x1'] = [0, 1, 14.2] points['1x1'] = [1, 1, 19.7] minx=0 miny=0 minz=0 maxx=0 maxy=0 maxz=0 for i in list(points.values()): x = i[0] y = i[1] z = i[2] if not minx or x < minx: minx = x if not miny or y < miny: miny = y if not minz or z < minz: minz = z if not maxx or x > maxx: maxx = x if not maxy or y > maxy: maxy = y if not maxz or z > maxz: maxz = z terrainMod1 = {'type' : 'levelmod', 'pos' : [40,40,15], 'shape' : {'type' : 'ball', 'dim' : 2, 'radius' : 10 }, 'height' : 40 } terrainMod2 = {'type' : 'cratermod', 'pos' : [0,0,0], 'shape' : {'type' : 'ball', 'dim' : 3, 'radius' : 10 }, } myterrain = {'points' : points} m.set(world.id, terrain=myterrain, name="terrainMod_testLand", bbox=[minx * 64, miny * 64, minz, maxx * 64, maxy * 64, maxz]) m.make('tower',pos=(60,60,5),terrainmod=terrainMod1) m.make('tower',pos=(20,20,5), terrainmod=terrainMod2) chicken_goals=[(il.avoid,"avoid(['orc','wolf'],10.0)"), (il.avoid,"avoid(['settler'],1.0)"), (il.flock,"flock()"), (il.peck,"peck()")] def test_chickens(host='', account='', password='', **args): m=create_editor(host, account, password) chickens=[] for i in range(0, 10): xpos = uniform(-5,5) ypos = uniform(-5,5) d=m.make('chicken', pos=(xpos, ypos, settlement_height), transient=-1) chickens.append(d) m.learn(chickens,chicken_goals) def test_task(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('axe',pos=(0,0,0),parent=settler.id) oak=m.make('oak',pos=(5,0,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(oak.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return m.set(settler.id, tasks=[{'name': settler.tasks[0].name, 'foo': 14}]) def test_wand(host='', account='', password='', **args): m=create_editor(host, account, password) world=m.look() settler=m.make('settler',pos=(1,1,0)) wand=m.make('wand',pos=(0,0,0),parent=settler.id) m.m.send(Operation("wield", Entity(wand.id), to=settler)) m.m.send(Operation("use", Operation("cast", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return m.set(settler.id, tasks=[{'name': settler.tasks[0].name, 'foo': 14}]) def test_fish(host='', account='', password='', **args): # general things m=create_editor(host, account, password) fish_goals=[(il.forage,"forage('annelid')")] fish = [] for i in range(0, 5): xpos = uniform(-35,-31) ypos = uniform(-32,-28) zpos = uniform(-4,0) c=m.make('fish', pos=(xpos, ypos, zpos), transient=-1) fish.append(c) m.learn(fish, fish_goals) def test_spawn(host='', account='', password='', **args): m=create_editor(host, account, password) spawn_area={'points' : [ [3,0], [2, 2], [0,3], [-2,2], [-3, 0], [-2, -2], [0,-3], [2,-2] ], 'layer' : 7, 'type': 'polygon'} m.make('path', name='spawn area', pos=(40, 40,settlement_height), area=spawn_area, bbox=[-5,-5,0,5,5,1], spawn={'name': 'legoland', 'character_types': ['settler'], 'contains': ['coin', 'coin', 'coin', 'coin', 'coin', 'coin', 'coin', 'coin', 'coin', 'coin', 'shirt', 'pants', 'cloak', 'boots', 'hat']}) def test_teleport(host='', account='', password='', **args): # general things m=create_editor(host, account, password) rep=m.client.send_wait(Operation("create", Entity(parent='juncture'), from_=m.client.id)) juncture=rep[0] print("Created juncture ", juncture.id) rep=m.client.send_wait(Operation("connect", Entity(hostname='localhost', port=6767), from_=juncture.id)) if not rep: print("Connect failed") return peer = rep[0].id rep=m.client.send_wait(Operation("login", Entity(username='whimsy', password='foo'), from_=juncture.id)) if not rep: print("Login failed") return settler=m.make('settler',pos=(1,1,0)) boat=m.make('boat',pos=(-1,-1,0),linked=peer,actions=["teleport"]) m.avatar.send(Operation("actuate", Operation("teleport", Entity(boat.id)), to=settler)) settler=m.look(settler.id) def test_visibility(host='', account='', password='', **args): # general things m=create_editor(host, account, password) target=m.make('acorn',pos=(100,100,0), visibility=20.0) m.look(target.id) def test_heap(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('shovel',pos=(0,0,0),parent=settler.id) world=m.look() m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("heap", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return m.set(settler.id, tasks=[{'name': settler.tasks[0].name, 'foo': 14}]) def test_earthbarrier(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('shovel',pos=(0,0,0),parent=settler.id) world=m.look() m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("walls", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_trenching(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('pickaxe',pos=(0,0,0),parent=settler.id) world=m.look() m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("trench", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_bisect(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('bucksaw',pos=(0,0,0),parent=settler.id) material=m.make('wood', pos=(1.1,1,0),bbox=[1,1,1,5,8,6]) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_dragging(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('sledge',pos=(0,0,0),parent=settler.id) material=m.make('wood', pos=(2,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("drag", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_pulling(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('rope',pos=(0,0,0),parent=settler.id) material=m.make('wood', pos=(2,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("pull", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_reap(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('scythe',pos=(0,0,0),parent=settler.id) world=m.look() m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_drying(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('peg',pos=(0,0,0),parent=settler.id) material=m.make('grass', pos=(2,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_twirling(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('spindle',pos=(0,0,0),parent=settler.id) material=m.make('fibre', pos=(1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_logging(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('axe',pos=(0,0,0),parent=settler.id) material=m.make('oak', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_baking(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('pickaxe',pos=(0,0,0),parent=settler.id) material=m.make('board_wall', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("craft", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_cultivate(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('trowel',pos=(0,0,0),parent=settler.id) material=m.make('acorn', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("sow", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_raise(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('pole',pos=(0,0,0),parent=settler.id) material=m.make('lumber', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("lever", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_ram(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('hammer',pos=(0,0,0),parent=settler.id) material=m.make('lumber', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("strike", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_sharpen(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('axe',pos=(0,0,0),parent=settler.id) material=m.make('lumber', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_sift(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) axe=m.make('sieve',pos=(0,0,0),parent=settler.id) material=m.make('pile', pos=(1.1,1,0), name='earth') m.avatar.send(Operation("wield", Entity(axe.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_slaughter(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) tool=m.make('cleaver',pos=(0,0,0),parent=settler.id) material=m.make('pig', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_trailblaze(host='', account='', password='', **args): m=create_editor(host, account, password) world=m.look() settler=m.make('settler',pos=(1,1,0)) tool=m.make('theodolite',pos=(0,0,0),parent=settler.id) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("strike", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_slice(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) tool=m.make('bucksaw',pos=(0,0,0),parent=settler.id) material=m.make('lumber', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_delve(host='', account='', password='', **args): m=create_editor(host, account, password) world=m.look() settler=m.make('settler',pos=(1,1,0)) tool=m.make('pickaxe',pos=(0,0,0),parent=settler.id) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_dig(host='', account='', password='', **args): m=create_editor(host, account, password) world=m.look() settler=m.make('settler',pos=(1,1,0)) tool=m.make('shovel',pos=(0,0,0),parent=settler.id) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(world.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_fishing(host='', account='', password='', **args): m=create_editor(host, account, password) ocean=m.make('ocean',pos=(0,0,0),bbox=[-50,-50,-20,50,50,0]) settler=m.make('settler',pos=(1,1,0)) tool=m.make('fishingrod',pos=(0,0,0),parent=settler.id) m.make('larva',pos=(0,0,0),parent=settler.id) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("sow", Entity(ocean.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return def test_task_stop(host='', account='', password='', **args): m=create_editor(host, account, password) settler=m.make('settler',pos=(1,1,0)) tool=m.make('bucksaw',pos=(0,0,0),parent=settler.id) material=m.make('lumber', pos=(1.1,1,0)) m.avatar.send(Operation("wield", Entity(tool.id), to=settler)) m.avatar.send(Operation("use", Operation("cut", Entity(material.id)), to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) < 1: print("Task start failed") return m.avatar.send(Operation("use", to=settler)) settler=m.look(settler.id) if not hasattr(settler, 'tasks') or len(settler.tasks) > 0: print("Task stop failed") return def test_combat(host='', account='', password='', **args): m=create_editor(host, account, password) actor=m.create('settler') victim=m.make('settler',pos=(1,2,0)) actor.send(Operation("attack", Entity(victim.id))) victim=m.look(victim.id) if not hasattr(victim, 'tasks') or len(victim.tasks) < 1: print("Attack failed on victim") return