Giter Site home page Giter Site logo

zzorba / arkhamcards Goto Github PK

View Code? Open in Web Editor NEW
101.0 6.0 65.0 1.76 GB

react-native based deck and campaign management app for ArkhamDB

JavaScript 0.13% Java 0.09% Objective-C 0.04% Ruby 0.09% C 0.01% Swift 0.01% TypeScript 99.58% Shell 0.02% Starlark 0.01% C++ 0.01% Objective-C++ 0.03%

arkhamcards's Introduction

Arkham Cards

Create and edit decks for all of your investigators -- it will even check the deck-building rules to keep you honest. You can also group together decks into campaigns to track your progress combatting evils. The app can be used with local decks, or you can link your ArkhamDB account to sync changes on the go.

  • Edit and upgrade your investigator's decks, either offline or by linking your ArkhamDB account.
  • Track scenario results and keep the campaign log up to date.
  • Keep track of investigator trauma and assign new random basic weaknesses as you take on new madness.
  • Log the chaos bag as it changes, letting you have multiple campaigns going at once as you wait for the next month's mythos pack.
  • Use the advanced card search to search by trait, health, shroud, etc. A great tool if you ever need to evaluate how many 'non-elite' enemies can be targeted by a card or know which locations a Flashlight wielding Zoey can actually stand a chance at investigating.

Getting Started

Follow the steps on React Native Environment Setup to install React Native dependencies for your environment. Once you have those you can clone the repo and get started.

Install Node Version Manager and run the following command to use the appropriate Node version:

nvm use

Install NPM dependencies

npm install or yarn install

For iOS Install CocoaPods

cd ios
pod install

Start the bundle server in the background

npm start or yarn start

Build App

npm ios or npm android (or their yarn counterparts)

Translations

The app is currently translated into English, Spanish, German, Italian, French, Russian and Chinese, and partially translated into Korean, Portuguese and Polish. Translation data for all of the cards comes from ArkhamDB.com, and is community managed. You can submit edits for cards in the arkhamdb-json-data project with a pull request.

For all the text of the app itself, the translation files are extracted using the unix program gettext, an i18n standard. There are many programs that are capable of editing them, but I've found that a program called PoEdit, which has a free version that is totally serviceable. Using this program, you can edit the .po files in the assets/i18n folder and submit the changes via Pull Request (or by opening an issue and I will provide contact information on how to submit changes). Be sure that you do not directly edit the .po.json files, they are a build product.

Lastly, the campaign guide feature translations live here https://github.com/zzorba/arkham-cards-data/tree/master/i18n. The translated parts of each guide are kept there in individual PO files. If you are updating them, it is a good idea to copy-paste blocks of text from the FFG PDF files, which require only light reformatting. Some instructions need to be adjusted to fit the app.

Authors

Acknowledgments

Arkham Cards is not affiliated or endorsed by Arkham Horror: The Card Game, (c) 2016 Fantasy Flight Games.

arkhamcards's People

Contributors

alexanderheidrich avatar arkhamcards avatar artemnl avatar bellabill avatar comlah avatar dependabot[bot] avatar derornos avatar elkeinkrad avatar evgeny727 avatar fafranco82 avatar javnik36 avatar luizresende99 avatar matteopic avatar merlynn avatar midraed avatar morvael avatar ngoctienvt avatar ombre5733 avatar perroboc avatar sarnetsky avatar sheff73 avatar shkuo avatar suxur avatar tengounplan avatar tjanu avatar tsayoraife avatar wavefrontset avatar whassa avatar wuslang avatar zzorba 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

arkhamcards's Issues

Crash when trying to filter on Allowed cards view

Hi ! Nice work on the latest version.

The application (iOS) crashes when trying to bring the filter menu on the Allowed cards view.
Steps to reproduce :

  • from the player cards section, go to an investigator card (say Finn)
  • then click on "Deckbuilding Cards" to go to the list of cards allowed for this investigator
  • then click the filter icon (example: I want to see allowed allies)
  • application crashes

XP for Myriad cards

According to the rules, when purchasing a Myriad card you can include all 3 copies but paying only the XP cost once.

@zzorba I'm pretty sure you're aware of that one but I file in the issue so you can have the joy pf closing it πŸ˜‰

Diff list for deck versions?

When I upgrade my deck and then save, it would be nice to be able to get a list of cards I have to remove and add.

Feature Request: Add friend alias

In addition to the friend's 'handle' (nickname) set by that friend, I wish I could set a alias for calling that friend.

ex.
handle (alias)
────────────
zzorba (Daniel Salinas)
derornos (Puleun-i)

Building multiple decks from a single collection

It would be an interesting feature to be able to build multiple deck from a single collection.

