!==========================================================
Constant Story "Tipelau";

! Le tiret cadratin
Zcharacter table + '@{2014}';
! Le caractère "numéro"
Zcharacter table + '@{BA}';

Constant Headline
 	"^Une aventure dans le Pacifique, par Hugo Labrande.^Tapez AIDE pour accéder à l'aide du jeu.^";
Release 1;

Replace OffersLight;
Replace ScoreSub;
Replace DrawStatusLine;

Include "vorple.h";
Include "Parser";


[ DrawStatusLine width posa posb;
    if (isVorpleSupported()) { ! Don't bother
    	return;
    } else {
	    ! If there is no player location, we shouldn't try to draw status window
	    if (location == nothing || parent(player) == nothing)
		return;

	    StatusLineHeight(gg_statuswin_size);
	    MoveCursor(1, 1);

	    width = ScreenWidth();
	    !posa = width-26; posb = width-13;
	    posa = width-26-6; posb = width-13;
	    spaces width;

	    MoveCursor(1, 2);
	    if (location == thedark) {
		print (name) location;
	    }
	    else {
		FindVisibilityLevels();
		if (visibility_ceiling == location)
		    print (name) location;
		else
		    print (The) visibility_ceiling;
	    }

	    if (sys_statusline_flag && width > 53) {
		MoveCursor(1, posa);
		print (string) TIME__TX;
		LanguageTimeOfDay(sline1, sline2);
	    }
	    else {
		if (width > 66) {
		    MoveCursor(1, posa);
		    print "Réduction : ";
		    Pourcentage();
		    print "%";
		    MoveCursor(1, posb);
		    print (string) MOVES__TX, sline2;
		}
		#Ifndef NO_SCORE;
		if (width > 53 && width <= 66) {
		    MoveCursor(1, posb);
		    print sline1, "%/", sline2;
		}
		#Endif;
	    }

	    MainWindow(); ! set_window
	}
];

Include "Verblib";
Include "vorple-hyperlinks.h";
Include "vorple-multimedia.h";
Include "vorple-notifications.h";

Include "DMenus";
Include "PhraseNames";


[ OffersLight obj;
  if (obj == nothing)
    rfalse;
  else
    rtrue;
];



!==============================
! Hyperlinks and tooltips

Array macommande buffer 100;
[ ClicGauche txt;
	@output_stream 3 macommande;
	print "examiner ";
	print (PrintStringOrArray) txt;
	@output_stream -3;
	VorpleLinkCommandText(macommande, txt);
];
[ ClicDirection txt ;
	@output_stream 3 macommande;
	print "";
	print (PrintStringOrArray) txt;
	@output_stream -3;
	VorpleLinkCommandText(macommande, txt);
];

[ Tooltip txt tip	 id ;
	! tiré de vorple-screen-effects et vorple-tooltips (pas besoin de tout inclure pour si peu)

	! generate a unique identifier
	id = UniqueIdentifier();
	! place the text
	VorpleExecuteJavaScriptCommand("vorple.parser.openTag('span','underline')");
	VorplePlaceInlineElement(id, txt);
	VorpleExecuteJavaScriptCommand("vorple.parser.closeTag()");
	! queue the command
	VorpleQueueJavaScriptCommand(BuildCommand("vorple.tooltip.enable('.", id, "',{content:{text:'", VorpleEscape(tip), "'}})"));
];




!=========================================================
! Le jeu

Include "FrenchG";	! on en a besoin pour les topics, notamment
Include "FrenchGAugmented";

Include ">tipelau-detective.inf";
Include ">tipelau-game.inf";
Include ">tipelau-persos.inf";


!==========================================================
! Routines


[ Initialise ;
	VorpleInitialise();
	lookmode = 2;	! Mode verbeux
	inventory_style = ENGLISH_BIT+RECURSE_BIT+FULLINV_BIT;	! Inventaire décrit en une phrase
	player.description = "";
	location = Maisondeschefs;
	TexteDebut(); rtrue;
];



!==========================================================
! Menu d'aide



