!==========================================================
Constant Story "Brrr !";
Constant Headline
 	"^Jeu de Wakaboodah^Participant à French MiniComp2007^Taper avec gourdin sur ~aide~ pour aide^";
Release 1; Serial "070709";

Replace ScoreSub;

Include "Parser";
Include "VerbLib";


[ w8 notNeeded;
  @read_char 1 notNeeded;
  rtrue;
];

global k;

!==========================================================
! Objets et lieux

Class lieu
	with	u_to "Je pas pouvoir voler comme oiseau.",
		d_to "Je pas être taupe.",
		cant_go "Je pas vouloir trop éloigner je de reste tribu.",
		description [; print "Je marcher dans grande plaine. "; desc();
		],
has ;

lieu p01 "Dans plaine"
	with	s_to p11,
		e_to p02;

lieu p02 "Dans plaine"
	with	s_to p12,
		w_to p01,
		e_to p03;

lieu p03 "Dans plaine"
	with	s_to p13,
		w_to p02,
		e_to p04;

lieu p04 "Dans plaine"
	with	s_to p14,
		w_to p03;

lieu p11 "Caverne"
	with	description "Je être devant grande caverne. Vent être moins fort ici, à cause de bords de caverne. Ca être bon abri pour tribu !",
		n_to [; if (batonfeu in player) {remove batonfeu; move baton to player; print "Je m'éloigner de caverne, et vent éteindre bâton enflammé.";} return p01;],
		s_to [; if (batonfeu in player) {remove batonfeu; move baton to player; print "Je m'éloigner de caverne, et vent éteindre bâton enflammé.";} return p21;],
		e_to [; if (batonfeu in player) {remove batonfeu; move baton to player; print "Je m'éloigner de caverne, et vent éteindre bâton enflammé.";} return p12;],
		in_to [; if (batonfeu in player) {if (silex notin player) {move silex to intcaverne;} battle(); rtrue;} else {print "Je rentrer dans la caverne. Je sentir une odeur forte, bizarre, d'animal. Je pas être très rassurée...^^Je avancer peu à peu, et je cogner contre quelque chose. Quelque chose de poilu. Je toucher : ça griffer."; w8(); print "^^Ca être patte d'ours. Oups."; w8(); print "^^Je vouloir m'enfuir, mais ours m'attraper et me mettre un coup de griffe. Je tomber, et ours me manger..."; w8(); deadflag=1; rtrue;}];

lieu p12 "Dans plaine"
	with	n_to p02,
		s_to p22,
		w_to p11,
		e_to p13;

lieu p13 "Dans plaine"
	with	n_to p03,
		s_to p23,
		w_to p12,
		e_to p14;

lieu p14 "Dans plaine"
	with	n_to p04,
		s_to p24,
		w_to p13;

lieu p21 "Dans plaine"
	with	n_to p11,
		s_to p31,
		e_to p22;

lieu p22 "Dans plaine"
	with	n_to p12,
		s_to p32,
		w_to p21,
		e_to p23;

lieu p23 "Rassemblement tribu"
	with 	viewed 0,
		initial [; if (self.viewed == 0)	{ self.viewed = 1 ; print_ret "^^Je être parmi autres de tribu ; je, comme autres, être toute nue, et avoir très froid à cause de vent. Je devoir faire quelque chose. Certains hommes chasser maintenant, mais je décider de pas les attendre pour trouver moyen de réchauffer tribu.";}],
		description "Ici être lieu où tribu se rassembler. Tout le monde nu, et avoir froid, parce que nous pas avoir beaucoup poils ou fourrure... Vent refroidir tout le monde, et ça pas être bon.",
		n_to p13,
		s_to p33,
		w_to p22,
		e_to p24;

lieu p24 "Dans plaine"
	with	n_to p14,
		s_to p34,
		w_to p23;

lieu p31 "Dans plaine"
	with	n_to p21,
		e_to p32;

lieu p32 "Dans plaine"
	with	n_to p22,
		w_to p31,
		e_to p33;

lieu p33 "Dans plaine"
	with	n_to p23,
		w_to p32,
		e_to p34;

lieu p34 "Dans plaine"
	with	n_to p24,
		w_to p33;

