GithubHelp home page GithubHelp logo

doublespeakgames / adarkroom Goto Github PK

View Code? Open in Web Editor NEW
7.0K 7.0K 1.6K 392.06 MB

A Dark Room - A Minimalist Text Adventure

License: Mozilla Public License 2.0

HTML 1.86% CSS 5.47% JavaScript 92.34% Python 0.34%

adarkroom's People

Contributors

aetherseed avatar andysky21 avatar anubisthejackle avatar bairborne avatar burunduk avatar cogito avatar continuities avatar decrecementofeliz avatar djuretic avatar ekarpicius avatar grotewold avatar groteworld avatar hun0975 avatar jat023 avatar jensneuber avatar lilj avatar lucasloisp avatar lucidcrux avatar mmkalll avatar mttr avatar nutzchannel avatar orsi avatar pacharan avatar paolafalcon avatar sebring avatar thilovoigt555 avatar vanadar avatar voldedore avatar youknowone avatar zarkonnen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adarkroom's Issues

UI and Logic

I am curious how common it is for code similar to that of a dark room to be used for javascript/jquery projects. I have already mentioned how it bugs me that content is not separate from logic/mechanics, but the other thing is how UI and logic/mechanics is all stuffed together. It seems weird to me that one of the most basic things isn't to start out with keeping them separate. I mean there is css/html, so I would think the mindset is not foreign for web stuff.

Pulling out the content is one thing, it is mostly grouped together into nice little bits or consistently located in event structures. The UI and logic just seems welded together. To me it seems a near impossible or "might as well start from scratch" scenario, is that just my noobness? Or is it a possibility? Would separating UI/Logic be a weird thing for people more familiar with js/jquery?

The ending made me sad!

It would be great to have a summary at the end, perhaps including the time spent, number of things spent, number of different enemies vanquished etc.

I'd like it anyway!

French translation

Hey,
First, awesome projet !

I noticed a lack of translation for the french when trying to craft a torch, as in the next screen :
scrren

Cheers

Translation

Hi,
First of all, it's a nice game :), thanks.

And the issue, as far as i am (coal mine) :

In the top right panel in the forest, the 'iron mine' and the 'coal mine' are not translated in french (respectively: 'mine de fer', 'mine de charbon')

Vincent.

PS : I add some
sulphur mine => mine de soufre
not enough sulphur => soufre insuffisant.
sulphur => soufre
bayonet => baïonnette

In French, souffre is mispelled => soufre.

game logo

Do you have a logo for the game? I saw the banner on the blog but ideal would be something square, 128*128px for example.

We want to add the game to Libre Projects, the collection of open source hosted web software. :) (source code also open)

Can't restore save game

Exported the following code and can't restore it. An older save works. I guess it wasn't exported completely (see the ... at the end), maybe it was too big for the original text field?

