Giter Club home page Giter Club logo

cybercodeonline's People

Contributors

5h4ngho avatar andycandy-de avatar b3lli4l avatar brutedeity avatar byakkozen avatar darkrevelations avatar dexterhuang avatar epixinvites avatar freonica avatar hkcisonline avatar jeremy2801 avatar jognatan avatar johnruby avatar js147896325 avatar kimileta avatar kroliklapine avatar kt0t0sudd3n avatar lance0-32 avatar mackerels0x00 avatar masuda2022 avatar misaki290 avatar naturallycreepy avatar notmanz avatar omega-finale avatar omnipotent-god avatar paugwvsk avatar pr0dam avatar rewlf2 avatar rex7152 avatar yanderesenpaixd 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

cybercodeonline's Issues

Clean up duplicate system messages

Currently there are a lot of duplicate messages.

[system]: You received 8640 SCAVENGE experience points
[system]: You received 36 ammunition tech parts
[system]: You received 24 medical tech parts
[system]: You leveled up your scavenge skill
[system]: You received ammunition tech parts
[system]: You received medical tech parts

While the XP gain and level up messages are different, they could also be combined into one line.

Wrong Upgrade removed from Multi-Slot-Item

When using an Item with two upgrade-slots, there is a bug when removing the second upgrade.
I had attached an healthUpgrade (first) and a damageUpgrade (second).
When removing the damageUpgrade, I received a copy of the healthUpgrade in my Inventory, instead of the damageUpgrade.

Show base crit % in stats

For quite a while I was avoiding crit chance because in my stats it said I had 0% crit damage. It was not apparent that there is a base crit damage %. This base should be in Stats.ts and then added to when gear increases it.

package.json

Something like this at the top level:

{
  "name": "CyberCodeOnline",
  "version": "1.0.0",
  "description": "ShangriLa and surroundings",
  "browser": "src/Location/Surrounding.ts",
  "scripts": {
    "test": "echo \"Every fight is a test\""
  },
  "keywords": [
    "game",
    "shangrila"
  ],
  "author": "DexterHaung",
  "license": "proprietary",
  "homepage": "https://cybercodeonline.com/",
  "repository": "DexterHuang/CyberCodeOnline",
  "bugs": {
    "url": "https://github.com/DexterHuang/CyberCodeOnline/issues"
  }
}

Make new player messages silent

Currently there are usually more people joining than there are people chatting and it adds a lot of noise to the point that I usually just have the game muted and wind up ignoring chat.

Spelling Correction

DISCORD

Currently
(or bugs and suggestions you are encouraged to create a issue on our github page)
Correction
(for bugs and suggestions you are encouraged to create a issue on our github page)

Chat filters

Chat filters like most MMOs have would be nice. I picture it being an icon to the right side of the chat header. When clicked a small dialog with check boxes for each type of message comes up and you can choose what you would like to see.

Player sorting

At least some sort of default sort, either lexical or by level. I want to check if person X is currently online.

New quest ideas

  • Kill a monster of level X (based on character level or print level)
  • Kill a monster named X (something that should be available at the right level)
  • Travel to area X
  • Reverse engineer scraps (some number)
  • Train printing
  • Find an item named X (areas could have items you can find on the ground)
  • Gift an item (now that you can see other players)
  • Die in combat

Don't prompt for qty when only 1 of item exists

When clicking on an item that would prompt the qty modal (How many of X do you want to do?), if there is only 1 item, do not prompt that modal.

Example:
Molecular3dPrinter
I have trashHelmentCache_x1
I click on Molecular Print
It should just print it, it should not prompt me for how many I want to print. I only have 1. It's an extra, unnecessary click now.

Resizable chat pane (and small monitor issues)

I'm currently playing on a 13ish inch laptop (don't ask, it sucks) and I only get 3 lines of visible chat at a time but scrolling with the mouse wheel moves 4 lines. I know this is a problem on my end, I could make the mouse scroll less. But a good and generally useful solution would be to make it so you can drag/drop to resize the chat pane.

If you use jQueryUI, their resizeable function has worked excellent for me in the past.

Another issue I've not come up with a good solution for is that the online players list is off the screen unless I collapse a section above it.

Quick remove modules

Suggestion: Add an option to quick remove all attached modules from an item in your inventory. That way it's easier to move modules from one weapon to a newer weapon, rather than going in to the old weapon's module page and clicking on every individual module to detach them.

Keyboard shortcuts

Including keyboard shortcuts for common actions would be awesome (and would also add to the illusion of coding). Thanks for the awesome work!

Add scrap() and destroy() to class ItemStack

Add scrap() and destroy() functions to class ItemStack screen.

This facilitates the gameplay scenario where an equipped item with upgrades attached is being unequipped, stripped of upgrades, and then scrapped. In the current workflow, you have to enter the Details screen to remove the upgrades, then close that screen, go to Inventory/Stats, hover, and scrap from there.

