jackadamson/onitama

Add promotional cards Mejika, Okija, Kumo, and Sasori

Opened this issue · 10 comments

These four promos are based on cards from the first edition of the game. They would require additional functionality to work properly since the move you can make with your Master is different than with your Student.

Okija and Mejika
Sasori and Kumo

Hey @jackadamson,

I tried to start working on implementing these since the idea of a card with more than one move is also useful for the Wind Spirit Move cards in #16 .

I came up with the solution of adding a new attribute to Card called CardType that is referenced via movetype in the CardDescription.

My idea was that "move" functions could check the CardType and the PieceType to see if either move could be made but I've been unable to effectively follow all the different places these checks need to be made.

I'm also wondering if there needs to be a different model for a card that is essentially two cards in one since right now a card is just an array of points and these also care about what kind of piece is attempting to use the move.

Do you have a different idea as to how we should implement these multiple move cards?

Thanks.

Also, just to add for the purpose of future proofing, there was a card in the 1st Edition of the game that let you move your opponent's Master or any type of pawn of your own. I don't know if they will add such a thing but I think it's best to add the capability now when we're messing with the properties of what certain pieces can do and if we wanted we could them implement the 1st Edition of the game as a playable variant, which could be fun for people to be able to easily experience.

ER-95 commented

@onitamasuperfan It looks like this project is abandoned and yours will be the way forward. Do you plan to add the Light and Shadow expansion as well as the Mejika, Okija, Kumo, and Sasori?

It would be inaccurate to describe the project as abandoned, as it functions fully within the scope originally defined by @jackadamson. While it does not yet include all of Onitama's features, such as Dual moves and others, I believe these additions would be valuable. However, I wish to avoid overstepping, as Jack may have plans to implement these features himself.

It seems he has been quite occupied with other commitments, and this project was likely a personal endeavor. While I am willing to assist, I would prefer to hear his perspective on the topics I've outlined.

Ultimately, the decision regarding what gets merged into the main branch remains his to make.

ER-95 commented

I think any hope of merging them into the main branch may be lost, given that the request you put in 10 months ago didn't get accepted 😅

I do understand not wanting to overstep - I would just love to see a complete version of Onitama available on web/PC.

I don't think that's true. I kind of piled a bunch of stuff on him all at once as soon as he was active last. I wasn't expecting anything to be quickly reviewed and merged. When he has time, I think he'll get to it and if he's not interested in updating it again, he may even respond to this increased activity to let us know.

There are two new promos coming later this year that I will definitely want to implement when they arrive, so I will at least add those then to my branch. These dual move cards, and the other expansions are much larger endeavors.

If we don't hear from Jack, let's revisit this then.

Her @ER-95, you’re entirely right that I’ve not dedicated much time to this project in recent years, but once I’m settled in at my new job/new country, I’m very happy to catch up on the (long overdue) PR reviews.

The last few commits I made let me move hosting from a home server, to the cloud which has reduced the small operating burden I did have.

I hugely appreciate the support that @onitamasuperfan has provided, and it has been one of the drivers for continuing development.

With my recent job move, I’m now finally writing/reviewing rust again professionally, so the barrier to entry for returning to the project has dropped as I no longer need to relearn rust every time I want to make a change.

To set expectations though, this is, and always has been a passion project, it generates no income (thankfully the infra is super cheap to run), and I’m not willing to let a sense of obligation turn this into a chore. So, while I love the change proposed, I want to spend a bit of time QA’ing it myself, before shipping to the ~800 weekly active users.

I’ll set myself a reminder to try and back to this change set in a few weeks, but unfortunately life is super busy.

On the flip side, if you want to run a fork, the server requires <1gb RAM and <1 CPU core, and is as easy as running the docker container (which is already built on GHCR).

Given the lack of matchmaking, “fracturing” the community isn’t a concern, so if you want to host a fork, absolutely do it!

Oh, caveat that for the server to be performant on low spec hardware requires a caching proxy like Cloudflare, but that’s free, and I don’t think I did any special config at the CDN to make it work (all the cache-control headers should “just work”).

Also, the service-worker means that everything except online multiplayer continues to work if the server is offline, so it’s quite low operational overhead.

Personally, I'd rather just keep improving the main branch than get into that. Like I said, its current feature set is fully functional. :)