magefree / mage

Magic Another Game Engine
http://xmage.today
MIT License
1.84k stars 760 forks source link

Integrate custom Starwars set #2387

Open LevelX2 opened 7 years ago

LevelX2 commented 7 years ago

So we will need things like activating custom sets in the client preferences to activate/deactivate custom sets. Think about how we handle custom keywords / effects with low as possible influence on the core of XMage.

Cards not completely implemented:

Here are the images: StarWarsImages.ZIP

Lymia commented 7 years ago

As far as deck editors, etc goes, right now, there's SetType.CUSTOM_SET for marking custom cards already.

Constructed.java (this code isn't tested though, might need to do that) also has added code to try and stop the custom cards from getting into decks when not explicitly requested -- besides reprints of official cards, at least.

"Name a card" is a bit wonky to begin with. You shouldn't be able to name cards that aren't legal in a format to begin with, much less custom cards. Is this already covered, or does it still need to be implemented? (See: 201.3)

LevelX2 commented 7 years ago

"Name a card" is a bit wonky to begin with. You shouldn't be able to name cards that aren't legal in a format to begin with, much less custom cards. Is this already covered, or does it still need to be implemented? (See: 201.3)

The lists come from the DB by this class: CardRepository. There needs to be CUSTOM_SET sets omitted. Or if there is such a function (name a card ...) in a custom set, the data selection must be able to restrict to a custom set or group of custom sets.

LevelX2 commented 7 years ago

As far as deck editors, etc goes, right now, there's SetType.CUSTOM_SET for marking custom cards already.

Mark already said, we need a new flag/state in the card record of DB to get good performance for the filtering.

Lymia commented 7 years ago

I didn't add it in my patch because I wasn't familiar with the database library mage uses, and how adding columns works (synchronization issues with the client, needing to discard databases from old versions, etc).

Right now, checking if a set's custom or not shouldn't be too bad. Sets.isCustomSet looks up a set code in a HashSet, which shouldn't be very expensive.

I'd remove that if there'd be a field in CardInfo though.

LevelX2 commented 7 years ago

Right now, checking if a set's custom or not shouldn't be too bad. Sets.isCustomSet looks up a set code in a HashSet, which shouldn't be very expensive.

@stravant is very ambitious about card editor responsiveness. So I'm not sure that's enough.