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;