[ licence ;
  style bold;
  print "Licence Creative Commons by-nc-nd^pour : @<< "; print (string) Story; print " @>>^par : Hugo Labrande";
  style roman;
  print "^^Paternité-Pas d'Utilisation Commerciale-Pas de Modification 2.0 France^";
  print "^";
  print "Vous êtes libres : de reproduire, distribuer et communiquer cette création au public, selon les conditions suivantes :^";
  print "^";
  print "@{2014} Paternité. Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'@oeuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'@oeuvre). ^";
  print "^";
  print "@{2014} Pas d'Utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. ^";
  print "^";
  print "@{2014} Pas de Modification. Vous n'avez pas le droit de modifier, de transformer ou d'adapter cette création. ^";
  print "^À chaque réutilisation ou distribution de cette création, vous devez faire apparaître clairement au public les conditions contractuelles de sa mise à disposition.^";
  print "^";
  print "Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits sur cette @oeuvre.^";
  print "Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs.^";
  print "^";
  print "Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...).^";
  print "^";
  VorpleLinkWebsite("http://creativecommons.org/licenses/by-nc-nd/2.0/fr/legalcode");
  
  if (isVorpleSupported()) {
  	print "^^[Ce jeu utilise aussi des images et du son sous licence Creative Commons. Tapez REMERCIEMENTS pour consulter les crédits pour l'utilisation de ces fichiers multimédia.]";
  } else {   	print "^^[La version Vorple de ce jeu utilise aussi des images et du son sous licence Creative Commons. Tapez REMERCIEMENTS pour consulter les crédits pour l'utilisation de ces fichiers multimédia.]";}
  "";
];