c3RvcmVzIjp7Indvb2QiOjM3ODAsInNjYWxlcyI6MjUzLCJiYWl0Ijo1MDMzLCJjbG90aCI6MjEwLCJmdXIiOjc0Mzc4LCJtZWF0Ijo4NjE0OC41LCJ0ZWV0aCI6Mzc1LCJs
ZWF0aGVyIjoxMDUwOCwiY3VyZWQgbWVhdCI6Nzc1LCJ0b3JjaCI6Mywid2F0ZXJza2luIjoxLCJib25lIHNwZWFyIjoxLCJydWNrc2FjayI6MSwibCBhcm1vdXIiOjEsImNo
YXJtIjoxMCwiY29tcGFzcyI6MSwiaXJvbiI6OTI3LCJpcm9uIHN3b3JkIjoxLCJtZWRpY2luZSI6MzcsImVuZXJneSBjZWxsIjoxMCwic3RlZWwgc3dvcmQiOjYsImNhc2si
OjEsIndhZ29uIjoxLCJpIGFybW91ciI6MSwiY29hbCI6MjE0LCJzdGVlbCI6MzQyNiwiYm9sYXMiOjUsIndhdGVyIHRhbmsiOjEsImNvbnZveSI6MSwicyBhcm1vdXIiOjEs
ImFsaWVuIGFsbG95IjoxLCJyaWZsZSI6NiwiYnVsbGV0cyI6MzcsImdyZW5hZGUiOjEsImJheW9uZXQiOjEsInN1bHBodXIiOjEwODd9LCJjaGFyYWN0ZXIiOnsicGVya3Mi
Onsic3RlYWx0aHkiOnRydWUsImdhc3Ryb25vbWUiOnRydWV9LCJkZWh5ZHJhdGVkIjoxfSwiaW5jb21lIjp7ImdhdGhlcmVyIjp7ImRlbGF5IjoxMCwic3RvcmVzIjp7Indv
b2QiOjQ5fSwidGltZUxlZnQiOjEwfSwiYnVpbGRlciI6eyJkZWxheSI6MTAsInN0b3JlcyI6eyJ3b29kIjoyfSwidGltZUxlZnQiOjEwfSwiaHVudGVyIjp7ImRlbGF5Ijox
MCwic3RvcmVzIjp7ImZ1ciI6MCwibWVhdCI6MH0sInRpbWVMZWZ0Ijo4fSwidHJhcHBlciI6eyJkZWxheSI6MTAsInN0b3JlcyI6eyJtZWF0IjowLCJiYWl0IjowfSwidGlt
ZUxlZnQiOjh9LCJ0YW5uZXIiOnsiZGVsYXkiOjEwLCJzdG9yZXMiOnsiZnVyIjowLCJsZWF0aGVyIjowfSwidGltZUxlZnQiOjl9LCJjaGFyY3V0aWVyIjp7ImRlbGF5Ijox
MCwic3RvcmVzIjp7Im1lYXQiOi01MCwid29vZCI6LTUwLCJjdXJlZCBtZWF0IjoxMH0sInRpbWVMZWZ0IjoxMH0sImlyb24gbWluZXIiOnsiZGVsYXkiOjEwLCJzdG9yZXMi
OnsiY3VyZWQgbWVhdCI6LTUsImlyb24iOjV9LCJ0aW1lTGVmdCI6OX0sImNvYWwgbWluZXIiOnsiZGVsYXkiOjEwLCJzdG9yZXMiOnsiY3VyZWQgbWVhdCI6LTUsImNvYWwi
OjV9LCJ0aW1lTGVmdCI6OH0sInN0ZWVsd29ya2VyIjp7ImRlbGF5IjoxMCwic3RvcmVzIjp7Imlyb24iOi01LCJjb2FsIjotNSwic3RlZWwiOjV9LCJ0aW1lTGVmdCI6OX0s
InN1bHBodXIgbWluZXIiOnsiZGVsYXkiOjEwLCJzdG9yZXMiOnsiY3VyZWQgbWVhdCI6LTUsInN1bHBodXIiOjV9LCJ0aW1lTGVmdCI6MTB9LCJhcm1vdXJlciI6eyJkZWxh
eSI6MTAsInN0b3JlcyI6eyJzdGVlbCI6LTEsInN1bHBodXIiOi0xLCJidWxsZXRzIjoxfSwidGltZUxlZnQiOjl9fSwidGltZXJzIjp7fSwiZ2FtZSI6eyJidWlsZGVyIjp7
ImxldmVsIjo0fSwiYnVpbGRpbmdzIjp7InRyYXAiOjEwLCJjYXJ0IjoxLCJodXQiOjIwLCJsb2RnZSI6MSwidHJhZGluZyBwb3N0IjoxLCJ0YW5uZXJ5IjoxLCJzbW9rZWhv
dXNlIjoxLCJ3b3Jrc2hvcCI6MSwiaXJvbiBtaW5lIjoxLCJjb2FsIG1pbmUiOjEsInN0ZWVsd29ya3MiOjEsInN1bHBodXIgbWluZSI6MSwiYXJtb3VyeSI6MX0sInBvcHVs
YXRpb24iOjgwLCJ3b3JrZXJzIjp7Imh1bnRlciI6MCwidHJhcHBlciI6MCwidGFubmVyIjowLCJjaGFyY3V0aWVyIjoxMCwiaXJvbiBtaW5lciI6NSwiY29hbCBtaW5lciI6
NSwic3RlZWx3b3JrZXIiOjUsInN1bHBodXIgbWluZXIiOjUsImFybW91cmVyIjoxfSwib3V0c2lkZSI6eyJzZWVuRm9yZXN0Ijp0cnVlfSwid29ybGQiOnsibWFwIjp7IjAi
OlsiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJZIiwiLiIsIi4iLCIuIiwi
LiIsIkghIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJCISIsIi4iLCIuIiwiLiIsIi4iLCIu
IiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIl0sIjEiOlsiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4i
LCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIu
IiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJQIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwi
...