Object intcaverne "Dans caverne"
	with initial "^^Toute tribu s'entasser dans caverne, et être protégée du vent. Tribu être contente, et certains féliciter je pour découverte caverne, et guerriers pour mort de ours. Quelqu'un allumer grand feu, et tout le monde se réchauffer enfin à l'abri du vent.^^Chef prendre parole :^^~Ca être assez ! Nous être tout nus, toujours avoir froid si pleuvoir ou faire vent ! Nous devoir trouver solution pour protéger nous du temps et pouvoir aller dehors tout le temps !~^^Chef avoir raison : nous devoir trouver comment protéger de vent et pluie une fois pour toutes !",
	description "Tribu être dans grande caverne : quelqu'un avoir fait feu pour réchauffer. Autres réfléchir et se gratter la tête pour trouver comment protéger nous contre vent et pluie.",
	u_to "Je pas pouvoir voler comme oiseau.",
	d_to "Je pas être taupe.",
	cant_go "~Non ! Toi pas sortir, tribu rester ensemble pour trouver solution !~ dire chef de tribu.",
has ;

Object ours "ours" intcaverne
	with description "Ca être gros ours mort, tué par chasseurs de tribu de je. Ours être gros, épais, et avoir grosse fourrure.",
	name 'ours' 'bete' 'poilu' 'mort' 'corps' 'cadavre' 'grand' 'gros',
	before [; Tell, Ask : "Lui mort, pas pouvoir répondre à je.";
		Take, Push, Pull : "Ours être trop lourd pour ça.";
		Eat: "Ours avoir beaucoup viande, mais ça pas être ce que chef demander.";
		boucher: if (silex in player) {if (second) {if (second~=silex) {"Je pas pouvoir faire ça.";}} fin(); rtrue;}
		],
has static proper transparent ;

Object peau "peau de ours" intcaverne
	with description "Peau de ours être très douce et très poilue.",
	name 'peau' 'fourrure' 'ours',
	before [; Take: fin(); rtrue;
		Push, Pull : "Je tirer et pousser peau dans tous les sens, mais peau être trop bien collée à ours.";
	],
has scenery proper ;

Object feu "feu" intcaverne
	with description "Quelqu'un allumer feu, et tribu avoir moins froid.",
	name 'feu' 'grand',
	before [; Take, Push, Pull: "Ca être trop chaud, je pas vouloir brûler je.";],
has static proper ;

Object baton "bâton" p32
	with description "Ca être long bâton en bois. Je savoir que ça prendre feu facilement, et que je pouvoir tenir bâton par autre bout pour que bâton faire lumière.",
	name 'baton' 'bois',
	before[; Switchon: fire(); rtrue;
	],
has proper ;

Object batonfeu "bâton enflammé"
	with description "Ca être long bâton en bois avec feu au bout. Ca faire lumière. Mais je devoir éviter vent si je vouloir garder feu sur bâton.",
	name 'baton' 'enflammé',
has proper ;

Object silex "quelques silex" p24,
	with description [; if (player in intcaverne) {"Ca être plusieurs silex, gros et avec bords taillés très coupants.";} else {"Ca être plusieurs silex taillés. Si je frotter plusieurs silex et bâton, je pouvoir faire feu, normalement. Mais trop de vent empêcher faire du feu. Si je pouvoir arriver à protéger je du vent...";}],
	name 'silex' 'pierre' 'caillou',
has proper pluralname ;

Object arbres "arbres"
	with description "Ca être grands arbres, mais vent être plus fort que arbres : arbres pencher à cause de vent.",
	name 'arbre' 'arbres' 'penches',
	found_in p02 p03 p04 p13 p14 p24 p21 p31 p32,
	before [; Take: "Je essayer de tirer arbre de sol, mais je pas arriver : arbre être trop bien accroché.";
	],
has proper static pluralname ;

Object fruit1 "buisson de fruits rouges"
	with description "Ca être fruits que je pouvoir manger.",
	name 'fruit' 'fruits' 'buisson' 'rouge' 'rouges',
	found_in p01 p03 p04 p11 p12 p14 p22 p23 p32 p34,
	before [; Eat, Take: "Je prendre un fruit, et je manger fruit. Pas mauvais.";
	],
has proper ;

Object fruit2 "buisson de fruits verts"
	with description "Ca être fruits mauvais pour je.",
	name 'fruit' 'fruits' 'buisson' 'vert' 'verts',
	found_in p02 p04 p12 p13 p21 p22 p24 p31 p34 p33,
	before [; Eat, Take: print "Je prendre fruits et manger fruits. Beuh. Eux pas avoir bon goût. Je cracher fruits, mais être trop tard. Je me sentir pas bien ; je me coucher. Fruits verts mauvais pour moi..."; w8(); deadflag=1; rtrue;
	],
has proper ;

