08 Aug, 2011, Runter wrote in the 81st comment:
Votes: 0
Fizban said:
Hmm, temporarily disabled Avast's firewall, and it now works on Opera and IE, but still not on Chrome. Admittedly though I'm using a fairly non-standard version of Chrome (ie. I am using Chrome Canary, which is their update channel which gets updates most frequently).

Shocked that firewall seemed to be the issue though as if that were the case I'd have expected it to work in no browsers rather than in Firefox only.

It's also weird that it works in IE since it uses chrome-frame in I.E. so technically it uses chrome. :p
12 Aug, 2011, Runter wrote in the 82nd comment:
Votes: 0
Merging this in later today. This is the reduced test case I used.


Basically it will allow the UI to determine which tiles on the grid have been selected by a user.
I think this would be very useful for both being able to select many things in the game at once that reside inside of tiles for players, and also appealing from a building sand point since you could select multiple tiles(rooms) to do a building operation upon.

I forked this to demonstrate how easy just selecting components in the grid could be.

And to demonstrate there's no reliance on any configuration. Ultimately they can be rendered differently for two users, yet the bounding box for the lasso still selects as expected given whatever rendering.
12 Aug, 2011, Runter wrote in the 83rd comment:
Votes: 0
It's now merged and live on haikumud.com.

I'm pretty happy that I ended up being able to fully display selections with css alone. The code sets classes and then the css tells the renderer how to use them:
.tile.ui-selected .wall {
border: 1px dashed blue;

.tile.ui-selected:not(:empty) {
border: 1px solid blue;
background-color: blue;

.tile.ui-selected img {

.tile.ui-selecting {
border: 1px dashed orange;

Which is far more efficient than programmatically changing how things look in javascript after selections/deselection occurs. My only concern is that non-modern browsers might not understand the opacity attribute. It's not a major concern, though, since they'll still get a selection box around the tile. They just won't get the tinting of things inside of the tile to the selection color.
12 Aug, 2011, Runter wrote in the 84th comment:
Votes: 0
To improve speed and cache hits for the javascript libraries I include, the project is now referencing google's hosting of the follow libraries:


There's a few libraries I'm considering removing dependancies on google does not host them. In particular, underscore.
13 Aug, 2011, Twisol wrote in the 85th comment:
Votes: 0
You can use CDNjs if there are libraries you want that Google doesn't host. I use it for most of the libraries I include in Aspect.

13 Aug, 2011, Runter wrote in the 86th comment:
Votes: 0
I wonder if CDNjs has a better chance of a cache hit, or the google hosting?
13 Aug, 2011, Twisol wrote in the 87th comment:
Votes: 0

Since Google doesn't host underscore.js, the likelihood of a cache hit is 0%. The big-name CDNs don't have many of the popular JS libraries beyond jQuery/Prototype/etc., and I haven't found any other CDNs with the number of quality libraries that CDNjs has.

Of course, CDNjs hosts jQuery too, so it's up to you which CDN you want to use for it. I'm using CDNjs for it too because jQuery is probably one of the most-referenced libraries on CDNjs.
17 Aug, 2011, Runter wrote in the 88th comment:
Votes: 0
Updates include:
I cut the default background image size down by half. There was no reason to have it so high definition.
I went ahead and changed some libraries over to the CDNjs definitions.

I'll be merging some code based on this in tomorrow. It proves out displaying projectile animations without relying on canvas tech.

Oh, and changed the easing from swing to linear for most animations.
18 Aug, 2011, Runter wrote in the 89th comment:
Votes: 0
Updates include

Made selection geometrically faster. There was a noticeable slow down at the start of selection before. It should be completely gone now.

Includes coffeescript as a default technology. Although new code can be written in javascript. And if one doesn't want coffeescript they could compile it to javascript, start using those files, and never use coffeescript again.
CoffeeScript Site

for food in ['toast', 'cheese', 'wine']
eat food

compiles to

var food, _i, _len, _ref;
_ref = ['toast', 'cheese', 'wine'];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
food = _ref[_i];

Coffeescript brings a lot of nice features to javascript. There's a lot to like, but if I really had to nail down just one reason it would be for object oriented design.

class Animal
constructor: (name) -> this.name = name
move: (meters) -> alert @name + " moved #{meters}m."

class Snake extends Animal
move: -> alert "Slithering…"; super 5

class Horse extends Animal
move: -> alert "Galloping…"; super 45

sam = new Snake "Sammy the Python"
tom = new Horse "Tommy the Palomino"


var Animal, Horse, Snake, sam, tom;
var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) {
for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
function ctor() { this.constructor = child; }
ctor.prototype = parent.prototype;
child.prototype = new ctor;
child.__super__ = parent.prototype;
return child;
Animal = (function() {
function Animal(name) {
this.name = name;
Animal.prototype.move = function(meters) {
return alert(this.name + (" moved " + meters + "m."));
return Animal;
Snake = (function() {
__extends(Snake, Animal);
function Snake() {
Snake.__super__.constructor.apply(this, arguments);
Snake.prototype.move = function() {
return Snake.__super__.move.call(this, 5);
return Snake;
Horse = (function() {
__extends(Horse, Animal);
function Horse() {
Horse.__super__.constructor.apply(this, arguments);
Horse.prototype.move = function() {
return Horse.__super__.move.call(this, 45);
return Horse;
sam = new Snake("Sammy the Python");
tom = new Horse("Tommy the Palomino");
24 Aug, 2011, Runter wrote in the 90th comment:
Votes: 0

This is a demo for hitboxes. A npc sprite can be comprised of multiple hitboxes. I'm not sure about the stock combat module, but I'm thinking scifi-western with guns and projectiles and what not. An example might be a human sprite where the head gives a critical bonus to damage, where the rest is a normal hitbox.
25 Aug, 2011, Runter wrote in the 91st comment:
Votes: 0
Going to merge this in for the UI side for setting talents.


It doesn't have any way to remove selections right now. I'm not sure because ideally I'd like it to be right click, but overriding right click in browsers is questionable design. I may just do a reset button to clear them all, or maybe make a minus sign appear that can be clicked to reduce it.
26 Aug, 2011, Runter wrote in the 92nd comment:
Votes: 0
I'm looking for an assistant. You don't have to be an expert programmer or designer. In particular, I need someone good with planning, writing documentation, and odd jobs. A great deal of my time is taken up doing these three things. If you're interested in the project and want to get involved please message me. Either on mudbytes or via:

aim: jeffreybasurto
skype: heathkun
email: jeffreybasurto@gmail.com
msn: a_beautiful_paradigm@live.com
yahoo messenger: bigng22@yahoo.com
27 Aug, 2011, Runter wrote in the 93rd comment:
Votes: 0
Finally fixed a bug with firefox 6+ that was making the client not connect. It didn't show up previously because it was falling back to flash, but web sockets are reintroduced natively in firefox 6.