Make A Dark Room accessible to the blind.

There are blind (yes, blind) people playing the iOS version of the game. And they are loving it. ADR is in a unique position to actually bring a great game to the vision impaired.

Syntax error in engine.js

When I bring up the console, it says there's a syntax error on line 129 of engine.js which is in the section for adding the button to the App store. So, I downloaded a copy of the web page and associated files. I thought it might be a missing closing single quote and closing bracket on line 128 but, adding it before the --> didn't seem to fix anything. My knowledge of Javascript is rather weak, so I'm not sure what the problem is.

Not sure if these are needed or anything.
Screenshot of console:
screen1

Screenshot of problem section:
screen2

Edit1: What I see in the production version of A Dark Room is different from what is currently in Github. Not sure if that's why.

Production Count Display Incorrect

Sometimes when I mouse over the Hunter (seems oddly specific to this, but this might just be due to me checking Hunter more than the others) I will see the numbers as +0.5 no matter the number of hunters I have.

adarkroomerror

I watched fur production during the time of the screenshot, and the actual production seemed to be accurate, so it appears to be simply a display issue. It's extremely simple to fix, all you have to do is change the number of hunters (it may be that you can change any of the careers, but again, I'm currently focusing on solely the hunters) It also fixed itself shortly after the screenshot when an attack dialog popped up, and I had lost some villagers. This had dropped my hunter count from 77 to 73. (The gatherer count stayed at 3, but I'm going to mark that down as epic timing of a family moving in right as I closed the dialog box)

All in all this isn't a hugely important thing to focus on, but I noticed it, so wanted it documented.

Missing feature?

when i logged out i had the ability to make rifles and steel swords.. but now steel is missing from my inventory and i cannot make steel equip or rifles.

-huge edit:

I absolutely love the game (thus far). I'm milking it; clearing the map, farming teeth, etc. and I'm truely excited for what 'space' will be like... the game was the first thing I stumbled upon after creating an account for work, and I've been secretly hooked for a couple days. Beautiful concept and great layout.

ideas i've had:

  • Some way to classify/save what goes through the feed so that some events bolded/stick-out/persist in the log. This could give you the ability to look back at your progress during a given play session or over the past x mins. ex: bigger things that happen like visitors that stop by while you're at home and the interactions you gain/donate to them, meeting a stranger and what they impart to you,
  • An overall Character log: bodycount on the creatures you've slain, number of times you're fire's gone out while you've been home (afk), maybe even #shots fired!

keep up the great work!

Forest/Stores/Weapons can exceed viewport height on Village tab

Now that Stores panel appears on the Village tab, the information on the right-hand side of the screen can easily exceed 700px. Not sure there's a good solution to this, short of increasing the viewport height, which I don't really want to do. Go much higher than 700px and you start scrolling on laptops with smaller screens, which I would prefer to avoid. Logging the issue, just in case anyone has a bright idea.

Some localization string

Please, add this patch.

diff --git a/script/localization.js b/script/localization.js
index 505afa7..789a59e 100644
--- a/script/localization.js
+++ b/script/localization.js
@@ -22,6 +22,8 @@
            div#outfitting:before{ content: \''+ _("supplies:") + '\'}\
            div#perks:before{ content: \''+ _("perks:") + '\'}\
            div#lootButtons:before { content: \''+ _("take:") + '\'}\
-           div#village:before{ content: \''+_('forest')+'\'}\
+           div#dropMenu:before { content: \''+ _("drop:") + '\'}\
+           div#village.noHuts:before { content: \'' + _("forest") + '\'}\
+           div#village:before { content: \'' + _("village") + '\'}\
    ').appendTo($('head'));
 })();
