Code Monkey home page Code Monkey logo

synergismofficial's People

Contributors

1e1000000 avatar ab3327 avatar alienc4 avatar arvingomaster avatar awwhy avatar blaze33 avatar cephyric-gh avatar cloudytheconqueror avatar dorijanko avatar flamemasternxf avatar gringomaniac avatar hexagonhexagon avatar httpsnet avatar hypertexteye avatar jahwsuf avatar jarboo avatar kewne7768 avatar khafradev avatar lucidcrux avatar mcpower avatar mixelz avatar mustache0110 avatar nmussy avatar omsi6 avatar platypusking avatar potatoart avatar pseudonian avatar strentax avatar xander374 avatar yayformee 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

synergismofficial's Issues

Achievement 63 shouldn't check for generators

"A careful search for Diamonds: Get 1e120,000 Coins in [Reduced Diamonds] without buying Accelerators or Boosts. "

The TS rewrite is wrongfully checking for generators instead of accelerators/boosts. It seems that the JS version never actually checked for the requirement either.

Might be better to leave this as is and just update the achievement text, shouldn't meaningfully impact game balance if players get it a bit earlier or later and it gates nothing.

Convert images to webp

With a lossy format, we can trim the image sizes down nearly 85% if we pushed it.

At minimum, we should be able to reliably push a 50% size reduction without losing too much quality (and more if we resize images correctly).

Things to consider:

  • Much faster loading times on slow connections.
  • Safari has limited support for webp.

Hoverless challenge progress display

Automatically show the current reincarnation or transcension challenge progress in the reset bar without having to hover over it. Hovering over the other reset buttons would show their usual text

Ant sacrifice visible without r5x24

Whoops, submitted without content.

At least on the Kongregate version, on Chrome or Firefox on Ubuntu, the automatic ant sacrifice UI is visible but nonfunctional without the relevant research.

Feature: Research mode toggle

Implement a manual research mode toggle to switch off the cheapest automatic research mode unlocked with Cube Upgrade 9:

image

Support for (low-res) portrait screen

The game is somewhat unplayable if the screen horizontal resolution is low enough, in this case 768x1366 as seen here. Zooming in and out does not solve this issue.

While I could rotate back to landscape, it'd rather be inconvenient rotating back and forth due to my daily workload, especially since I have only one screen.

Shaky numbers

Because number characters have various widths, they shake a lot when rapidly increasing and greatly reduce legibility:

synergism-shaky

Reading the exponent can be hard like that in certain conditions

By enabling this CSS property on body (tabular figures):

font-variant-numeric: tabular-nums;

Digits will all have the same width and will totally stabilise the rendering of rapidly increasing numbers:

synergism-stable

Which makes it much more readable in my opinion ๐Ÿ˜ƒ

This is under macOS so I have no idea if the Windows system fonts support that feature (in that case it would be worth having a web font)

Setting Inconsistencies

-Miscellaneous stats clips into statistics prior to ascension (fixable by flex-boxes)
-Certain items need statistics, like Obtainium and other cube tiers
-A couple settings are out-of-date thanks to balancing

Accessibility

https://discord.com/channels/677271830838640680/705899161366560850/828334318757347398

Add accessibility through the "alt" html attribute for images.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt
"Perhaps the most important reason to use the alt tag is to support accessibility, as the alt text may be used by screen readers and other assistive technologies to help differently-abled users make full use of your content. It will be read aloud or sent to the touch device, for example, to support visually impaired users."

Diamond autobuyer stops functioning if diamond goes above 1e1No

Version tested on: GitHub (v2.7.0 - Seal of the Merchant [Last Update: 23:38 UTC 6-Sep-2021])

Enviroment: Windows 10 2004 (build 19041.1165), Firefox 92.0 stable release branch.

Steps to reproduce:

  1. Start a clean run since we're pushing resources.
  2. (Optional) Disable diamond autobuyer. Recommended for most visible result.
  3. Push challenge/research/runes/talisman to push diamond past 1e1No (one e one nonillion).
  4. If step 2 is performed, re-enable autobuyer. Otherwise just compare the Diamond producers' cost to current resource.

Note:

  • Tested also on local Chrome 93.0.4577.63 stable release branch. Reproducible.
  • Independently verified on 01 (one) friend's machine as reproducible to ensure the bug not being somehow machine-specific.

Expected behaviour:
Diamond autobuyer functions as normal.

