{"id":"sprint-stick","name":"Sprint stick","kind":"mechanic","version":"0.1.0","summary":"A radial touch joystick with a dead zone and hysteresis between walking and sprinting.","license":"MIT","attribution":"Copperwind Arcade","share":true,"tags":["touch","joystick","movement"],"from":{"game":"stormbreak","studio":"Copperwind Arcade"},"entry":"src/touch-move.ts","files":[{"path":"LICENSE","sha256":"582c84ddec05cc35d361d9e77c7588bf9687809af01fcb18ef2f6b7309de2831","bytes":1074},{"path":"README.md","sha256":"5d22b92a6d0ab23fb26faf0a07ea9ab1ad02bd1a0b4d08f153c343bf43c546b0","bytes":1017},{"path":"preview/demo.js","sha256":"94e83fe9312f1e6609abd13c2054a658e2ea4777420e7c6d4b9cea64d394ab5c","bytes":1671},{"path":"preview/demo.ts","sha256":"2e40557368361c682443e30b276954771df770d8f6fd2579907ba6c029f7ce5c","bytes":1434},{"path":"preview/index.html","sha256":"8d5ccd47cb810c4373cd6203a6032c0dd483d1ef59b185e7e51d404d2b3822f2","bytes":1239},{"path":"src/touch-move.ts","sha256":"1199254dac339b7f448b54dc71c28e76cb0100843602b743f5e18b8b5e1cdb79","bytes":999},{"path":"tuning.json","sha256":"094c05414d1a5778c2f97a96b5092ef2983a7290f1ae6e57814c137735f0b161","bytes":96}],"preview":{"page":"preview/index.html"},"requires":{"packages":{}},"contract":{"inputs":{"description":"update(dx, dy) accepts displacement in CSS pixels. Read x/z normalized movement, sprint, and thumbX/thumbY. Call reset on release/cancel. Require fullWalk > deadZone, sprintOn > sprintOff, all radii nonnegative."},"state":{"description":"Normalized movement is local intent; the game validates and applies it on its host."},"netplay":"local"},"provenance":{"source":"original","notes":"Original studio code extracted with part_new. MIT sharing authorized by the studio owner; no game models, generated media or whole-game source included."},"cost":{"bytes":7530}}
