Skip to content

Commit

Permalink
#48 Almost refractored
Browse files Browse the repository at this point in the history
The cutscene of Game3 is almost finished, new mireille faces expressions has been added as well as new dialogs.
A small bug has also been corrected in the abstract class of cinematic screens, image widths and heights were automatically set to the world width and height, which is incoherent since not all images are the size of the screen, thus this could have led to other problems.
  • Loading branch information
FrancoisDuchene committed Apr 13, 2020
1 parent 3d4badb commit e266ea1
Show file tree
Hide file tree
Showing 15 changed files with 158 additions and 51 deletions.
16 changes: 9 additions & 7 deletions kapotopia/android/assets/strings/strings.properties
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ dialogG1_4=Oh en parlant du loup, attention le sergent dildo s'approche, on fera
dialogG1_5=Salutation, recrues. Bienvenue dans la Jungle Infectieuse de Chilly Beachy! Ici, vous allez me montrer vos compétences pour identifier nos ennemis de toujours: les terribles IST !
dialogG1_6=Ne tournons pas autour du pot, c'est parti pour l'échauffement : un petit footing dans la jungle infectieuse. \nPrenez garde aux ist qui se baladent dans la jungle, n'en laissez aucune s'échapper!
dialogG1_7=Okay les raclures de fond de bidet, montrez-moi ce que vous avez dans le ventre !
dialogG1_rules_1=REGLES
dialogG1_rules_2=Ton but ici est d'identifier rapidement les vraies IST et de les attraper avant qu'elles ne touchent le sol.\nDéplace Mireille sur les différentes routes dans ce but. Tu seras récompensé pour chaque IST attrapée. \nAttention: toutes les créatures tombant des arbres ne sont pas des IST! Tu n'es pas habilité à les attraper, tu perdras donc une vie si tu le fais. \nAu bout de 3 vies perdues, tu recommences l'aventure.\n\nEt si tu trouves l'échauffement trop facile, tu peux toujours essayer la difficulté supérieure.
dialogG1_rules_1=Ton but ici est d'identifier rapidement les vraies IST et de les attraper avant qu'elles ne touchent le sol.\nDéplace Mireille sur les différentes routes dans ce but. Tu seras récompensé pour chaque IST attrapée. \nAttention: toutes les créatures tombant des arbres ne sont pas des IST! Tu n'es pas habilité à les attraper, tu perdras donc une vie si tu le fais. \nAu bout de 3 vies perdues, tu recommences l'aventure.\n\nEt si tu trouves l'échauffement trop facile, tu peux toujours essayer la difficulté supérieure.
intro_text=Bien joué ! Malheureusement, tu as oublié d'attraper les ists suivantes :
game2_diag0=Eh beh, ce n'était pas facile, mais j'ai réussi la première épreuve grâce à toi. Passons maintenant à la suivante, à la plage cette fois-ci!
Expand All @@ -63,13 +62,16 @@ game2_goodending1=Félicitation!
game2_goodending2=Tu as associé tous les bons
game2_goodending3=symptômes aux bonnes IST!
game3_diag1=C'est ici ma dernière épreuve? Quel lieu étrange, j'espère que je ne me suis pas perdue, entrons pour vérifier.
game3_diag2=Mais, mais... ce lieu est infesté d'IST ! Je me suis trompée d'adresse!
game3_diag3=Bonjour, je suis Thomas GODIVA. Tu es un préservatif? \nLes IST sont mes amies et nous n'aimons pas les gens dans ton genre par ici. \nTu ferais mieux de déguerpir rapidement, nous avons des épingles pour te régler ton compte!
game3_instr=Vite, tu dois fuir, sinon tu te feras percer! \nCette porte est verrouillée électroniquement. Pour la dévérouiller, fais tourner chaque case du labyrinthe pour connecter la batterie à la bonne serrure!\nChaque serrure est associée à une pratique, tapes-dessus pour l'afficher. \nAttention: Seule une serrure marche. Les serrures associées aux pratiques à risque ne fonctionneront pas!
game3_diag1=Qu'est ce que cette forêt est dense, c'est un véritable labyrinthe.
game3_diag2=Oh mais serait-ce un bâtiment que j'aperçois là-bas ?
game3_diag3=C'est ici ma dernière épreuve? Quel lieu étrange, j'espère que je ne me suis pas perdue, entrons pour vérifier.
game3_diag4=Mais, mais... ce lieu est infesté d'IST ! Je me suis trompée d'adresse!
game3_diag5=Bonjour, je suis Thomas GODIVA. Tu es un préservatif? \nLes IST sont mes amies et nous n'aimons pas les gens dans ton genre par ici. \nTu ferais mieux de déguerpir rapidement, nous avons des épingles pour te régler ton compte!
game3_instr=Vite, tu dois fuir, sinon tu te feras percer! \nCette porte est verrouillée électroniquement. Pour la dévérouiller, fais tourner chaque case du labyrinthe pour connecter la batterie à la bonne serrure!\nChaque serrure est associée à une pratique, tapes-dessus pour l'afficher. \n\nAttention: Seule une serrure marche. Les serrures associées aux pratiques à risque ne fonctionneront pas!
game3_win=Félicitation, tu as réussis à t'enfuir! Tu as donc réussis la dernière épreuve! Eh oui, tout ceci n'était qu'une mise en scène et Thomas Godiva un complice. La maison s'excuse pour la frayeur occasionnée.
game3_loose=Malheureusement tu n'as pas réussis à t'enfuir...
game3_loose=Malheureusement tu n'as pas réussi à t'enfuir...

