Skip to content

Commit

Permalink
rc 11
Browse files Browse the repository at this point in the history
  • Loading branch information
Colin Noga authored and Colin Noga committed May 6, 2022
1 parent 0a54721 commit 88e9376
Show file tree
Hide file tree
Showing 23 changed files with 1,647 additions and 72 deletions.
2 changes: 1 addition & 1 deletion dependency-reduced-pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<groupId>chronoMods</groupId>
<artifactId>TogetherManager</artifactId>
<name>Spire with Friends</name>
<version>3.0.11</version>
<version>3.1</version>
<description>Multiplayer comes to the Spire! Adds new Co-op and Versus modes.</description>
<build>
<finalName>Spire with Friends</finalName>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>chronoMods</groupId>
<artifactId>TogetherManager</artifactId>
<version>3.0.11</version>
<version>3.1</version>
<name>Spire with Friends</name>
<description>Multiplayer comes to the Spire! Adds new Co-op and Versus modes.</description>

Expand Down
12 changes: 6 additions & 6 deletions src/main/java/chronoMods/TogetherManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public class TogetherManager implements PostDeathSubscriber, PostInitializeSubsc
public static final String MODNAME = "Spire with Friends";
public static final String AUTHOR = "Chronometrics";
public static final String DESCRIPTION = "Enables new Coop, Versus Race, and Bingo modes via Steam or Discord Networking.";
public static final float VERSION = 3.0f;
public static final float VERSION = 3.1f;

public static int modHash;
public static boolean safeMods = true;
Expand Down Expand Up @@ -185,7 +185,7 @@ public class TogetherManager implements PostDeathSubscriber, PostInitializeSubsc
public static BingoQuickReset bingoQuickReset;

// Debug flag
public static final boolean debug = false;
public static final boolean debug = true;

