id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 296190357,MDExOlB1bGxSZXF1ZXN0MTY4NDUzNjk4,636,Fixing wave-export,8909245,closed,0,,,0,2018-02-11T13:33:43Z,2018-02-11T15:16:10Z,2018-02-11T15:16:10Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/636,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/636/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 296884200,MDExOlB1bGxSZXF1ZXN0MTY4OTU1MTAx,639,Implement CellLandblock geometry cache.,8909245,closed,0,,,0,2018-02-13T21:02:50Z,2018-02-14T04:56:18Z,2018-02-14T04:56:18Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/639,"This pull request is for the 2 Trello tasks: https://trello.com/c/4ErxP7lc/90-implement-celllandblock-geometry-cache https://trello.com/c/TxnqEnBH/85-celllandblockgetz-needs-rework I'm still learning my way around the ACE project, so it's possible this code is not integrated in the correct location yet... A LoadMesh() method has been added to Landblock.cs, which uses the Region file to determine the correct heights for the vertices. It loads the landblock grid as a triangle mesh, using a snippet of code from AC2D to ensure the cells are split between the correct vertices. I have verified in a few different locations that these splitters are being generated correctly, but I have no automated way of ensuring 100% accuracy across the entire map yet. The GetZ() method has been implemented in Landblock.cs, which returns the correct Z-height information for any X/Y position on the map. There are no unit tests yet, but here is a video of the landblock grid mesh visualization: https://youtu.be/5yTTcMY-1Pw The video quality was unfortunately degraded when uploaded to Youtube, but in the right corner is a 'current landblock height' stat that is updated every time the camera moves. This shows the information returned by GetZ(). Since this mesh data is to eventually be consumed by other classes, it can be tailored to provide whatever public API would be most useful to these other classes. For now it just has some of the basics, but more can be added as needed. ","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/639/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 297684246,MDExOlB1bGxSZXF1ZXN0MTY5NTUwMDI5,640,"Have Landblocks load all terrain, building, and generic obstacle data during start up and store it for use in the physics engine.",8909245,closed,0,,,0,2018-02-16T05:21:33Z,2018-02-16T06:53:36Z,2018-02-16T06:53:36Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/640,"This PR is for loading the landblock objects / obstacles, buildings, and landblock weenies stored in the database A lot of the code from the last PR in Landblock.cs and Mesh.cs has been moved to a new LandblockMesh.cs class. Mesh.cs is now a base class for both the triangle-based landblock meshes, and the new ModelMesh.cs. Model meshes are polygonal based, and have most of their data stored in a StaticMesh object, which points to a global cache for efficiency. https://www.youtube.com/watch?v=X4c7VHJ6DHE","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/640/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 297694186,MDExOlB1bGxSZXF1ZXN0MTY5NTU3MTk1,641,"Have Landblocks load all terrain, building, and generic obstacle data during start up and store it for use in the physics engine.",8909245,closed,0,,,1,2018-02-16T06:41:06Z,2018-02-16T14:56:52Z,2018-02-16T14:56:52Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/641,"This PR is for loading the landblock objects / obstacles, buildings, and landblock weenies stored in the database A lot of the code from the last PR in Landblock.cs and Mesh.cs has been moved to a new LandblockMesh.cs class. Mesh.cs is now a base class for both the triangle-based landblock meshes, and the new ModelMesh.cs. Model meshes are polygonal based, and have most of their data stored in a StaticMesh object, which points to a global cache for efficiency. https://www.youtube.com/watch?v=X4c7VHJ6DHE","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/641/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 298289014,MDExOlB1bGxSZXF1ZXN0MTY5OTcwNTc1,642,Have Landblocks load all scenery during start up and store it for use in the physics engine.,8909245,closed,0,,,0,2018-02-19T14:12:17Z,2018-02-19T16:26:44Z,2018-02-19T16:26:44Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/642,"Here is the first attempt at the landscape scenery generation. It's performing the same calculations that the original client does to build the scenery objects, although it's still not matched up perfectly yet. The scenery is defined on a per-cell basis, which gets mapped through the region file to the actual scenery data. Instead of placing individual shrubs and trees on each cell though, the game uses something akin to perlin noise generation to move scenery objects around the grid in a non-uniform way. https://imgur.com/a/wyQRt Todo: - It appears there is more scenery generated than the original game, even though the functions should be matched up exactly with the client. I will need to investigate more to find out what could be causing any differences. - Scenery items should not spawn on roads or anywhere near other objects. The collision detection is currently just using a basic bounding box, but in acclient this is performed by the physics engine. - Scenery items should also not be placed on steep terrain that can't be traversed by the player. This should ideally be done by storing normals for each triangle in the landscape mesh, and performing the slope checks based on that.","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/642/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 298594469,MDExOlB1bGxSZXF1ZXN0MTcwMTkyNDY3,643,Initial data structures for physics and animation system,8909245,closed,0,,,0,2018-02-20T13:31:39Z,2018-02-20T13:38:35Z,2018-02-20T13:38:35Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/643,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/643/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299199387,MDExOlB1bGxSZXF1ZXN0MTcwNjQwOTkz,644,"Adding PartArray, PhysicsPart, Sphere, SphereTests",8909245,closed,0,,,0,2018-02-22T02:18:32Z,2018-02-23T00:03:59Z,2018-02-22T06:57:03Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/644,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/644/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299554051,MDExOlB1bGxSZXF1ZXN0MTcwOTAwOTEy,645,"Sphere refactoring, adding more SphereTests",8909245,closed,0,,,0,2018-02-23T00:05:17Z,2018-02-23T04:38:29Z,2018-02-23T02:06:21Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/645,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/645/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299602436,MDExOlB1bGxSZXF1ZXN0MTcwOTM1MzQw,646,"Finishing up Sphere, additional SphereTests",8909245,closed,0,,,0,2018-02-23T05:23:17Z,2018-02-23T19:13:01Z,2018-02-23T07:48:06Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/646,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/646/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299823294,MDExOlB1bGxSZXF1ZXN0MTcxMDk2MjAx,647,Adding SpherePath,8909245,closed,0,,,0,2018-02-23T19:26:47Z,2018-02-24T01:48:23Z,2018-02-23T20:15:07Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/647,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/647/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299899952,MDExOlB1bGxSZXF1ZXN0MTcxMTUzNzg5,648,Adding CylSphere,8909245,closed,0,,,0,2018-02-24T01:49:14Z,2018-02-24T09:05:08Z,2018-02-24T03:28:06Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/648,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/648/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299927173,MDExOlB1bGxSZXF1ZXN0MTcxMTcwNDQx,649,Adding PhysicsObj stubs,8909245,closed,0,,,0,2018-02-24T09:20:13Z,2018-02-24T20:40:56Z,2018-02-24T12:10:34Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/649,"There are a few different naming conventions for the methods used here - a mixture of standard CamelCase, with some underscores also thrown into the mix. I'm still digging into the rhyme and reason behind the various styles, but this is what was pulled from the original game. For initial development and debugging purposes, it would much easier for me to match things up 100% to the original game, and then after everything has been completed it can be refactored and the naming conventions can be standardized to match the rest of the ACEmulator project.","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/649/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299971310,MDExOlB1bGxSZXF1ZXN0MTcxMTk2NzE5,650,Adding initializers to PhysicsObj,8909245,closed,0,,,0,2018-02-24T20:44:51Z,2018-02-25T04:25:04Z,2018-02-24T20:52:45Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/650,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/650/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 299997097,MDExOlB1bGxSZXF1ZXN0MTcxMjEyNDM1,651,Adding PhysicsObj set_* methods,8909245,closed,0,,,0,2018-02-25T04:28:11Z,2018-02-25T20:00:40Z,2018-02-25T05:55:14Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/651,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/651/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300056569,MDExOlB1bGxSZXF1ZXN0MTcxMjQ4NTEy,652,Adding PhysicsObj Set* methods,8909245,closed,0,,,0,2018-02-25T20:09:28Z,2018-02-26T00:16:46Z,2018-02-25T23:17:22Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/652,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/652/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300112700,MDExOlB1bGxSZXF1ZXN0MTcxMjg0ODIz,653,"Adding PhysicsObj add, get, and calc methods",8909245,closed,0,,,0,2018-02-26T05:21:01Z,2018-02-26T08:32:42Z,2018-02-26T06:24:11Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/653,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/653/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300148788,MDExOlB1bGxSZXF1ZXN0MTcxMzEwMTcy,654,Adding PhysicsObj update methods,8909245,closed,0,,,0,2018-02-26T08:36:30Z,2018-02-26T20:46:07Z,2018-02-26T12:22:38Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/654,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/654/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300390353,MDExOlB1bGxSZXF1ZXN0MTcxNDg3NDI4,655,Adding methods to PhysicsObj,8909245,closed,0,,,0,2018-02-26T20:48:55Z,2018-02-27T04:22:54Z,2018-02-26T23:09:12Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/655,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/655/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300489885,MDExOlB1bGxSZXF1ZXN0MTcxNTYwOTg0,656,Adding methods to PhysicsObj,8909245,closed,0,,,0,2018-02-27T04:28:47Z,2018-02-27T19:54:56Z,2018-02-27T06:23:54Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/656,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/656/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300771227,MDExOlB1bGxSZXF1ZXN0MTcxNzY4MTIw,657,Adding more PhysicsObj methods,8909245,closed,0,,,0,2018-02-27T19:56:54Z,2018-02-28T02:10:53Z,2018-02-27T20:12:50Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/657,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/657/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 300865227,MDExOlB1bGxSZXF1ZXN0MTcxODM4NDQ4,658,Initial PhysicsObj implementation completed,8909245,closed,0,,,0,2018-02-28T02:15:33Z,2018-02-28T18:14:35Z,2018-02-28T02:45:39Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/658,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/658/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301128964,MDExOlB1bGxSZXF1ZXN0MTcyMDMxNzQ2,659,Adding PartArray methods,8909245,closed,0,,,0,2018-02-28T18:16:00Z,2018-02-28T22:24:26Z,2018-02-28T18:53:11Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/659,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/659/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301208204,MDExOlB1bGxSZXF1ZXN0MTcyMDkxODA3,660,Adding Setup and Transition,8909245,closed,0,,,0,2018-02-28T22:28:22Z,2018-03-01T02:11:03Z,2018-03-01T02:11:03Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/660,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/660/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301254793,MDExOlB1bGxSZXF1ZXN0MTcyMTI3MDU4,661, Adding Transition find and slide methods,8909245,closed,0,,,0,2018-03-01T02:20:31Z,2018-03-01T05:26:39Z,2018-03-01T03:45:47Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/661,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/661/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301283953,MDExOlB1bGxSZXF1ZXN0MTcyMTQ3ODQz,662,Finishing up Transition class implementation,8909245,closed,0,,,0,2018-03-01T05:37:29Z,2018-03-01T22:00:54Z,2018-03-01T06:15:02Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/662,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/662/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301577083,MDExOlB1bGxSZXF1ZXN0MTcyMzY3MDY5,664,Adding Polygon,8909245,closed,0,,,0,2018-03-01T22:05:35Z,2018-03-01T23:28:37Z,2018-03-01T22:55:30Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/664,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/664/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301599624,MDExOlB1bGxSZXF1ZXN0MTcyMzg0MTI2,665,Adding BSP tree stubs,8909245,closed,0,,,0,2018-03-01T23:32:05Z,2018-03-02T04:51:49Z,2018-03-02T01:43:15Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/665,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/665/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301654061,MDExOlB1bGxSZXF1ZXN0MTcyNDIyOTQ3,666,Adding BSPTree methods,8909245,closed,0,,,0,2018-03-02T05:00:23Z,2018-03-02T07:50:11Z,2018-03-02T06:23:07Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/666,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/666/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301681462,MDExOlB1bGxSZXF1ZXN0MTcyNDQxMzI0,667,Adding BSPNode methods,8909245,closed,0,,,0,2018-03-02T07:52:51Z,2018-03-03T04:19:42Z,2018-03-02T19:32:01Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/667,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/667/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 301973505,MDExOlB1bGxSZXF1ZXN0MTcyNjUzMzQy,668,"Adding MovementManager methods, and MotionInterp stubs",8909245,closed,0,,,0,2018-03-03T06:25:43Z,2018-03-04T02:17:05Z,2018-03-04T02:13:24Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/668,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/668/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302050636,MDExOlB1bGxSZXF1ZXN0MTcyNjk4NDY1,669,Adding MoveToManager,8909245,closed,0,,,0,2018-03-04T02:18:53Z,2018-03-04T05:55:56Z,2018-03-04T04:39:51Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/669,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/669/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302060411,MDExOlB1bGxSZXF1ZXN0MTcyNzA0MzYx,670,"Adding PositionManager, InterpolationManager, ConstraintManager, and StickyManager",8909245,closed,0,,,0,2018-03-04T06:02:22Z,2018-03-04T11:24:18Z,2018-03-04T06:06:50Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/670,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/670/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302156072,MDExOlB1bGxSZXF1ZXN0MTcyNzYzMTY5,671,"Adding MotionTable, MotionTableManager",8909245,closed,0,,,0,2018-03-05T02:54:32Z,2018-03-05T05:07:36Z,2018-03-05T04:50:43Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/671,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/671/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302265563,MDExOlB1bGxSZXF1ZXN0MTcyODQxOTU5,672,Adding methods to animation system,8909245,closed,0,,,0,2018-03-05T11:31:26Z,2018-03-05T22:54:19Z,2018-03-05T13:04:54Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/672,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/672/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302498141,MDExOlB1bGxSZXF1ZXN0MTczMDExODYx,673,Adding Sequence methods,8909245,closed,0,,,0,2018-03-05T22:59:46Z,2018-03-06T09:15:56Z,2018-03-06T01:52:42Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/673,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/673/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302621046,MDExOlB1bGxSZXF1ZXN0MTczMDk4ODI0,674,Adding physics dependencies,8909245,closed,0,,,0,2018-03-06T09:20:43Z,2018-03-07T00:15:26Z,2018-03-06T09:24:07Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/674,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/674/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 302917847,MDExOlB1bGxSZXF1ZXN0MTczMzE5NTc1,676,"Adding LandCell, LostCell, ObjectMaint, Position",8909245,closed,0,,,0,2018-03-07T00:17:21Z,2018-03-07T09:27:39Z,2018-03-07T00:54:53Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/676,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/676/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 303025052,MDExOlB1bGxSZXF1ZXN0MTczMzk2Mzkz,678,Preparing initial physics system for testing environment,8909245,closed,0,,,0,2018-03-07T09:34:19Z,2018-03-11T08:39:27Z,2018-03-07T12:02:39Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/678,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/678/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 304141773,MDExOlB1bGxSZXF1ZXN0MTc0MjExMTc1,680,Physics testing adjustments,8909245,closed,0,,,0,2018-03-11T08:58:14Z,2018-03-11T23:29:49Z,2018-03-11T12:36:42Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/680,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/680/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 305421818,MDExOlB1bGxSZXF1ZXN0MTc1MTUzMDgx,687,"Physics testing, player moving across landscape at correct speeds",8909245,closed,0,,,0,2018-03-15T05:36:56Z,2018-03-18T07:03:33Z,2018-03-15T07:34:02Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/687,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/687/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 306218945,MDExOlB1bGxSZXF1ZXN0MTc1NzM4NjQ0,690,collision detection prereqs,8909245,closed,0,,,0,2018-03-18T07:18:52Z,2018-03-20T05:29:51Z,2018-03-18T08:11:12Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/690,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/690/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 306737412,MDExOlB1bGxSZXF1ZXN0MTc2MDk0OTIy,693,Basic collisions detected and exported,8909245,closed,0,,,0,2018-03-20T05:51:20Z,2018-03-21T23:41:29Z,2018-03-20T06:45:41Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/693,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/693/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 307545321,MDExOlB1bGxSZXF1ZXN0MTc2NzA0MDY3,694,Portal collisions from physics engine,8909245,closed,0,,,0,2018-03-22T08:23:20Z,2018-03-24T07:12:54Z,2018-03-23T01:54:44Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/694,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/694/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 308236036,MDExOlB1bGxSZXF1ZXN0MTc3MjI0Nzk0,696,Fixing monsters despawning in dungeons,8909245,closed,0,,,0,2018-03-24T07:16:15Z,2018-03-24T21:40:20Z,2018-03-24T12:03:35Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/696,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/696/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 308301540,MDExOlB1bGxSZXF1ZXN0MTc3MjYwNTE4,699,Fixing object visibility across multiple landblocks,8909245,closed,0,,,0,2018-03-24T21:46:22Z,2018-03-25T04:11:22Z,2018-03-25T01:44:29Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/699,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/699/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 308321134,MDExOlB1bGxSZXF1ZXN0MTc3MjcyMTU0,701,Swanky portals,8909245,closed,0,,,0,2018-03-25T04:21:28Z,2018-03-27T01:32:11Z,2018-03-25T04:33:25Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/701,"Fixing the portals in Hotel Swank https://i.imgur.com/sRCnXrU.jpg -- Keith#3971","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/701/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 309037757,MDExOlB1bGxSZXF1ZXN0MTc3NzkyNDA3,705, Environment collision detection with PhysicsBSP,8909245,closed,0,,,0,2018-03-27T16:14:33Z,2018-03-29T16:30:42Z,2018-03-27T17:54:24Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/705,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/705/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 309828866,MDExOlB1bGxSZXF1ZXN0MTc4Mzg0NTg2,709,Sliding object fixes,8909245,closed,0,,,0,2018-03-29T16:52:13Z,2018-03-30T23:01:11Z,2018-03-29T22:54:47Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/709,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/709/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 310191569,MDExOlB1bGxSZXF1ZXN0MTc4NjUyNTMx,711,Objects navigating dungeons and sliding along walls/obstacles,8909245,closed,0,,,0,2018-03-30T23:30:40Z,2018-03-31T10:30:36Z,2018-03-31T07:15:06Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/711,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/711/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 310231423,MDExOlB1bGxSZXF1ZXN0MTc4Njc2ODk5,713,Adding rotation to scenery objects,8909245,closed,0,,,0,2018-03-31T10:40:50Z,2018-03-31T18:29:15Z,2018-03-31T13:02:28Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/713,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/713/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 310635270,MDExOlB1bGxSZXF1ZXN0MTc4OTUxMzc1,717,"Smooth sliding between objects, fixed an issue getting stuck during sliding",8909245,closed,0,,,0,2018-04-02T22:43:22Z,2018-04-03T22:51:30Z,2018-04-03T00:49:37Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/717,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/717/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 311031204,MDExOlB1bGxSZXF1ZXN0MTc5MjQ0NzEy,720,"CylSphere testing, scenery collisions/sliding",8909245,closed,0,,,0,2018-04-03T23:18:13Z,2018-04-04T22:43:09Z,2018-04-04T00:42:51Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/720,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/720/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 311420178,MDExOlB1bGxSZXF1ZXN0MTc5NTM0Nzc3,721,"Transitions, collision detection, and sliding with building exteriors / interiors",8909245,closed,0,,,0,2018-04-04T23:02:33Z,2018-04-05T00:03:37Z,2018-04-05T00:03:37Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/721,Initial physics engine coding and testing completed :),"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/721/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 311862718,MDExOlB1bGxSZXF1ZXN0MTc5ODY1MzQ3,722,Adding EmoteManager,8909245,closed,0,,,0,2018-04-06T06:38:39Z,2018-04-07T13:25:39Z,2018-04-06T12:10:21Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/722,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/722/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 312208240,MDExOlB1bGxSZXF1ZXN0MTgwMTA2NDE2,724,Adding creature idle animations/sounds,8909245,closed,0,,,0,2018-04-07T13:48:15Z,2018-04-08T00:07:43Z,2018-04-08T00:07:43Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/724,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/724/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 312392900,MDExOlB1bGxSZXF1ZXN0MTgwMjEwNjAx,726,Basic melee combat,8909245,closed,0,,,0,2018-04-09T04:53:09Z,2018-04-09T13:03:44Z,2018-04-09T05:52:06Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/726,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/726/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 312591663,MDExOlB1bGxSZXF1ZXN0MTgwMzU1OTMw,728,Adding per-damage type combat messages,8909245,closed,0,,,0,2018-04-09T16:05:50Z,2018-04-10T04:22:21Z,2018-04-09T18:25:33Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/728,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/728/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 313116542,MDExOlB1bGxSZXF1ZXN0MTgwNzQ4ODM3,730,"Adding auto-attack, critical deaths, per-weapon swing animations, damage source tracking, and attack height / powerbar",8909245,closed,0,,,0,2018-04-10T22:52:14Z,2018-04-11T05:41:23Z,2018-04-10T23:20:45Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/730,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/730/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 313181629,MDExOlB1bGxSZXF1ZXN0MTgwNzk2MjAx,731,"Adding monster pain sounds, and splatter effects",8909245,closed,0,,,0,2018-04-11T05:48:17Z,2018-04-11T06:09:26Z,2018-04-11T06:09:26Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/731,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/731/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 313197679,MDExOlB1bGxSZXF1ZXN0MTgwODA3ODY2,732,Fixing sound events,8909245,closed,0,,,0,2018-04-11T07:05:48Z,2018-04-12T02:47:57Z,2018-04-11T15:03:03Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/732,Thanks to @Slushnas for the tremendous help with the recent PRs! =),"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/732/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 314039578,MDExOlB1bGxSZXF1ZXN0MTgxNDM3MDQ3,735,"Adding powerbar damage scaling, weapon skill vs. defense skill evasion, per-weapon damage, attribute damage scaling, per-body part armor/resistance scaling",8909245,closed,0,,,0,2018-04-13T09:44:27Z,2018-04-13T21:59:15Z,2018-04-13T12:47:00Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/735,Fixed a bug where spamming the attack button would trigger multiple monster death animations,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/735/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 314265101,MDExOlB1bGxSZXF1ZXN0MTgxNjA2OTk0,736,Fixing unarmed combat,8909245,closed,0,,,0,2018-04-13T22:12:57Z,2018-04-14T00:48:57Z,2018-04-14T00:48:56Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/736,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/736/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 314420385,MDExOlB1bGxSZXF1ZXN0MTgxNzAxODU1,743,Adding vitae and enchantment registry,8909245,closed,0,,,0,2018-04-15T14:28:46Z,2018-04-15T15:06:50Z,2018-04-15T15:06:50Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/743,Thanks to @Slushnas and everyone on the ACE team for helping with this latest update :),"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/743/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 314705692,MDExOlB1bGxSZXF1ZXN0MTgxOTAzNDMw,745,Adding healing kit usage,8909245,closed,0,,,0,2018-04-16T15:25:59Z,2018-04-16T18:41:44Z,2018-04-16T18:41:44Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/745,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/745/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 314873070,MDExOlB1bGxSZXF1ZXN0MTgyMDI5MTYw,746,Fixing landblock adjacency loading,8909245,closed,0,,,0,2018-04-17T01:32:35Z,2018-04-17T03:12:04Z,2018-04-17T03:12:04Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/746,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/746/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 314890288,MDExOlB1bGxSZXF1ZXN0MTgyMDQxMDA5,747,Fixing vitae % display bug,8909245,closed,0,,,0,2018-04-17T03:17:11Z,2018-04-17T10:46:41Z,2018-04-17T08:42:57Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/747,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/747/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 315011433,MDExOlB1bGxSZXF1ZXN0MTgyMTI5ODk0,748,Updating EnchantmentManager for handling all spells,8909245,closed,0,,,0,2018-04-17T11:06:38Z,2018-04-17T12:01:14Z,2018-04-17T12:01:14Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/748,"Thanks again to @Slushnas for helping with this patch! - EnchantmentManager now supports adding/updating/removing all spells - EnchantmentManager.HeartBeat() has been added, which maintains the spell duration in the database - Gems added to enchantment registry for PoC - Player health/stamina/mana updated on death","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/748/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 315627863,MDExOlB1bGxSZXF1ZXN0MTgyNTkxNzI3,749,Adding creature enchantment buffs/debuffs,8909245,closed,0,,,0,2018-04-18T20:20:06Z,2018-04-18T22:25:08Z,2018-04-18T22:25:08Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/749,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/749/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 315757054,MDExOlB1bGxSZXF1ZXN0MTgyNjg3NjAw,750,Adding shortcut manager,8909245,closed,0,,,0,2018-04-19T07:25:47Z,2018-04-19T07:30:18Z,2018-04-19T07:30:18Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/750,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/750/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 316061471,MDExOlB1bGxSZXF1ZXN0MTgyOTE0Mzgz,751,Adding life magic buffs / debuffs,8909245,closed,0,,,0,2018-04-19T22:21:59Z,2018-04-20T02:06:16Z,2018-04-20T02:06:16Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/751,"- Armor - Imperil - Vulns - Prots","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/751/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 316186086,MDExOlB1bGxSZXF1ZXN0MTgzMDAwNTg1,752,"Adding item enchantments to registry, ie. Blood Drinker",8909245,closed,0,,,0,2018-04-20T09:02:21Z,2018-04-20T11:34:32Z,2018-04-20T11:34:32Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/752,"- Swift Killer - Heart Seeker - Defender - Impenetrability - Banes","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/752/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 316557610,MDExOlB1bGxSZXF1ZXN0MTgzMjYwNjQ5,754,Adding bow/crossbow combat,8909245,closed,0,,,0,2018-04-22T07:52:12Z,2018-04-23T14:32:32Z,2018-04-22T11:36:32Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/754,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/754/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 316840871,MDExOlB1bGxSZXF1ZXN0MTgzNDU1Mzgy,756,Adding bow/crossbow combat polish,8909245,closed,0,,,0,2018-04-23T14:35:54Z,2018-04-23T22:54:11Z,2018-04-23T17:31:25Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/756,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/756/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 317028470,MDExOlB1bGxSZXF1ZXN0MTgzNTkxNzA3,757,Additional bow/crossbow polish,8909245,closed,0,,,0,2018-04-24T00:30:49Z,2018-04-24T04:21:11Z,2018-04-24T00:59:17Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/757,"- Adjust missile spawn location - Attack height trajectory - Adding collision sound effect - Fixing cross-landblock projectiles - Fixing ghost projectiles in dungeons","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/757/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 317065661,MDExOlB1bGxSZXF1ZXN0MTgzNjE3NDA3,758,Minor fixes,8909245,closed,0,,,0,2018-04-24T04:23:42Z,2018-04-24T16:39:06Z,2018-04-24T12:09:58Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/758,"- Removing delay when launching projectiles across multiple landblocks - Removing Vitae from Life Spells category - Adjusting player vitals on death","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/758/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 319384596,MDExOlB1bGxSZXF1ZXN0MTg1MzE3MDQw,777,Adding monster movement,8909245,closed,0,,,2,2018-05-02T01:50:45Z,2018-05-02T22:35:42Z,2018-05-02T22:35:41Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/777,"Thanks so much to @dgatewood, @Slushnas, and the entire ACE team for all the help with this PR","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/777/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 322496552,MDExOlB1bGxSZXF1ZXN0MTg3NjEyNzMx,789,Adding monster melee combat,8909245,closed,0,,,1,2018-05-12T09:20:36Z,2018-07-01T00:55:11Z,2018-05-15T04:34:54Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/789,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/789/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 323359446,MDExOlB1bGxSZXF1ZXN0MTg4MjM3MjAy,794, Adding monster spell casting,8909245,closed,0,,,1,2018-05-15T19:52:56Z,2018-12-25T05:56:37Z,2018-05-18T13:37:47Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/794,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/794/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 324577273,MDExOlB1bGxSZXF1ZXN0MTg5MTU0NDU1,795,Adding monster ranged combat,8909245,closed,0,,,0,2018-05-18T23:15:52Z,2018-05-19T16:42:40Z,2018-05-19T16:42:40Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/795,"- Adding equipped items to Player_Tracking - Fixed a bug where CombatState was broadcast to landblock","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/795/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 329187165,MDExOlB1bGxSZXF1ZXN0MTkyNTA1NzY1,816,Adding projectile physics,8909245,closed,0,,,0,2018-06-04T19:32:50Z,2018-07-19T10:09:08Z,2018-06-08T08:08:54Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/816,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/816/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 330562879,MDExOlB1bGxSZXF1ZXN0MTkzNTQwNDA0,817,Adding monster physics-based movement,8909245,closed,0,,,0,2018-06-08T08:18:12Z,2018-06-08T23:08:49Z,2018-06-08T23:08:49Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/817,Monsters should no longer move through walls or other impassable areas,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/817/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 330579942,MDExOlB1bGxSZXF1ZXN0MTkzNTUzMzE0,818,Adding shield combat,8909245,closed,0,,,0,2018-06-08T09:12:31Z,2018-06-08T23:09:23Z,2018-06-08T23:09:22Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/818,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/818/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 331400340,MDExOlB1bGxSZXF1ZXN0MTk0MTQwNzM1,821,Updating cell transitions,8909245,closed,0,,,0,2018-06-12T00:58:28Z,2018-06-12T15:48:12Z,2018-06-12T15:48:12Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/821,- Fixed a bug where the current cell would be null after portal,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/821/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 333031903,MDExOlB1bGxSZXF1ZXN0MTk1MzU5Mjk3,825,Adding Allegiance system,8909245,closed,0,,,1,2018-06-17T03:22:54Z,2018-06-23T00:33:07Z,2018-06-23T00:33:07Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/825,work in progress,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/825/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 333394359,MDExOlB1bGxSZXF1ZXN0MTk1NjE3NDIy,827,Updating Fellowship system,8909245,closed,0,,,0,2018-06-18T18:58:17Z,2018-06-23T14:41:44Z,2018-06-23T14:41:44Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/827,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/827/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 333624829,MDExOlB1bGxSZXF1ZXN0MTk1NzkxMDcz,828,Update friends list,8909245,closed,0,,,0,2018-06-19T11:10:27Z,2018-06-23T14:48:56Z,2018-06-23T14:48:56Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/828,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/828/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 335521398,MDExOlB1bGxSZXF1ZXN0MTk3MjAwNjg4,831,"Adding landblock unloading system, and player corpses",8909245,closed,0,,,0,2018-06-25T18:39:17Z,2018-06-29T19:35:58Z,2018-06-29T19:35:58Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/831,"- Adding landblock unloading / reloading system - Fixed a bug where generators were spawning monsters too quickly - Adding player corpses - Adding dungeon/outdoor landblock detection - Fixed a bug with spawning certain scenery (Redspire) - Added player death items list calculation - Added dropped items to corpse containers - Added corpse looting permissions - Added permaload flag for landblocks","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/831/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 335620592,MDExOlB1bGxSZXF1ZXN0MTk3Mjc1MDEz,832,Fixing specialized skill calcs,8909245,closed,0,,,0,2018-06-26T01:04:57Z,2018-06-28T07:19:42Z,2018-06-28T07:19:42Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/832,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/832/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 336837847,MDExOlB1bGxSZXF1ZXN0MTk4MTk3MTgw,833,Updating appraisal system / refactoring,8909245,closed,0,,,0,2018-06-29T02:04:49Z,2018-06-29T18:54:38Z,2018-06-29T18:54:38Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/833,"- Full appraisal info for all object types - Enchantments are now shown in the appraisal window, colored green/red highlights - Cleaned up and refactored existing code","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/833/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 337182123,MDExOlB1bGxSZXF1ZXN0MTk4NDU3MTQw,835,Fixing merge,8909245,closed,0,,,0,2018-06-30T03:20:24Z,2018-06-30T04:56:10Z,2018-06-30T04:56:10Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/835,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/835/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 337313318,MDExOlB1bGxSZXF1ZXN0MTk4NTM3NTYx,837,Improved monster movement,8909245,closed,0,,,0,2018-07-01T18:58:33Z,2018-07-02T22:01:58Z,2018-07-02T03:53:54Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/837,"- Updated animation system to loop through linked anims properly - Fixing creature sliding - Adjusted monster movement speed - Fixed a possible crash looping through CellArray (todo: use standard for loop to check for newly added cells) - Temporary fix with mages not being able to loot corpses (todo: Player_Magic should be calling WorldObject.TakeDamage) - Various bug fixes","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/837/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 337681853,MDExOlB1bGxSZXF1ZXN0MTk4ODAyOTA2,840,Fixing monster turning speeds,8909245,closed,0,,,0,2018-07-02T22:14:42Z,2018-07-04T20:02:27Z,2018-07-03T02:58:23Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/840,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/840/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 338184917,MDExOlB1bGxSZXF1ZXN0MTk5MTc5NDM3,844,Adding player/monster health instant updates,8909245,closed,0,,,0,2018-07-04T08:48:29Z,2018-07-04T19:41:38Z,2018-07-04T19:41:38Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/844,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/844/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 338367575,MDExOlB1bGxSZXF1ZXN0MTk5MzE4MDQ5,845,"Linking monster aggro to player combat, adjusting tolerance",8909245,closed,0,,,0,2018-07-04T20:10:09Z,2018-07-06T22:17:49Z,2018-07-04T21:40:07Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/845,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/845/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 339086874,MDExOlB1bGxSZXF1ZXN0MTk5ODU5MjE2,851,Improved monster transitions between landblocks and cell boundaries,8909245,closed,0,,,1,2018-07-06T22:23:16Z,2018-07-07T20:35:10Z,2018-07-07T20:35:10Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/851,"- Fixed various bugs with monsters crossing between landblock and cell boundaries. - Monsters should be able to chase the player through dungeons and indoor areas more consistently - Added monster movement debug commands - Fixed the missing portals in Hotel Swank - Fixed a bug with some dungeons having black screens on portal entry ","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/851/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 339175508,MDExOlB1bGxSZXF1ZXN0MTk5OTEzOTQy,854,Updating ObjectMaint for multiplayer dungeons,8909245,closed,0,,,0,2018-07-07T21:17:22Z,2018-07-09T19:46:16Z,2018-07-09T19:46:16Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/854,"- Updated the Object Maintenance system from a server-wide instance to per-player. This should fix the disappearing monsters in dungeons for multiplayer. - Added a call to handle_visible_cells() when an object enters the PVS for a player. This fixes a bug when players/creatures travel long distances to reach a player who has been standing in the same cell for awhile. It should also make the PVS system more consistent in general. - Added a null check to all references to CurrentLandblock. There are many functions currently running in the ActionQueue after an object has been destroyed. TODO: revisit the object destruction system ","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/854/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 339589529,MDExOlB1bGxSZXF1ZXN0MjAwMjA2MTc1,860,Fixing sliding along the edge of cliffs,8909245,closed,0,,,1,2018-07-09T20:09:10Z,2018-07-10T13:44:43Z,2018-07-10T13:44:43Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/860,"- Fixed a bug where StepUpHeight and StepDownHeight were reversed - Fixed a conversion error between degrees and radians - Fixed a bug with EdgeSlide/PrecipiceSlide where the player and creatures would get stuck at the edge of cliffs - Updated CellArray iterators to check newly added cells ","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/860/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 339731800,MDExOlB1bGxSZXF1ZXN0MjAwMzEwNzI2,862,Fixing water depth,8909245,closed,0,,,0,2018-07-10T07:56:45Z,2018-07-10T22:01:33Z,2018-07-10T22:01:33Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/862,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/862/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 340465938,MDExOlB1bGxSZXF1ZXN0MjAwODcxNDY1,868,EmoteManager refactoring,8909245,closed,0,,,1,2018-07-12T02:17:43Z,2018-07-13T03:23:51Z,2018-07-13T03:23:51Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/868,"Tested: Temple of Forgetfulness: /create 22754 http://asheron.wikia.com/wiki/Attribute_and_Skill_Redistribution Giving spell component to statue, correct emote actions are executed Olthoi Hunter: /create 3930 /ci helmolthoi Giving classic Olthoi Helm to Olthoi Hunter, the new Olthoi Helm is received There is a small issue with this one, and it probably existed before: the player give -> npc message is received at the end of the chain instead of the beginning","{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/868/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull 341000258,MDExOlB1bGxSZXF1ZXN0MjAxMjc2NTQz,870,Fixing RunRate,8909245,closed,0,,,0,2018-07-13T12:28:13Z,2018-07-13T14:12:58Z,2018-07-13T14:12:58Z,COLLABORATOR,,0,ACEmulator/ACE/pulls/870,,"{""url"": ""https://api.github.com/repos/ACEmulator/ACE/issues/870/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,79078680,pull