[ toBegin ;

if (isVorpleSupported() == 0) {
  print " Vous ne savez pas comment jouer à une fiction interactive ? Voilà une petite aide pour débuter.^^";
  
  print " Dans une fiction interactive, aussi appelée aventure textuelle, vous pouvez interagir avec le jeu en tapant des commandes au clavier. Dès que vous voyez un signe > apparaître au début d'une ligne, cela signifie que c'est à vous, et vous pouvez taper votre commande ! Ces commandes doivent être de la forme :^";
  style underline; print "       verbe à l'infinitif + nom de l'objet concerné par l'action^"; style roman;
  print " Comme si le jeu vous demandait @<< Que voulez-vous faire maintenant ? @>>. Par exemple :^       prendre clé^       ouvrir portière de la voiture^       parler à caissière^^";


  print " La plupart des actions que vous pouvez accomplir sont relativement simples : examiner, prendre, pousser, ouvrir, etc. Dans les autres jeux vidéo, vous avez un bouton pour sauter, un pour tirer, et chaque bouton est en général une action simple. Ici c'est un peu pareil : vous avez quelques actions simples à votre disposition, et vous vous en servez (en les combinant l'une après l'autre) pour avancer dans le jeu, résoudre les énigmes et accomplir vos objectifs. Voici une petite liste pour démarrer :^";
  style bold;
    print "         @{2014} Déplacements :"; style roman; print " aller au nord, à l'ouest, au sud-ouest, en bas, dedans, dehors, etc. ; s'asseoir sur ..., entrer dans ..., etc.^"; style bold;
    print "         @{2014} Objets :"; style roman; print " regarder ..., prendre ..., ouvrir ..., pousser ..., poser ..., manger ..., mettre ..., déverrouiller ...,  etc. La commande >inventaire vous montre les objets en votre possession.^"; style bold;
    print "         @{2014} Personnages :"; style roman; print " parler à ..., donner ... à ..., montrer ... à ..., etc.^"; style bold;
  print "         @{2014} Raccourcis :"; style roman; print " x ... pour examiner ou regarder un objet ; n vous permet d'aller au nord (et des raccourcis similaires sont reconnus pour les autres points cardinaux), i vous montre l'inventaire.^";
  print " Pour commencer, vous pouvez essayer d'examiner les objets mentionnés dans la description du lieu, et essayer de les manipuler, de les prendre, etc. Puis essayez de vous déplacer vers des lieux environnants, en suivant les directions indiquées dans la description.^^";

  print " Une grande attention à été portée au fait que de nombreuses combinaisons @<< verbe + nom @>> sont possibles ; des verbes plus complexes ou plus précis, ainsi que des synonymes, ont été pris en compte, le but étant que vous ne vous sentiez pas bloqué(e). Cela étant, de temps en temps, le jeu vous dira quelque chose comme @<< Je ne comprends pas @>>, ce qui indique qu'il va falloir essayer de reformuler votre commande, ou vérifier si l'objet auquel vous faites référence est bien dans le lieu où vous vous trouvez !^ Si jamais vous avez l'impression que votre commande était parfaitement cohérente et que c'est de ma faute si le jeu ne vous a pas compris, n'hésitez pas à m'envoyer un mail pour me le dire ; vous me rendrez un service, à moi et aux futurs joueurs, en indiquant une commande à laquelle je n'avais pas pensé !^^";

  print " Parfois, dans le jeu, vous aurez fini de lire le texte, mais vous ne verrez pas de > ; cela signifie simplement que le jeu a fait une pause, pour vous laisser le temps de lire, et attend juste que vous appuyiez sur une touche pour reprendre. Essayez, pour voir !"; KeyCharPrimitive(); print " Voilà ! Le jeu affiche ensuite le reste du texte, jusqu'à la prochaine pause, ou jusqu'à ce que ça soit à vous de jouer !^^"; KeyCharPrimitive();

  print " Un dernier conseil : à tout moment, vous pouvez taper @<< sauver @>> pour sauvegarder votre partie, @<< charger @>> pour charger une sauvegarde précédente, @<< annuler @>> pour annuler l'action précédente, ou @<< aide @>> pour revenir au menu d'aide !^^";
  print " Bon jeu !";
} else {	! aide Vorple plus petite
	print "Quelques verbes utiles : INVENTAIRE, PRENDRE objet, POSER objet, OUVRIR objet ; QUESTIONNER personnage SUR sujet ; ANNULER^";
	print "(abréviations : N-S-O-E pour les directions, I = inventaire, X pour examiner)";
	print "^^Tapez NOTES pour consulter les notes que votre personnage prend automatiquement.";
	print "^^Cliquez sur les liens pour vous déplacer dans une direction ou examiner un objet.^Passez la souris sur les termes soulignés pour des informations complémentaires.";
	print "^^Bon jeu !";
}
  "";
];


[ author ;
  print "Je suis Hugo Labrande, créateur de fictions interactives et membre de la communauté francophone (ifiction.free.fr), sous le pseudonyme @<< Mule Hollandaise @>>. Ceci est mon onzième jeu.^^Pour toute remarque, rapport de bug ou critique, vous pouvez me joindre à hugo_at_hlabrande.fr.";
  "";
];

[ about ;
	style bold; print (string) Story; style roman;
	print "^Un jeu par Hugo Labrande";
	print "^^Ce jeu participe à la dixième Compétition Francophone de Fictions Interactives (2016) ; il a été écrit en Inform 6.";
	print "^^L'île de Tipelau n'existe pas vraiment, de même que l'île de Tokeroa ; je me suis inspiré d'îles du Pacifique pour créer ce jeu. (Les prénoms sont polynésiens, certains détails sont tirés de la culture fidjienne, et la faune et la flore sont également un mélange.) La plupart des éléments du jeu sont véridiques ; passez votre souris sur les parties soulignées pour découvrir des informations complémentaires, qui j'espère vous intéresseront autant qu'elles m'ont intéressées pendant la conception de ce jeu. Quelques éléments diffèrent de la réalité pour simplifier certains aspects (par exemple, la cuisine se fait souvent en brûlant de la biomasse ou du kérosène en intérieur, plutôt qu'avec de l'électricité). Les remerciements mentionnent les documents utilisés pendant la conception du jeu, notamment pour les détails techniques et ceux relatifs à la vie sur une île du Pacifique.";
	if (isVorpleSupported()) {
		print "^^Vous jouez actuellement à la version Vorple, qui utilise les bibliothèques Vorple pour Inform 6 ; celles-ci sont basées sur les bibliothèques Inform 7 et l'interpréteur Vorple, tous deux écrits par Juhana Leinonen.";
	} else {
		print "^^Le jeu existe aussi dans une version qui se joue dans un navigateur, qui ajoute des fonctionnalités pour faciliter le jeu, ainsi que des images et du son. Elle utilise les bibliothèques Vorple pour Inform 6, qui se basent sur les bibliothèques Inform 7 et l'interpréteur Vorple, tous deux écrits par Juhana Leinonen. Je vous encourage à y jouer, car elle ajoute beaucoup de choses !";
	}
	if (isVorpleSupported()) { print "^^[Vous pouvez taper AUTEUR pour en apprendre plus sur l'auteur, VERSION pour la version du jeu auquel vous jouez, et REMERCIEMENTS pour les remerciements.]";}
	"";
];

