ionous / sushi Goto Github PK
View Code? Open in Web Editor NEWa javascript client for the sashimi interactive fiction engine
License: MIT License
a javascript client for the sashimi interactive fiction engine
License: MIT License
It would be nice to indicate combine with a plus sign floating next to the pointer cursor.
LayerService is pretty complicated, and it's not clear that it needs to be. One way to simplify it would be to remove it. Replace the expansion and collapse of nodes with jquery selection by id or class.
There are a number of popup boxes which the player must bypass by clicking which could be converted to modeless notifications. For instance, "alice takes the ...", "the animal moves to the ...", etc.
This might require, on the sashimi side, a "notify" action vs. simply "saying". If so, this could be a good chance to demote "saying" from the callback execution engine interface into a standard action.
currently, map state changes ( ex. display kat foods, alice is falling, etc. ) are handled by "entity watchers" ( layerService.js, watcherService.js. ) The statechart can already listen to object state changes, so it would be nice to use the statechart for this.
The action radial should immediately vanish after the player selects an action from it.
However, If sashimi takes an unexpectedly long time to process some particular action, the action bar hangs out on the screen till the server has responded. The statechart may need some slight tweaking for this to work right.
there's currently no interface for removing saved games.
some controls were renamed "state" to help with ui refactoring before the preview edition. these should be renamed back to "control"
Popups generated from sashimi story files which have parens -- g.Say("( The spark returns the", prop.Get("name").Text()+". )") -- wind up wrapping just before the paren, leaving the paren dangling on the next line. Maybe non-breaking spaces would help. Maybe via template text with html entities.
It might be nice if, when you moved away from the action bar: it faded out, until -- when the mouse is far enough away -- it closed entirely.
Similar to the facing issue -- if the same object appears in multiple places alice often navigates to the one you'd least expect. It can be fixed by adding more landing pads, at the expense of adding more landing pads.
Add navigation history control for the browser hosted version of sushi. Pressing the back button should go from view to room, or from room to menu, as well as vice versa ( re-enter last game, attempt to zoom into a view ) if at all possible
Currently, when debugging, you have to change the startup constant to "Resume" and "MostRecentIn" and "MostRecentOut" as needed. It'd be much nicer to simply set the startup constant to the name of the save file.
gift-small was changed to a transparent png, but something is not quite right with the inventory's usage of uib-collapse or uib-carousel
Consider adding keyboard interaction for player comments. Escape to choose depart if there is a departing quip listed, number key to select a listed quip, arrows to rotate through the available quips.
The most complicated part of this would be some sort of "cursor" or "highlight" to toggle through near-by objects. [ The keyboard could be extended to support this as well, via Tab to cycle though objects, and Enter to select. ]
Bring back text view for areas without map files ( ie. bring back a view which contains the original web test client. )
This shows up best anywhere the same object appears simultaneously in the different positions: the automat chairs, the ship heart foam, the cliff path metal grates,... Maybe the click target record should also include the click spot?
When saving the game, add a screenshot to the file. Capture the canvas collection by traversing map layers and compositing into a canvas grabbing via DataURL; or, possibly something limited to chromium ( https://developer.chrome.com/extensions/desktopCapture, or https://developer.chrome.com/extensions/tabs#method-captureVisibleTab )
if the server can't complete a client request: invalid action, out of date session, exception: the server ( generally ) responds http 500. The client should indicate an error occurred ( a quake-lan disconnected icon, a growl, "this will not work" dialog both ) with as much information as possible.
alice currently keeps on walking
A history of all dialog spoken and heard would be nice. Probably? best to save this client side. Could potentially save quips, and poll the actual text ( +/- the state of the game at the time of the quip re: text templates ).
Intead of using angular $log, it would be great to have a logging wrapper that can be tuned ( debug, info, warn, off ) per state.
Logging control effects child states. With no logging config, the decision to log is neutral: neither enabling nor disabling. Logging off should likely silence children, or have add a particular silence-children value.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.