diff --git a/script/outside.js b/script/outside.js
index fca4236..58e3135 100644
--- a/script/outside.js
+++ b/script/outside.js
@@ -416,7 +416,7 @@ var Outside = {
            }
        }

-       population.text('pop ' + $SM.get('game.population') + '/' + this.getMaxPopulation());
+       population.text(_('pop ') + $SM.get('game.population') + '/' + this.getMaxPopulation());

        var hasPeeps;
        if($SM.get('game.buildings["hut"]', true) == 0) {

Reset my fork to upstream

I don't know what in the hell I did, but I can' seem to undo it. Can anyone tell me how to get rid of that last commit I have on my forked master? I can't figure out how to revert it back to the upstream master. I am using egit/mylyn in eclipse. If it can be done with that great. I haven't figured out command line git yet. (I know, horrible)

Combat Ranges (enhancement)

Combatants would start at range, and slowly move closer. Each weapon would have a maximum range at which it is effective. This would encourage (but not require) the use of weapons even when a player has the 'Unarmed Master' perk.

Ranges:
5 - Laser Rifle
4 - Rifle
3 - Spear, bolas, grenades
2 - Swords, bayonets and most other hand weapons (and possibly some beasts)
1 - fists, most beasts

The starting range for combat would be the longest range of any weapon of any combatant. So if I go into battle unarmed against a sniper, we would start at a range of 4. Every few seconds (3, 4, 5?) the range would decrease by one. Only when we reached a range of 1 would I be able to attack. As another example, if I had a laser rifle (and ammo for it), the range would start at 5 even if I was fighting a wild beast. I would get several shots off before it got close enough to attack.

Range could be displayed graphically by having the text/icons for each attacker move physically closer together in the combat window. Weapons would be disabled until combat reached the appropriate range.

I thought of this idea because I find myself pushing to get unarmed master as quickly as possible, then simply ignoring all other weapons. Doing that has too many advantages, and very few disadvantages. So I tried to find a way to balance the different weapons.

Unfortunately, it's probably a lot of work for a fairly minor improvement.

Sulphur Mine too easy with medicine?

Previously I could not defeat the sulphur mine without exploring enough to find a perk, like gastroneme. If I'm carrying medicine, that grizzled veteran was piece of cake.

Time Options

It would be awesome to be able to speed up time.

Share some analytics?

I wish there were forums, but I guess this could be marked question... Anyways, just wondering if the creator and owner of the google analytics this is linked to would be up for sharing some of the data collected. Candybox had enough interest in stats that a page was made, just thinking this might be the same.

Moving content out of other files

I'm new to gitHub and javascript, but I'd like to take a shot a moving content away from the mechanics. The main reason is that coming from other languages, having content mixed in with everything else bugs the crap out of me. The second reason is that it will hopefully make things a lot less messy, meaning easier to add new stuff and easier to find the mechanics you want without all the clutter.

I did not want to make a pull request or start a branch yet because 1) I'm new to github and this kind of project management 2) I have no clue how long this will take me to do

In lieu of forums, I'm starting this issue for discussion on the idea and feedback on what I've got going. If doing that is inappropriate, feel free to squash this.

Below are two files I'm working on. If you have suggestions or see problems let me know. I have not tested any of it (I know very bad me). Some of it may also look new because I am trying to think ahead to possible future content.