[ myversion ;
	style bold; print (string) Story; style roman;
	print "^Un jeu par Hugo Labrande.";
	print "^^Vous jouez actuellement à la version 1, qui est celle écrite pour la Compétition.";
	if (isVorpleSupported()) {
		print "^^Vous jouez actuellement à la version Vorple ; celle-ci ajoute des fonctionnalités pour rendre le jeu plus facile à jouer, ainsi que des images et du son (tapez REMERCIEMENTS pour voir les crédits multimédia).";
	} else {
		print "^^Le jeu existe aussi dans une version qui se joue dans un navigateur, qui ajoute des fonctionnalités pour faciliter le jeu, ainsi que des images et du son. Elle utilise les bibliothèques Vorple pour Inform 6, qui se basent sur les bibliothèques Inform 7 et l'interpréteur Vorple, tous deux écrits par Juhana Leinonen. Je vous encourage à y jouer, car elle ajoute beaucoup de choses !";
	}
	"";
];

[ thankYou ;
	print "L'auteur remercie :";
	print "^ @{2014} Graham Nelson, créateur d'Inform 6 ;
	^ @{2014} JL Pontico, Eric Forgeot, Samuel Verschelde et les autres pour la traduction des bibliothèques I6 en français ;
	^ @{2014} Tous ceux qui continuent de faire vivre Inform 6, que ce soit pour la création de jeux ou la maintenance du programme ;
	^ @{2014} Juhana Leinonen pour Vorple ;
	^ @{2014} Andrew Schultz, pour son bêta-test, son aide précieuse et sa motivation ;
	^ @{2014} Toutes les sources consultées pour la préparation de ce jeu : Wikipédia, bien entendu, mais également les rapports de l'IRENA, remplis de données intéressantes, le rapport @<< Energies renouvelables dans les îles du Pacifique : état des lieux et projets exemplaires @>>, commandité par l'Agence France Développement à la société Airaro, une mine d'informations et de cas concrets sur les défis des énergies renouvelables dans les îles du Pacifique, ainsi que le rapport @<< An Economic Assessment of Renewable Energy Options for Rural Electrification in Pacific Island Countries @>> par Allison Woodruff, plus orienté vers le problème de fournir un accès à l'électricité en zone rurale, l'article de Hugh Walton dans la Lettre d'information sur les pêches numéro 127 (Octobre-Novembre 2008), et le livre @<< Agricultures singulières @>> d'Éric Mollard et Annie Walter pour ce qui concerne la culture du taro.^
	";
	if (isVorpleSupported() == 0) { print "^La version Vorple utilise des images et du son sous licence libre:"; }
	print "^Crédits images :
	^  @{2014} bg.jpg: Christian Haugen, CC BY 2.0 ("; VorpleLinkWebsite("https://www.flickr.com/photos/christianhaugen/3527593764/"); print ")";
	print "^^Crédits sons :
	^  @{2014} plage.mp3: haldigital97, domaine public ("; VorpleLinkWebsite("https://www.freesound.org/people/haldigital97/sounds/241824"); print ")
	^  @{2014} jungle.mp3: Greencouch, CC-BY ("; VorpleLinkWebsite("https://www.freesound.org/people/Greencouch/sounds/103563/"); print ")
	^  @{2014} village.mp3: nonzeroenfilade, CC-0 ("; VorpleLinkWebsite("https://www.freesound.org/people/nonzeroenfilade/sounds/172098/"); print ")
	";
	"";
];


Menu aidemenu "Menu"
	with topline "Sélectionnez une rubrique :";

Object -> "Débuter en fiction interactive"
	with description [; toBegin(); rtrue; ];

Object -> "À propos du jeu"
	with description [; about(); rtrue;	];

Object -> "Auteur"
	with description [; author(); rtrue; ];

Object -> "Version"
	with description [; myversion(); rtrue; ];

Object -> "Remerciements"
	with description [; thankYou(); rtrue; ];

Object -> "Licence"
	with description [; licence(); rtrue;];

Object retour "Retour" aidemenu
	with description [; return 3;];


[ AideSub ;
	if (isVorpleSupported()) {
		! Liste des commandes d'aide
		"L'aide de ce jeu a plusieurs sous-parties.^^Si vous ne savez pas comment jouer à ce jeu, tapez COMMENT JOUER.^Si vous voulez consulter les informations sur la licence du jeu, tapez LICENCE.^Vous pouvez également en apprendre plus sur le jeu (tapez ABOUT), l'auteur (AUTEUR), la version du jeu auquel vous jouez (VERSION), et consulter les remerciements (REMERCIEMENTS).^^Bon jeu!";
	} else {
		ShowMenu(aidemenu); rtrue;
	}
];

[ CommandesSub;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		!VorpleTypeOfTurn("normal");
		toBegin();
	} else {
		ShowMenu(aidemenu);
	}
];

[ AuteurSub;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		author();
	} else {
		ShowMenu(aidemenu);
	}
];

[ ThanksSub;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		VorpleTypeOfTurn("normal");
		thankYou();
	} else {
		ShowMenu(aidemenu);
	}
];

[ AboutSub;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		about();
	} else {
		ShowMenu(aidemenu);
	}
];