One solution would be to have a "Exclude cards from following decks ..." option in the filter dialog but maybe there are better solutions.

eoe voting issue

I played eoe campaign, the city of elder thing scenario.

During campaign, the partner states are following:

  • Kensler (death by crash), Eliyah (death from forbidden peaks)
  • Takata (MIA by the disappearance but rescued)
    image

Therefore, the voting result should be group three. 2 for group one (Elsworth, Sinha), 2 for group two (Danforth, Takada), and 3 for group three (Dyer, Claypool, Cookie). However, group two is automatically selected from the app.
image

Feature Request: I'd like to see all investigator cards with the same name.

When an investigator card is selected, the app needs a way to see all investigator cards with the same name. Also, when creating a deck, I would like to be able to choose which of the investigator cards of the same name to base the deck on.
If I have both 'Norman Withers' card from promo and 'Norman Withers' card from EOE, but EOE's 'Norman Withers' card is not translated yet (to follow the company's policy) and 'Norman Withers' from promo If only the cards are translated, there is no way to view the translated investigator card contents except by clicking the 'Edit Collection' button in the app to find the card directly.


To briefly summarize,

  • Click the card button in the bottom tab
  • Click on the 'Norman Withers' card
  • Show all 'Norman Withers' cards in my collection
  • Select 'Norman Withers' with the Create deck button OR Click on the created 'Norman Withers' deck
  • Investigator card selection button
  • Choose which 'Norman Withers' card from my collection to show

Feature Request - Ignore punctuation symbols when sorting cards

I'd love it if there were an option in the settings to ignore punctuation symbols when sorting cards (including ", ', etc. basically UTF-8 general punctuation and other punctuation character classes), since in my opinion, a card shouldn't be sorted at the beginning or end of a block just because it's name is in quotation marks.

Already read up a bit on this, and it doesn't seem to be trivial to get SQLite, especially on Android, to do that. Essentially, a "normalized_name" column (filled on import) would be needed for that, with the option setting deciding which column to base the sort on. No idea if there's an easier way on iOS, but this approach would work universally.

I realize this might be too much work, and, given some pointers on which files I'd need to touch to adjust the DB schema and import and a short explanation of how settings are handled in ReactNative/this app, I might give this a shot myself - I'm just not exactly well versed in ReactNative (C++/Qt developer...).
Just wanted to formulate it as an issue to gauge whether there might be interest by others, and to collect feedback on how to do that.

README improvements

Hi !

I managed to do a clean install of the project on my computer. I ran into some issues while doing it so I figured out it would be nice to update the README with some information.