content.js

/**
 * Module for Content
 */

var Content = {
    buildingList: {},
    upgradeList: {},
    itemList: {},
    weaponList: {},
    mobList: {},

    //checks if object of the given name is already in the list
    //if not, adds object to the list, else alerts name exists
    addContentListEntry: function (newContent, whichList) {
        if(!(newContent.name in whichList)) {
            whichList[newContent.name] = newContent;
        } else {
            alert("The list already has an entry for \"" + newContent.name + "\".")
        }

    },

    //reads each entry from a stat list
    //then creates the correct object type and copies those stats
    //then makes a call to add the object to the given content list
    // *Does not include any kind of error or type checking
    populateListFromStats: function (statList, objType, contentList) {
        for(var entry in statList){
            var tempObj = Object.create(objType);
            jQuery.extend(tempObj, entry);
            Content.addContentListEntry(tempObj, contentList);
        };
    }
};

/**
 * The following are the objects used for OO / "class"
 * type functionality for use with Javascript
 * prototyping inheritance.
 */

Content.Thing = [
    name: 'new thing',
    button: null,
    type: 'thing',
    availableMsg: null,
    buildMsg: 'made a thing',
    cost: {},
    getCost: function (index) {
        if(index == undefined) {
            index = 0;
        };
        return this.cost[index];
    }
];

Content.Building = Object.create(Content.Thing);
jQuery.extend(Content.Building, {
    type: 'building',
    availableMsg: 'new building available',
    maximum: 1
});

Content.Upgrade = Object.create(Content.Thing);
jQuery.extend(Content.Upgrade, {
    type: 'upgrade',
    maximum: 1
});

Content.Item = Object.create(Content.Thing);
jQuery.extend(Content.Item, {
    type: 'item',
    drops: {},
});

Content.Equipment = Object.create(Content.Thing);
jQuery.extend(Content.Weapon, {
    type: 'equipment',
    equipType: 'misc',

});

Content.Weapon = Object.create(Content.Equipment);
jQuery.extend(Content.Weapon, {
    equipType: 'weapon',
    weaponType: 'melee',
    damage: 1,
    cooldown: 1,
    verb: 'hit',
    useCost: {}
});

Content.Mob = [
    name: 'mob',
    char: 'm',
    notification: 'a mob appears',
    damage: 1,
    hit: 0.5,
    attackDelay: 1,
    health: 10,
    terrain: World.TILE.FIELD,
    loot: {},
];

content_lists.js

//Arrays of content info grouped in one place

//Buildings
Content.buildingStatArray = [

];

//Upgrades
Content.upgradeStatArray = [

];

//Items
Content.itemStatArray = [

];

//Weapons
Content.weaponStatArray = [
    //Unarmed
    {
        name: 'fists',
        weaponType: 'unarmed',
        damage: 1,
        cooldown: 2,
        verb: 'punch'
    },
    //Melee
    {
        name: 'bone spear',
        weaponType: 'melee',
        damage: 2,
        cooldown: 2,
        verb: 'stab',
    },
    {
        name: 'iron sword',
        weaponType: 'melee',
        damage: 4,
        cooldown: 2,
        verb: 'swing'
    },
    {
        name: 'steel sword',
        weaponType: 'melee',
        damage: 6,
        cooldown: 2,
        verb: 'slash'
    },
    {
        name: 'bayonet',
        weaponType: 'melee',
        damage: 8,
        cooldown: 2,
        verb: 'thrust'
    },
    //Ranged
    {
        name: 'rifle',
        weaponType: 'ranged',
        damage: 5,
        cooldown: 1,
        verb: 'shoot',
        cost: { 'bullets': 1 }
    },
    {
        name: 'laser rifle',
        type: 'ranged',
        damage: 8,
        cooldown: 1,
        verb: 'blast',
        cost: { 'energy cell': 1 }
    },
    {
        name: 'grenade',
        type: 'ranged',
        damage: 15,
        cooldown: 5,
        verb: 'lob',
        cost: { 'grenade': 1 }
    },
    {
        name: 'bola',
        type: 'ranged',
        damage: 'stun',
        cooldown: 15,
        verb: 'tangle',
        cost: { 'bola': 1 }
    }
];