[ MyversionSub;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		myversion();
	} else {
		ShowMenu(aidemenu);
	}
];


[ LicenseSub ;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		print "Ce jeu est distribué sous licence Creative Commons BY-NC-ND. Vous pouvez consulter la licence complète en tapant LICENCE COMPLÈTE, ou en vous rendant sur ";
		VorpleLinkWebsite("http://creativecommons.org/licenses/by-nc-nd/2.0/fr/");
		print ".^^Ce jeu utilise aussi des images et du son sous licence Creative Commons. Tapez REMERCIEMENTS pour consulter les crédits pour l'utilisation de ces fichiers multimédia."; "";
	} else {
		ShowMenu(aidemenu);
	}
];

[ LicenseFullSub;
	if (isVorpleSupported()) { ! Vorple ne peut pas afficher les menus
		VorpleTypeOfTurn("normal");
		licence();
	} else {
		ShowMenu(aidemenu);
	}
];

Verb meta 'aide' 'sos' 'hint' 'help' 'menu'
*		->Aide;

Verb meta 'commandes'
*		->Commandes;
Verb meta 'comment'
* 'jouer'	->Commandes;
Extend 'mode'
* 'd^'/'d//'/'d^//' 'emploi'	->Commandes;

Verb meta 'auteur'
*		->Auteur;

Verb meta 'remerciements' 'credits' 'credit'
*		->Thanks;

Verb meta 'licence' 'license'
*			->License
* 'complete'/'full'	->LicenseFull;

Verb meta 'about' 'info' 'information' 'informations'
*			->About;
Verb meta 'a//p'
* 'propos' 		->About
* 'propos' 'de' 	->About
* 'propos' 'du' 'jeu' 	->About;

Extend 'version' replace
*			->myversion;