UI Suggestion: enabling sorting of lists (enemy lists, etc.)

One feature that would be really helpful would be the ability to sort enemy lists - especially by enemy level, but sometimes also by attributes ("strong," "angry," "shielded," etc.) or possibly type (not currently useful, but perhaps in the future if/when the various enemy types become better differentiated). This is the sort of QOL feature that would be really helpful when, for example, I'm in a region with enemies at level k through k+3, but I'm only strong enough to be able to (regularly) kill enemies up to level k+1. To be honest, having to constantly search through the (currently unordered) list to find enemies at the appropriate level gets old fast.

From a framework perspective, I imagine that sorting enemy lists is pretty trivial. But what's the best way to enable this at the UI end? After thinking about it for a bit, I've come up with an idea that I think presents a good opportunity to provide access to this feature, while at the same time enhancing the aesthetic of being in the "Visual Studio" environment.

It mimics VS' autocomplete functionality to provide an opportunity to the player to apply a method to the list to sort it by their desired attribute. Here's an example/walkthrough.

(Note I mocked up these screenshots in a very quick-and-dirty manner by hacking around in my browser's DOM explorer in real-time; so it's only intended to be a rough conceptual example; the actual final visuals would obviously end up looking different; ideally with better fidelity to the Visual Studio popups, for example.)

So. Say I'm in an area with the following unordered enemy list:

If I want to sort it, I can click on the identifier name (enemies = [) which, when I hover over it, becomes highlighted to indicate it can be interacted with:

Clicking on the identifier takes me down to the bottom of the list, appends a dereferencing marker (e.g.: a dot) and an autocomplete list of methods that one can call on the list. For example, I've been talking so far about sorting it, but since rescanning the list is functionality that already exists, one could conceivably add it as a method here as well:

Clicking on the sort() entry in the autocomplete list fills in that method name, and if there are parameters (which, for example, the sort() method might have, but the rescan() method might not), adds an ellipsis in the parameter space, which again becomes underlined on mouse hover, to indicate it can be interacted with:

Clicking the parameter list ellipsis again opens an autocomplete list containing the valid parameters for that method:

The player clicks on the desired parameter, which gets filled into the code. The sort() method now has a valid and complete signature, so its name changes colour to indicate it is callable (and of course becomes underlined on mouse hover):

The player clicks on the method to execute it, and voilà! The list is sorted:

Display Ideas

Next to the item, add a emoji.
It is desirable to be able to switch between emoji mode and text only mode.

e.g.

  • 🗡 primaryWeapon
  • 🔫 specialWeapon
  • 💣 destructiveWeapon
  • 🧢 helmet
  • 👕 upperArmer
  • 👖 lowerArmor
  • 🥾 boots

Stuck after killing an enemy

After killing an enemy I got "Enemy does not exist" and I don't have any links to follow to leave the battle.

image

Abandon Quest

Please give the ability to abandon a quest (ex. Join Dungeon). It's highly dependent on others to do it. And if no one is up for sharing a dungeon code, you're unable to do any other quests. Giving the ability to abandon the quest allows the player to pursue any of the others that randomly come up.

It's understood that Join Dungeon is a co-op gameplay mechanic, and having the quest there is to promote people playing together... however if I'm > lvl 30 and someone shares a lvl3 dungeon code...I'm just joining and exiting. I can't even benefit from the dungeon.

Disincentivize killing much lower level enemies

Currently there is good value in killing enemies much lower level than you because of the speed at which you can plow through them. You get loot and even XP faster because its only a couple clicks per kill. This can make it difficult for lower level players to get any kills.

My suggestion would be to drastically reduce XP gain for enemies starting 3 levels below the players down to 5 levels at which zero XP is given. Also, do approximately the same for loot. You could even go so far as to make enemies that are too weak flee from a fight so the player does not even have the ability to kill them.

Average Level does not calcultate using empty equipment slots.

primaryWeapon = lv4_x;
specialWeapon = lv4_x;
destructiveWeapon = lv4_x;
helmet = null;
upperArmor = lv4_x;
lowerArmor = null;
boots = null;

☝️ This currently results in Average Level === 4. It should probably be calculated as either the Math.floor() (preferred since it would be more true about where you stand) or Math.round() of the median:

const equipmentLevels = [4, 4, 4, null, 4, null, null];
const numerator = equipmentLevels.reduce((sum, val) => sum += val); // 16
const denominator = equipmentLevels.length; // 7
const avgLevel = Math.floor(numerator/denominator); // 2

An electron App.

This looks convincingly like vscode, except that it's running in the browser. an Electron version would make this look even more like vscode.

Text displays wrong on Safari

The text in both the "Messages" and "System" tabs displays without any scroll height in Safari. I tested in chrome and it worked properly.

Possible guess fix could be just adding the --webkit- prefix for the specific CSS but could be displaying wrong for other reasons also.

Image of the Issue:
Screen Shot 2020-08-10 at 3 32 23 PM

Better random number generation

Built in random number generation is junk, it uses the systems built in random table and even with good seeding users will see strong patterns in RNG functionality. Using crypto random can drastically cut down on user perceived patterns.

This is code I've used in browsers, but I'm not sure the best way to implement this sort of thing in Node.

Math.trueRandom || (Math.trueRandom = function() {
    var b = Math.random();
    try {
        window && window.chrome && window.crypto && window.crypto.getRandomValues && (b = window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967296)
    } catch (a) {
        b = Math.random()
    }
    return b
}
);
Math.randomInt || (Math.randomInt = function(b, a, c) {
    if (!c || !Array.isArray(c) || 0 === c.length)
        return Math.floor(Math.trueRandom() * (a - b + 1)) + b;
    c = Array.force(c).map(function(a) {
        return Math.trunc(a)
    }).filter(function(c) {
        return c >= b && c <= a
    }).unique();
    if (c.length === a - b + 1)
        throw new RangeError("randomIntExcluding called with excluding all nums, no possible return value");
    var e = void 0;
    do
        e = Math.randomInt(b, a);
    while (c.includes(e));return e
}




Array.prototype.pickRandom || (Array.prototype.pickRandom = function(b, a) {
    var c = this;
    b = void 0 === b ? 1 : b;
    a = void 0 === a ? [] : a;
    if (0 === a.length && 1 === b)
        return [this[Math.floor(Math.random() * this.length)]];
    if (0 === a.length && b >= this.length)
        return this.slice().shuffle();
    a = a.map(function(a) {
        return c.indexOf(a)
    }).unique().filter(function(a) {
        return -1 !== a
    });
    for (var e = [], h = 0; h < b; h++)
        e.push(Math.randomInt(0, this.length - 1, [].concat($jscomp.arrayFromIterable(e), $jscomp.arrayFromIterable(a))));
    return e.map(function(a) {
        return c[a]
    })
}


Array.prototype.shuffle || (Array.prototype.shuffle = function() {
    for (var b = this.length, a, c; b; )
        c = Math.randomInt(0, --b),
        a = this[b],
        this[b] = this[c],
        this[c] = a;
    return this
}

Game Suggestion: Fleshing out Dungeons

Currently running a Dungeon with multiple People is a pain, as the only coordination is via chat which is global for everyone. It would improve coordination when on the Dungeon Map you can see which mob is being targetted by.

It would also be great to see the actual Healthbars of other people inside a Dungeon (currently the bar reflect the health of the current player).

It would be great if a player could use PainAway on others to facilitate the role of a supporter/healer/buffer.

Spelling & Grammar Corrections

Inventory.Ts

Currently
// Automatically scraps all weak equipments
Correction
// Automatically scraps all weak equipment

System Message

Currently
You have level up your MOLECULAR PRINT skill
Correction
You have leveled up your MOLECULAR PRINT skill
Or
You leveled up your MOLECULAR PRINT skill

SOURCE CONTROL

Currently
Hi, CyberCode Online is still under heavy development, if you have any suggestion or constructive critics, they are very welcome.
Correction
Hi, CyberCode Online is still under heavy development, if you have any suggestions or constructive criticism, they are very welcome.

DISCORD

Currently
If you want to connect with other players, or there is something you want to talk to me about you can find me at CyberCode Online's Discrod Channel
Correction
If you want to connect with other players, or there is something you want to talk to me about you can find me at CyberCode Online's Discord Channel

Currently
(for bugs it's encourage to create a issue on our github page)
Correction
(for bugs and suggestions you are encouraged to create a issue on our github page)

Currently
TO DISCROD
Correction
TO DISCORD

currentLocation=Location.SHANGRI_LA_CITY_CENTER;

Currently
*One of the most busy city in the nation,
*at this place, all sort of people gathers from around the planet.
Correction
*One of the most busy cities in the nation,
*at this place, all sorts of people gather from around the planet.

Suggestion

Add a console that can do many actions.
For example, type "primaryAttack" to attack, "escape" to escape.

Scrapping with module attached

Scrapping an item with a module attached has two bugs:

  1. It shouldn't let you do it in the first place. An error should be generated that you have to unequip modules before scrapping.

  2. If you don't do #1, then you should get tech scraps back for both the item AND the module. Currently, you only get 1 tech scrap, for the item itself.

More info on secondary levels

It would be nice if there was more information available on what benefit there is to leveling secondary skills. Printing is pretty obviously but not immediately so. Medical/ammo/scavenge levels have no apparent benefit at all.

I think a good place to put this info would be comments on each level in Stats.ts.

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.