Below is what I did. I can't tell if these are specific to my computer (I run macOS Catalina).

  • Install XCode and launch it (to finalize installation and agree on terms)
  • Before running yarn install be sure you have NVM installed and run nvm use (some packages won't compile on older or newer versions of node)
  • sudo gem install cocoapods
  • I had to install watchman (I use Homebrew so did so by running brew install watchman) to prevent yarn start to get stuck on dependency graph loading
  • I had no prior experience with react-native, it took me a while to understand I had to run the bundle server in the background with yarn start before launching the app with yarn run ios

Hope it helps ! Great app !

Deck titles missing when quick searching

In the Decks section, when I type some text in the search field, filtering do happens but the decks have no titles.

image

Titles come back as soon as I scroll the list.

Investigator with no associated deck cannot update XP

I am in a campaign with two investigators. One investigator has a deck which is tracked in the app, but the other does not.

I cannot update the spent xp value for the investigator with no deck. When I press "edit", I can adjust the value up or down, but this does not actually appear to modify anything after I press "done".

App version: Android, 2.11.16 (as reported on Google Play)

[Bug report] 'upgrade card' or 'compute xp cost' error

Thank you for your hard work and dedication.

I would like to apologize for my poor english in the first place.

I played mystic - akachi in ptc campaign.
(she had two arcane research cards.)

It happened after upgrading 1x 'Shrivelling(Lv 0)' & 1x 'Fearless(Lv 0)' to 1x 'Shrivelling(Lv 3)' & 1x 'Fearless(Lv 2)' with 3xp

but app displayed 5/3xp in lastest upgrade/deck section. (2xp over-spent)

ac1

2x arcane research cards didn't work!

At latest upgrade/deck section, i found something a little strange.

Upgraded section -> 'Fearless(Lv 0)' -1, 1x 'Fearless(Lv 2)' +1
Added section ->'Shrivelling(Lv 3)' +1
Removed section -> 1x 'Shrivelling(Lv 0)' -1

ac2

I pressed 'View on ArkhamDB' button, but it worked fine on that site.

ad1

Adding time statistics

Hi!

First of all thx for all the great work you are doing with this app! This can't be repeated enough :)

I'm using the app a lot and something that I and my fellow players are missing is time information about when we started a campagin, finished a scenario and so on.

In the backuped campaign data I found an entry "lastUpdated" on the campaign level, but nothing of the sort on the scenarios themselves. My suggestion would be to add a started and finished timestamp on the scenario level. This would allow the user to know when they started a campaign (which is not possible right now as far as I know) and also to find out afterwards how long it took to finish a scenario.

Would it be fine if I try to implement this and then suggest a PR? My first step would be only to add the data, no changes in the UI.

Pls let me know if this is something you are interested in and if you would like to get contributions like that..

yours
stefan

[bug?] the end of a standalone scenario.

There is an issue guiding the next scenario even at the end of a standalone scenario.

It seems that this feature should only be applied when in side scenario mode.

thx.

zdm campaign story assets issue

It seems similar that Link.

I'm not seeing the Korean version of the story assets of Dark matter campaign, too.

(I checked it in the beta version dated Aug 18)

An Agenda cards appears in player cards

5F0E7BA3-C347-4E11-BD58-795C17B7C533

This agenda from Before the Black Throne is listed in player cards lists (whatever the filter applied.
I looked into the data for this card on arkhamdb-json-data but it seems correct to me.

XP level quick filter directly from the deck list

When editing a deck I'm either building a level 0 deck or upgrading a deck after a scenario so I often open the filter menu, select "0" or "1-5" as XP filter then apply. That's 3 clicks I do a regular basis.

It would be nice to have a way to filter "0 XP" or "1-5 XP" directly from the deck list instead of having to go through the filter dialog.

XP when purchasing Empower Self

Hi !

When purchasing all 3 copies of Empower Self, the app counts 6 XP instead of 2. It does it fine for other Myriad cards but these ones are specific because they don't share the same subtitle.

As always thanks for your work !

[bug?] android scroll issue

Drag action to scroll up should bring the page down, but it works the other way around. (the opposite is also the case: scrolling down -> page up)

device info

  • android 11
  • z flip3
Screen_Recording_20211026-004608_ArkhamCards_1.mp4

getCurrentState is not a function

I'm trying to get this running locally and encountered the following issue.

_nativeInterface.default.getCurrentState is not a function

I feel like I might be missing a step in setting it up...

Steps taken to get to this point.

  1. Cloned repo
  2. Ran npm install
  3. cd ios and ran pod install
  4. Created a local instance of ArkahamDB that's running on http://127.0.0.1:8000
  5. Copied .env.local to .env, created OAuth key on ArkhamDB and added the keys
  6. Opened ArkhamCards.xcworkspace
  7. In Xcode pressed Build & Run

Feature Request: Prevent Auto-Lock

Just wondering if it'd be possible to add an option to prevent auto-lock for either (a) the whole app, or (b) preferable: when drawing mythos tokens. Would be nice so I don't have to keep unlocking my phone while I play. πŸ‘

Feature: Add Side Deck

Hi !

It would be nice if the Side Deck feature now available on ArkhamDB could make its way to ArkhamCards !

As always, thanks for your great work !

New feature: Copy deck to clipboard

Sometimes I want to share my deck for others to comment on. When my deck is on ArkhamDB, I can just share the URL but when it's only in ArkhamCards I can't.
I thought it would be nice to have a "Copy decklist to clipboard" option from the deck menu which would copy the decklist as text. Something like:

2x .45 Automatic (2)
2x Flashlight
1x Enchanted Blade
...

I can then paste it directly to wherever I want to share it.

Possible improvements for deck list

I was thinking of some improvements for the deck list. @zzorba I know you're busy implementing other things but I thought I might just list them here for later.

  • when browsing through the deck list, some kind of visual indicator to differenciate ArkhamDB decks from "offline" decks (an 🌐 icon next to the deck name or near the update date)
  • There's already a "Hide ArkhamDb Decks" option, maybe add the inverse option "Hide non-ArkhamDB decks"
  • Similarly, an option to hide decks included in a campaign
  • With our collection of decks growing, a way to organize them would be nice : I don't what will hand out the best user experience : folders, keywords / tags

As always, many thanks for your hard work of this wonderful app !

Issue Fix Request: App stalls on iOS devices after v2.14.13

Hi!
After upgrading to 2.14.13 version from the App Store, app no longer runs on some iOS devices - it hangs indefinitely on the Launch Screen.
The same happens in the latest v2.14.14 as well.

Tested on following devices:
iPhone SE 1st gen, iOS 12.4.1, 32 GB (MP822HN/A)
iPhone Xs, iOS 13.2.3, 64 GB (MT942LL/A)
iPad Air 2, iOS, 13.5.1, 16 GB (MH0W2LL/A)

The only device the app runs normally is:
iPhone 6+, iOS 12.4.7 16 GB (MGAL2LL/A)

Thanks in advance ;)
Thanks for the great app :)