//Mobs
Content.mobStatArray = [
    //============ tier 1 ============//
    {   name: 'snarling beast',
        char: 'B',
        notification: 'a snarling beast leaps out of the underbrush',
        damage: 1,
        hit: 0.8,
        attackDelay: 1,
        health: 5,
        terrain: World.TILE.FOREST,
        loot: {
            'fur': {min: 1, max: 3, chance: 1},
            'meat': {min: 1, max: 3, chance: 1},
            'teeth': {min:1, max: 3, chance: 0.8}
        }
    },              
];

//Populate the content lists with actual objects created from these stats
Content.populateListFromStats (Content.buildingStatArray, Content.Building, Content.buildingList);
Content.populateListFromStats (Content.upgradeStatArray, Content.Upgrade, Content.upgradeList);
Content.populateListFromStats (Content.itemStatArray, Content.Item, Content.itemList);
Content.populateListFromStats (Content.weaponStatArray, Content.Weapon, Content.weaponList);
Content.populateListFromStats (Content.mobStatArray, Content.Mob, Content.mobList);

Better Path Item Quantities

Just finished playing (and loved it), but my one big annoyance is that when I return home after exploring the path, it would set the meat, bullets, etc to the amounts I had AFTER I was done exploring. This was very frustrating because by the end of the game, I had hundreds of bullets and cured meat at home and would be forced to click the up arrow at least fifty times after every exploration to replenish my 100 bullets and 40 cured meat.

The two solutions I would like is for the item amounts to be reset to the values set when you start along the path (provided you have enough of the item), and the other solution is to have a way to type an amount directly instead of needing to click the up arrow fifty times.

Save code fails to update

I have a problem with saving/importing saves. Up to a certain point in the game, savnig wasn’t a problem but now if I try to save, the code doesn’t change at all compared to the one I imported to continue the game. So when I import the code, I have to start where I had started before. It doesn’t save my progress at all :(
I’m using Firefox 26.0 and Windows 7 Home Premium 64 bit :)

ncurses bindings

This is a large feature request, so I don't expect it to be anywhere near top-priority (and I wouldn't honestly be surprised if it were simply discarded). However, I would love to be able to play this game without using a web browser (ideally, through ncurses in a terminal). Would anyone be interested in adding/using this?

Github Pages

As this seems to be completely based on static HTML, why don't you host a playable version on Github Pages? Just add a branch called gh-pages that stays in sync with master and add a link to http://continuities.github.io/adarkroom to your readme.

Looping in local Chrome

I tried playing the game on Chrome locally, and even though it did talk about the stranger, after a while it just kept looping though the "the fire is roaring." I uploaded it up to my web server, and all was peachy! The only console output from the local build was "Failed to load Resource", referring to Google Analytics.

Specs:

  • Google Chrome 27.0.1453.116 m
  • Windows 8

image

Close Dialogs on a Timer

I've noticed that when the dialog box opens up--any of them, but specifically the wandering guy who sells cheap scales and teeth--your inventory continues to rise. This is fine, but the purchase buttons don't grey out until you've spent too much. After they're grey, they don't re-activate, which is fine.

That said, if you're diligent, you can keep your eye on your fur, watching until it's just a click from being too low, and then set the game aside to let it raise back up. This way you have infinite ability to purchase cheap items.

My proposed solution is one of two:

  1. Set a timer that automatically closes this dialogue
    or
  2. When the dialog is loaded, capture the fur count, and use that number to base the box graying off of.

State Manager / Engine.js big TODO

