Git Product home page Git Product logo

openetg's Introduction

Test

openEtG is an open source fork of the Flash ccg Elements the Game.

Developer Instructions

Getting Started

  1. Download all dependencies listed below
  2. Clone the repository:
    git clone https://github.com/serprex/openEtG && cd openEtG
  3. Install packages:
    npm install
  4. Generate asset atlas:
    npm run build-atlas
  5. Copy sample configuration files:
    cp config-sample.json config.json
    cp wsconfig-sample.json wsconfig.json
  6. Configure config.json to connect your instance of postgresql
    • Specify the http port you will listen on for web service requests
      • This should match your wsconfig.json wsport
    • Specify the user to connect your postgres server
      • Ensure that you created the user on your postgres server and provided proper permissions
    • Specify the host of your postgres server
    • Specify the port number of your postgres server
    • Specify the database name you created on your postgres server
    • If certificates are required to access your instance, they can be included under the certs key
    • psql -f scripts/initdb.sql will generate initial schema
  7. Install WASM rust target
    rustup target add wasm32-unknown-unknown
  8. Build
    npm run build
  9. Run server
cd ./src/rs/server
cargo run

Testing

  1. Add unit tests to lib.rs
  2. To run unit tests:
    cargo test --manifest-path=./src/rs/Cargo.toml

Dependencies

  1. git
  2. nodejs
  3. postgresql
  4. rustup
  5. wasm-bindgen-cli
  6. cwebp

openetg's People

Contributors

101arg101 avatar cat09 avatar cgoetg avatar elysiumplain avatar fippe94 avatar iancudorinmarian avatar natebuckareff avatar serprex avatar trevorsayre avatar utalan avatar wesleymsmith avatar

openetg's Issues

Quest rewards

add a third column once a quest category is selected which will display the rewards ("+Gold", "+Card").

colosseum

Gold is displayed as $ when showing the total rewards earned for the day. This does not align with the rest of the app.

Socks.jsx

reconnection for socket should use algorithmic decay timer.

Users should have access to the AI decks while playing PvE

The AI decks are visible after first encounter already via the Replay socket, but only at the end of an encounter, and not in a clear manner for new players.

Propose adding chat /deck command to pull AI decks by Name.

Possibly extend to include saved decks for the user as well to easily pull deck codes.

managed event - make alt(subaccount) accounts which can tick checkboxes for specific "leagues"

Example modes:

  • no-shop
  • no-upgrade-pillar
  • no-upgrade-card
  • ante (player bets a random card from their deck and gives it to the winner)
  • hardcore (when player loses, they lose random card from their deck)

managed event flow diagram:

  • codemasters submit event form (start_time, expiration_time, [event conditions])
  • create promocode in DB that on submit will add the flag to the submitting user's account
    • (we can pass the promocode forward to the event start promise and have that add the promocode to the DB only once the event is scheduled to start) ONLY if the account submitting the promocode passes the event conditions
  • return promocode to the creator so that they can distribute event invite ahead of schedule
  • app schedules event start promise
  • event start promise executes at event start_time and creates the event in the events_table with an expiration_timestamp and sets the event is_active=1.
    • Also responsible for scheduling the event expiration promise within the app which executes at event expiration_time
  • event expiration promise executes at event expiration_time which updates events_table and sets is_active=0

*promocode avenue allows using pre-existing accounts by adding the flag to the account
*if we only want to do brand new account events, then we can simply use the form and event start promise / event expiration promise to create/delete a new checkbox in the alts view and leave it at that...

something like a function call event_entry(flagID) when codemaster submits new event form:

returns trigger as $$
begin
  //creation of flag
  INSERT INTO events_table ... expiration_timestamp=..., is_active=1;
  RETURN NEW;
end;
$$ language plpgsql;

Oracle spin automation awareness

When an oracle spin for daily login occurs, the card simply pops up on the UI with no explanation of why, or that there is such thing as a daily-login reward (Oracle spin).

Nymph Shop

Shop packs text aren't as clear as they could be.

Nymph pack behavior differs from the other 3 packs and should include details on the behavior difference.

Shiny card counts without toggling

Toggling shiny being inactive leads to a very confusing UI when you first upgrade shiny cards, but do not have enough base cards to highlight an upgraded card slot (although you DO have at least 1 upgraded card available to add to your deck, due to shiny being fixed).

Propose Shiny toggle should always be active, with shiny counts being displayed conspicuously within brackets 3 (1).

UI layout update

Convert absolute UI into composite layout with flex and grid structures for simplified changes down the road.

Also resolve ghost buttons due to Feature Flags by CSS styling.

Library very confusing and cluttered

Library should explain what SZE vs ZE counts are representing.

Card counts are overflowing onto one another.

Consider updating layout into something like a visual stacked bar graph with 3 columns each element, representing card rarity (total, owned).

Upgrade cards to shiny

When selecting an upgraded card in the upgrade menu, load the second card as the shiny version to demo the shiny visualization.

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.