Git Product home page Git Product logo

nucleogenesis's People

Contributors

aecon01 avatar angarg12 avatar ds814 avatar heinoustugboat avatar jcboorgo avatar loader3229 avatar primeprover avatar sigstackfault avatar totominc 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

Watchers

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

nucleogenesis's Issues

Model Neutron decay

Well, it turns out that Neutrons are not stable and decay into Electron and Proton by beta decay in about 10 minutes.

This should be included, and the implications weighted in order to balance progression.

Get data from here.

https://en.wikipedia.org/wiki/Neutron

Synthesis not showing

Right now synthesis are buggy and don't show in the GUI. The reason is because atomic elements are generic instead of point to an specific isotope (e.g. H instead of 1H).

Create a Resources dashboard

As the number of total resources increases dramatically, players need to more easily manage their economy.

A resources dashboard would summarise the current status of all the resources in the game.

The dashboard would appear as a new tab.

The dashboard would feature a number of columns to display different resources.

The dashboard would include filters to limit what resources to show.

The dashboard could include a counter next to each resource estimating the generation of each resource (could be negative if the resource is being spent). This feature is subject to the technical complexity of its implementation.

Rename of sections

As things move around we will need to rename certain items.

Some new sections will be.

  • Redox for Oxidation/Reduction.
  • Reaction for Synthesis.

Behaviour of ions

Right now in the game ions don't have any behaviour.

In reality isotopes are usually unstable, and there is a practical limit to the oxidation state of an atom or compound. These concepts could be built into the game to provide a in-universe bound to resources.

Flavour the generators

In the process of rebranding, generators could use flavour to avoid generic and boring names.

Write a README

Right now the readme is basically empty.

The document should include at least two sections.

  • One technical, explaining the technologies, setup and how to use.
  • One for players, where it explains the basics of the game.

Sort resources data

Right now resources are not sorted as they used to be. The resource data should be sorted in a sensible manner in order to make it easier to find resources.

Make the update in a copy and update all at once

Right now the update function works in place which means that the order in which updates is executed affects the outcome.

Update should happen in a copy so that we get the update from a step to the next.

Refactor index.html

There is a fair amount of redundancy in the index.html code, particularly in the reactions section.

Get rid of jQuery leftovers

Due to historic reasons there are still a couple of jQuery bits left around.

We should get rid of them and handle things via Angular.

Refactor the visible function in the different objects

The visible function is identical for each object and introduces a lot of redundancy.

These functions could be refactored out of the code.

The objects where visible function is redundant are the following.

  • Elements.
  • Generators.
  • Resources.

Implement Achievements

Achievements could provide a new layer of progress and meaning to the game. These achievements would define concrete goals independently of the Encyclopedia.

Resources needs a scroll bar

As the number of resources grow, not all of them will be able to fit on the screen at once. Therefore a scroll bar is needed to be able to see all resources.

Externalise encyclopedia

Right now the in game Encyclopedia has snippets of text and then links to Wikipedia.

Instead, all should be externalise, and render directly Wikipedia in an iframe.

Consolidate bought and level in player object

Right now the player object has several fields with one unique value. This value can be consolidated to the parent to reduce clutter.