Object entree "entrée de caverne" p11
	with description "Entrée de caverne être grande. Bords de caverne protéger vent. Caverne être bon abri pour tribu. Mais caverne être toute noire : je pas pouvoir voir ce que être dedans. Peut-être y avoir bête dedans...",
	name 'entree' 'caverne' 'trou',
	before [; Enter: if (batonfeu in player) {if (silex notin player) {move silex to intcaverne;} battle(); rtrue;} else {print "Je rentrer dans la caverne. Je sentir une odeur forte, bizarre, d'animal. Je pas être très rassurée...^^Je avancer peu à peu, et je cogner contre quelque chose. Quelque chose de poilu. Je toucher : ça griffer."; w8(); print "^^Ca être patte d'ours. Oups."; w8(); print "^^Je vouloir m'enfuir, mais ours m'attraper et me mettre un coup de griffe. Je tomber, et ours me manger..."; w8(); deadflag=1; rtrue;}],
has proper static ;

Object tribu "tribu" p23
	with description [; if (player in intcaverne) {"Ca être ma tribu, toujours tous nus. Tribu réfléchir à comment protéger nous de froid une bonne fois pour toutes ; certains se gratter tête, d'autres se gratter dessous de bras.";} else {"Ca être ma tribu. Certains être à la chasse, et autres membres de tribu être ici, au campement. Tribu être toute nue, et avoir froid à cause de vent. Je devoir trouver solution pour que nous plus avoir froid.";}
	],
	name 'tribu' 'membres' 'hommes' 'femmes' 'prehistoriques' 'prehistorique' 'nus' 'nues',
	before [; Tell: "~Nous devoir trouver solution ! Toi aider nous.~";
	],
has animate proper ;

Object os "os"
	with description "Ca être os de petit animal.",
	name 'os' 'restes' 'ossement' 'ossements',
	found_in p01 p04 p12 p14 p22 p31 p34,
has proper ;

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

[ Initialise;
	give player light;
	lookmode = 2;
	player.description = "Moi être toute nue, et avoir froid. Brrr !";
	location = p23;
	intro();
];

[ intro ;
	style underline;
	print "Ce jeu vous transporte dans des temps immémoriaux, alors que l'humain n'était qu'un lointain cousin du singe... En ces temps reculés et ô combien anciens, l'homme n'était qu'un animal bipède, se mouvant dans le plus simple appareil, utilisant silex et sagaies pour pourvoir à sa subsistance...^^Ce divertissement interactif vous propose de vous transporter dans la peau d'une femelle humaine en ces temps-là... La tribu nomade à laquelle elle appartient se déplace parmi les plaines d'Europe, alors qu'un vent glacial glace les os et les épidermes à la pilosité primitive... Et ce vent fort empêche un feu salvateur de réchauffer les pauvres hommes ! Les organismes sont nus, et point d'abri pour cette tribu : les conditions naturelles menacent la survie de la tribu ! Cette femelle doit sauver sa tribu d'une hypothermie certaine en leur trouvant un moyen pour se prémunir des rigueurs du froid...^^";
	w8();
	print "Je vous souhaite une bonne fortu...^                                              *tomp*^";
	w8();
	style roman;
	print "Gouh ?^^";
];

[ aideSub ;
	style bold;
	print "^Brrr !";
	style roman;
	print_ret "^Wakaboodah écrire jeu. Jeu participer à French MiniComp 2007. Je espérer gagner, sinon tribu de je poursuivre vous pour vous lancer sagaies piquantes !^Vous écrire verbes à infinitif pour que je comprendre ce que vous vouloir que je faire. Vous compris ?^Vous dépêcher trouver moyen pour que je plus avoir froid, d'accord ?^";
];

[ boucherSub ;
	print_ret "Je pas pouvoir faire ça.";
];

[ frottSub ;

if (noun==silex || noun==baton)
{
if (noun==silex)
	{
		if (second) 	{
					if (second==baton || second==silex) 	{fire();}
					else {"Je pas pouvoir faire ça.";}
				}
		else 	{fire();}
	}

if (noun==baton)
	{
		if (second) 	{
					if (second==silex) 	{fire();}
					else {"Je pas pouvoir faire ça.";}
				}
		else 	{"Je pas pouvoir faire ça.";}
	}
}
else {"Je pas pouvoir faire ça.";}
];

[ ScoreSub;
  if (deadflag == 0)
    "Je pas savoir ce que score être.";
];