Text output problem (Korean)

About half of the height of the Korean text appears cropped. (default font size)

  • rule's title
  • Text: Review records
  • Text: Review and draw tokens
  • ...

text_problem

β€» android, arkhamcards beta ver 21.06.13.

Error in spanish translations

Hi,

The correct spanish translation for "The circle undone" is "El cΓ­rculo roto" and not "El circulo desecho" as it shows in the last version.

Feature Request - Shared Campaigns

Hello there,

I'm hosting private campaigns with 3 friends (with four webcams :D). This means that I have created a campaign and created 4 Decks in the app. (And I love this feature!!)
My friends are also storing their decks on ArkhamDB and here I have a problem.

Currently I'm able to clone their decks into my ArkhamDB hub to be able to use "their" decks in the campaign.
But now, as soon as the campaign advances, my friends improve their decks but the new state is not available in the campaign, as my clone is not up to date. Also I cant give them real information about available EXP, etc.

So in general it is very hard to track progress as a "campaign game master".
I know that e.g. EXP-updates of others decks are only possible if you would authenticate as the owner, but receiving a deck over the ID should enable getting the upgrade history, etc.

So would it be possible/would it make sense to just link/follow decks in the deck overview? Or at least reference decks in the campaign over the id.
What do you think?

Feature Request – Utilize Keyboard For Drawing Chaos Tokens

Recently I moved to an iPad, and I've been using ArkhamCards in a keyboard case far more frequently. It would be great if I could just hit the spacebar to draw a single token, number keys 1-9 to draw X tokens, and a subsequent space bar to return all tokens.

build stuck at bundlereleasejsandassets

LInux Mint, IntelliJ IDE, and build gets stuck at this step. I was somehow able to get the app on my device and emulator, but is there any workaround for this? thx a lot

Thoughts and feedback

Hey guys,

I really love your amazing app and decided to create this as some kind of "collection" issue containing all my feedback, thoughts and questions I have for arkham cards.

The reason for me to do this, is because I would like to discuss a few topics with you before they might be split out into actual actionable issues. I would also be interested in directly contributing on some of them. (However I am currently rather busy, so I probably won't be able to start working on issues until the end of september/early october).

Now to the actual feedback ;)

Features

"Build physical deck" support

I would love to have a feature supporting me to build my actual physical deck.
I imagine some kind of separate list (maybe reachable trough the right hand burger menu, like weaknesses are).
The list should be rather simple:

  • cards should be checkable, so that I know I already collected them from my physical storage solution
  • cards should be sortable by various conditions (like on arkhamdb), e.g. by cycle and number

If adding another list like this would be overkill, maybe we could add a way to show the card number inside the "Edit Deck" view. That way we could use the existing sorting to find cards by cicle and number as an easy fix.

(We store all our player cards in binders and sorted by cycle and number. Currently we have to click on each and every card, to see its number in its respective cycle, which is a bit cumbersome)

Add a way to manually add campaign notes/assets

We had a situation where we somehow misclicked something and accidentaly did not add a campaign asset to an investigators deck (can't remember exactly what it was, but iirc it was in the dunwich cycle).
We just realized this later in the campaign, when the respective entry in the campaign log was missing (our deck still had the item though...).

The only way to fix this was, to create a new campaign and re-trace all decisions we made and then add the card correctly.

It would be great, if there was an advanced view of the campaign log, showing all decisions by scenario and a way to change these decisions/add log entries. (without breaking the internal logic of a cycle of course - so only valid selections should be possible).

Bugs & UX

  • Searching cards while deckbuilding is really slow, I wonder if this is because the actual filtering is rather sophisticated (considering that it accounts for deckbuilding restrictions etc.). But maybe there is a way to make this faster and more responsive?
  • When upgrading decks there is a temporary state mismatch between the cards inside the deck and the list of card changes. Example: I have 2x OB of Lore and remove one, the change is correctly being reflected inside the actual deck, but if I click the card inside the change list, the element for adding/removing cards, still shows, that I have two in there
  • As a first time user it is not immediately clear, that changing the language (of course) needs a data refetch. However if I change the language and accidentaly clicked the wrong one and want to change it back, I am not able to do so until I switched to another tab (where the data fetching starts). There's two things I would do here:
    1. Don't block the language switch, until the user actually switches to a tab where the data fetching starts
    2. Make it more obvious, that some form of data re-fetching is going to happen (maybe add an additional note)

bug(?): zaw campaign story assets

zaw_ko

(I checked it in the beta version dated June 29)

Why am I not seeing the Korean version of the story assets of the zaw campaign?

I only see the English version of that cards.

ko version of zaw story assets: link

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.