diff --git a/img_src/col_covert.xcf b/img_src/col_covert.xcf old mode 100644 new mode 100755 index f1bf003..8d160fb Binary files a/img_src/col_covert.xcf and b/img_src/col_covert.xcf differ diff --git a/img_src/col_instinct.xcf b/img_src/col_instinct.xcf old mode 100644 new mode 100755 index d9e0456..5004037 Binary files a/img_src/col_instinct.xcf and b/img_src/col_instinct.xcf differ diff --git a/img_src/col_ranged.xcf b/img_src/col_ranged.xcf old mode 100644 new mode 100755 index 239d66b..16b7546 Binary files a/img_src/col_ranged.xcf and b/img_src/col_ranged.xcf differ diff --git a/img_src/col_strength.xcf b/img_src/col_strength.xcf old mode 100644 new mode 100755 index aea7689..e7f1f01 Binary files a/img_src/col_strength.xcf and b/img_src/col_strength.xcf differ diff --git a/img_src/col_tech.xcf b/img_src/col_tech.xcf old mode 100644 new mode 100755 index d787dae..51841fd Binary files a/img_src/col_tech.xcf and b/img_src/col_tech.xcf differ diff --git a/img_src/ct_heroes_allies.xcf b/img_src/ct_heroes_allies.xcf new file mode 100755 index 0000000..9a26570 Binary files /dev/null and b/img_src/ct_heroes_allies.xcf differ diff --git a/img_src/exp_ffour.xcf b/img_src/exp_ffour.xcf old mode 100644 new mode 100755 index 968c8cf..2aa23e5 Binary files a/img_src/exp_ffour.xcf and b/img_src/exp_ffour.xcf differ diff --git a/img_src/exp_paint_red.xcf b/img_src/exp_paint_red.xcf old mode 100644 new mode 100755 index e1fcea6..6a0c160 Binary files a/img_src/exp_paint_red.xcf and b/img_src/exp_paint_red.xcf differ diff --git a/img_src/exp_villains.xcf b/img_src/exp_villains.xcf new file mode 100755 index 0000000..f013fa6 Binary files /dev/null and b/img_src/exp_villains.xcf differ diff --git a/img_src/team_avengers.xcf b/img_src/team_avengers.xcf old mode 100644 new mode 100755 index 0fa8c29..391267b Binary files a/img_src/team_avengers.xcf and b/img_src/team_avengers.xcf differ diff --git a/img_src/team_brotherhood.xcf b/img_src/team_brotherhood.xcf new file mode 100755 index 0000000..a43fb0c Binary files /dev/null and b/img_src/team_brotherhood.xcf differ diff --git a/img_src/team_crimesyndicate.xcf b/img_src/team_crimesyndicate.xcf new file mode 100755 index 0000000..b8139a9 Binary files /dev/null and b/img_src/team_crimesyndicate.xcf differ diff --git a/img_src/team_ffour.xcf b/img_src/team_ffour.xcf old mode 100644 new mode 100755 index e183ee4..34bcf2b Binary files a/img_src/team_ffour.xcf and b/img_src/team_ffour.xcf differ diff --git a/img_src/team_foesofasgard.xcf b/img_src/team_foesofasgard.xcf new file mode 100755 index 0000000..1a4a0b0 Binary files /dev/null and b/img_src/team_foesofasgard.xcf differ diff --git a/img_src/team_hydra.xcf b/img_src/team_hydra.xcf new file mode 100755 index 0000000..fc918e3 Binary files /dev/null and b/img_src/team_hydra.xcf differ diff --git a/img_src/team_marvelknights.xcf b/img_src/team_marvelknights.xcf old mode 100644 new mode 100755 index 850378f..6fa2659 Binary files a/img_src/team_marvelknights.xcf and b/img_src/team_marvelknights.xcf differ diff --git a/img_src/team_shield.xcf b/img_src/team_shield.xcf old mode 100644 new mode 100755 index 5f61b77..1379ecc Binary files a/img_src/team_shield.xcf and b/img_src/team_shield.xcf differ diff --git a/img_src/team_sinister6.xcf b/img_src/team_sinister6.xcf new file mode 100755 index 0000000..ff0df37 Binary files /dev/null and b/img_src/team_sinister6.xcf differ diff --git a/img_src/team_spiderfriends.xcf b/img_src/team_spiderfriends.xcf old mode 100644 new mode 100755 index 6bc1531..2793c9b Binary files a/img_src/team_spiderfriends.xcf and b/img_src/team_spiderfriends.xcf differ diff --git a/img_src/team_xforce.xcf b/img_src/team_xforce.xcf old mode 100644 new mode 100755 index 0586839..9dc64e7 Binary files a/img_src/team_xforce.xcf and b/img_src/team_xforce.xcf differ diff --git a/img_src/team_xmen.xcf b/img_src/team_xmen.xcf old mode 100644 new mode 100755 index 6dc7549..6cb704b Binary files a/img_src/team_xmen.xcf and b/img_src/team_xmen.xcf differ diff --git a/res/values/henchmen.xml b/res/values/henchmen.xml index 53b7800..21d50fa 100644 --- a/res/values/henchmen.xml +++ b/res/values/henchmen.xml @@ -7,4 +7,9 @@ Maggia Goons Phalanx - \ No newline at end of file + + Asgardian Warrior + Multiple Man + S.H.I.E.L.D. Assault Squad + Cops + diff --git a/res/values/schemes.xml b/res/values/schemes.xml index 3df84e2..989c999 100644 --- a/res/values/schemes.xml +++ b/res/values/schemes.xml @@ -75,5 +75,30 @@ The Clone Saga to Weave a Web of Lies - Weave a Web of Lies - \ No newline at end of file + Weave a Web of Lies + + + to Build an Underground Mega-Vault Prison + Build an Underground Mega-Vault Prison + + to Cage Villains in Power-Suppressing Cells + Cage Villains in Power-Suppressing Cells + + to Crown Thor King of Asgard + Crown Thor King of Asgard + + to Crush Hydra + Crush Hydra + + Graduation at Xavier's X-Academy + Graduation at Xavier's X-Academy + + to Infiltrate the Lair with Spies + Infiltrate the Lair with Spies + + to Mass Produce War Machine Armor + Mass Produce War Machine Armor + + to Resurect Heroes with the Norn Stones + Resurect Heroes with the Norn Stones + diff --git a/res/values/villains.xml b/res/values/villains.xml index 506b3a2..253dbb9 100644 --- a/res/values/villains.xml +++ b/res/values/villains.xml @@ -21,4 +21,12 @@ Maximum Carnage Sinister Six - \ No newline at end of file + Avengers + Uncanny Avengers + Spider-Friends + Marvel Knights + Defenders + X-Men First Class + Uncanny X-Men + + diff --git a/src/net/threedoubloons/legendaryrandomiser/data/Hero.java b/src/net/threedoubloons/legendaryrandomiser/data/Hero.java index f52d148..28dd13b 100644 --- a/src/net/threedoubloons/legendaryrandomiser/data/Hero.java +++ b/src/net/threedoubloons/legendaryrandomiser/data/Hero.java @@ -24,6 +24,10 @@ final class T { static final int SPIDER = R.drawable.team_spiderfriends; static final int XMEN = R.drawable.team_xmen; static final int XFORCE = R.drawable.team_xforce; + static final int BROTHERHOOD = R.drawable.team_brotherhood; + static final int FASGARD = R.drawable.team_foesofasgard; + static final int SIN6 = R.drawable.team_sinister6; + static final int SYNDICATE = R.drawable.team_crimesyndicate; } public enum Hero implements ICardBase { @@ -74,6 +78,22 @@ public enum Hero implements ICardBase { moonKnight(R.string.hero_moon_knight, R.drawable.hero_moon_knight, T.KNIGHTS, new int[]{C.INSTINCT, C.TECH, C.TECH, C.INSTINCT}, Sets.PaintRed), scarletSpider(R.string.hero_scarlet_spider, R.drawable.hero_scarlet_spider, T.SPIDER, new int[]{C.STRENGTH, C.INSTINCT, C.COVERT, C.STRENGTH}, Sets.PaintRed), spiderWoman(R.string.hero_spider_woman, R.drawable.hero_spider_woman, T.SPIDER, new int[]{C.STRENGTH, C.RANGED, C.RANGED, C.COVERT}, Sets.PaintRed), + + bullseye(R.string.hero_bullseye, R.drawable.hero_bullseye, T.SYNDICATE, new int[]{C.INSTINCT, C.RANGED, C.COVERT, C.RANGED}, Sets.Villains), + kingpin(R.string.hero_kingpin, R.drawable.hero_kingpin, T.SYNDICATE, new int[]{C.STRENGTH, C.COVERT, C.TECH, C.STRENGTH}, Sets.Villains), + ultron(R.string.hero_ultron, R.drawable.hero_ultron, T.NONE, new int[]{C.TECH, C.TECH, C.TECH, C.TECH}, Sets.Villains), + loki(R.string.hero_loki, R.drawable.hero_loki, T.FASGARD, new int[]{C.COVERT, C.RANGED, C.COVERT, C.COVERT}, Sets.Villains), + enchantress(R.string.hero_enchantress, R.drawable.hero_enchantress, T.FASGARD, new int[]{C.RANGED, C.COVERT, C.COVERT, C.COVERT}, Sets.Villains), + sabretooth(R.string.hero_sabretooth, R.drawable.hero_sabretooth, T.BROTHERHOOD, new int[]{C.INSTINCT, C.INSTINCT, C.COVERT, C.STRENGTH}, Sets.Villains), + mystique(R.string.hero_mystique, R.drawable.hero_mystique, T.BROTHERHOOD, new int[]{C.COVERT, C.TECH, C.INSTINCT, C.COVERT}, Sets.Villains), + magneto(R.string.hero_magneto, R.drawable.hero_magneto, T.BROTHERHOOD, new int[]{C.RANGED, C.STRENGTH, C.RANGED, C.RANGED}, Sets.Villains), + juggernaut(R.string.hero_juggernaut, R.drawable.hero_juggernaut, T.BROTHERHOOD, new int[]{C.STRENGTH, C.STRENGTH, C.STRENGTH, C.STRENGTH}, Sets.Villains), + venom(R.string.hero_venom, R.drawable.hero_venom, T.SIN6, new int[]{C.STRENGTH, C.INSTINCT, C.STRENGTH, C.INSTINCT}, Sets.Villains), + mysterio(R.string.hero_mysterio, R.drawable.hero_mysterio, T.SIN6, new int[]{C.COVERT, C.RANGED, C.TECH, C.INSTINCT}, Sets.Villains), + kraven(R.string.hero_kraven, R.drawable.hero_kraven, T.SIN6, new int[]{C.INSTINCT, C.COVERT, C.STRENGTH, C.INSTINCT}, Sets.Villains), + greenGoblin(R.string.hero_green_goblin, R.drawable.hero_green_goblin, T.SIN6, new int[]{C.TECH, C.TECH, C.INSTINCT, C.TECH}, Sets.Villains), + drOctopus(R.string.hero_drOctopus, R.drawable.hero_drOctopus, T.FSIN6, new int[]{C.TECH, C.TECH, C.STRENGTH, C.TECH}, Sets.Villains), + electro(R.string.hero_electro, R.drawable.hero_electro, T.SIN6, new int[]{C.RANGED, C.RANGED, C.RANGED, C.RANGED}, Sets.Villains), ; private final CardBase card; diff --git a/src/net/threedoubloons/legendaryrandomiser/data/Mastermind.java b/src/net/threedoubloons/legendaryrandomiser/data/Mastermind.java index 000e94e..805883e 100644 --- a/src/net/threedoubloons/legendaryrandomiser/data/Mastermind.java +++ b/src/net/threedoubloons/legendaryrandomiser/data/Mastermind.java @@ -28,6 +28,12 @@ public enum Mastermind implements ICardBase { // Paint the Town Red carnage(R.string.mm_carnage, R.drawable.mm_carnage, Villain.maxCarnage, Sets.PaintRed), mysterio(R.string.mm_mysterio, R.drawable.mm_mysterio, Villain.sinisterSix, Sets.PaintRed), + + // Villains + drStrange(R.string.mm_dr_strange, R.drawable.mm_dr_strange, Villain.defenders, Sets.Villains), + nickFury(R.string.mm_nick_fury, R.drawable.mm_nick_fury, Villain.avengers, Sets.Villains), + odin(R.string.mm_odin, R.drawable.mm_odin, Villain.asgardianWarriors, Sets.Villains), + professorX(R.string.mm_professor_x, R.drawable.mm_professor_x, Villain.xmenFirstClass, Sets.Villains), ; private final Villain alwaysLeads; private final CardBase card; @@ -72,4 +78,4 @@ public static void initialiseAllList(EnumSet activeSets) { public final static List getAll() { return all; } -} \ No newline at end of file +} diff --git a/src/net/threedoubloons/legendaryrandomiser/data/Scheme.java b/src/net/threedoubloons/legendaryrandomiser/data/Scheme.java index de447b6..6671621 100644 --- a/src/net/threedoubloons/legendaryrandomiser/data/Scheme.java +++ b/src/net/threedoubloons/legendaryrandomiser/data/Scheme.java @@ -41,6 +41,16 @@ public enum Scheme implements ICardBase { spliceDNA(R.string.sc_splice_dna, R.string.sc_splice_dna_short, Sets.PaintRed), cloneSaga(R.string.sc_clone_saga, R.string.sc_clone_saga_short, Sets.PaintRed), weaveLies(R.string.sc_weave_lies, R.string.sc_weave_lies_short, Sets.PaintRed), + + // Villains + resurectHeroes(R.string.sc_resurect_heroes, R.string.sc_resurect_heroes_short, Sets.Villains), + megaVault(R.string.sc_build_megavault, R.string.sc_build_megavault_short, Sets.Villains), + cageVillains(R.string.sc_cage_villains, R.string.sc_cage_villains_short, Sets.Villains), + crownThor(R.string.sc_crown_thor, R.string.sc_crown_thor_short, Sets.Villains), + crushHydra(R.string.sc_crush_hydra, R.string.sc_crush_hydra_short, Sets.Villains), + graduation(R.string.sc_graduation_academy, R.string.sc_graduation_academy_short, Sets.Villains), + infiltrateLair(R.string.sc_infiltrate_lair, R.string.sc_infiltrate_lair_short, Sets.Villains), + massArmor(R.string.sc_mass_produce_armor, R.string.sc_mass_produce_armor_short, Sets.Villains), ; private final CardBase card; private final int longName; @@ -252,5 +262,47 @@ public void apply(GameDetails details) { public void apply(GameDetails details) { details.setVillainDeckContentsForCardType(CardType.schemeTwist, 7); }}); + schemeActions.put("massArmor", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + if (!details.addPreferredHenchman(Villain.assaultSquad)) { + details.addError("Scheme requires the S.H.I.E.L.D. Assault Squad backup adversary group"); + } + }}); + schemeActions.put("resurectHeroes", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + }}); + schemeActions.put("megaVault", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + if (details.getNumPlayers() < 5) { + details.addNote(String.format("Use only %d Bindings cards", details.getNumPlayers() * 5)); + } + }}); + schemeActions.put("cageVillains", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + details.addNote(String.format("Place %d Cops cards next to the plot", details.getNumPlayers() * 2)); + }}); + schemeActions.put("crownThor", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + details.addNote("Place the Thor adversary next to the plot"); + }}); + schemeActions.put("crushHydra", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + }}); + schemeActions.put("graduation", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + details.addNote("Place 8 Bystanders next to the plot"); + }}); + schemeActions.put("infiltrateLair", new SchemeAction() { + public void apply(GameDetails details) { + details.setVillainDeckContentsForCardType(CardType.schemeTwist, 8); + details.addNote("Place 21 Bystanders next to the plot"); + }}); } } diff --git a/src/net/threedoubloons/legendaryrandomiser/data/Sets.java b/src/net/threedoubloons/legendaryrandomiser/data/Sets.java index e053520..8bd573d 100644 --- a/src/net/threedoubloons/legendaryrandomiser/data/Sets.java +++ b/src/net/threedoubloons/legendaryrandomiser/data/Sets.java @@ -9,6 +9,7 @@ public enum Sets { DarkCity(R.drawable.exp_darkcity, R.string.set_darkcity), FantasticFour(R.drawable.exp_ffour, R.string.set_ffour), PaintRed(R.drawable.exp_paint_red, R.string.set_paint_red), + Villains(R.drawable.exp_villains, R.string.set_villains), ; private final int symbol; diff --git a/src/net/threedoubloons/legendaryrandomiser/data/Villain.java b/src/net/threedoubloons/legendaryrandomiser/data/Villain.java index 113532c..0ae0d2e 100644 --- a/src/net/threedoubloons/legendaryrandomiser/data/Villain.java +++ b/src/net/threedoubloons/legendaryrandomiser/data/Villain.java @@ -32,6 +32,15 @@ public enum Villain implements ICardBase { // Paint the Town Red maxCarnage(R.string.vil_max_carnage, R.drawable.vil_max_carnage, false, Sets.PaintRed), sinisterSix(R.string.vil_sinister_six, R.drawable.vil_sinister_six, false, Sets.PaintRed), + + // Villains + avengers(R.string.vil_avengers, R.drawable.vil_avengers, false, Sets.Villains), + defenders(R.string.vil_defenders, R.drawable.vil_defenders, false, Sets.Villains), + marvelKnights(R.string.vil_marvelKnights, R.drawable.vil_marvelKnights, false, Sets.Villains), + spiderFriends(R.string.vil_spider_friends, R.drawable.vil_spider_friends, false, Sets.DarkCity), + uncannyAvengers(R.string.vil_uncanny_avengers, R.drawable.vil_uncanny_avengers, false, Sets.Villains), + uncannyXmen(R.string.vil_uncanny_xmen, R.drawable.vil_uncanny_xmen, false, Sets.Villains), + xmenFirstClass(R.string.vil_xmen1Class, R.drawable.vil_xmen1Class, false, Sets.Villains), handNinja(R.string.hen_hand_ninja, R.drawable.hen_hand_ninja, true), @@ -42,6 +51,12 @@ public enum Villain implements ICardBase { //Dark city maggiaGoons(R.string.hen_goons, R.drawable.hen_goons, true, Sets.DarkCity), phalanx(R.string.hen_phalanx, R.drawable.hen_phalanx, true, Sets.DarkCity), + + //Villains + asgardianWarrior(R.string.hen_asgardian_warrior, R.drawable.hen_asgardian_warrior, true, Sets.Villains), + cops(R.string.hen_cops, R.drawable.hen_cops, true, Sets.Villains), + multipleMan(R.string.hen_multiple_man, R.drawable.hen_multiple_man, true, Sets.Villains), + assaultSquad(R.string.hen_assault_squad, R.drawable.hen_assault_squad, true, Sets.Villains), ; private CardBase card;