[ desc ;
	k = random(11);
	switch(k) {
		1: "Vent être très froid, moi grelotter.";
		2: "Vent faire bruit autour moi.";
		3: "Arbres pencher à cause de vent.";
		4: "Cheveux de je voler derrière a cause de vent.";
		5: "Je regarder ciel, mais je pas pouvoir voir vent.";
		6: "Je être toute nue, et je avoir froid.";
		7: "Brr ! Vent glacer tout moi.";
		8: "Je avancer doucement à cause de vent.";
	}
	"";
];

[ fireSub ;
	fire();
];

[ fire ;
if (baton in player && silex in player){
	if (player in p11) {move silex to p11; remove baton; move batonfeu to player; print_ret "Je me mettre dans entrée de caverne, car bords de caverne protéger je de vent et je pouvoir faire du feu. Je poser silex par terre, et je frotter baton avec silex pour faire du feu. Je essayer, beaucoup... Bâton finir par s'allumer !";} else {"Je pas pouvoir faire feu ici : trop de vent empêcher faire feu. Je avoir besoin d'un abri.";}
}
else {"Je pas pouvoir faire feu : je rien avoir pour allumer feu.";}
];

[ battle ;
	print "Je entrer dans caverne avec bâton enflammé. Bâton faire lumière autour de je : comme ça, je pouvoir voir ce que être dans la caverne.";
	w8();
	print "^^Ca être ours, en l'occurence.";
	w8();
	print "^^Je avoir peur, mais ours dormir et pas remarquer ma présence. Je sortir doucement de caverne, et appeler reste de tribu.";
	w8();
	print "^^Hommes être là, et eux pas rapporter beaucoup de chasse... Je prévenir toute la tribu, et tous suivre je. Nous arriver devant la caverne, et hommes prendre sagaies. Eux entrer dans caverne, et nous dehors entendre bruits de bataille...";
	w8();
	print "^^Gâh !";
	w8();
	print "^^*Tchak !*";
	w8();
	print "^^Yaarg !";
	w8();
	print "^^Gouh ?";
	w8();
	print "^^Aaah !";
	w8();
	print "^^*Pouf Pouf*";
	w8();
	print "^^Grawol !";
	w8();
	print "^^*Tchik ! Tchak ! Tchouf ! Tchok !*";
	w8();
	print "^^*Pouf Pouf Pouf Pouf !*";
	w8();
	print "^^Raaaaarh !";
	w8();
	print "^^Puis nous entendre guerriers crier. Eux sortir de grotte, avec sourire sur lèvres et sang sur torse. Eux tuer ours !";
	w8();
	print "^^Tout le monde entrer dans caverne pour mettre à l'abri du vent et réchauffer nous.";
	w8();
	move tribu to intcaverne;
	PlayerTo(intcaverne);
];

[ fin ;
	print "Idée venir à je en regardant ours : si ours pas avoir froid, c'est parce que eux avoir fourrure ! Donc si tribu porter fourrure de ours, tribu plus avoir froid !";
	w8();
	print "^^Je prendre silex et mettre à genoux près de ours. Je planter silex dans ours, et faire entaille. Autres regarder ce que je faire. Chef penser que je prendre viande ours :^^~Tu avoir raison, ours fournir viande à manger ; mais comment faire pour problème du froid, alors ?~";
	w8();
	print "^^Je continuer à dépecer ours et à enlever fourrure. Mais au lieu de prendre viande de ours, je prendre peau. Autres pas comprendre je : ^^~Que faire tu ??~ me dire.";
	w8();
	print "^^Je prendre morceau de peau de ours et je le mettre autour de fesses et sexe de je. Puis je prendre autre morceau de peau, et le mettre sur ma poitrine pour que morceau retienne mamelles et réchauffe poitrine de je. Ca suffire pour le moment.";
	w8();
	print "^^Autres me regarder, et certains ne pas comprendre. Mais Chef comprendre :^^~Toi avoir trouvé solution ! Pour que nous pas avoir froid, nous mettre fourrure d'animal autour de corps !~^^Autres réfléchir, puis comprendre, et tous crier de joie.";
	w8();
	print "^^Un mâle de tribu s'approcher de moi, et me regarder d'un air bizarre. Puis lui me dire :^^~Toi belle... Toi ressembler à Raquel Welch !~";
	w8();
	deadflag=2;
];

!==========================================================
! Grammaire

Include "FrenchGPre";

Verb 'aide'
*			-> aide;

Extend 'frotter' replace
* noun			-> frott
* noun 'sur' noun	-> frott
* noun 'avec' noun	-> frott;

Verb 'depecer' 'depiauter' 'scalper'
* noun			->boucher
* noun 'avec' noun	->boucher;

Extend 'faire'
* 'feu'			->fire;