Coder Social home page Coder Social logo

star-wars-legion's Introduction

BSData Project

BattleScribeDataWeb is the web application that serves BattleScribe data files from the various data repositories on GitHub. It is a Java 8 web application designed to run on Google App Engine. It is built and deployed using Maven 3.5.

It consists of an Angular (JavaScript) front end and a RESTful (Jersey / JAX-RS) back end.

This guide is written from the perspective of a Netbeans IDE user running Windows, however you can use any IDE or toolset that supports Maven.

It is assumes that you have some experience with developing on Windows, or can translate the following to your operating system of choice. You should also have some knowledge of software development/programming using Java (or are willing to learn it!).

Contents

Before You Start

  1. Make sure you have a Google account.
  2. Make sure you have a GitHub account and are a member of the BSData organisation (https://github.com/BSData).
  3. Generate a GitHub security token to let the app access GitHub on your behalf.
    • Log in to GitHub and go to Settings -> Developer Settings -> Personal access tokens (https://github.com/settings/tokens).
    • Generate a new token with public_repo and read:org scopes. Take a note of the token.

Download and Install Everything

(Note: On Windows, references to "Google Cloud Shell" below means the "Google Cloud Shell" command line launched from the Start Menu.)

  1. Download and install the Java SE 8 JDK (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
    • You may be able to use the Java 9 SDK - YMMV.
  2. Download and install the GitHub Desktop app (https://desktop.github.com/).
    • Check out the bsdata project. (https://github.com/BSData/bsdata).
    • The root folder you check out into (containing pom.xml) will be referred to as the project folder.
  3. Download and install the Google Cloud SDK (https://cloud.google.com/sdk).
  4. Initialise the Google Cloud SDK (https://cloud.google.com/sdk/docs/quickstarts).
    • You will be presented with a command line after installation, or you can run gcloud init from the Google Cloud Shell.
    • Log in with your Google account.
    • Choose to create a new project (or select a previously created project). This will will be your own App Engine development environment that you can deploy and test on. Make a note of the name.
    • You do not need to configure Compute Engine, it can be skipped.
    • Make sure your App Engine project is alive and well in Google Cloud Console (https://console.cloud.google.com).
  5. Install the Google Cloud Java Components (https://cloud.google.com/sdk/docs/managing-components).
    • From the Google Cloud Shell, run gcloud components install app-engine-java
    • To update the Google Cloud SDK to the latest version, run gcloud components update
  6. Download and install Netbeans Java EE bundle (https://netbeans.org/downloads/).
    • The current version of Netbeans is 8.2, and by default it does not include Maven 3.5. Future versions of Netbeans may change this.
  7. Download and unzip Maven 3.5 (https://maven.apache.org/download.cgi).

Set up the Project in Netbeans

  1. Launch Netbeans
    • Pro tip: If you prefer a dark colour scheme, go to Tools -> Plugins and install "Darcula LAF for Netbeans"
  2. Set Netbeans to use Maven 3.5
    • Go to Tools -> Options, Select the Java section then the Maven tab.
    • Set Maven Home to the directory you unzipped Maven 3.5 into.
  3. Open the BattleScribeData project you checked out from GitHub.
  4. Create a file in the project directory called maven.properties
    • This file should not be checked in to GitHub (it's excluded via .gitignore). It contains Maven settings specific to individual developers.
    • Add the following line:
      appengine.dev.project.name=YOUR_APP_ENGINE_DEV_PROJECT_NAME
      
      (Use your App Engine development project name created when setting up the Cloud SDK above).
  5. Create a file in the <project directory>/src/main/resources/common/java/ directory called github-user.properties.
    • This file should not be checked in to GitHub (it's excluded via .gitignore). It contains GitHub authentication settings that should not be public. If your GitHub authentication token is checked in to GitHub, it will be invalidated and you will need to generate a new one.
    • Add the following lines:
      ## GitHub User ##
      github.anon.username=GITHUB_USER_NAME
      github.anon.token=GITHUB_AUTHENTICATION_TOKEN
      [email protected]
      
      (Use your own GitHub username and token).
  6. Build the project
    • Select the local Maven profile from the "Project Configuration" dropdown at the top.
    • Right-click the project and select "Clean and Build".
    • Wait for Maven to download required dependencies (jar libraries) and build the project.
  7. Run the project locally (appengine:run Maven goal).
    • Select the local Maven profile.
    • Right-click the project -> Run Maven -> appengine:run.
    • Go to http://localhost:8080 to see the app.
    • (The local server is provided as part of the Cloud SDK)
  8. Debug the project locally (appengine:run Maven goal).
    • Select the local-debug Maven profile.
    • Right-click the project -> Run Maven -> appengine:run.
    • The local server will wait listening on port 5005 for the debugger to attach.
    • Go to Debug -> Attach debugger: Connector SocketAttach, Transport dt_socket, Host localhost, Port 5005.
    • Go to http://localhost:8080 to see the app.
  9. Deploy the project to your App Engine development environment (appengine:deploy Maven goal).

A Quick Tour

  • pom.xml in the project directory contains Maven configuration.
    • General app properties, such as name, version, Java version etc.
    • Build profiles which determine app configuration for specific environments.
      • local for running on the local server
      • local-debug for debugging on the local server
      • dev for deploying on your App Engine development environment
      • test and prod are for the main BSData test and live App Engine environments. You will not be able to use these unless authorised.
    • Dependencies - the specific versions of libraries required by the app.
      • Maven will handle downloading and providing the libraries when building and deploying the app.
  • /src/main/resources/ folder contains configuration files for each Maven profile, plus common properties files used by all profiles.
    • .../java/ files are general config used by the java app and are copied into the WEB-INF/classes/ folder upon build/deploy.
    • .../webapp/ files are used to configure the application server and are copied into the WEB-INF folder upon build/deploy.
  • /src/main/webapp/ folder contains the web front end
    • HTML and CSS
    • .../app/ folder contains the Angular Javascript app
  • /src/main/java/ folder contains the back end Java app.
    • rest package contains RESTful web services (https://jersey.github.io/documentation/2.26/jaxrs-resources.html).
      • BattleScribeDataRestConfig.java configures the app and performs startup tasks.
    • viewmodel package contains model classes that are used to pass data between the web services and the Angular front end.
      • These objects are converted to/from JSON to be sent/recieved in web requests/responses.
      • These objects are used by the BattleScribe app and should not be changed without proper planning. Changes could cause problems with BattleScribe reading repository information.
    • model package contains model classes for BattleScribe XML data files and indexes (http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php).
    • dao package contains "Data Access Object" classes used used to read/write to data sources.
      • GitHubDao.java is used for communicating with GitHub.
    • repository package contains classes for creating BattleScribe repository indexes (.bsi) files.

star-wars-legion's People

Contributors

amis92 avatar bsdata-bot avatar harleqyin avatar joshweller avatar xwingdrlucky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

star-wars-legion's Issues

Grand Army Ranks

The Heavy rank allows up to 3 selections instead of 4. If this has been FAQed somewhere, please let me know. It does not match the rules I downloaded from FFG. This happens in at least Empire and Republic, though may happen for all factions.

iOS 14.7.1
BS Version 2.03.15
Star Wars Legion 1.9.4
Dropbox No

9F26FAE4-0A56-4ED7-843A-38321BED5E6B
61C097B8-C297-40C9-B6ED-A4DE5BE4A40A

Add Force Org for Separatist Invasion

Is your feature request related to a problem? Please describe.
The Separatist Invasion Battle Force gives rules for a new "Force Org" for the Separatists.

Describe the solution you'd like
Implement a new Force Org that accurately models the restrictions of this new Battle Force

Describe alternatives you've considered
Ideally, this can be done as a Force Org. If not, discuss how to implement this.

Additional context
No need to wait on this, the rules are valid now, even though the box has not been released as of the creation of this ticket.

Discussion: Implementing Mercenary Units

Discussion for the implementation of Mercenary Units in Regular Factions.

In most other games, allies and such are either a separate category or a second force org that needs added.

For Legion, the mercenaries can be added in each of the unit categories, so having one additional Mercenary category seems like a poor solution.

Adding a second force org has always been a cumbersome solution, but might be the best option. The thing I don't know is if this will let us auto-validate the number of each unit type. Looking into this.

I want to propose the idea of putting the mercenaries as selections in the regular categories. I'm still looking to see if this will work, mostly with the min/max unit counts. Will this be too confusing to new players?

Let the discussion begin.

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 1.11.11

Platform: Android

Dropbox: No

Description: Death trooper weapons upgrade is supposed to be E-11D, not 110

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: Yes

Description: Could I request an update for the new battleforces and new units that have come out since the last update?

New Unit: A-A5 Speeder Truck (Mercenary Version)

Description
Set up this new unit as a usable unit and include its stats and options. Specifically, this is for the Mercenary Version, which should be distinct from the regular version.

Allow this unit to be selectable as a mercenary unit for the main 4 factions. This unit does not count towards the minimum, but does count towards the maximum for its type.

Describe alternatives you've considered
Should a faction have to include a second force org for mercenaries? Ideally not, as that seems to clutter lists and could make enforcing maximum unit counts harder.

Additional context
For now, this is just setting up this new unit and making available as a mercenary. Once the units are all set up, then the Shadow Collective Force Org can be created.

[Anon] Bug report: Galactic_Republic.catz

File: Galactic_Republic.catz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: When adding personnel "Fives" or "Echo" to a unit, they are not supposed to increase the courage of the unit. The physical upgrade card has a green "2" indicating that the specific mini can take 2 wounds instead of one like the rest of the unit.

New Unit: Black Sun Enforcers

Description
Set up this new unit as a usable unit and include its stats and options.

Allow this unit to be selectable as a mercenary unit for the main 4 factions. This unit does not count towards the minimum, but does count towards the maximum for its type.

Describe alternatives you've considered
Should a faction have to include a second force org for mercenaries? Ideally not, as that seems to clutter lists and could make enforcing maximum unit counts harder.

Additional context
For now, this is just setting up this new unit and making available as a mercenary. Once the units are all set up, then the Shadow Collective Force Org can be created.

[Join Request]

Looking to help out with making force orgs for the new battle force boxes, then start working on the shadow collective.

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: Yes

Description: Clone commander and droid generic commander are still showing as unreleased. With the new transports releasing soon, could we please get an update whenever you get a chance?

[Anon] Bug report: Galactic_Republic.catz

File: Galactic_Republic.catz

BattleScribe version: 2.03.21

Platform: Windows

Dropbox: No

Description: The roster list and points values for the Galactic Republic have not been updated since 2021, meaning that there is a whole Commander unit with upgrades (Cody, Waxer, and Boil) that is just unavailable in Battlescribe. Which, as a 212th player, makes it really hard to create a full list in the program.

AT-RT Flamethrower

At this point, I think AT-RT Flamethrower is the only known card that isn't in the repo. If anyone got a look at it at GenCon (or took a picture), I really need to know the point cost in order to get it into the files. Having the text for the "Spray" keyword would be nice too.

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: Targeting Scopes are listed in the data file as 4 points but my card says they are 6.

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: The Listbuilding for Legion is outdated.
No new Rules for mercenarys and no Darth Maul Faktion.

Recent Updates

It looks like we're finally out of the information lull caused by the initial pandemic slowdown. There are some updates that need to happen, like the release of Padme and Cad Bane, or the new spoilers for the ARC Troopers. I'll try to take care of that stuff this weekend.

Add Force Org for Echo Base Defenders

Is your feature request related to a problem? Please describe.
The Echo Base Defenders Battle Force gives rules for a new "Force Org" for the Rebellion.

Describe the solution you'd like
Implement a new Force Org that accurately models the restrictions of this new Battle Force

Describe alternatives you've considered
Ideally, this can be done as a Force Org. If not, discuss how to implement this.

Additional context
No need to wait on this, the rules are valid now, even though the box has not been released as of the creation of this ticket.

Add Force Org for 501st Legion

Is your feature request related to a problem? Please describe.
The 501st Legion Battle Force gives rules for a new "Force Org" for the Republic.

Describe the solution you'd like
Implement a new Force Org that accurately models the restrictions of this new Battle Force

Describe alternatives you've considered
Ideally, this can be done as a Force Org. If not, discuss how to implement this.

Additional context
No need to wait on this, the rules are valid now, even though the box has not been released as of the creation of this ticket.

[Anon] Bug report: Galactic_Empire.catz

File: Galactic_Empire.catz

BattleScribe version: 2.03.03

Platform: Windows

Dropbox: Yes

Description: Death Troopers. DLT-19D Heavy Weapon upgrade is listed as unique (dot next to name). It is not unique.

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: Units with the Field Commander keyword do not count as a commander when building an army.

Add Force Org for Blizzard Force

Is your feature request related to a problem? Please describe.
The Blizzard Force Battle Force gives rules for a new "Force Org" for the Empire.

Describe the solution you'd like
Implement a new Force Org that accurately models the restrictions of this new Battle Force

Describe alternatives you've considered
Ideally, this can be done as a Force Org. If not, discuss how to implement this.

Additional context
No need to wait on this, the rules are valid now, even though the box has not been released as of the creation of this ticket.

[Join Request]

I'd like to contribute to make some updates to the star wars legion data files

New Unit: Mandalorian Super Commandos

Description
Set up this new unit as a usable unit and include its stats and options.

Allow this unit to be selectable as a mercenary unit for the main 4 factions. This unit does not count towards the minimum, but does count towards the maximum for its type.

Describe alternatives you've considered
Should a faction have to include a second force org for mercenaries? Ideally not, as that seems to clutter lists and could make enforcing maximum unit counts harder.

Additional context
For now, this is just setting up this new unit and making available as a mercenary. Once the units are all set up, then the Shadow Collective Force Org can be created.

[Anon] Bug report: Rebel_Alliance.catz

File: Rebel_Alliance.catz

BattleScribe version: 2.03.15

Platform: iPhone / iPod / iPad

Dropbox: No

Description: Lando cost nothing. As of now he costs 105 points :)

[Join Request]

Would like to assist in fixing issues and releasing new data. Thanks!

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: The recently added viper recon droid personnel upgrade is listed as 18 points but FFG's website says 8 points

[Anon] Bug report: Star_Wars_Legion.gstz

File: Star_Wars_Legion.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: I can't open any armyblist builder. I can bring up a list of possible admire builders but it won't let me select any

New Unit: Pyke Syndicate Foot Soldiers

Description
Set up this new unit as a usable unit and include its stats and options.

Allow this unit to be selectable as a mercenary unit for the main 4 factions. This unit does not count towards the minimum, but does count towards the maximum for its type.

Describe alternatives you've considered
Should a faction have to include a second force org for mercenaries? Ideally not, as that seems to clutter lists and could make enforcing maximum unit counts harder.

Additional context
For now, this is just setting up this new unit and making available as a mercenary. Once the units are all set up, then the Shadow Collective Force Org can be created.

Not appearing in repository

It seems like this isn't listed on the app spot repo anymore? Not synching with the latest battlescribe on ios 15.

Lando has no cost

Lando has cost 0.
Is not posible to equip Lando and select his command card.
Is not posible to select contingences card.

Wrong Unit Type on Vader's Might

File: Galactic_Empire.catz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: The descrption of Vader's Might says 'another non-commander' unit. It should say 'another non-heavy'.

[Anon] Bug report: Galactic_Empire.catz

File: Galactic_Empire.catz

BattleScribe version: 2.03.20

Platform: Android

Dropbox: No

Description: DF90 Mortar has Speed 2 instead of Speed 1. I have not found any modification of this card in the RRG.

[Join Request]

Hi, I would like to help contribute to the Star Wars Legion repo.

New Unit: Swoop Bike Riders

Description
Set up this new unit as a usable unit and include its stats and options.

Allow this unit to be selectable as a mercenary unit for the main 4 factions. This unit does not count towards the minimum, but does count towards the maximum for its type.

Describe alternatives you've considered
Should a faction have to include a second force org for mercenaries? Ideally not, as that seems to clutter lists and could make enforcing maximum unit counts harder.

Additional context
For now, this is just setting up this new unit and making available as a mercenary. Once the units are all set up, then the Shadow Collective Force Org can be created.

[Anon] Bug report: Galactic_Empire.catz

File: Galactic_Empire.catz

BattleScribe version: 2.03.14

Platform: iPhone / iPod / iPad

Dropbox: No

Description: Faction: Galactic Empire
Unit: Iden Versio - ID10 Droid Seeker Droid
Problem: Seeker Droid attack listed as range melee/1-2.
Solution: Seeker Droid attack should list attack range as melee/1.

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.