Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
58 changes: 0 additions & 58 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,29 +47,6 @@ jobs:
- name: Run tests
run: flutter test

build-web:
runs-on: ubuntu-latest
needs: validate

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true

- name: Flutter pub get
run: flutter pub get

- name: Enable Web
run: flutter config --enable-web

- name: Build Web
run: flutter build web --release --dart-define=APP_VERSION=pr-check

build-android:
runs-on: ubuntu-latest
needs: validate
Expand Down Expand Up @@ -101,38 +78,3 @@ jobs:

- name: Build Android APK
run: flutter build apk --release --dart-define=APP_VERSION=pr-check

build-linux:
runs-on: ubuntu-latest
needs: validate

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true

- name: Flutter pub get
run: flutter pub get

- name: Generate latest app icon source
run: dart run tool/generate_app_icon.dart

- name: Generate launcher icons
run: dart run flutter_launcher_icons

- name: Enable Linux desktop
run: flutter config --enable-linux-desktop

- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
clang cmake ninja-build pkg-config libgtk-3-dev libstdc++-12-dev

- name: Build Linux
run: flutter build linux --release --dart-define=APP_VERSION=pr-check
50 changes: 50 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,46 @@ env:
TAG: ${{ github.event.inputs.tag }}

jobs:
validate:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"

- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true

- name: Flutter pub get
run: flutter pub get

- name: Generate latest app icon source
run: dart run tool/generate_app_icon.dart

- name: Generate launcher icons
run: dart run flutter_launcher_icons

- name: Check formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze
run: dart analyze

- name: Run tests
run: flutter test

prepare-release:
runs-on: ubuntu-latest
needs: validate

outputs:
release_id: ${{ steps.resolve.outputs.release_id }}
Expand Down Expand Up @@ -166,6 +204,12 @@ jobs:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"

- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
Expand All @@ -175,6 +219,12 @@ jobs:
- name: Flutter pub get
run: flutter pub get

- name: Generate latest app icon source
run: dart run tool/generate_app_icon.dart

- name: Generate launcher icons
run: dart run flutter_launcher_icons

- name: Enable Web
run: flutter config --enable-web

Expand Down
35 changes: 27 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

[![Release](https://img.shields.io/github/v/release/Rarmash/CS2-Simulator?display_name=tag)](https://github.com/Rarmash/CS2-Simulator/releases)
[![Release Build](https://img.shields.io/github/actions/workflow/status/Rarmash/CS2-Simulator/release.yml?label=release%20build)](https://github.com/Rarmash/CS2-Simulator/actions/workflows/release.yml)
[![PR Checks](https://img.shields.io/github/actions/workflow/status/Rarmash/CS2-Simulator/pr.yml?label=PR%20checks)](https://github.com/Rarmash/CS2-Simulator/actions/workflows/pr.yml)
[![Flutter](https://img.shields.io/badge/Flutter-3.x-02569B?logo=flutter&logoColor=white)](https://flutter.dev/)
[![Dart](https://img.shields.io/badge/Dart-3.11+-0175C2?logo=dart&logoColor=white)](https://dart.dev/)
[![Platforms](https://img.shields.io/badge/Platforms-Android%20%7C%20iOS%20%7C%20Windows%20%7C%20Linux%20%7C%20macOS%20%7C%20Web-4EAA25)](https://github.com/Rarmash/CS2-Simulator/releases)
Expand All @@ -27,6 +28,7 @@ Unless explicitly stated otherwise, the repository license applies to the source
- Persistent collection tracking with a saved inventory and recent activity
- Collection-aware glossary browsing with per-item collected counts
- Collection progress and per-source stats across containers and collections
- Broad automated test coverage across simulator, collection, repository, and helper layers
- Major tournament section covering CS:GO and CS2 eras
- Major teams and players browsing
- Operation and Armory reward collections
Expand Down Expand Up @@ -148,21 +150,38 @@ The source code in this repository is licensed under `AGPL-3.0`.

The project is actively evolving, with current work focused on:

- polishing the collection layer with stronger progress tracking across containers, collections, and collectibles
- improving long-term data quality for tournaments, teams, and players
- continuing UI/codebase refactoring to reduce duplicated screen logic
- hardening the simulator around long-term product polish rather than major missing content
- maintaining data quality for tournaments, teams, players, and item metadata
- continuing UI/codebase cleanup to reduce duplicated screen logic
- stabilizing the simulator experience ahead of a 1.0 release
- deciding which remaining quality-of-life features belong in a final pre-1.0 update

## Roadmap

### v0.14
### v0.15

- Better automated test coverage for core simulator and collection logic
- Deeper collection analytics across items, duplicates, sessions, and finishing variants
- Cleaner navigation and final UI consistency pass across major app sections
- Final pre-1.0 quality-of-life pass across inventory, glossary, and simulator flows
- Decide which remaining convenience features should land before 1.0 and which should move to post-1.0
- Release-readiness pass on wording, navigation, empty states, and general UX consistency

### Toward 1.0

- Freeze the core feature set around simulator, collection, glossary, and Major history
- Focus on stability, maintainability, and product consistency instead of broad new content expansion
- Keep future additions optional unless they clearly strengthen the main simulator experience

### Future

- Music Kit preview playback if a maintainable preview-audio import pipeline becomes available
- Optional China / Perfect World visual mode once a reliable alternate asset source is available
- In-game store for items purchased directly instead of opened from containers
- Souvenir-O-Matic support for majors without traditional souvenir packages
- Improved tournament metadata importer for logos, dates, teams, rosters, playoffs, and winners
- Tournament history with richer team, roster, playoff, and winner browsing
- Collection goals and achievements
- Favorites, tags, and custom collection showcases
- Saved Trade-Up contract templates
- Tentative: inventory-based Trade-Up suggestions for contracts that can be assembled from collected skins
- Multiple local profiles
- Save import and export
- Historical operations, passes, and limited stores

Binary file added assets/containers/30004.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/containers/30005.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/containers/30006.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 8 additions & 8 deletions assets/data/containers.json
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@
"releaseDate": "2014-03-13",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "EMS One Katowice 2014",
"tournamentLogo": "assets/tournament_logos/ems_one_katowice_2014.png",
"tournamentLogo": "assets/tournament_logos/ems_one_katowice_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand Down Expand Up @@ -500,7 +500,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand All @@ -524,7 +524,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand All @@ -536,7 +536,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand All @@ -548,7 +548,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand All @@ -572,7 +572,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand All @@ -584,7 +584,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand All @@ -596,7 +596,7 @@
"releaseDate": "2014-08-14",
"type": "SOUVENIR_PACKAGE",
"tournamentName": "ESL One Cologne 2014",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.png",
"tournamentLogo": "assets/tournament_logos/esl_one_cologne_2014.jpg",
"sourceType": null,
"sourceId": null,
"sourceName": null
Expand Down
Loading
Loading