public static enum mode
{
Expand Down Expand Up @@ -445,9 +445,9 @@ public void receiveEditStrings() {
case JPN:
language = "jpn";
break;
case DEU:
language = "deu";
break;
// case DEU:
// language = "deu";
// break;
default:
language = "eng";
}
Expand Down Expand Up @@ -478,12 +478,12 @@ public void receiveStartGame() {
if (TogetherManager.gameMode == TogetherManager.mode.Coop && NewMenuButtons.newGameScreen.hardToggle.isTicked()) {
(new ChainsOfFate()).instantObtain(AbstractDungeon.player, 0, false);
(new StrangeFlame()).instantObtain(AbstractDungeon.player, 1, false);
// (new Dimensioneel()).instantObtain(AbstractDungeon.player, 2, false);
} else if (TogetherManager.gameMode == TogetherManager.mode.Coop) {
(new StringOfFate()).instantObtain(AbstractDungeon.player, 0, false);
// AbstractDungeon.player.getBlight("StringOfFate").counter = 1;
// AbstractDungeon.player.getBlight("StringOfFate").increment = 1;
// (new BluntScissors()).instantObtain(AbstractDungeon.player, 1, false);
// (new MirrorTouch()).instantObtain(AbstractDungeon.player, 2, false);
}

StrangeFlame.fightingBoss = -1;
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/chronoMods/coop/CoopCutscene.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ public static void Postfix(TrueVictoryRoom d)

public boolean lastSection = false;
public boolean isDone = false;
public static boolean shouldRenderPlayers = true;

public CoopCutscene() {
super(AbstractPlayer.PlayerClass.IRONCLAD);
Expand Down Expand Up @@ -206,10 +207,11 @@ public void renderPanels(SpriteBatch sb) {

public void renderPlayerList(SpriteBatch sb) {
sb.setColor(Color.WHITE);
shouldRenderPlayers = false;

for (RemotePlayerWidget widget : TopPanelPlayerPanels.playerWidgets) {
widget.xoffset = 780f * Settings.scale;
widget.yoffset = -(60f * Settings.scale);
widget.xoffset = 780f * Settings.scale;
widget.yoffset = -(60f * Settings.scale);
widget.render(sb);
}

Expand Down
11 changes: 10 additions & 1 deletion src/main/java/chronoMods/coop/courier/CoopCourierScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,7 @@ public void initRelics() {
// Cauldron and Orrery are broken dumdums
for (AbstractRelic r : shufflePicker) {
if (r.relicId == "Orrery" || r.relicId == "Cauldron") {
TogetherManager.log("Has one: " + r.name);
shufflePicker.remove(r);
break;
}
Expand Down Expand Up @@ -501,9 +502,17 @@ public void initRelics() {

for (Iterator<AbstractRelic> i = randomizer.iterator(); i.hasNext(); ) {
AbstractRelic r = i.next();
if (r.relicId == "Orrery" || r.relicId == "Cauldron")
if (r.relicId == "Orrery" || r.relicId == "Cauldron") {
TogetherManager.log("Removing " + r.name);
i.remove();
}
}
for (AbstractRelic r : randomizer) {
if (r.relicId == "Orrery" || r.relicId == "Cauldron") {
TogetherManager.log("Still here: " + r.name);
break;
}
}

c = new CoopCourierRelic(randomizer.get(0).makeCopy(), 3, this);
this.relics.add(c);
Expand Down
16 changes: 11 additions & 5 deletions src/main/java/chronoMods/ui/deathScreen/EndScreenBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import com.evacipated.cardcrawl.modthespire.lib.*;

import chronoMods.*;
import chronoMods.coop.*;
import chronoMods.network.steam.*;
import chronoMods.network.*;
import chronoMods.ui.deathScreen.*;
Expand Down Expand Up @@ -301,6 +302,7 @@ private void resetScrolling() {
}
// End scroll functions


public void restartRun() {}

public void render(SpriteBatch sb) {
Expand Down Expand Up @@ -342,10 +344,14 @@ private void renderPlayerList(SpriteBatch sb) {
if (TogetherManager.gameMode != TogetherManager.mode.Coop)
this.scrollBar.render(sb);

for (RemotePlayerWidget widget : TopPanelPlayerPanels.playerWidgets) {
widget.xoffset = 780f * Settings.scale;
widget.yoffset = -(150f * Settings.scale + scrollY);
widget.render(sb);
}
if (CoopCutscene.shouldRenderPlayers) {
for (RemotePlayerWidget widget : TopPanelPlayerPanels.playerWidgets) {
widget.xoffset = 780f * Settings.scale;
widget.yoffset = -(150f * Settings.scale + scrollY);
widget.render(sb);
}
}

CoopCutscene.shouldRenderPlayers = true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,6 @@ public void reopen() {
super.reopen();

AbstractDungeon.dynamicBanner.appearInstantly(TEXT[30]);
returnButton.appear(Settings.WIDTH / 2f, Settings.HEIGHT * 0.15f, TEXT[33], true);
returnButton.appear(Settings.WIDTH / 2f, Settings.HEIGHT * 0.15f, TEXT[34], true);
}
}
10 changes: 8 additions & 2 deletions src/main/java/chronoMods/ui/hud/TopPanelPlayerPanels.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,17 @@ public static void Postfix(ShopScreen __instance, SpriteBatch sb) {
}
}

@SpirePatch(clz = GameOverScreen.class, method="renderStatsScreen")
public static class renderPlayerPanelsOnVictoryScreen {
public static void Prefix(GameOverScreen __instance, SpriteBatch sb) {
TopPanelPlayerPanels.renderWidgets(sb);
}
}


public static void renderWidgets(SpriteBatch sb) {
for (RemotePlayerWidget widget : TopPanelPlayerPanels.playerWidgets) {
for (RemotePlayerWidget widget : TopPanelPlayerPanels.playerWidgets)
widget.render(sb);
}

if (TogetherManager.gameMode == TogetherManager.mode.Versus && TogetherManager.players.size() > 6)
FontHelper.renderSmartText(sb, FontHelper.cardDescFont_N, RichPresencePatch.ordinal(TogetherManager.getCurrentUser().ranking+1) + " of " + TogetherManager.players.size(), 16.0F * Settings.scale, TopPanelPlayerPanels.playerWidgets.get(TopPanelPlayerPanels.playerWidgets.size()-1).y + 100.0F * Settings.scale, Color.WHITE);
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/ModTheSpire.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"modid": "chronoMods",
"name": "Spire with Friends",
"author_list": ["Chronometrics", "Rocket", "", "Contributors:", "REME", "Artemis Kearney", "", "Spire with Friends Patreon:", "Cap'n Hector", "FormalsFine", "FlannelViolin"],
"description": "Multiplayer comes to the Spire! Adds new Co-op and Versus modes.",
"version": "3.0.11",
"author_list": ["Chronometrics", "", "Contributors:", "Rocket", "REME", "Artemis Kearney", "red5h4d0w", "", "Spire with Friends Patreon:", "Cap'n Hector", "FormalsFine", "FlannelViolin", "SRabbelier", "Ron Bowes", "Corvid Occult", "Fractal", "Chris Fox", "Clay Benson", "Elaer", "", "Translators:", "LuckyLunge", "Hoki0niwa", "IrisRaphael", "Rustle", "280chan"],
"description": "Multiplayer comes to the Spire! Adds new Co-op, Versus, and Bingo modes.",
"version": "3.1",
"sts_version": "1-23-2019",
"mts_version": "3.8.3",
"dependencies": ["basemod"]
Expand Down
14 changes: 12 additions & 2 deletions src/main/resources/changelog/notes_main.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Spire with Friends - Version 3.0
Spire with Friends - Version 3.1

Major Features:

Expand All @@ -15,7 +15,11 @@ Minor Features:
- Increase Courier chance by 5%
- Hovering over the player or the left Spire elite will fade out the player tabs

Bugs Fixed:

---------------------------------------------------------------------------------------------------------------------


(3.0 rc1)

- Fixed a rare crash on co-op map drawing
- Fixed a mod compatibility issue with added Map Nodes causing crashes with other mods
Expand Down Expand Up @@ -203,6 +207,12 @@ Bugs Fixed:
- Updated Dimensioneel description to be more appealing
- Dimensioneel now gives 75% off relic prices, instead of 50%

(3.0 rc12)

- Co-op death screen should now should the correct button text
- Death Screens should no longer double-render the player list
- Dimensioneel should really never offer Orrery/Cauldron now, honest


---------------------------------------------------------------------------------------------------------------------

Expand Down
8 changes: 8 additions & 0 deletions src/main/resources/chrono/localization/deu/relics.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"NeowInfusion": { // All this is new text
"NAME": "Infusion Crystal",
"DESCRIPTIONS": [
"Infuses a card in the first three drafts. NL NL "
]
}
}
2 changes: 1 addition & 1 deletion src/main/resources/chrono/localization/eng/blights.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
" NL NL Awakened One will Hex you when they are Reborn.",
" NL NL Time Eater reduces start of turn draws by one.",
" NL NL Donu and Deca will be Intangible on alternating turns after the first.",
" NL NL DEBUG SPECIAL: PRESS 0 in the Spire Elites battle to activate. NL NL Everyone has contributed, and the Heart will be built of all your teammates fears including yourself. Your teammates will fight weakened Hearts.",
" NL NL Everyone has contributed, and the Heart will be built of all your teammates fears including yourself. Your teammates will fight weakened Hearts.",
"Bulk Up",
"Each time you play a card this turn, Champ gains Block equal to the amount of cards you've played. Every four energy spent Champ gains 1 strength."
]
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/chrono/localization/eng/ui.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"MainMenu": {
"TEXT": [
"Versus",
"Coop",
"Co-op",
"Bingo" // New Text
]
},
Expand Down Expand Up @@ -191,7 +191,7 @@
"Next Run", // New Text
"Disconnect", // New Text
"Change Character", // New Text
"The game isn't over until someone gets a Bingo! NL NL You can start a new run with a new character at any time.", // New Text
"The game isn't over until someone gets a Bingo! \r You can start a new run with a new character at any time.", // New Text
"Disconnect and leave the game. You will not be able to resume this game." // New Text
]
},
Expand Down
57 changes: 51 additions & 6 deletions src/main/resources/chrono/localization/fra/blights.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
"StringOfFate": {
"NAME": "Fil du Destin",
"DESCRIPTION": [
"Neow lie les vies de votre équipe. Quand toutes les vies de votre équipe sont utilisées votre équipe est éliminée. Les vies peuvent substituer aux clés pour le Cœur. NL NL Chaque vie perdue baisse les PV Max par 25%.",
"Neow lie les vies de votre équipe. Quand toutes les vies de votre équipe sont utilisées votre équipe est éliminée. Les vies peuvent substituer aux clés pour le Cœur. NL NL Chaque vie perdue passée la première baisse les PV Max par 20%."
"Neow lie les vies de votre équipe. Quand toutes les vies de votre équipe sont utilisées votre équipe est éliminée. Les vies peuvent substituer aux clés pour le Cœur. NL NL Chaque vie perdue réduit les PV Max par 25%.",
"Neow lie les vies de votre équipe. Quand toutes les vies de votre équipe sont utilisées votre équipe est éliminée. Les vies peuvent substituer aux clés pour le Cœur. NL NL Chaque vie perdue passée la première réduit les PV Max par 20%."
]
},
"BondsOfFate": {
Expand All @@ -22,7 +22,7 @@
"Tombstone": {
"NAME": "Tombe de %s",
"DESCRIPTION": [
"%s NL Ci-gît %s, tué par %s. NL Épuisement",
"Retenue. NL Ci-gît %s, tué par %s. NL Épuisement",
"malchance"
]
},
Expand Down Expand Up @@ -50,7 +50,8 @@
"NAME": "Toucher du Miroir",
"DESCRIPTION": [
"Votre équipe partage Points de Vie et PV Max. Augmente vos PV Max de la moitié de la moyenne combinée de l'équipe #g(",
"). NL NL Max Health increases are halved."
"). NL NL Max Health increases are halved.",
"Votre équipe partage Points de Vie et PV Max. NL NL Les augmentations de PV Max sont divisées par deux."
]
},
"PneumaticPost": {
Expand All @@ -63,13 +64,14 @@
"NAME": "Entonnoir à Fumée",
"DESCRIPTION": [
"Votre équipe partage ses Potions. Vous aurez un emplacement de potion par joueur, plus 2 emplacements pour #g",
" emplacements totaux. NL NL Vous perdrez un emplacement de potion par pénalité, incluant l'ascension, et en gagnez un par Ceinture de potions."
" emplacements totaux. NL NL Vous perdrez un emplacement de potion par pénalité, incluant l'ascension, et en gagnez un par Ceinture de potions.",
"Votre équipe partage ses Potions."
]
},
"Dimensioneel": {
"NAME": "Anguille Dimensionnelle",
"DESCRIPTION": [
"Le Coursier stocke deux reliques aléatoires qui ne proviennent pas de votre personnage.",
"Le Coursier stocke deux reliques aléatoires à envoyer à vos amis avec une remise de 75%.",
"Choisissez #b3 Reliques non-Boss. Elles vont être re-tirées en Reliques de même rareté et distribuées aux alliés avec le moins de Reliques."
]
},
Expand All @@ -94,5 +96,48 @@
"Choisissez une carte",
"Vous démarrez chaque combat avec ces cartes dans votre main: NL NL "
]
},
"ChainsOfFate": {
"NAME": "Chaînes Du Destin",
"DESCRIPTION": [
"Votre équipe combine leurs vies. Les vies peuvent substituer aux clés pour le Cœur. NL NL Chaque vie perdue réduit les PV Max de 25% et ajoute une nouvelle Tombe dans votre deck.",
"Votre équipe combine leurs vies. Les vies peuvent substituer aux clés pour le Cœur. NL NL Chaque vie perdue passé la première réduit les PV Max de 20% et ajoute une nouvelle Tombe dans votre deck."
]
},
"StrangeFlame": {
"NAME": "Flamme Étrange",
"DESCRIPTION": [
"Activé en mode Difficile. Les ennemis peuvent être améliorés comme les Élites. Le premier joueur à affronter le Boss combattra un Boss amélioré, plus difficile.",
" NL NL Le Parrain Slime a 240 PV.",
" NL NL Le Gardien gagne 3 Artéfact, 3 Tampon et 10 Épines en Mode Défensif.",
" NL NL L'Hexaplasme ajoutera 3 Brûlures au lieu de 2, et elles sont améliorées dès le début.",
" NL NL Les Orbes de l'Automate de bronze ont 98 PV et font 12 dégâts.",
" NL NL Le Champion gagne de plus en plus d'Armure quand vous jouez des cartes, ainsi que de la Force quand vous dépensez de l'Énergie.",
" NL NL Les Têtes de torche du Collectionneur donnent 4 Barrières Enflammées permanente à chaque enemi présent quand elles sont invoquées.",
" NL NL L'Éveillé lance un Maléfice quand il se Réveille.",
" NL NL Le Dévor'Heures réduit la pioche en début de tour de 1.",
" NL NL Donu et Deca sont Intangibles de manière alternative à chaque tour à partir du second tour.",
" NL NL SPÉCIAL DEBUG: APPUYEZ SUR 0 dans le combat contre les Élites de la Tour pour l'activer. NL NL Tout le monde contribue, et le Coeur se basera sur les peurs de tous vos alliés, vous inclu. Vos alliés combattront un Coeur affaibli.",
"Gonflette",
"Chaque fois que vous jouez une carte, le Champion gagne de l'Armure égale au nombre de cartes jouées ce tour. Le Champion gagne 1 de Force toutes les 4 Énergies dépensées."
]
},
"BluntScissors": {
"NAME": "Ciseaux émoussés",
"DESCRIPTION": [
"Au lieu de passer une récompense de carte, vous pouvez envoyer et fusionner une carte en une carte disponible en récompense pour vos amis. Vous pouvez passer ce choix en allant sur la carte. Toutes les cartes ne seront pas envoyées à tous les joueurs. Les cartes déjà fusionnées enverront seulement la première carte.",
"NL NL #yCartes #yDisponibles: NL",
"Envoyer",
"Retour",
"La carte choisie rejoindra les récompenses possibles de vos amis"
]
},
"TransfusionBag": {
"NAME": "Poche de Transfusion",
"DESCRIPTION": [
"À un Coursier, vous pouvez envoyer à un joueur trois Infusions d'un thème en échange d'une carte de Status que vous ne pourrez pas retirer de votre deck. Les Infusions sont des effets aditionnels gratuit pour les cartes, et les cartes affectées seront choisies par le destinataire.",
"Lien vers %s",
"Améliore les cartes de %s avec des Infusions de %s."
]
}
}
8 changes: 8 additions & 0 deletions src/main/resources/chrono/localization/fra/relics.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"NeowInfusion": {
"NAME": "Cristal d'Infusion",
"DESCRIPTIONS": [
"Infuse une carte dans les trois premières récompenses. NL NL "
]
}
}
Loading

0 comments on commit 88e9376

Please sign in to comment.