Actual behavior:
Assuming reproduction step 2 is performed, all autobuyer does not autobuy even when re-enabled:
image

This can be partly confirmed as not being visual bug by Transcending/Reincarnating thanks to a different coin production multiplier:
image

Earning Heptarachs but no sign of how to spend them

Am in the pre-abyss run up, doing about 1% of the hypercube req. for the Abyss upgrade per day. Have been earning Heptarachs for a bit now but no sign of what activates the ability to spend them on crafted Heptarachs to advance or accelerate. Some UX to bridge the player through this phase and give an indication of when crafting will activate, would be appreciated.

Wow! A tin of Fortune Cookies applies only once

It appears that the cookies purchase "Wow! A tin of Furtune Cookies" only applies the first time after purchase a ratio of 1 spent:2 received. After the initial purchase, Platonics are purchased at a 1 spent :1 received ratio instead

c10s triggering instant ascention

For some reason I can't stay in c10 longer than a tick past the requirement. I wish I could stay until it went back to "time for start of sweep". Can you add a checkmark to the auto ascension?

Thoughts on icons

So the derpy graphics seem sort of a theme with this, but I was wondering what peoples' thoughts are on a "nicer" set of graphics, perhaps as an option? Don't want to step on any toes, and not for sure doing it even if people like the idea, just sort of thinking on it, as I do every time I come back to the game.

Interval clearing logic in importSynergism doesn't work right

In trying to debug some time-related C15 issues in V2.1.2 (debugging the reason why 0.11s reincs give full obt for some people but not others), I noticed that the intervalHold splicing logic is broken and will result in half of the timers from the previous import remaining. This is broken in an identical way on both the TS rewrite and V2.1.2.

export const importSynergism = (input: string) => {
const d = LZString.decompressFromBase64(input);
const f: Player = d ? JSON.parse(d) : JSON.parse(atob(input));
if (
(f.exporttest === "YES!" || f.exporttest === true) ||
(f.exporttest === false && isTesting)
) {
intervalHold.forEach(clearInt);
intervalHold.length = 0;
localStorage.setItem('Synergysave2', btoa(JSON.stringify(f)));
constantIntervals();
createTimer();
loadSynergy();
}
}

This calls clearInt, which splices the elements from the array during the forEach loop. Then, forEach continues on the next array index. Because the indexes shift during the forEach and browsers implemented it stupidly, the result is that half of the elements are skipped. Then, the .length = 0 clears the array without ever calling clearInterval on the remaining half, "leaking" the timers. The net result is that after importing a save a couple of times, updateAll() ends up being called much more often. This causes stuff like autobuyers and some recalculations to tick much more often than they normally would, changing the game behavior in a rather unstable but good-for-the-player way.

This is most easily tested on V2.1.2 by just running intervalHold.forEach(clearInt); from the console and then checking intervalHold. I confirmed that the TS rewrite is also broken by exporting a bunch of stuff to the window and messing around with it. It'll look like this (V2.1.2, Firefox 85):
image

