From 8881eef42dd2259c81931a94df0ac4186693aa81 Mon Sep 17 00:00:00 2001 From: twanvl Date: Fri, 11 Jul 2008 17:07:51 +0000 Subject: [PATCH] Changed Pack structures git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1021 0fc631ac-6414-0410-93d0-97cfa31319b6 --- data/magic.mse-game/game | 84 +++++++++++++++---------------- src/data/game.cpp | 1 + src/data/game.hpp | 2 + src/data/pack.cpp | 34 +++++++++++-- src/data/pack.hpp | 40 +++++++++++---- src/gui/set/random_pack_panel.cpp | 66 ++++++++++++++++++++++-- src/gui/set/random_pack_panel.hpp | 1 + 7 files changed, 170 insertions(+), 58 deletions(-) diff --git a/data/magic.mse-game/game b/data/magic.mse-game/game index 999e53ba..201b6f9d 100644 --- a/data/magic.mse-game/game +++ b/data/magic.mse-game/game @@ -1831,68 +1831,66 @@ auto replace: ############################################################## Card packs -pack type: - name: Starter pack +pack item: + name: Common + filter: card.rarity == "common" +pack item: + name: Uncommon + filter: card.rarity == "uncommon" +pack item: + name: Rare + filter: card.rarity == "rare" +pack item: + name: Basic Land + filter: card.type == "Plains" + filter: card.type == "Island" + filter: card.type == "Swamp" + filter: card.type == "Mountain" + filter: card.type == "Forest" + # TODO: support something like this: + #type: cyclic + pack type: name: Tournament pack - card type: + item: name: Rare amount: 3 - filter: card.rarity == "rare" - card type: + item: name: Uncommon amount: 9 - filter: card.rarity == "uncommon" - card type: + item: name: Common amount: 33 - filter: card.rarity == "common" - card type: - name: Plains - amount: 6 - filter: card.type == "Plains" - card type: - name: Island - amount: 6 - filter: card.type == "Island" - card type: - name: Swamp - amount: 6 - filter: card.type == "Swamp" - card type: - name: Mountain - amount: 6 - filter: card.type == "Mountain" - card type: - name: Forest - amount: 6 - filter: card.type == "Forest" + item: + name: Basic Land + amount: 30 pack type: name: Booster pack - card type: + item: name: Rare amount: 1 - filter: card.rarity == "rare" - card type: + item: name: Uncommon amount: 3 - filter: card.rarity == "uncommon" - card type: + item: name: Common amount: 11 - filter: card.rarity == "common" -pack type: - name: Additional rare - card type: - name: Rare - amount: 1 - filter: card.rarity == "rare" pack type: name: Additional common - card type: + item: + name: Common +pack type: + name: Additional uncommon + item: + name: Uncommon +pack type: + name: Additional rare + item: name: Rare - amount: 1 - filter: card.rarity == "rare" +pack type: + name: Additional special + item: + name: Special diff --git a/src/data/game.cpp b/src/data/game.cpp index 1cadd15b..91f46a9e 100644 --- a/src/data/game.cpp +++ b/src/data/game.cpp @@ -53,6 +53,7 @@ IMPLEMENT_REFLECTION(Game) { REFLECT_NO_SCRIPT(card_list_color_script); REFLECT_NO_SCRIPT(statistics_dimensions); REFLECT_NO_SCRIPT(statistics_categories); + REFLECT_NO_SCRIPT(pack_items); REFLECT_NO_SCRIPT(pack_types); REFLECT_NO_SCRIPT(keyword_match_script); REFLECT(has_keywords); diff --git a/src/data/game.hpp b/src/data/game.hpp index 67315a2a..04f9fa89 100644 --- a/src/data/game.hpp +++ b/src/data/game.hpp @@ -20,6 +20,7 @@ DECLARE_POINTER_TYPE(Style); DECLARE_POINTER_TYPE(Game); DECLARE_POINTER_TYPE(StatsDimension); DECLARE_POINTER_TYPE(StatsCategory); +DECLARE_POINTER_TYPE(PackItem); DECLARE_POINTER_TYPE(PackType); DECLARE_POINTER_TYPE(KeywordParam); DECLARE_POINTER_TYPE(KeywordMode); @@ -44,6 +45,7 @@ class Game : public Packaged { OptionalScript card_list_color_script; ///< Script that determines the color of items in the card list vector statistics_dimensions; ///< (Additional) statistics dimensions vector statistics_categories; ///< (Additional) statistics categories + vector pack_items; ///< Types of cards in packs vector pack_types; ///< Types of random card packs to generate vector word_lists; ///< Word lists for editing with a drop down list vector auto_replaces; ///< Things to autoreplace in textboxes diff --git a/src/data/pack.cpp b/src/data/pack.cpp index e497fec1..e20f144b 100644 --- a/src/data/pack.cpp +++ b/src/data/pack.cpp @@ -18,13 +18,41 @@ PackType::PackType() IMPLEMENT_REFLECTION(PackType) { REFLECT(name); REFLECT(enabled); - REFLECT(card_types); + REFLECT(items); } -// ----------------------------------------------------------------------------- : CardType +void PackType::generate(Set& set, vector& out) const { + //%FOR_EACH(card_type, card_types) { + //% card_type->generate(set,out); + //%} +} -IMPLEMENT_REFLECTION(CardType) { +// ----------------------------------------------------------------------------- : PackItemRef + +PackItemRef::PackItemRef() + : amount(1) +{} + +IMPLEMENT_REFLECTION(PackItemRef) { REFLECT(name); REFLECT(amount); +} + +bool PackItemRef::update(Context& ctx) { + return amount.update(ctx); +} + +// ----------------------------------------------------------------------------- : PackItem + +IMPLEMENT_REFLECTION(PackItem) { + REFLECT(name); REFLECT(filter); } + +void PackItem::generate(Set& set, vector& out) const { + //%Context& ctx = set.getContext(); + //%amount.update(ctx); + //%FOR_EACH(card_type, card_types) { + //% card_type->generate(set,out); + //%} +} diff --git a/src/data/pack.hpp b/src/data/pack.hpp index a27bcac7..ab24647c 100644 --- a/src/data/pack.hpp +++ b/src/data/pack.hpp @@ -13,7 +13,7 @@ #include #include