Example:

        "Tier 10-7": {
          "bought": false
        },
        "Tier 10-8": {
          "bought": false
        }
      },
      "generators": {
        "Tier 1": {
          "level": 0
        },
        "Tier 2": {
          "level": 0

to

        "Tier 10-7": false,
        "Tier 10-8": false
      },
      "generators": {
        "Tier 1": 0,
        "Tier 2": 0

Unlocking New Elements

Hi, just wondering: when (approximately) will support be added for new elements and isotopes? This is a great game, I think the only thing hindering it is the lack of unlockable elements. Other than that, great game! ๐Ÿ‘ ๐Ÿ’ฏ ๐Ÿฅ‡

Split logic into services

Utility functions are spread all over the code. This functions should be moved to a separate module.

Functions defined inside the data module should also be moved there.

The main component has lots of logic that can be refactored into different services. Here is a preliminary list.

  • Achievements
  • Player
  • Generators
  • Upgrades
  • Synthesis
  • Reactions
  • Util
  • Animation
  • Format
  • Elements

More feedback!

I actually had a nice long reply written, but then my browser crashed and I lost it. :(

I just want to say that this is a really cool incremental, and I'm happy to see you're working on it again. I look forward to seeing what else you do with it. :D

One thing I wanted to mention (as a response to your word from the developer) is that the pacing is kinda terrible though. When I first played this game, I almost quit because I thought it was just a stupid hydrogen-collecting simulator - with a little bit of 2H and 3H thrown in for variety.

It might be worthwhile to give reality a little bit of a nudge when it comes to unlocking a few things - in other words, your first few tritium decays should come at an accelerated pace, and your second and third element unlocks (presumably He and Li once implemented) should be fairly cheap. This keeps the player engaged, by (indirectly) showing them that yes, there is more stuff down the rabbit-hole.

Another thing might be a brief tutorial - something to get players through the first couple of reactions and syntheses. I remember that being fairly confuzzling the first time through, and once again - it says "hey, this is going to be a core gameplay mechanic. There's more!"

What I don't have a good answer to is the question you pose with "The game has no challenge nor goal, and is closer to a toy than a game." The natural progression is to give the player stuff to use their compounds on, but that's a whole other can of worms - even the first set of elements mentioned in #7 has an absolutely huge number of things you can make with them. Maybe make the generators require money to generate stuff, and you can sell compounds? Start off by selling your H2, 2H, and 3H, and then work up to selling more complex compounds, with the framing device of a chemical company?

Just a little bit of an early-morning brain dump from me. :)

Uses for isotopes

In the current game, isotopes have little use, except for radioactive ones. As such, they are terribly underwhelming.

The game would provide a much better experience if these resources, which are large in number, could be seamlessly integrated into the gameplay.

One possibility is to allow using isotopes as currency for purchasing generators and upgrades. This would requires a rework of the GUI to define which isotopes and is what order they should be used.

Alternatively isotopes could be used in reactions. This, however, would need a proper analysis.

If isotopes participate in reactions keeping their original values this would cause a combinatorial explosion of resources (e.g. there are 27 combinations of H2O isotopes). However if they are converted to the base element, this could represent an exploit to transform isotopes.

In any case the properties of isotopes should be studied to provide the best in-universe solution.

Use ECMAScript 6

Right now the only impediment to adopt ECMAScript 6 is that PhantomJS doesn't support it.

We should change the Karma configuration to work with an ES6 compatible browser.

Beta decay?

What does Beta decay does?
I'm not getting any HE from it
The first element unlocked in the table beside H is O
Is this bugged?

Firefox 47.0.1

My Save:
eyJpbnRybyI6eyJiYW5uZXIiOnRydWUsIm1lbnUiOnRydWUsImNvbnRlbnQiOnRydWV9LCJlbGVtZW50c191bmxvY2tlZCI6MiwiY3VycmVudF90aGVtZSI6ImN5Ym9yZyIsInZlcnNpb24iOiIwLjkuMTEiLCJyZXNvdXJjZXMiOnsiSCI6eyJudW1iZXIiOjU1ODY4NDQzNDYzNDc5LCJpc19uZXciOmZhbHNlLCJ1bmxvY2tlZCI6dHJ1ZX0sIkgtIjp7Im51bWJlciI6Nzk3NDQ2MywiaXNfbmV3IjpmYWxzZSwidW5sb2NrZWQiOnRydWV9LCIySCI6eyJudW1iZXIiOjY3ODU5MjA4NDY2LCJpc19uZXciOmZhbHNlLCJ1bmxvY2tlZCI6dHJ1ZX0sIjNIIjp7Im51bWJlciI6NTkwMTEwODIxLCJpc19uZXciOmZhbHNlLCJ1bmxvY2tlZCI6dHJ1ZX0sIkgyIjp7Im51bWJlciI6MTU0NzI4ODQwLCJpc19uZXciOmZhbHNlLCJ1bmxvY2tlZCI6dHJ1ZX0sIkhlIjp7Im51bWJlciI6MCwiaXNfbmV3Ijp0cnVlLCJ1bmxvY2tlZCI6ZmFsc2V9LCIzSGUrMSI6eyJudW1iZXIiOjU4NzcsImlzX25ldyI6dHJ1ZSwidW5sb2NrZWQiOnRydWV9LCJPIjp7Im51bWJlciI6NzAxMzU1LCJpc19uZXciOmZhbHNlLCJ1bmxvY2tlZCI6dHJ1ZX0sIk8yIjp7Im51bWJlciI6MTI0OTg1MDYsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwiTzMiOnsibnVtYmVyIjoyOTEsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwiMTdPIjp7Im51bWJlciI6MTAzNzgsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwiMThPIjp7Im51bWJlciI6NTMzNjUsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwiSDJPIjp7Im51bWJlciI6MCwiaXNfbmV3Ijp0cnVlLCJ1bmxvY2tlZCI6ZmFsc2V9LCJlLSI6eyJudW1iZXIiOjU4MTAsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwibiI6eyJudW1iZXIiOjEsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwicCI6eyJudW1iZXIiOjc5NzQzOTYsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfSwiZW5lcmd5Ijp7Im51bWJlciI6MjQyNjc1NjEwLjc1MDQsImlzX25ldyI6ZmFsc2UsInVubG9ja2VkIjp0cnVlfX0sImVsZW1lbnRzIjp7IkgiOnsidW5sb2NrZWQiOnRydWUsInVwZ3JhZGVzIjp7IlRpZXIgMS0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS0yIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS0zIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS00Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS01Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS02Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS03Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMS04Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi0yIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi0zIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi00Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi01Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi02Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi03Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMi04Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDMtMSI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDMtMiI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDMtMyI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDMtNCI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDMtNSI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDMtNiI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDMtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAzLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNC0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC0yIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC0zIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC00Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC01Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC02Ijp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDQtOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA1LTEiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA1LTIiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA1LTMiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA1LTQiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA1LTUiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA1LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNS03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDUtOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA2LTEiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA2LTIiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA2LTMiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA2LTQiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA2LTUiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA2LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNi03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDYtOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA3LTEiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA3LTIiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA3LTMiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA3LTQiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA3LTUiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA3LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNy03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDctOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA4LTEiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA4LTIiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA4LTMiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA4LTQiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciA4LTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOC02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDgtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA4LTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOS0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgOS0yIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgOS0zIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgOS00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDktNSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA5LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOS03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDktOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMC0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMTAtMiI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDEwLTMiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciAxMC00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEwLTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTAtNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMC03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEwLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTEtMSI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDExLTIiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciAxMS0zIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDExLTQiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTEtNSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMS02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDExLTciOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTEtOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMi0xIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEyLTIiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTItMyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMi00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEyLTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTItNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMi03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEyLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTMtMSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMy0yIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEzLTMiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTMtNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMy01Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEzLTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTMtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMy04Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDE0LTEiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTQtMiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxNC0zIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDE0LTQiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTQtNSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxNC02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDE0LTciOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTQtOCI6eyJib3VnaHQiOmZhbHNlfX0sImdlbmVyYXRvcnMiOnsiVGllciAxIjp7ImxldmVsIjo0MTJ9LCJUaWVyIDIiOnsibGV2ZWwiOjM3Mn0sIlRpZXIgMyI6eyJsZXZlbCI6MzEwfSwiVGllciA0Ijp7ImxldmVsIjoyNjF9LCJUaWVyIDUiOnsibGV2ZWwiOjIxNH0sIlRpZXIgNiI6eyJsZXZlbCI6MTg2fSwiVGllciA3Ijp7ImxldmVsIjoyNjR9LCJUaWVyIDgiOnsibGV2ZWwiOjEzNn0sIlRpZXIgOSI6eyJsZXZlbCI6MTM4fSwiVGllciAxMCI6eyJsZXZlbCI6NzZ9LCJUaWVyIDExIjp7ImxldmVsIjozMH0sIlRpZXIgMTIiOnsibGV2ZWwiOjF9LCJUaWVyIDEzIjp7ImxldmVsIjowfSwiVGllciAxNCI6eyJsZXZlbCI6MH19fSwiTyI6eyJ1bmxvY2tlZCI6dHJ1ZSwidXBncmFkZXMiOnsiVGllciAxLTEiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciAxLTIiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciAxLTMiOnsiYm91Z2h0Ijp0cnVlfSwiVGllciAxLTQiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMS01Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEtNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxLTciOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMS04Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDItMSI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDItMiI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDItMyI6eyJib3VnaHQiOnRydWV9LCJUaWVyIDItNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAyLTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMi02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDItNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAyLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMy0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMy0yIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgMy0zIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDMtNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAzLTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMy02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDMtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAzLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNC0xIjp7ImJvdWdodCI6dHJ1ZX0sIlRpZXIgNC0yIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDQtMyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA0LTQiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNC01Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDQtNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA0LTciOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNC04Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDUtMSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA1LTIiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNS0zIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDUtNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA1LTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNS02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDUtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA1LTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNi0xIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDYtMiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA2LTMiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNi00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDYtNSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA2LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNi03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDYtOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA3LTEiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNy0yIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDctMyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA3LTQiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNy01Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDctNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA3LTciOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgNy04Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDgtMSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA4LTIiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOC0zIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDgtNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA4LTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOC02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDgtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA4LTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOS0xIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDktMiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA5LTMiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOS00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDktNSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciA5LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgOS03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDktOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMC0xIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEwLTIiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTAtMyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMC00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEwLTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTAtNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMC03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEwLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTEtMSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMS0yIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDExLTMiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTEtNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMS01Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDExLTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTEtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMS04Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEyLTEiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTItMiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMi0zIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEyLTQiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTItNSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMi02Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEyLTciOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTItOCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMy0xIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEzLTIiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTMtMyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMy00Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEzLTUiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTMtNiI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxMy03Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDEzLTgiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTQtMSI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxNC0yIjp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDE0LTMiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTQtNCI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxNC01Ijp7ImJvdWdodCI6ZmFsc2V9LCJUaWVyIDE0LTYiOnsiYm91Z2h0IjpmYWxzZX0sIlRpZXIgMTQtNyI6eyJib3VnaHQiOmZhbHNlfSwiVGllciAxNC04Ijp7ImJvdWdodCI6ZmFsc2V9fSwiZ2VuZXJhdG9ycyI6eyJUaWVyIDEiOnsibGV2ZWwiOjEwMn0sIlRpZXIgMiI6eyJsZXZlbCI6NDd9LCJUaWVyIDMiOnsibGV2ZWwiOjE1fSwiVGllciA0Ijp7ImxldmVsIjo0fSwiVGllciA1Ijp7ImxldmVsIjo0fSwiVGllciA2Ijp7ImxldmVsIjowfSwiVGllciA3Ijp7ImxldmVsIjowfSwiVGllciA4Ijp7ImxldmVsIjowfSwiVGllciA5Ijp7ImxldmVsIjowfSwiVGllciAxMCI6eyJsZXZlbCI6MH0sIlRpZXIgMTEiOnsibGV2ZWwiOjB9LCJUaWVyIDEyIjp7ImxldmVsIjowfSwiVGllciAxMyI6eyJsZXZlbCI6MH0sIlRpZXIgMTQiOnsibGV2ZWwiOjB9fX19LCJlbmN5Y2xvcGVkaWEiOnsiSHlkcm9nZW4iOnsiaXNfbmV3IjpmYWxzZX0sIk94eWdlbiI6eyJpc19uZXciOmZhbHNlfSwiSXNvdG9wZSI6eyJpc19uZXciOmZhbHNlfSwiRWxlY3Ryb24iOnsiaXNfbmV3IjpmYWxzZX0sIlByb3RvbiI6eyJpc19uZXciOmZhbHNlfSwiTmV1dHJvbiI6eyJpc19uZXciOmZhbHNlfSwiUmFkaW9hY3Rpdml0eSI6eyJpc19uZXciOmZhbHNlfSwiSGFsZi1saWZlIjp7ImlzX25ldyI6ZmFsc2V9LCJCZXRhIGRlY2F5Ijp7ImlzX25ldyI6ZmFsc2V9LCJFbmVyZ3kiOnsiaXNfbmV3IjpmYWxzZX0sIkVsZWN0cm9udm9sdCI6eyJpc19uZXciOmZhbHNlfSwiSW9uaXphdGlvbiBlbmVyZ3kiOnsiaXNfbmV3IjpmYWxzZX0sIkVsZWN0cm9uIGFmZmluaXR5Ijp7ImlzX25ldyI6ZmFsc2V9LCJOdWNsZWFyIGJpbmRpbmcgZW5lcmd5Ijp7ImlzX25ldyI6ZmFsc2V9LCJTeW50aGVzaXMiOnsiaXNfbmV3IjpmYWxzZX0sIklvbiI6eyJpc19uZXciOmZhbHNlfSwiTW9sZWN1bGUiOnsiaXNfbmV3IjpmYWxzZX0sIkZyZWUgcmFkaWNhbCI6eyJpc19uZXciOmZhbHNlfSwiQWxsb3Ryb3BlIjp7ImlzX25ldyI6ZmFsc2V9LCJVbnN0YWJsZSBjb21wb3VuZCI6eyJpc19uZXciOmZhbHNlfSwiV2F0ZXIgKEgyTykiOnsiaXNfbmV3Ijp0cnVlfSwiQSB3b3JkIGZyb20gdGhlIGRldmVsb3BlciI6eyJpc19uZXciOnRydWV9fSwidW5sb2NrcyI6eyJoeWRyb2dlbiI6dHJ1ZSwicGVyaW9kaWNfdGFibGUiOnRydWUsImlzb3RvcGUiOnRydWUsImlvbiI6dHJ1ZSwicmFkaW9hY3Rpdml0eSI6dHJ1ZSwiYWxsb3Ryb3BlIjp0cnVlLCJmcmVlX3JhZGljYWwiOnRydWUsInVuc3RhYmxlX2NvbXBvdW5kIjp0cnVlLCJyZWFjdGlvbnMiOnRydWUsImVsZWN0cm9uIjp0cnVlLCJwcm90b24iOnRydWUsIm5ldXRyb24iOnRydWUsImVuZXJneSI6dHJ1ZSwiaGFsZl9saWZlIjp0cnVlLCJveHlnZW4iOnRydWUsInVwZ3JhZGUiOnRydWUsImlvbml6YXRpb25fZW5lcmd5Ijp0cnVlLCJlbGVjdHJvbl9hZmZpbml0eSI6dHJ1ZSwibnVjbGVhcl9iaW5kaW5nX2VuZXJneSI6dHJ1ZSwiYmV0YV9kZWNheSI6dHJ1ZSwibW9sZWN1bGUiOnRydWUsInN5bnRoZXNpcyI6dHJ1ZSwiZmluaXNoZWQiOmZhbHNlfSwic3ludGhlc2lzIjp7IkgtcCI6eyJudW1iZXIiOjEwMCwiYWN0aXZlIjoxMDAsImlzX25ldyI6ZmFsc2V9LCJPMyI6eyJudW1iZXIiOjAsImFjdGl2ZSI6MCwiaXNfbmV3IjpmYWxzZX0sIk8yLU9PIjp7Im51bWJlciI6MCwiYWN0aXZlIjowLCJpc19uZXciOmZhbHNlfSwiTzJPMi1PM08iOnsibnVtYmVyIjowLCJhY3RpdmUiOjAsImlzX25ldyI6ZmFsc2V9LCJIMk8iOnsibnVtYmVyIjowLCJhY3RpdmUiOjAsImlzX25ldyI6dHJ1ZX19fQ==

Refactor has new functionality

Right now new unlocks are handled via booleans. We can instead introduce new unlocks in an array and pull them out of there when checked.

Write a parseResource function that breaks down a resource on its components

Currently the code introduces redundancy to identify which resources belong to which element.

A parseResource function would receive as an input a resource string. The output would be the following.

  • If the resource is a non-element, the resource itself.
  • If the resource is a compound, the elements that form it.
  • If the resource is not a compound, the base element of the resource plus its type (ion or isotope).

Split data into files

Right now every single resource needs to be written down by hand.

It would be useful to automatically generate them from ground data, particularly ions out of ionization energies.

Rework interface for ionization/electron affinity

Currently every single ionization needs to be displayed explicitly.

This works well when there is only one level of ionization, but becomes ugly with more levels (e.g. Oxygen has 8 ionization levels). This becomes even messier if we include isotopes.

A refined GUI should let adjust the ionization level (and isotopes if applicable) in place. It could also allow skipping levels e.g. O -> O2- + 2.922 eV (electron affinity*2).

Feedback

It's a great game. I just played through to making some water.

  1. I would have liked it if you could provide help links from the elements sidebar to the encyclopedia. Especially as the encyclopedia entries use words to describe topics, whilst the sidebar uses symbols.
  2. It would also be helpful if the equations each had their own entry in the encyclopedia - also with a link next to each one.
  3. I spent ages building up hydrogen then suddenly three or four equations opened up at once. It would have been nice for it to have been more staggered. I realize that you want to keep the game as true to science as possible, but the amount of hydrogen gathered before the first equation opens up seems to be arbitrary? So why not make the equations open up a little more slowly.

I look forward to the final version with all the elements in.

Write Unit and GUI tests

Never though I would say this, but we need to write tests and achieve a high coverage for the code.

Before refactoring the current code and introducing new features we need a test suite that checks that we don't break the game.

This is a very large task so we can break it down into smaller ones.

  • Set up Jasmine and Karma for JS unit test.
  • Set up Protractor for GUI test.
  • Module code coverage of >80%.
  • Service code coverage of >80%.
  • Data code coverage of >80%.
  • Definition of GUI test suite.
  • Implementation of GUI test suite.

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.