Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add expansion packs #76

Open
tzyganu opened this issue Jan 28, 2021 · 4 comments
Open

Add expansion packs #76

tzyganu opened this issue Jan 28, 2021 · 4 comments
Labels
feature Additional functionality that might require some significant work

Comments

@tzyganu
Copy link

tzyganu commented Jan 28, 2021

Bonjour.
First of all, I want to say GREAT JOB so far.
As a 7 wonders fan and player, I really enjoyed playing this.
As a developer I really enjoyed digging through the code even if my Kotlin knowledge is pretty close to zero.

How about taking this a step further and including some expansion packs in this app?
In my opinion, the easiest to start would be to add Cities.
This would require the least changes in the code

  • extra black cards: 1 for each player from a pool of cards (similar to the n+2 rule for guilds)
  • one extra turn each age if playing 3 to 7 players. or same number of turns but the ability to play in 8. (initially it can be just one extra turn and don't allow 8 players)
  • Embassy tokens and card actions
  • spy cards (copy a science symbol from the neighbors) . this may complicate the wildcard science score calculation a bit
  • coin loss card actions and coin tokens.
  • one extra wonder that can be played only with this expansion pack

If you like the idea and are willing to try it, I'm more than happy to help with card and token images because I'm incompetent of helping with the code.
And if all goes well, other expansion packs can be added but these are subject to other user stories.

  • leaders
  • armada
  • babel
  • wonder pack
@joffrey-bion
Copy link
Owner

joffrey-bion commented Jan 28, 2021

Hi @tzyganu, thanks a lot for your feedback!

I always had the expansions in the back of my mind, to be honest, but so far I preferred to focus on usability issues, tests, and bugs, before moving forward.

The code is mostly generic as far as the cards, boards and effects are concerned, so this part would be easily extensible.

One of the things I want to deal with before adding expansion packs is creating a proper and more generic state machine for the general game state (which will be also the main thing to change in the backend when adding expansions, like new turns etc.).

Last but not least, the UI. Depending on the expansions, the real estate of the screen may become really scarce (I'm thinking about you Babel). But some expansions may be very easy in terms of UI. Cities may indeed be the simplest. Leaders simply adds one turn per age (and maybe a place where we can see the leaders cards on the board), so it would also be pretty easy for the UI.

I'm more than happy to help with cards and token images

Honestly that would be awesome. It's quite a challenge to find nice assets that blend with the rest. I think I have all expansions of the actual board game at home, so a last resort can be scanning everything 😁
Don't hesitate to make a PR adding images to the img-archive folder. It's where I keep potential images that I don't use yet.

Again thanks for the feedback!

@joffrey-bion joffrey-bion added the feature Additional functionality that might require some significant work label Jan 28, 2021
@tzyganu
Copy link
Author

tzyganu commented Jan 28, 2021

by helping with the images I was trying to say...scan or take photos of the cards and tokens :). Will try that when I have some spare time and make a PR if I get good results.
Side note: After playing this on heroku , I'm trying to install this locally on ubuntu 18.04 and getting this warning

For Jackson Kotlin classes support please add "com.fasterxml.jackson.module:jackson-module-kotlin" to the classpath

and this error

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.luxons.sevenwonders.server.SevenWonders]; nested exception is java.lang.IllegalStateException: Error processing condition on org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$DifferentManagementContextConfiguration
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:610) ~[spring-context-5.3.1.jar!/:5.3.1]
at org.springframework.context.annotation.ConfigurationClassParser.access$800(ConfigurationClassParser.java:111) ~[spring-context-5.3.1.jar!/:5.3.1]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.lambda$processGroupImports$1(ConfigurationClassParser.java:812) ~[spring-context-5.3.1.jar!/:5.3.1]

I'm not very familiar with java development, but since this runs on a dockerized environment, I assume the docker image needs some changes? Or do I need some other prerequisites before installing this? or is ubuntu not supported?
Should I raise a separate issue for this?

@joffrey-bion
Copy link
Owner

by helping with the images I was trying to say...scan or take photos of the cards and tokens :)

Whatever is simplest to you, honestly 😄 That's very helpful either way!

Yes, please open a separate issue for the bug you have.
This is very strange, maybe the docker image is broken 🤔

@bgstack15
Copy link
Contributor

If you end up implementing expansion, please make them optional! Some of us very much enjoy the vanilla game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Additional functionality that might require some significant work
Projects
None yet
Development

No branches or pull requests

3 participants