I needed to do this for content separation anyways, but it directly addresses the big TODO at the top of the engine file. I just wanted to post an issue before the weekend to hopefully make people aware of that so duplicate effort is not made. I have a lot of free time for a few days so I should hopefully get the first version done and integrated and ready for testing before too long. The first, starting commit is already up.

Sounds for the game

I've been thinking about this lately,

What is everyone's thoughts on sound effects for the game? Before I go as far as add sound functions, I want to get the community opinion.

Disable text selection

Hello

I was playing Adarkroom earlier today and i just found out it's on GitHub.
I would like to suggest a fix to the game so the players won't experience this nasty blue color when clicking too much on the same button.
IThere was a ::selection property set to invisible, but i suppose it's for something else than text selection since it doesn't change the color of the selected text.

My HTML/CSS/Javascript knowledge isn't that great so i just throw in CSS declarations which should work according to StackOverflow questions:
user-select: none;
-> works on roughly 80% of the browsers being used
(source: http://caniuse.com/#feat=user-select-none )

alternative style codes:
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;

I'm also not sure if these properties are applicable on the body/wrapper element so the childs could inherent it. Maybe someone of you guys can code my suggestion to life?

Don't move buttons in dialogs to avoid unintended clicks

Moving buttons around is a bit confusing, UI-wise:

While fighting you might be clicking furiously between the "stab", "slash", "shoot", "meat" etc. buttons. When the fight is suddenly over, the button in the bottom left corner immediately gets replaced by the "continue" button. More than once I accidently clicked this because I didn't catch that I won the fight. I left some valuable bullets and cured meat behind because of that :(

Proposed solution: simply disable empty/irrelevant buttons instead of hiding them and moving the next button in its place.

Sulphur mine doesn't work after discovering alien ship

I just had my first playthrough on the official site! Awesome game.

However, I found the sulphur mine AFTER the alien ship, and didn't have the option to make sulphur or make an armoury, as I'm apparently supposed to be able to do.

It made it a bit difficult to harvest alien alloys, since I didn't have a readily available source of bullets and energy, so I had to farm enemies. Tricky!

I'd duplicate it again, but I don't want to spend a couple of hours on the game again so soon, fun as it was :)

travelTo Mechanics

When Engine.travelTo() is called, instead of moving to the specified module, it increments the panelIndex to the supposed location of the module. In normal gameplay, this shouldn't be an issue, but I am writing a little bit of extra content (a new tab) and this suddenly becomes an issue. I will start trying to find a solution for this, but if anyone else has any suggestions or other input, I'd appreciate the help. I'm experienced in JS, but not so much with reading other people's syntax.

For the time being, I've worked around this with the :nth-child selector.

Fire

What if huts needed to be rebuilt like traps? It would have to be rare, huts are a huge wood drain.

How is the terrain generated?

I was extremely jealous of your terrain generation (not the cities, caves, mines, etc, but the woods, grass, and plains), so I looked through the code, but I couldn't find anything much. Can someone point me to where the code for the generation is or tell me how it works?

Menu bar cuts through map on scroll or resolution change

The menu bar doesn't anchor to the bottom of <body> if the resolution is lower than the map, requiring a scroll. I noticed this when using the Chrome console, and re-sizing causes the menu to sit about 20px above the console bar. This could easily be fixed by putting the menu at the top, above <div id='wrapper'>, but that's a style issue, so is ultimately up to @Continuities.

Multi-language Functionality

After reading @vlisivka's pull-request mistake I thought it would be good to have a way to easily translate the game and change the language in-game, that way we can share the game with non-english speaking people.

Each language file would be a JavaScript defining each text on the game, we may have a structure like this:

var Lang = Lang || [];
Lang['en'] = {
    btn: {
        embark: 'Embark',
        ...
    },
    notification: {
        ...
    },
    tooltip: {
        ...
    },
    ...
}

This is just the basic idea of course, I may be over-categorizing or missing something, also I don't know if it's better to load all the languages at once or on demand, but that's my first thoughts.

What do you think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.