This can be fixed in a bunch of different ways, Sets supposedly have a stable forEach (according to MDN, haven't tested if it actually is) but it's also possible to just swap that one forEach over to the regular browser clearInterval instead, because the array is cleared by hand immediately after anyway. Every other call to clearInt in the game is fine because it's not a loop.

Corruption Bugs / Visual Errors

  1. When loading the game, corruptions display as 0/0 throughout instead of the proper level setup
    https://discordapp.com/channels/677271830838640680/730669616870981674/803061866418012221
    https://discordapp.com/channels/677271830838640680/730669616870981674/804731057215373362
    Second link has video

  2. Visual Errors on "Market Deflation" 6+. Effect seems to show 0 for all of them when this is not true.
    https://discordapp.com/channels/677271830838640680/730669616870981674/806906414747353108

Drough affecting 6th and 7th rune

Maybe someone who is better at coding than I am, can find better way to do it, but
image
This is the only way I know how, by copy pasting same thing 5 times

Move Wow Pass v.1 on chal14 unlock.

The Problem

Currently, Wow Pass v.1 is super far away from v.2 and v.3:
image
This was brought up in the Discord #suggestions channel, and user whippd just wrote:

image

So I was going to reply how to implement a way to solve this conundrum, but then I realized that would be just as pretentious as saying, "Can't they just code it to be the way I want it?" so I didn't. I've decided to write an issue instead! This is a very good problem for someone brand new to programming to solve, so I've taken efforts to outline my proposed steps to help that future lad:

A Proposed Solution

For simplicities sake, we'll likely need to duplicate the code block containing the Wow Pass 1 in index.html. The duplicate should start on line 3155. Set an id on the div in the original, and set the class on the div in the duplicate to chal14.

Then we'll need to program some JavaScript TypeScript to hide the original until Wow Pass 2/3 (class='chal14') are visible. chal14 classed blocks become visible in the code block starting at line 153 in src/UpdateHTML.ts. Likely, we would put in the code that sets the original hidden within that for statement. (This code would take the format of element.style.display = "none", where element is document.getElementById(OURNEWID).

This would result in the Wow Pass S1 remaining where it is until the other two are unlocked, at which point would appear to move next to them.

Potential Issues Relating to Proposed Solution

In theory, this seems like it would take to solve this problem, but I do not know if there is some other weird factor I am unaware of that might preclude this from working. (For instance, depending on how it is coded, duplicating the button id seasonPassButton may cause some issues even though one of the two code blocks would be hidden.)

Also, this may not even be a wanted change as it adds complexity to the project for very little profit.

Use KeyboardEvent.code instead of key for intl keyboard layouts

Some keyboard layouts, most notably the French AZERTY, require the use of shift/caps lock to input numbers:
AZERTY

That means that without shifting, the QWERTY layout 1 key is KeyboardEvent.key=1, and on AZERTY is KeyboardEvent.key=&. It's kind of a pain when cycling through challenges, as you need to shift or caps lock to 1E2E etc.

This can be remediated by using KeyboardEvent.code instead, which uses physical key positions on a QWERTY keyboard regardless of the current layout. Thus, key=1 becomes code=Digit1, or code=Numpad1 on the num pad.

Achievements 195, 196 show incorrect value

Always stuck with 2% in description, though correct in calculation logic.

195: `Gain ${format(Math.min(25000, Decimal.log(player.ascendShards.add(1), 10) / 4, 2))}% more Cubes and Tesseracts on ascension! Multiplicative with the other Ach. bonus [MAX: 25,000% at e100,000 Const]`,
196: `Gain ${format(Math.min(2000, Decimal.log(player.ascendShards.add(1), 10) / 50, 2))}% more Platonic Cubes on ascension! [MAX: 2,000% at e100,000 Const]`,

Should be

195: `Gain ${format(Math.min(25000, Decimal.log(player.ascendShards.add(1), 10) / 4))}% more Cubes and Tesseracts on ascension! Multiplicative with the other Ach. bonus [MAX: 25,000% at e100,000 Const]`,
196: `Gain ${format(Math.min(2000, Decimal.log(player.ascendShards.add(1), 10) / 50))}% more Platonic Cubes on ascension! [MAX: 2,000% at e100,000 Const]`,

Octeract prices not working properly

For some reason, the Octeract prices don't match what they say.
It says (for Improved Download Speeds): Cost for next level: 1.00 Octeracts (Affordable in 2.43e11d10h28m)
I have: You have 4.11 / 10T Octeracts! +1 per 2.10e16 seconds

Can you also add a progress bar for Octeracts, because I plan to farm them until I get all the PL-AT calculators and the green daily at the minimum?

building softcap at 1e15 buildings causes a c15 boom(and other weird things)

savefile showcasing the boom

What happens is, after 250k effective buildings, the scaling becomes extremely harsh(1/2 DR but with a huge constant), so usually your amount of buildings is equal to 250k * (producer cost delay). When 1e15 buildings starts being less than 250k * (producer cost delay), the cost for 1e15 buildings becomes extremely low, allowing the 1/8 DR from there to instantly give an 8x boost to buildings.

Also related to this softcap, it seems to only be implemented in the function which buys buildings, but not in the function which calculates their price, so after the softcap the number that says the price of the buildings can become very different than the amount of coins you have(also visible in that savefile). This is likely the cause of some weird behaviour, one example which is visible in the savefile is that if you reincarnate with all building autobuyers off, then you turn them on one by one, you get a different amount of coins than you would normally.

Rewards for expansion

Currently, the expand mechanic in the forge is pretty unsatisfying and several players have complained about it. The idea is to give a small reward for expansion so as to make it feel more worthwhile.

The idea that we came up with in Discord (credit to strentax) is for each expansion to award "expand credits". The nth expansion on a hepteract would award n credits. Credits would then be spent on minor but noticeable upgrades. There are two schools of thought here:

  • The upgrade grid would be similar to that of the platonic upgrades and be pretty linear and meant to be completed
    OR
  • Credits would be allocated on a grid that is not meant to be completed (the total cost would be more than the amount of credits that is expected to be earned in a reasonable amount of time). Players would have to decide where to allocate their credits and "build" their grid. Respecs would probably be allowed but would force the player to ascend so as to avoid the "respec meta".

Some examples of upgrades would be:

  • small tax reduction (perhaps through a buff to constant (update: no, as constant is permanent so a respec out of this would not cancel the effect), or maybe simply a direct reduction like what c6 does)
  • buff to hepteracts (decrease DR in row 1 or buff the effect of row 2)
  • buff to score
  • buff to the add code

None of these individually would be game breaking (not as strong as Omega, for instance) but they would be significant and would reward expansion, making it feel less clumsy.

What are the thoughts on this? I personally prefer the system where players would allocate their credits as it would incur strategy (and probably passionate debate on Discord). I'm willing to implement this.

Feature: Corruption loadout import/export

Add the ability to import a corruption loadout from a comma-separated string. The can either be entered manually, or copied to the clipboard from a new "Copy layout" button in the ascend history

The main use I've seen for this so far is when trying out new loadouts and seeing how effective they are in the ascend history, it's a pain to get the most effective one back as the active loadout.

History (export):

image

Import button and prompt:

image

Challenges bugs

  1. Challenge Level Up Display (the fractions underneath challenge PNG icons)
    1.1) Upon ascension, the progress values are not updated
    Transcension, Reincarnation challenges should display as 0 / (max completions) but do not update until you enter one of these challenges for the first time in ascension
    self reported, I'll fix it
    1.2) researches 3x16-3x20 do not properly update the maximum count automatically.
    https://discordapp.com/channels/677271830838640680/730669616870981674/814582377434972200
    1.3) Neither does research 5x5 self reported

  2. Challenge entry/leaving and automation
    2.1) If you auto ascend while in challenge 10, the game treats it as if you never really left the challenge, causing a lack of visual updates and you must enter a new challenge to get the changes.
    https://discordapp.com/channels/677271830838640680/730669616870981674/804041788213166098
    This is also a bug in live version.
    2.2) Sometimes challenges will jump for some reason (Like from c6 to c8, ignoring c7 without max completions and with toggle on) Needs further confirmation, this is a bug in live for sure though
    2.3) Challenge 9 might not show but challenge 8/10 both show. This should not happen. I cannot replicate this but I cannot show that it is fixed yet
    https://discordapp.com/channels/677271830838640680/730669616870981674/806640947676315699