rules_title=REGLES

q0_choix1=blanc
q0_choix2=rouge
Expand Down
4 changes: 2 additions & 2 deletions kapotopia/core/src/gdx/kapotopia/Helpers/Align.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ public static Bounds getDialogBubbleBounds() {
final float wh = GameConfig.GAME_HEIGHT;

final float width = ww * 0.9f;
final float height = wh * 0.42f;
final float height = wh * 0.45f;
final float top_pad = wh * 0.0078125f;
final float hor_pad = ww / 48;
final float hor_pad = ww * 0.0375f;
final float x = ww - width - hor_pad;
final float y = wh - height - top_pad;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.utils.viewport.FitViewport;

import java.util.Iterator;

Expand All @@ -26,8 +25,6 @@ public class FixedDialogSeqBuilder {
* imagesBigList is preferred over images which is again preferred over imagesTexturesPaths
* labelsBigList is preferred over labels
*
* @param viewport the viewport used in the game. It is used to fit the images to the viewport (it is therefore advised to use
* images that already have it's dimensions
* @param stage the stage to which the images/labels must be added
* @param imagesBigList a matrix of Images. Each row is a new SequenceElement, every Image for each row are displayed at the same time
* @param images a list of images, each image will be displayed in a new SequenceElement
Expand All @@ -36,7 +33,7 @@ public class FixedDialogSeqBuilder {
* @param labelsBigList a matrix of Labels. Each row is a new SequenceElement, every Label for each row are displayed at the same time
* @return a new FixedDialogueSequence built with these parameters
*/
public static FixedDialogueSequence buildSequence(FitViewport viewport, Stage stage,
public static FixedDialogueSequence buildSequence(Stage stage,
Image[][] imagesBigList, Image[] images,
String[] imagesTexturePaths, Label[] labels,
Label[][] labelsBigList) {
Expand Down Expand Up @@ -78,25 +75,22 @@ public static FixedDialogueSequence buildSequence(FitViewport viewport, Stage st
} else {
return null;
}
configSequence(newSeq, viewport, stage);
configSequence(newSeq, stage);
return newSeq;
}

/**
* Configure the images and labels of the given sequence to fit the given viewport and are added to the stage
* @param seq the FixedDialogueSequence to be configured
* @param viewport the viewport used which will be used to fit the images to it's WorldWidth and WorldHeight
* @param stage the stage to which the images and labels will be added
*/
private static void configSequence(FixedDialogueSequence seq, FitViewport viewport, Stage stage) {
private static void configSequence(FixedDialogueSequence seq, Stage stage) {
Iterator<DialogueElement> iterator = seq.iterator();
while (iterator.hasNext()) {
DialogueElement element = iterator.next();
// Images
Image[] imgList = element.getImageList();
for (Image img : imgList) {
img.setWidth(viewport.getWorldWidth());
img.setHeight(viewport.getWorldHeight());
img.setVisible(false);
stage.addActor(img);
}
Expand Down
6 changes: 3 additions & 3 deletions kapotopia/core/src/gdx/kapotopia/Screens/CinematicScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
import java.util.Iterator;

import gdx.kapotopia.AssetsManaging.AssetsManager;
import gdx.kapotopia.Fonts.FontHelper;
import gdx.kapotopia.Fonts.UseFont;
import gdx.kapotopia.DialogsScreen.DialogueElement;
import gdx.kapotopia.DialogsScreen.FixedDialogueSequence;
import gdx.kapotopia.Fonts.FontHelper;
import gdx.kapotopia.Fonts.UseFont;
import gdx.kapotopia.Helpers.Builders.FixedDialogSeqBuilder;
import gdx.kapotopia.Helpers.Builders.TextButtonBuilder;
import gdx.kapotopia.Helpers.StandardInputAdapter;
Expand Down Expand Up @@ -89,7 +89,7 @@ private void builder(final ScreenType nextScreen,
String finishBtnLabel, UseFont nextBtnFont, UseFont finishBtnFont,
final float timerScheduleTime, final int vibrationTime, final boolean withFinishBtn) {
// Graphics
this.sequence = FixedDialogSeqBuilder.buildSequence(game.viewport, stage, imagesBigList, images, imagesTexturePaths,
this.sequence = FixedDialogSeqBuilder.buildSequence(stage, imagesBigList, images, imagesTexturePaths,
labels, labelsBigList);

this.curImg = 0;
Expand Down
4 changes: 2 additions & 2 deletions kapotopia/core/src/gdx/kapotopia/Screens/World2.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class World2 implements Screen {
public World2(final Kapotopia game) {

this.game = game;
Image imgFond = ImageHelper.getBackground(game.viewport,"game3/Monde2Ecran1.png");
Image imgFond = ImageHelper.getBackground(game.viewport,"game3/intro/Monde2Ecran1.png");
stage = new Stage(game.viewport);

stage.addActor(imgFond);
Expand All @@ -55,7 +55,7 @@ public void run() {
game.destroyScreen(ScreenType.WORLD2);
game.changeScreen(ScreenType.MOCKUPG3);
}
},2f);
},0.1f);
}
});

Expand Down
37 changes: 23 additions & 14 deletions kapotopia/core/src/gdx/kapotopia/Screens/mockupG1.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import gdx.kapotopia.Helpers.Bounds;
import gdx.kapotopia.Helpers.Builders.ImageBuilder;
import gdx.kapotopia.Helpers.Builders.LabelBuilder;
import gdx.kapotopia.Helpers.ImageHelper;
import gdx.kapotopia.Kapotopia;
import gdx.kapotopia.Localisation;
import gdx.kapotopia.ScreenType;
Expand All @@ -34,51 +35,59 @@ public mockupG1(final Kapotopia game) {
{
new LabelBuilder(loc.getString("dialogG1_1"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_2"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_3"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_4"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_5"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_6"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_rules_1"))
new LabelBuilder(loc.getString("rules_title"))
.withStyle(UseFont.CLASSIC_BOLD_BIG_BLACK).withAlignment(Alignement.CENTER)
.withY(wh - explicativeBubbleBounds.getTopPad())
.build(),
new LabelBuilder(loc.getString("dialogG1_rules_2"))
new LabelBuilder(loc.getString("dialogG1_rules_1"))
.withStyle(font).withBounds(explicativeBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
},
{
new LabelBuilder(loc.getString("dialogG1_7"))
.withStyle(font).withBounds(dialogBubbleBounds)
.isWrapped(true).build()
.isWrapped(true)
.build()
}
};
final Image jungle = new ImageBuilder().withTexture("World1/Game1/Jungle.png").build();
final Image sky = new ImageBuilder().withTexture("World1/Game1/Ciel.png").build();
final Image leaves = new ImageBuilder().withTexture("World1/Game1/Feuilles.png").build();
final Image jungle = ImageHelper.getBackground(game.viewport, "World1/Game1/Jungle.png");
final Image sky = ImageHelper.getBackground(game.viewport, "World1/Game1/Ciel.png");
final Image leaves = ImageHelper.getBackground(game.viewport, "World1/Game1/Feuilles.png");

final float scalling_factor = 0.6f;

Expand All @@ -103,7 +112,7 @@ public mockupG1(final Kapotopia game) {
dildo2.setPosition(ww / 3, 0);

final Image croquis = new ImageBuilder().withTexture("World1/Game1/Croquis.png").build();
croquis.setScale(scalling_factor / 2.5f);
//croquis.setScale(scalling_factor / 1.5f);
croquis.setY(explicativeBubbleBounds.getTopPad() / 4);
Gdx.app.log(TAG, "ww / 2 :" + (ww / 2) + " | croquis.getWidth() / 2 : " + ((croquis.getWidth() / 3) / 2));
croquis.setX((ww / 2) + (croquis.getWidth() / 2));
Expand Down
12 changes: 11 additions & 1 deletion kapotopia/core/src/gdx/kapotopia/Screens/mockupG2.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.ui.Label;

import gdx.kapotopia.AssetsManaging.AssetsManager;
import gdx.kapotopia.Fonts.UseFont;
import gdx.kapotopia.GameConfig;
import gdx.kapotopia.Helpers.Builders.ImageBuilder;
import gdx.kapotopia.Helpers.Builders.LabelBuilder;
import gdx.kapotopia.Helpers.ImageHelper;
import gdx.kapotopia.Kapotopia;
import gdx.kapotopia.Localisation;
import gdx.kapotopia.ScreenType;
Expand Down Expand Up @@ -37,8 +41,14 @@ public mockupG2(final Kapotopia game) {
.isWrapped(true)
.build(),
};
final Image back1 = ImageHelper.getBackground(game.viewport, "World1/Game2/20_board_0.png");
final Image back2 = ImageHelper.getBackground(game.viewport, "World1/Game2/20_board_1.png");
final Image[] images = {
back1,
back2
};
this.applyBundle(new ParameterBundleBuilder(ScreenType.GAME2)
.withTextures(new String[]{"World1/Game2/20_board_0.png", "World1/Game2/20_board_1.png"})
.withImages(images)
.withNextBtnStyle(UseFont.CLASSIC_SANS_NORMAL_BLACK)
.withTimerScheduleTime(0)
.withLabels(labels)
Expand Down
Loading

0 comments on commit e266ea1

Please sign in to comment.