3) Challenge 15
3.1) This entire exchange starting with this message
https://discordapp.com/channels/677271830838640680/730669616870981674/812193429265317889
C15 is currently very bugged, in particular with the import feature.

it's unclear on how the blessing calculation works

The effect column says that it's a multiplicative factor, when it's really a percentage boost.

Change the language from something like this:
Effect: 1.7537x Global Speed

Change to something like this:
Effect: 1.7537**%** Global Speed

r8x8 & r7x3

Prior to the latest "big patch" it used to be that you could buy r8x8 (opening Hypercubes grants 100 Tesseracts). At some point during the testing period this no longer worked, and has not been fixed.

The only way to get r8x8 to work is if you actually have r7x3. Which then grants 12 Wow! cubes for every Tesseract opened.

Please fix this so that r8x8 works independent of r7x3.

Thank you.

Loading screens don't hide the page well

The loading splash screens and offline progression recap don't cover the whole window. This is particularly visible in a portrait orientation.

Splash screen

Before:

image

After:

image

Offline progress screen

Before:

image

After:

image

Hoverless challenge progress display overrides hover on challenge change

Follow up to #104

When the current challenge is changed, either by hotkeys or Auto Challenge, and another button is hovered, the hovered button text is overridden by the newly started challenge

Steps to reproduce:

  • Go to the Challenges tab
  • Hover over the Prestige reset button
  • Press 1 to start the first challenge
  • The Prestige reset text will be overridden by C1 despite P being hovered

typo?

buyFrom = buyFrom + smallestInc(buyInc);

buyFrom + smallestInc(buyInc) should be buyFrom + smallestInc(buyFrom) ?
some heavily blessed (> e82) users say they have infinite-loop (game frozen) issue here.

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.