View difference between Paste ID: fbtySj90 and PXscu8SE
SHOW: | | - or go back to the newest paste.
1
        ----   _________    __     __     __      __   ----
2
        ----   \__   ___/  |  |   |  |   |  \    /  |  ----
3
        ----      |  |     |  |__ |  |   |   \  /   |  ----
4
        ----      |  |     |  ____   |   |    \/    |  ----
5
        ----      |  |     |  |   |  |   |  |\__/\  |  ----
6
        ----      |  |     |  |   |  |   |__      |_   ----
7
        ----                                           ----
8
        --------------- Tribe House Manager ---------------
9
10
--------- DEVELOPED AND MANAGED BY DEATHMATIC & ALLOUNETT -------------
11
12
fly = false
13
chamane = false
14
vampire = false
15
bootcamp = false
16
survivor = false
17
quizz = false
18
robber = false
19
20
hasVampired = false
21
hasEndVampired = false
22
23
keyWord = ""
24
25-
lang_name = "en"
25+
lang_name = "fr"
26
27
currentQuestion = nil
28
quizzTimer = 0
29
questionTime = 0
30
hasPosedQuestion = false
31
hasAnswered = false
32
hasWonQuiz = false
33
coordShamX = 1000
34
coordShamY = 1000
35
robberSham = nil
36
miceWithCheese = 0
37
38
-- Liste des cartes bootcamp pouvant être jouées (en attendant de pouvoir jouer une carte aléatoire d'une rotation)
39
bootcampMaps = {"@1427980", "@161434", "@216173", "@172621", "@500000", "@3908151", "@512887","@374995", "@306365", "@155606", "@333002", "@172547", "@3734998", "@1737914", "@2989803", "@3136410", "@438449", "@976944", "@1595965", "@1636814", "@2009003", "@3804078", "@3768117", "@3799357", "@3278138", "@3311534", "@3779861", "@3576303", "@3780618", "@2789121", "@2811229", "@3659983", "@3759157", "@597804", "@2998268", "@2132250", "@3745158", "@3338283", "@3062939", "@3137929", "@3560999", "@3182487", "@3725142", "@3012311", "@3493456", "@343456", "@208056", "@881158", "@492399", "@268915", "@505619", "@397469", "@729863", "@184648", "@156720", "@541693", "@842019", "@1303323", "@1807217", "@164916", "@174223", "@186066", "@191642", "@1014313", "@319443", "@176729", "@397478", "@1733211", "@365061", "@541223", "@306384", "@504485", "@496886", "@444589"}
40
41
-- Liste des cartes survivor pouvant être jouées (en attendant de pouvoir jouer une carte aléatoire d'une rotation)
42
survivorMaps = {"@3540608","@492283","@1026249","@1545834","@1659906","@1659906","@3295213","@3699989","@741041","@489470","@395246","@292672","@306106","@3584123","@1522692","@3107377","@2387888","@3685564","@787131","@2408376","@3670885","@3620709","@3584826","@3587860","@3549404","@481676","@3550350","@3480467"}
43
44
-- Listes des cartes quizz pouvant être jouées
45
quizzMaps = {"@4383191","@4400908","@4462955","@4463117"}
46
47
-- Liste des cartes vampire pouvant être joueés
48
vampireMaps = {"@2821033","@3808004","@1676629","@3296041"}
49
50
-- Liste des cartes robber pouvant être jouées
51
robberMaps = {"108", "109", "110", "111", "112", "113", "@4406148", "@4412311", "@4412333"}
52
53
-- Durée d'une carte bootcamp (défaut: 6min soit 360 secondes)
54
bootcampDuration = 360
55
56
-- La file d'attente de cartes
57
queue = {}
58
59
-- La maison de tribu actuelle
60
tribeHouse = nil
61
tribeHousePicked = false
62
63
tfm.exec.disableAfkDeath(false)
64
65
tfm.exec.disableAutoShaman(false)
66
tfm.exec.disableAutoNewGame(false)
67
tfm.exec.disableAutoScore(false)
68
tfm.exec.disableAllShamanSkills(false)
69
tfm.exec.disableAutoTimeLeft(false)
70
71
-- Themes
72
themes = {}
73
74
themes.classic = {
75
  background = 0x324650,
76
  bg_border = 0x6A8FA2,
77
  button = 0x3C5064,
78
  button_border = 0x3C5064,
79
  opacity = 1f
80
}
81
82
themes.dark = {
83
  background = 0x010101,
84
  bg_border = 0xFFFFFF,
85
  button = 0x202020,
86
  button_border = 0x9F9F9F,
87
  opacity = 0.7f
88
}
89
90
-- Textes
91
lang = {}
92
93
lang.fr = {
94
  aucun = "Aucun",
95
  credits = "Module par",
96
  help_1 = "<p align='center'><font color='#C2C2DA' size='35' >Aide</font></p><br /><font size='10'>  • Appuyez sur la touche <font color='#BABD2F'>[",
97
  help_2 = "]</font> pour ouvrir <font color='#DEB51B'>le gestionnaire de mini-jeux</font></font>.<br /><font size='10'>  • Appuyez sur la touche <font color='#BABD2F'>[",
98
  help_3 = "]</font> pour ouvrir <font color='#DEB51B'>les options</font></font>.<br /><font size='10'>  • Appuyez sur la touche <font color='#BABD2F'>[",
99
  help_4 = "]</font> pour ouvrir <font color='#DEB51B'>le gestionnaire de thèmes</font></font>.<br /><br />  <font size='13'>Quelle catégorie souhaiteriez-vous consulter ?</font>",
100
  gest_label = "Gestionnaire de mini-jeux",
101
  gest_main = "Veuillez séléctionner le mini-jeu désiré :",
102
  commandes_label = "Commandes",
103
  commandes = "<p align='center'><font color='C2C2DA' size='35' >Commandes</font></p><br /><J> !help :<N> Affiche l'aide<br /><J> !stop :<N> Interrompt le mini-jeu en cours<br /><J> !mort :<N> Mourir instantanément<br /><J> !respawn :<N> Réapparaître instantanément<br /><J> !ch :<N> Vous serez chamane lors de la prochaine partie<br /><J> !meep :<N> Vous serez pourvu du pouvoir de meep<br /><J> !time <R>[secondes] <N>: Modifie le temps de la partie en cours<br /><J> !color <R>[code héxadécimal] <N>: Change la couleur de votre pseudo<br /><J> !next :<N> (mini-jeu bootcamp) Change de carte<br /><J> !bc <R>[@code] <N> : (mini-jeu bootcamp) Joue une carte en bootcamp<br /><J> !np <R>[@code] <N>: Joue une carte<br /><J> !q <R>[@code] <N>: Insère une carte dans la queue<br /><J> !remove <R>[index] <N>: Supprime dans la queue la carte qui porte l'index <R>[index]<N>.<br /> Si <R>[index] <N>n'est pas renseigné, alors la dernière carte ajoutée est effacée<br /><J> !removeall <N>: Efface la queue actuelle",
104
  minijeux_label = "Mini-jeux",
105
  minijeu_label = "Mini-jeu",
106
  minijeux = "<p align='center'><font color='C2C2DA' size='35' >Mini-jeux</font></p><br /><font color='#BABD2F'> • fly :</font> Volez autant que vous le pouvez !<br /><font color='#BABD2F'> • shaman :</font> Tout le monde béneficie des pouvoirs de chamane.<br /><font color='#BABD2F'> • vampire :</font> Évitez le vampire !<br /><font color='#BABD2F'> • bootcamp :</font> Un système intelligent d'entraînement au bootcamp.<br /><font color='#BABD2F'> • survivor :</font> Évitez les boulets que vous lance la chamane !<br /><font color='#BABD2F'> • quizz :</font> Répondez aux questions plus vite que vos adversaires ! Pour répondre, écrivez : !réponse. Aucune réponse ne contient de majuscules, et les accents sont pris en compte. <br /><font color='#BABD2F'> • cheese robber :</font> <N>Rattrapez la voleuse de fromage !",
107
  temps_critique = "Plus que 10 secondes !",
108
  temps_ecoule = "Temps écoulé !",
109
  gagnant_quizz_1 = "Bravo à ",
110
  gagnant_quizz_2 = ", la réponse était bien [",
111
  options = "Options",
112
  bind_gest_label = "Ouvrir le gestionnaire de mini-jeux :",
113
  bind_help_label = "Afficher l'aide : ",
114
  bind_settings_label = "Ouvrir les options :",
115
  bind_themes_label = "Changer le thème",
116
  press_touche = "Choisissez une touche",
117
  redefinir = "Redéfinir",
118
  themes_label = "Thèmes",
119
  themes_main = "Choisissez un thème :",
120
  classicTheme = "Classique",
121
  darkTheme = "Sombre"
122
}
123
124
lang.en = {
125
  aucun = "None",
126
  credits = "Module by",
127
  help_1 = "<p align='center'><font color='#C2C2DA' size='35' >Help</font></p><br /> • Press <font color='#BABD2F'>[",
128
  help_2 = "]</font> to open the <font color='#DEB51B'>mini-games manager</font></font>.<br /> • Press <font color='#BABD2F'>[",
129
  help_3 = "]</font> to open <font color='#DEB51B'>settings</font></font>.<br /> • Press <font color='#BABD2F'>[",
130
  help_4 = "]</font> to open the <font color='#DEB51B'>themes manager</font></font>.<br /><br />  <font size='13'>Which category would you like to consult ?</font>",
131
  gest_label = "Mini-games manager",
132
  gest_main = "Select a mini-game :",
133
  commandes_label = "Commands",
134
  commandes = "<p align='center'><font color='C2C2DA' size='35' >Commands</font></p><br /><J> !help :<N> Show the help<br /><J> !stop :<N> Interrupt the current mini-game<br /><J> !kill :<N> Die instantly<br /><J> !respawn :<N> Respawn instantly<br /><J> !ch :<N> You'll be the shaman for the next game<br /><J> !meep :<N> Get the power to meep !<br /><J> !time <R>[seconds] <N>: Modify the current game's time<br /><J> !color <R>[hexadecimal code] <N>: Change your nickname's color<br /><J> !next :<N>  Play the next map (map queue or bootcamp mini-game)<br /><J> !bc <R>[@map] <N>: (bootcamp mini-game) Play this map as a bootcamp<br /><J> !np <R>[@map] <N>: Play a map<br /><J> !q <R>[@map] <N>: Put a map in the queue",
135
  minijeux_label = "Mini-games",
136
  minijeu_label = "Mini-game",
137
  minijeux = "<p align='center'><font color='C2C2DA' size='35' >Mini-games</font></p><br /><font color='#BABD2F'> • fly :</font> Fly as much as you can !<br /><font color='#BABD2F'> • shaman :</font> Everybody has the power of the shaman.<br /><font color='#BABD2F'> • vampire :</font> Avoid the vampire !<br /><font color='#BABD2F'> • bootcamp :</font> A smart bootcamp training system.<br /><font color='#BABD2F'> • survivor :</font> Dodge the shaman's cannons !<br /><font color='#BABD2F'> • quizz :</font> <font color='#6C77C1'>[not available in English]</font><br /><font color='#BABD2F'> • cheese robber :</font> A mouse has stolen the cheese ! Catch it !",
138
  temps_critique = "10 seconds remaining !",
139
  temps_ecoule = "Time out !",
140
  gagnant_quizz_1 = "Congratulations to ",
141
  gagnant_quizz_2 = ", the answer was [",
142
  options = "Settings",
143
  bind_gest_label = "Open the mini-games manager :",
144
  bind_help_label = "Show help :",
145
  bind_settings_label = "Open settings :",
146
  bind_themes_label = "Switch the theme",
147
  press_touche = "Press a key",
148
  redefinir = "Redefine",
149
  themes_label = "Themes",
150
  themes_main = "Choose a theme :",
151
  classicTheme = "Classic",
152
  darkTheme = "Dark"
153
}
154
  
155
-- Listes des IDs
156
  id = {}
157
  
158
  -- keys
159
    id["key_space"] = 32
160
    id["key_o"] = 79
161
    id["key_h"] = 72
162
    id["key_l"] = 76
163
    id["key_u"] = 85
164
  
165
  -- windows
166
    id["gest_window"] = 1
167
    id["help_window"] = 2
168
    id["settings_window"] = 3
169
    id["themes_window"] = 4
170
  
171
  -- textAreas
172
    -- Crédits
173
    id["credits"] = 1
174
    
175
    -- Aide
176
    id["main_help"] = 2
177
    id["close_help"] = 3
178
    id["commands_help"] = 4
179
    id["minijeux_help"] = 5
180
    
181
    -- Aide => Commandes
182
    id["main_commands"] = 6
183
    id["close_commands"] = 7
184
    id["accueil_commands"] = 8
185
    
186
    -- Aide => Mini-jeux
187
    id["main_minijeux"] = 9
188
    id["close_minijeux"] = 10
189
    id["accueil_minijeux"] = 11
190
    
191
    -- Gestionnaire de mini-jeux
192
    id["main_gest"] = 12
193
    id["close_gest"] = 13
194
    id["bootcamp_gest"] = 14
195
    id["chamane_gest"] = 15
196
    id["vampire_gest"] = 16
197
    id["fly_gest"] = 17
198
    id["survivor_gest"] = 18
199
    id["quizz_gest"] = 19
200
    id["robber_gest"] = 20
201
    id["nil_gest"] = 21
202
    id["stop_gest"] = 22
203
204
    -- Quizz
205
    id["question_quizz"] = 23
206
    id["quizz_rebours"] = 24
207
    id["bravo_quizz"] = 25
208
    id["time_quizz"] = 26
209
    
210
    -- Queue
211
    id["main_queue"] = 27
212
    
213
    -- Options
214
    id["main_settings"] = 28
215
    id["close_settings"] = 29
216
    id["redefinir_gest"] = 30
217
    id["bind_gest_label"] = 31
218
    id["bind_gest"] = 32
219
    id["redefinir_help"] = 33
220
    id["bind_help_label"] = 34
221
    id["bind_help"] = 35
222
    id["redefinir_settings"] = 36
223
    id["bind_settings_label"] = 37
224
    id["bind_settings"] = 38
225
    id["redefinir_themes"] = 39
226
    id["bind_themes_label"] = 40
227
    id["bind_themes"] = 41
228
    
229
    -- Themes
230
    id["main_themes"] = 42
231
    id["close_themes"] = 43
232
    id["classic_theme"] = 44
233
    id["dark_theme"] = 45
234
235
-- Custom keys
236
Key = {}
237
238
Key[8] = "Backspace"
239
Key[9] = "Tab"
240
Key[13] = "Enter"
241
Key[16] = "Shift"
242
Key[17] = "Ctrl"
243
Key[18] = "Alt"
244
Key[19] = "Pause"
245
Key[20] = "Caps Lock"
246
Key[27] = "Esc"
247
Key[32] = "Spacebar"
248
Key[33] = "Page up"
249
Key[34] = "Page down"
250
Key[35] = "End"
251
Key[36] = "Home"
252
Key[37] = "Left arrow"
253
Key[38] = "Up arrow"
254
Key[39] = "Right arrow"
255
Key[40] = "Down arrow"
256
Key[45] = "Insert"
257
Key[46] = "Delete"
258
Key[48] = "0"
259
Key[49] = "1"
260
Key[50] = "2"
261
Key[51] = "3"
262
Key[52] = "4"
263
Key[53] = "5"
264
Key[54] = "6"
265
Key[55] = "7"
266
Key[56] = "8"
267
Key[57] = "9"
268
Key[65] = "A"
269
Key[66] = "B"
270
Key[67] = "C"
271
Key[68] = "D"
272
Key[69] = "E"
273
Key[70] = "F"
274
Key[71] = "G"
275
Key[72] = "H"
276
Key[73] = "I"
277
Key[74] = "J"
278
Key[75] = "K"
279
Key[76] = "L"
280
Key[77] = "M"
281
Key[78] = "N"
282
Key[79] = "O"
283
Key[80] = "P"
284
Key[81] = "Q"
285
Key[82] = "R"
286
Key[83] = "S"
287
Key[84] = "T"
288
Key[85] = "U"
289
Key[86] = "V"
290
Key[87] = "W"
291
Key[88] = "X"
292
Key[89] = "Y"
293
Key[90] = "Z"
294
Key[91] = "Windows-L"
295
Key[92] = "Windows-R"
296
Key[93] = "App"
297
Key[97] = "1"
298
Key[98] = "2"
299
Key[99] = "3"
300
Key[100] = "4"
301
Key[101] = "5"
302
Key[102] = "6"
303
Key[103] = "7"
304
Key[104] = "8"
305
Key[105] = "9"
306
Key[106] = "*"
307
Key[107] = "+"
308
Key[109] = "-"
309
Key[110] = "."
310
Key[111] = "/"
311
Key[112] = "F1"
312
Key[113] = "F2"
313
Key[114] = "F3"
314
Key[115] = "F4"
315
Key[116] = "F5"
316
Key[117] = "F6"
317
Key[118] = "F7"
318
Key[119] = "F8"
319
Key[120] = "F9"
320
Key[121] = "F10"
321
Key[122] = "F11"
322
Key[123] = "F12"
323
Key[144] = "Numlock"
324
Key[145] = "Scrolllock"
325
Key[186] = ";"
326
Key[187] = "="
327
Key[188] = ","
328
Key[189] = "-"
329
Key[190] = "."
330
Key[191] = "/"
331
Key[192] = "`"
332
Key[219] = "["
333
Key[220] = "\\"
334
Key[221] = "]"
335
Key[222] = "'"
336
337
-- Listes des questions/réponses du quizz
338
  bddquiz = {}
339
  bddquiz["Citez un des auteurs de THM"] = "deathmatic,allounett"
340
  bddquiz["Où se trouve le canal aménagé au XIXème siècle permet de relier les mers Méditerranée et Rouge ?"] = "suez"
341
  bddquiz["Quel est le plus long fleuve d'Europe ?"] = "danube"
342
  bddquiz["Qui fut nommé champion du monde de cyclisme en 2013 ?"] = "ruicosta"
343
  bddquiz["Quelle cité-état est surnommée la ville-lion ?"] = "singapour"
344
  bddquiz["En quelle année a eu lieu la chute du mur de Berlin ?"] = "1989"
345
  bddquiz["Comment les Romains antiques surnommaient-ils la mer Méditerranée ? ?"] = "marenostrum"
346
  bddquiz["Qui a peint « L'Origine du Monde » en 1866 ?"] = "courbet"
347
  bddquiz["Quel président des Etats-Unis a été assassiné en 1963 à Dallas ?"] = "kennedy"
348
  bddquiz["Quel physicien célèbre est également connu pour avoir inventé la chatière ?"] = "newton"
349
  bddquiz["Quel est le symbole de l'élément chimique sodium ?"] = "na"
350
  bddquiz["Quelle échelle permet de mesurer la force des piments ?"] = "scoville"
351
  bddquiz["Le mot magique est un ?"] = "adjectif"
352
  bddquiz["Quel est le plus petit état de l'Union européenne ?"] = "malte"
353
  bddquiz["Qu'est-ce qu'un amplificateur de lumière par émission stimulée de rayonnement ?"] = "laser"
354
  bddquiz["Quel animal est responsable du plus grand nombre de victimes humaines (excepté l'Homme lui-même) ?"] = "moustique"
355
  bddquiz["En kilomètres, quelle est la distance d'un marathon ?"] = "42"
356
  bddquiz["Combien les arachnides ont-ils de paires de pattes ?"] = "4"
357
  bddquiz["En quelle année a été ouvert au public le tunnel sous la Manche ?"] = "1994"
358
  bddquiz["Citez un fleuve des Enfers."] = "léthé,achéron,styx,phlégéthon,cocyte"
359
  bddquiz["Comment appelle-t-on un petit bout de terre entre deux mers (que l'on retrouve à Suez et à Panama notamment) ?"] = "isthme"
360
  bddquiz["Quel acteur a tourné le plus de film « James Bond ? » ?"] = "moore"
361
  bddquiz["Écrivez correctement le mot suivant : [ékimoz]"] = "ecchymose"
362
  bddquiz["Écrivez correctement le mot suivant : [bilveuzé]"] = "billeveusée"
363
  bddquiz["Écrivez correctement le mot suivant : [ilêtrey]"] = "illettré"
364
  bddquiz["Écrivez correctement le mot suivant : [sénete]"] = "saynette"
365
  bddquiz["Écrivez correctement le mot suivant : [paraleylaugram]"] = "parallélogramme"
366
  bddquiz["Écrivez correctement le mot suivant : [fuchya]"] = "fuchsia"
367
  bddquiz["Conjuguez le verbe « étendre » au passé simple à la deuxième personne du pluriel."] = "étendîtes"
368
  bddquiz["Quelle chaîne de montagnes considère-t-on traditionnellement comme une frontière naturelle entre l'Europe et l'Asie ?"] = "oural"
369
  bddquiz["Dans quel pays vivaient les dauphins d'eau douce du Yangzi, certainement disparus à ce jour ?"] = "chine"
370
  bddquiz["Quel animal associe-t-on généralement au physicien Erwin Schrödinger ?"] = "chat"
371
  bddquiz["Selon l'expression, si vous avez été dupé dans une affaire, vous êtes le dindon de la... "] = "farce"
372
  bddquiz["Dans la mythologie grecque, quelle montagne abrite le palais de Zeus ?"] = "olympe"
373
  bddquiz["Comment, en golf, appelle-t-on l'objet qu'on utilise pour lancer la balle ? "] = "club"
374
  bddquiz["Un pentagone a 5 côtés. Comment appelle-t-on un polygone à 12 côtés ? "] = "dodécagone"
375
  bddquiz["Dans la série de bande dessinée d'Uderzo et Goscinny, quel est le nom du chef du village d'Astérix ? "] = "abraracourcix"
376
  bddquiz["Quel acteur britannique incarne Harry Potter au cinéma ? (Son nom)"] = "radcliffe"
377
  bddquiz["Quel pays a pour langues officielles le tamoul et le cingalais ?"] = "srilanka"
378
  bddquiz["Qui a inventé la dynamite ?"] = "nobel"
379
  bddquiz["Quel mot désigne la cicatrice laissée par le cordon ombilical sur le ventre des mammifères ? "] = "nombril,ombilic"
380
  bddquiz["Quel mammifère pond des œufs ?"] = "ornithorynque,échidné"
381
  bddquiz["Quelle figure de style a pour but d'atténuer une idée désagréable (exemple : « Et qui dort son sommeil sous une humble pelouse » (Baudelaire) = enterrée) ?"] = "euphémisme"
382
  bddquiz["Quelle pierre précieuse est une variété cristallisée de carbone pur ?"] = "diamant"
383
  bddquiz["Quel crustacé d'eau douce élève-t-on en astaciculture ?"] = "écrevisse"
384
  bddquiz["Dans quel jeu de société un meurtre peut-il être commis par le colonel Moutarde dans la salle à manger ?"] = "cluedo"
385
  bddquiz["Dans la mythologie égyptienne, quel dieu représente-t-on sous la forme d'un homme à tête de faucon ? "] = "horus"
386
  bddquiz["Quel pays d'Afrique australe a pour capitale Gaborone ?"] = "botswana"
387
  bddquiz["Quelle est la capitale de l'Uruguay ?"] = "montevideo"
388
  bddquiz["Quel pokémon a pour nom anglais Gyarados ?"] = "léviator,leviator,"
389
  bddquiz["Qui a dit « De l'audace, encore de l'audace, et toujours de l'audace ! » ?"] = "danton"
390
  bddquiz["Comment appelle-t-on une fonction mathématique qui est soit croissante soit décroissante ?"] = "monotone"
391
  bddquiz["Vous connaissez sans doute l'expression « franchir le Rubicon », mais qu'est-ce que le Rubicon ?"] = "fleuve, rivière"
392
  bddquiz["Comment s'appellent les habitants de Tours ?"] = "tourangeaux"
393
  bddquiz["Qui est la première femme à avoir été enterrée au Panthéon ? (Son nom)"] = "curie"
394
  bddquiz["Comment appelle-t-on un régime politique gouverné par les plus riche ?"] = "ploutocratie"
395
  bddquiz["Combien la Terre a-t-elle de satellites naturels ?"] = "1"
396
  bddquiz["Combien de pays sont traversés par le Rhin ?"] = "6"
397
398
isGestOpen = {}
399
isHelpOpen = {}
400
isSettingsOpen = {}
401
isThemesOpen = {}
402
403
customKeyGest = {}
404
customKeyHelp = {}
405
customKeySettings = {}
406
customKeyThemes = {}
407
408
listenKeyGest = {}
409
listenKeyHelp = {}
410
listenKeySettings = {}
411
listenKeyThemes = {}
412
413
text = lang[lang_name]
414
theme = themes.classic
415
416
function eventNewGame()
417
  displayCredits()
418
  displayHeader()
419
  displayQueue()
420
  
421
  ui.removeTextArea(id["question_quizz"])
422
  ui.removeTextArea(id["quizz_rebours"])
423
  ui.removeTextArea(id["bravo_quizz"])
424
  ui.removeTextArea(id["time_quizz"])
425
  
426
  hasVampired = false
427
  hasEndVampired = false
428
  currentQuestion = nil
429
  quizzTimer = 0
430
  questionTime = 0
431
  hasPosedQuestion = false
432
  hasAnswered = false
433
  hasWonQuiz = false
434
  coordShamX = 1000
435
  coordShamY = 1000
436
  robberSham = nil
437
  miceWithCheese = 0
438
  
439
	for playerName,_ in pairs(tfm.get.room.playerList) do 
440
    if customKeyGest[playerName] == nil then
441
      customKeyGest[playerName] = id["key_o"]
442
    end
443
    
444
    if customKeyHelp[playerName] == nil then
445
      customKeyHelp[playerName] = id["key_h"]
446
    end
447
    
448
    if customKeySettings[playerName] == nil then
449
      customKeySettings[playerName] = id["key_l"]
450
    end
451
    
452
    if customKeyThemes[playerName] == nil then
453
      customKeyThemes[playerName] = id["key_u"]
454
    end
455
        
456
    listenKeyGest[playerName] = false
457
    listenKeyHelp[playerName] = false
458
    listenKeySettings[playerName] = false
459
    listenKeyThemes[playerName] = false
460
    
461
    isGestOpen[playerName] = false
462
    isHelpOpen[playerName] = false
463
    isSettingsOpen[playerName] = false
464
    isThemesOpen[playerName] = false
465
466
    if chamane==true then
467
      tfm.exec.setShaman(playerName)
468
    end
469
    
470
    for code,key_name in pairs(Key) do
471
      tfm.exec.bindKeyboard(playerName, code, true, true)
472
    end
473
	end
474
  
475
  if not tribeHousePicked then
476
    tribeHouse = tfm.get.room.currentMap
477
    tribeHousePicked = true
478
  end
479
end
480
481
function eventNewPlayer(playerName)
482
  displayCredits()
483
  displayHeader()
484
  displayQueue()
485
486
  if customKeyGest[playerName]==nil and customKeyHelp[playerName] == nil and customKeySettings[playerName] == nil and customKeyThemes[playerName] == nil then
487
    customKeyGest[playerName] = id["key_o"]
488
    customKeyHelp[playerName] = id["key_h"]
489
    customKeySettings[playerName] = id["key_l"]
490
    customKeyThemes[playerName] = id["key_u"]
491
      
492
    listenKeyGest[playerName] = false
493
    listenKeyHelp[playerName] = false
494
    listenKeySettings[playerName] = false
495
    listenKeyThemes[playerName] = false
496
  end
497
    
498
  for code,keyname in pairs(Key) do
499
    tfm.exec.bindKeyboard(playerName, code, true, true)
500
  end
501
    
502
	tfm.exec.respawnPlayer(playerName)
503
  
504
  isGestOpen[playerName] = false
505
  isHelpOpen[playerName] = false
506
  isSettingsOpen[playerName] = false
507
  isThemesOpen[playerName] = false
508
509
	if chamane==true then
510
		tfm.exec.setShaman(playerName)
511
	end
512
  
513
  if quizz==true then
514
    if hasPosedQuestion then
515
      askQuestion(currentQuestion, playerName, false)
516
    end
517
  end
518
end
519
520
function eventPlayerGetCheese(playerName)
521
  if robber then
522
    miceWithCheese = miceWithCheese + 1
523
  
524
    if miceWithCheese == 11 then
525
      tfm.exec.killPlayer(currentSham)
526
      coordShamX = 1000
527
      coordShamY = 1000
528
    end
529
  end
530
end
531
532
function eventPlayerWon(playerWon)
533
  if bootcamp then
534
    tfm.exec.respawnPlayer(playerWon)
535
    tfm.exec.setPlayerScore(playerWon, 20, true)
536
  end
537
  if quizz then
538
    tfm.exec.respawnPlayer(playerWon)
539
    tfm.exec.setPlayerScore(playerWon, 1, true)
540
  end
541
end
542
543
function eventPlayerDied(playerName)
544
  if bootcamp==true or quizz==true then
545
    tfm.exec.respawnPlayer(playerName)
546
  end
547
  
548
  if chamane==true then
549
    tfm.exec.respawnPlayer(playerName)
550
    tfm.exec.setShaman(playerName)
551
  end
552
  
553
  if survivor==true then
554
    tfm.exec.setPlayerScore(playerName, 1, true)
555
    
556
    if tfm.get.room.playerList[playerName].isShaman==true then
557
      tfm.exec.setPlayerScore(playerName, 0, false)
558
      activate("survivor")
559
      
560
      for p,_ in pairs(tfm.get.room.playerList) do
561
        if tfm.get.room.playerList[p].isShaman==false then
562
          if tfm.get.room.playerList[p].isDead==false then
563
            tfm.exec.setPlayerScore(p, math.random(3) + 15, true)
564
          end
565
        end
566
      end
567
568
    else
569
      survivorShaman = ""
570
      nbSurv = 0
571
      for p,_ in pairs(tfm.get.room.playerList) do
572
        if tfm.get.room.playerList[p].isShaman==false then
573
          if tfm.get.room.playerList[p].isDead==false then
574
            nbSurv = nbSurv + 1
575
          end
576
        else
577
          survivorShaman = p
578
        end
579
      end
580
      
581
      if nbSurv <= 1 then
582
        tfm.exec.setPlayerScore(survivorShaman, 0, false)
583
        activate("survivor")
584
        for p,_ in pairs(tfm.get.room.playerList) do
585
          if tfm.get.room.playerList[p].isShaman==false then
586
            if tfm.get.room.playerList[p].isDead==false then
587
              tfm.exec.setPlayerScore(p, math.random(3) + 15, true)
588
            end
589
        end
590
      end
591
      end
592
    end
593
  end
594
  
595
  if robber then
596
    local i = 0
597
    
598
    for _,player in pairs (tfm.get.room.playerList) do
599
      if not player.isDead then
600
        i=i+1
601
      end
602
    end
603
    
604
    if i == 0 then
605
      activate("robber")
606
    end
607
  end
608
end
609
610
function eventLoop(currentTime, timeRemaining)
611
  if queue[1]~= nil then
612
    if tfm.get.room.currentMap~=tribeHouse then
613
      if timeRemaining<=0 then
614
        activate(queue[1])
615
        table.remove(queue, 1)
616
      end
617
    else
618
      activate(queue[1])
619
      table.remove(queue, 1)
620
    end
621
  end
622
  
623
	if vampire then 
624
		if timeRemaining<=105000 and timeRemaining > 1 then
625
      if hasVampired==false then
626
        hasVampired = true
627
        if hasEndVampired==false then
628
          tfm.exec.setVampirePlayer(randomPlayer())
629
          hasEndVampired = true
630
        end
631
      else
632
        if timeRemaining<=100000 then
633
          if hasEndVampired then
634
            local sourisVivantes = 0
635
            local sourisVampireVivantes = 0
636
              
637
            for p,_ in pairs(tfm.get.room.playerList) do
638
              if not tfm.get.room.playerList[p].isDead then
639
                sourisVivantes = sourisVivantes + 1
640
                if tfm.get.room.playerList[p].isVampire then
641
                  sourisVampireVivantes = sourisVampireVivantes + 1
642
                end
643
              end
644
            end
645
              
646
            if sourisVampireVivantes == 0 then
647
              print("<ROSE>Tous les vampires sont morts ! Gloire aux survivants !")
648
              activate("vampire")
649
            elseif sourisVampireVivantes >= sourisVivantes then
650
              print("<ROSE>Les vampires ont contaminés tous les survivants !")
651
              activate("vampire") 
652
            end
653
          end
654
        end
655
      end
656
    elseif timeRemaining<=0 then
657
      print("<ROSE>Les souris ont survécu face aux vampires !")
658
      activate("vampire")
659
    end
660
	end
661
  
662
  if bootcamp==true then
663
    if timeRemaining<=0 then
664
      activate("bootcamp")
665
    end
666
  end
667
  
668
  if survivor==true then
669
    if timeRemaining<=0 then
670
      for p,_ in pairs(tfm.get.room.playerList) do
671
        if tfm.get.room.playerList[p].isShaman==false then
672
          tfm.exec.setPlayerScore(p, math.random(3) + 15, true)
673
        else
674
          tfm.exec.setPlayerScore(p, 0, false)
675
        end
676
      end
677
      
678
      activate("survivor")
679
    end
680
  end
681
  
682
  if quizz==true then
683
    if not hasPosedQuestion then
684
      if quizzTimer < 14 then
685
        quizzTimer = quizzTimer + 1
686
      end
687
      
688
      if quizzTimer==8 then
689
        hasWonQuiz = false
690
        ui.removeTextArea(id["bravo_quizz"])
691
        hasAnswered = false
692
        if questionTime >= 60 then
693
          ui.removeTextArea(id["time_quizz"])
694
          questionTime = 0
695
        end
696
        ui.addTextArea(id["quizz_rebours"], "<p align='center'><font size='120' face='Soopafresh'>3</font></p>", NIL, 225, 100, 350, 150, 0x010101, 0x010101, 1f)
697
      elseif quizzTimer==10 then
698
        ui.removeTextArea(id["quizz_rebours"])
699
        ui.addTextArea(id["quizz_rebours"], "<p align='center'><font size='120' face='Soopafresh'>2</font></p>", NIL, 225, 100, 350, 150, 0x010101, 0x010101, 1f)
700
      elseif quizzTimer==12 then
701
        ui.removeTextArea(id["quizz_rebours"])
702
        ui.addTextArea(id["quizz_rebours"], "<p align='center'><font size='120' face='Soopafresh'>1</font></p>", NIL, 225, 100, 350, 150, 0x010101, 0x010101, 1f)
703
      elseif quizzTimer==14 then
704
        ui.removeTextArea(id["quizz_rebours"])
705
        hasPosedQuestion = true
706
        question = randomQuestion()
707
        reponse = bddquiz[question]
708
        currentQuestion = question
709
        askQuestion(currentQuestion, nil, false)
710
      end
711
    else
712
      if questionTime < 60 then
713
        questionTime = questionTime + 1
714
        
715
        if questionTime==40 then
716
          ui.addTextArea(id["time_quizz"], "<p align='center'><font size='16'>"..text.temps_critique.."</font></p>", NIL, 225, 225, 350, 25, 0x010101, 0x010101, 1f)
717
        end
718
      else
719
        ui.removeTextArea(id["time_quizz"])
720
        ui.addTextArea(id["time_quizz"], "<p align='center'><font size='25' color='#E78585'>"..text.temps_ecoule.."</font></p>", NIL, 225, 100, 350, 150, 0x010101, 0x010101, 1f)
721
        hasAnswered = true
722
        hasWonQuiz = false
723
        currentQuestion = nil
724
        quizzTimer = 0
725
        hasPosedQuestion = false 
726
      end
727
    end
728
  end
729
  
730
  if robber then
731
    if timeRemaining <= 0 then
732
      activate("robber")
733
    end
734
    
735
    for name,player in pairs(tfm.get.room.playerList) do
736
      if timeRemaining<=117000 and player.isShaman then
737
        coordShamX = tfm.get.room.playerList[name].x
738
        coordShamY = tfm.get.room.playerList[name].y
739
        robberSham = name
740
        
741
        if not player.hasCheese then
742
          tfm.exec.giveCheese(name)
743
        end
744
      end
745
      
746
      if not player.hasCheese and not player.isShaman and timeRemaining<=117000 then
747
        if tfm.get.room.playerList[name].x<(coordShamX+30) and tfm.get.room.playerList[name].x>(coordShamX-30) then
748
          if tfm.get.room.playerList[name].y<(coordShamY+30) and tfm.get.room.playerList[name].y>(coordShamY-30) then
749
            tfm.exec.giveCheese(name)
750
          end
751
        end
752
      end
753
    end
754
  end
755
end
756
757
function eventKeyboard(playerName, keyCode, True, x, y)
758
  if listenKeyGest[playerName]==true or listenKeyHelp[playerName]==true or listenKeySettings[playerName] == true or listenKeyThemes[playerName] == true then
759
    if listenKeyGest[playerName] == true then
760
      customKeyGest[playerName] = keyCode
761
      listenKeyGest[playerName] = false
762
      ui.removeTextArea(id["bind_gest"])
763
      ui.addTextArea(id["bind_gest"], "<p align='center'>["..Key[customKeyGest[playerName]].."]</p>", playerName, 465, 160, 150, 20, theme.button, theme.button_border, theme.opacity)
764
    end
765
    
766
    if listenKeyHelp[playerName] == true then
767
      customKeyHelp[playerName] = keyCode
768
      listenKeyHelp[playerName] = false
769
      ui.removeTextArea(id["bind_help"])
770
      ui.addTextArea(id["bind_help"], "<p align='center'>["..Key[customKeyHelp[playerName]].."]</p>", playerName, 465, 200, 150, 20, theme.button, theme.button_border, theme.opacity)
771
    end
772
    
773
    if listenKeySettings[playerName] == true then
774
      customKeySettings[playerName] = keyCode
775
      listenKeySettings[playerName] = false
776
      ui.removeTextArea(id["bind_settings"])
777
      ui.addTextArea(id["bind_settings"], "<p align='center'>["..Key[customKeySettings[playerName]].."]</p>", playerName, 465, 240, 150, 20, theme.button, theme.button_border, theme.opacity)
778
    end
779
    
780
    if listenKeyThemes[playerName] == true then
781
      customKeyThemes[playerName] = keyCode
782
      listenKeyThemes[playerName] = false
783
      ui.removeTextArea(id["bind_themes"])
784
      ui.addTextArea(id["bind_themes"], "<p align='center'>["..Key[customKeyThemes[playerName]].."]</p>", playerName, 465, 280, 150, 20, theme.button, theme.button_border, theme.opacity)
785
    end
786
    
787
  else
788
    if keyCode==customKeyGest[playerName] then
789
      updateWindow(id["gest_window"], playerName)
790
791
    elseif keyCode==customKeyHelp[playerName] then
792
      updateWindow(id["help_window"], playerName)
793
794
    elseif keyCode==customKeySettings[playerName] then
795
      updateWindow(id["settings_window"], playerName)
796
      if isSettingsOpen[playerName] == true then
797
        for p,_ in pairs(tfm.get.room.playerList) do
798
          if isSettingsOpen[p]==true then
799
            if p~=playerName then
800
              updateWindow(id["settings_window"], p)
801
            end
802
          end
803
        end
804
      end
805
    
806
    elseif keyCode==customKeyThemes[playerName] then
807
      updateWindow(id["themes_window"], playerName)
808
    
809
    elseif keyCode==27 then
810
      if isGestOpen[playerName] == true then updateWindow(id["gest_window"], playerName) end
811
      if isHelpOpen[playerName] == true then updateWindow(id["help_window"], playerName) end
812
      if isSettingsOpen[playerName] == true then updateWindow(id["settings_window"], playerName) end
813
      if isThemesOpen[playerName] == true then updateWindow(id["themes_window"], playerName) end
814
    end
815
816
    if fly==true then
817
      if keyCode==32 then
818
        tfm.exec.movePlayer(playerName, playerName.x, playerName.y, false, 0, -50, off)
819
      end
820
    end
821
  end
822
end
823
824
function eventChatCommand(playerName, message)
825
  local args = {}
826
  
827
  for arg in message:gmatch("[^%s]+") do
828
    table.insert(args, arg:lower())
829
  end
830
  
831
  if args[1] == "bc" and args[2]~=nil then
832
    if bootcamp==true then
833
      tfm.exec.disableAutoScore(true)
834
      tfm.exec.disableAutoShaman(true)
835
      tfm.exec.disableAfkDeath(true)
836
      tfm.exec.disableAutoTimeLeft(true)
837
      tfm.exec.disableAutoNewGame(true)
838
      tfm.exec.newGame(args[2])
839
      tfm.exec.setGameTime(bootcampDuration)
840
    end
841
  end
842
  
843
	if args[1] == "time" and args[2] ~= nil then
844
		tfm.exec.setGameTime(args[2])
845
	end
846
	
847
	if args[1]=="color" and args[2] ~= nil then
848
		if string.len(message) > 6 then
849
			tfm.exec.setNameColor(playerName, "0x"..args[2])
850
		end
851
	end
852
  
853
  if args[1]=="np" and args[2]~= nil then
854
    tfm.exec.newGame(args[2])
855
  end
856
  
857
  if args[1]=="q" or args[1]=="queue" or args[1]=="npp" then
858
    if args[2]~=nil then
859
      local mapCode = string.gsub(args[2], "@", "")
860
      mapCode = tonumber(mapCode)
861
      
862
      table.insert(queue, #queue + 1, "@"..mapCode)
863
      
864
      for p,_ in pairs(tfm.get.room.playerList) do
865
        displayQueue()
866
      end
867
    end
868
  end
869
  
870
  if args[1]=="remove" and queue[1]~=nil then
871
    if args[2]~= nil then
872
      if tonumber(args[2]) < #queue and tonumber(args[2]) > 0 then
873
        table.remove(queue, tonumber(args[2]))
874
      end
875
    else
876
      table.remove(queue, #queue)
877
    end
878
    displayQueue()
879
  end
880
  
881
	if message=="stop" then
882
    activate(nil)
883
	
884
  elseif message=="next" then
885
    if queue[1]~= nil then
886
      activate(queue[1])
887
      table.remove(queue, 1)
888
    else
889
      if bootcamp then
890
        activate("bootcamp")
891
      end
892
    end
893
894
	elseif message=="kill" or message=="mort" then
895
		tfm.exec.killPlayer(playerName)
896
897
	elseif message=="ch" then
898
		tfm.exec.setPlayerScore(playerName, 9001 + math.random(1000), add)
899
900
	elseif message=="respawn" then
901
		if not survivor and not vampire and not robber then
902
      tfm.exec.respawnPlayer(playerName)
903
    end
904
905
	elseif message=="meep" then
906
    if not survivor and not vampire and not robber then
907
      tfm.exec.giveMeep(playerName)
908
    end
909
  
910
  elseif message=="removeall" then
911
    queue = {}
912
    displayQueue()
913
914
	elseif message=="help" then
915
		updateWindow(id["help_window"], playerName)
916
    
917
  elseif message=="fr" then
918
    changeLanguage("fr")
919
  
920
  elseif message=="en" then
921
    changeLanguage("en")
922
    
923
  else
924
    if quizz then
925
      local answers = {}
926
      if hasPosedQuestion then
927
        for w in bddquiz[currentQuestion]:gmatch("[^%,]+") do
928
          table.insert(answers, w)
929
        end
930
        
931
        if not hasAnswered then
932
          for _,answer in pairs(answers) do
933
            if message==answer then
934
              tfm.exec.giveCheese(playerName)
935
              tfm.exec.playerVictory(playerName)
936
              hasAnswered = true
937
              hasWonQuiz = true
938
              ui.addTextArea(2, "<p align='center'><font size='18' color='#BAB460'>"..text.gagnant_quizz_1..playerName..text.gagnant_quizz_2..answer:gsub("^%l", string.upper).."] !</font></p>", player, 225, 100, 350, 150, 0x010101, 0x010101, 1f)
939
              
940
              currentQuestion = nil
941
              quizzTimer = 0
942
              questionTime = 0
943
              hasPosedQuestion = false
944
              hasAnswered = false
945
            end
946
          end
947
        end
948
      end
949
    end
950
  end
951
end
952
953
function eventTextAreaCallback(textAreaId, playerName, callback)
954
	if callback=="callbackClose" then
955
		updateWindow(id["help_window"], playerName)
956
    
957
	elseif callback=="callbackCommands" then
958
    updateWindow(id["help_window"], playerName)
959
		displayCommands(false, playerName)
960
    
961
	elseif callback=="callbackCloseCommands" then
962
		displayCommands(true, playerName)
963
    
964
	elseif callback=="callbackAccueilCommands" then
965
		displayCommands(true, playerName)
966
		updateWindow(id["help_window"], playerName)
967
    
968
	elseif callback=="callbackMinijeux" then
969
		updateWindow(id["help_window"], playerName)
970
    displayMinijeux(false, playerName)
971
    
972
	elseif callback=="callbackCloseMinijeux" then
973
		displayMinijeux(true, playerName)
974
    
975
	elseif callback=="callbackAccueilMinijeux" then
976
		displayMinijeux(true, playerName)
977
    updateWindow(id["help_window"], playerName)
978
    
979
  elseif callback=="callbackCloseGestionnaire" then
980
    updateWindow(id["gest_window"], playerName)
981
    
982
  elseif callback=="callbackCloseSettings" then
983
    updateWindow(id["settings_window"], playerName)
984
  
985
  elseif callback=="callbackCloseThemes" then
986
    updateWindow(id["themes_window"], playerName)
987
    
988
  elseif callback=="callbackThemeClassic" then
989
    changeTheme("classic")
990
  
991
  elseif callback=="callbackThemeDark" then
992
    changeTheme("dark")
993
    
994
  elseif callback=="callbackBootcamp" then
995
    updateWindow(id["gest_window"], playerName)
996
    activate("bootcamp")
997
    
998
  elseif callback=="callbackChamane" then
999
    updateWindow(id["gest_window"], playerName)
1000
    activate("chamane")
1001
    
1002
  elseif callback=="callbackFly" then
1003
    updateWindow(id["gest_window"], playerName)
1004
    activate("fly")
1005
    
1006
  elseif callback=="callbackVampire" then
1007
    updateWindow(id["gest_window"], playerName)
1008
    activate("vampire")
1009
    
1010
  elseif callback=="callbackSurvivor" then
1011
    updateWindow(id["gest_window"], playerName)
1012
    activate("survivor")
1013
  
1014
  elseif callback=="callbackQuizz" then
1015
    updateWindow(id["gest_window"], playerName)
1016
    activate("quizz")
1017
  
1018
  elseif callback=="callbackrobber" then
1019
    updateWindow(id["gest_window"], playerName)
1020
    activate("robber")
1021
  
1022
  elseif callback=="callbackBindGest" then
1023
    listenKeyGest[playerName] = true
1024
    
1025
    listenKeyHelp[playerName] = false
1026
    listenKeySettings[playerName] = false
1027
    listenKeyThemes[playerName] = false
1028
    
1029
    ui.removeTextArea(id["bind_gest"])
1030
    ui.addTextArea(id["bind_gest"], "<p align='center'>"..text.press_touche.."</p>", playerName, 465, 160, 150, 20, theme.button, theme.button_border, theme.opacity)
1031
    
1032
    ui.removeTextArea(id["bind_help"])
1033
    ui.addTextArea(id["bind_help"], "<p align='center'>["..Key[customKeyHelp[playerName]].."]</p>", playerName, 465, 200, 150, 20, theme.button, theme.button_border, theme.opacity)
1034
    
1035
    ui.removeTextArea(id["bind_settings"])
1036
    ui.addTextArea(id["bind_settings"], "<p align='center'>["..Key[customKeySettings[playerName]].."]</p>", playerName, 465, 240, 150, 20, theme.button, theme.button_border, theme.opacity)
1037
    
1038
    ui.removeTextArea(id["bind_themes"])
1039
    ui.addTextArea(id["bind_themes"], "<p align='center'>["..Key[customKeyThemes[playerName]].."]</p>", playerName, 465, 280, 150, 20, theme.button, theme.button_border, theme.opacity)
1040
  
1041
  elseif callback=="callbackBindHelp" then
1042
    listenKeyHelp[playerName] = true
1043
    
1044
    listenKeyGest[playerName] = false
1045
    listenKeySettings[playerName] = false
1046
    listenKeyThemes[playerName] = false
1047
    
1048
    ui.removeTextArea(id["bind_help"])
1049
    ui.addTextArea(id["bind_help"], "<p align='center'>"..text.press_touche.."</p>", playerName, 465, 200, 150, 20, theme.button, theme.button_border, theme.opacity)
1050
    
1051
    ui.removeTextArea(id["bind_gest"])
1052
    ui.addTextArea(id["bind_gest"], "<p align='center'>["..Key[customKeyGest[playerName]].."]</p>", playerName, 465, 160, 150, 20, theme.button, theme.button_border, theme.opacity)
1053
    
1054
    ui.removeTextArea(id["bind_settings"])
1055
    ui.addTextArea(id["bind_settings"], "<p align='center'>["..Key[customKeySettings[playerName]].."]</p>", playerName, 465, 240, 150, 20, theme.button, theme.button_border, theme.opacity)
1056
    
1057
    ui.removeTextArea(id["bind_themes"])
1058
    ui.addTextArea(id["bind_themes"], "<p align='center'>["..Key[customKeyThemes[playerName]].."]</p>", playerName, 465, 280, 150, 20, theme.button, theme.button_border, theme.opacity)
1059
1060
  elseif callback=="callbackBindSettings" then
1061
    listenKeySettings[playerName] = true
1062
    
1063
    listenKeyGest[playerName] = false
1064
    listenKeyHelp[playerName] = false
1065
    listenKeyThemes[playerName] = false
1066
    
1067
    ui.removeTextArea(id["bind_settings"])
1068
    ui.addTextArea(id["bind_settings"], "<p align='center'>"..text.press_touche.."</p>", playerName, 465, 240, 150, 20, theme.button, theme.button_border, theme.opacity)
1069
    
1070
    ui.removeTextArea(id["bind_gest"])
1071
    ui.addTextArea(id["bind_gest"], "<p align='center'>["..Key[customKeyGest[playerName]].."]</p>", playerName, 465, 160, 150, 20, theme.button, theme.button_border, theme.opacity)
1072
    
1073
    ui.removeTextArea(id["bind_help"])
1074
    ui.addTextArea(id["bind_help"], "<p align='center'>["..Key[customKeyHelp[playerName]].."]</p>", playerName, 465, 200, 150, 20, theme.button, theme.button_border, theme.opacity)
1075
    
1076
    ui.removeTextArea(id["bind_themes"])
1077
    ui.addTextArea(id["bind_themes"], "<p align='center'>["..Key[customKeyThemes[playerName]].."]</p>", playerName, 465, 280, 150, 20, theme.button, theme.button_border, theme.opacity)
1078
    
1079
  elseif callback=="callbackBindThemes" then
1080
    listenKeyThemes[playerName] = true
1081
    
1082
    listenKeyGest[playerName] = false
1083
    listenKeyHelp[playerName] = false
1084
    listenKeySettings[playerName] = false
1085
    
1086
    ui.removeTextArea(id["bind_themes"])
1087
    ui.addTextArea(id["bind_themes"], "<p align='center'>"..text.press_touche.."</p>", playerName, 465, 280, 150, 20, theme.button, theme.button_border, theme.opacity)
1088
    
1089
    ui.removeTextArea(id["bind_gest"])
1090
    ui.addTextArea(id["bind_gest"], "<p align='center'>["..Key[customKeyGest[playerName]].."]</p>", playerName, 465, 160, 150, 20, theme.button, theme.button_border, theme.opacity)
1091
    
1092
    ui.removeTextArea(id["bind_help"])
1093
    ui.addTextArea(id["bind_help"], "<p align='center'>["..Key[customKeyHelp[playerName]].."]</p>", playerName, 465, 200, 150, 20, theme.button, theme.button_border, theme.opacity)
1094
    
1095
    ui.removeTextArea(id["bind_settings"])
1096
    ui.addTextArea(id["bind_settings"], "<p align='center'>["..Key[customKeySettings[playerName]].."]</p>", playerName, 465, 240, 150, 20, theme.button, theme.button_border, theme.opacity)
1097
  
1098
  elseif callback=="callbackStop" then
1099
    updateWindow(id["gest_window"], playerName)
1100
    activate(nil)
1101
  end
1102
end
1103
1104
function displayHelp(doClose, playerName)
1105
  if doClose==true then
1106
    ui.removeTextArea(id["main_help"], playerName)
1107
		ui.removeTextArea(id["close_help"], playerName)
1108
		ui.removeTextArea(id["commands_help"], playerName)
1109
		ui.removeTextArea(id["minijeux_help"], playerName)
1110
  else
1111
    ui.addTextArea(id["main_help"], text.help_1..Key[customKeyGest[playerName]]..text.help_2..Key[customKeySettings[playerName]]..text.help_3..Key[customKeyThemes[playerName]]..text.help_4, playerName, 200, 100, 400, 200, theme.background, theme.bg_border, theme.opacity)
1112
		ui.addTextArea(id["close_help"], "<font size='15'><a href='event:callbackClose'>x</a></font>", playerName, 206, 105, 20, 30, theme.background, theme.background, 0f)
1113
		ui.addTextArea(id["commands_help"], "<p align='center'><a href='event:callbackCommands'>"..text.commandes_label.."</a></p>", playerName, 275, 250, 100, 20, theme.button, theme.button_border, theme.opacity)
1114
		ui.addTextArea(id["minijeux_help"], "<p align='center'><a href='event:callbackMinijeux'>"..text.minijeux_label.."</a></p>", playerName, 425, 250, 100, 20, theme.button, theme.button_border, theme.opacity)
1115
  end
1116
end
1117
1118
function displayCommands(doClose, playerName)
1119
  if doClose==true then
1120
    ui.removeTextArea(id["main_commands"], playerName)
1121
		ui.removeTextArea(id["close_commands"], playerName)
1122
		ui.removeTextArea(id["accueil_commands"], playerName)
1123
  else
1124
    ui.addTextArea(id["main_commands"], text.commandes, playerName, 175, 60, 460, 260, theme.background, theme.bg_border, theme.opacity)
1125
 		ui.addTextArea(id["close_commands"], "<font size='15'><a href='event:callbackCloseCommands'>x</a></font>", playerName, 181, 65, 20, 30, theme.background, theme.background, 0f) 
1126
		ui.addTextArea(id["accueil_commands"], "<font size='15'><a href='event:callbackAccueilCommands'>←</a></font>", playerName, 610, 65, 20, 30, theme.background, theme.background, 0f)
1127
  end
1128
end
1129
1130
function displayMinijeux(doClose, playerName)
1131
  if doClose==true then
1132
    ui.removeTextArea(id["main_minijeux"], playerName)
1133
		ui.removeTextArea(id["close_minijeux"], playerName)
1134
		ui.removeTextArea(id["accueil_minijeux"], playerName)
1135
  else
1136
    ui.addTextArea(id["main_minijeux"], text.minijeux, playerName, 200, 100, 400, 200, theme.background, theme.bg_border, theme.opacity)
1137
		ui.addTextArea(id["close_minijeux"], "<font size='15'><a href='event:callbackCloseMinijeux'>x</a></font>", playerName, 206, 105, 20, 30, theme.background, theme.background, 0f) 
1138
		ui.addTextArea(id["accueil_minijeux"], "<font size='15'><a href='event:callbackAccueilMinijeux'>←</a></font>", playerName, 570, 105, 20, 30, theme.background, theme.background, 0f)
1139
  end
1140
end
1141
1142
function displayGestionnaire(doClose, playerName)
1143
  if doClose==true then
1144
    ui.removeTextArea(id["main_gest"], playerName)
1145
    ui.removeTextArea(id["close_gest"], playerName)
1146
    ui.removeTextArea(id["bootcamp_gest"], playerName)
1147
    ui.removeTextArea(id["chamane_gest"], playerName)
1148
    ui.removeTextArea(id["vampire_gest"], playerName)
1149
    ui.removeTextArea(id["fly_gest"], playerName)
1150
    ui.removeTextArea(id["survivor_gest"], playerName)
1151
    ui.removeTextArea(id["quizz_gest"], playerName)
1152
    ui.removeTextArea(id["robber_gest"], playerName)
1153
    ui.removeTextArea(id["nil_gest"], playerName)
1154
    if isActivated(nil) then ui.removeTextArea(id["stop_gest"], playerName) end
1155
  else
1156
    y_ancre = -10
1157
    
1158
    if isActivated(nil) then
1159
      y_ancre = y_ancre - 30
1160
      ui.addTextArea(id["main_gest"], "<p align='center'><font color='#C2C2DA' size='25' >"..text.gest_label.."</font><br><br>"..text.gest_main, playerName, 200, 85+y_ancre, 400, 300, theme.background, theme.bg_border, theme.opacity)
1161
    else
1162
      ui.addTextArea(id["main_gest"], "<p align='center'><font color='#C2C2DA' size='25' >"..text.gest_label.."</font><br><br>"..text.gest_main, playerName, 200, 85, 400, 245, theme.background, theme.bg_border, theme.opacity)
1163
    end
1164
    ui.addTextArea(id["close_gest"], "<font size='15'><a href='event:callbackCloseGestionnaire'>x</a></font>", playerName, 205, 88+ y_ancre + 10, 20, 30, theme.background, theme.background, 0f)
1165
    ui.addTextArea(id["bootcamp_gest"], "<p align='center'><a href='event:callbackBootcamp'>Bootcamp</a></p>", playerName, 225, 200+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1166
    ui.addTextArea(id["chamane_gest"], "<p align='center'><a href='event:callbackChamane'>Chamane</a></p>", playerName, 225, 250+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1167
    ui.addTextArea(id["vampire_gest"], "<p align='center'><a href='event:callbackVampire'>Vampire</a></p>", playerName, 350, 200+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1168
    ui.addTextArea(id["fly_gest"], "<p align='center'><a href='event:callbackFly'>Fly</a></p>", playerName, 350, 250+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1169
    ui.addTextArea(id["survivor_gest"], "<p align='center'><a href='event:callbackSurvivor'>Survivor</a></p>", playerName, 475, 200+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1170
    if lang_name~="en" then ui.addTextArea(id["quizz_gest"], "<p align='center'><a href='event:callbackQuizz'>Quizz</a></p>", playerName, 475, 250+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1171
    else ui.addTextArea(id["quizz_gest"], "<p align='center'><font color='#6C77C1'>Quizz</font></p>", playerName, 475, 250+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity) end
1172
    ui.addTextArea(id["robber_gest"], "<p align='center'><a href='event:callbackrobber'>Cheese robber !</a></p>", playerName, 225, 300+ y_ancre, 225, 20, theme.button, theme.button_border, theme.opacity)
1173
    ui.addTextArea(id["nil_gest"], "<p align='center'><a href='event:callbackNil'>-</a></p>", playerName, 475, 300+ y_ancre, 100, 20, theme.button, theme.button_border, theme.opacity)
1174
    if isActivated(nil) then
1175
      ui.addTextArea(id["stop_gest"], "<p align='center'><a href='event:callbackStop'>Arrêter le mini-jeu en cours</a></p>", playerName, 225, 350+ y_ancre, 350, 20, theme.button, theme.button_border, theme.opacity)
1176
    end
1177
  end
1178
end
1179
1180
function displaySettings(doClose, playerName)
1181
  if doClose==true then
1182
    ui.removeTextArea(id["main_settings"])
1183
    ui.removeTextArea(id["close_settings"])
1184
    ui.removeTextArea(id["redefinir_gest"])
1185
    ui.removeTextArea(id["bind_gest_label"])
1186
    ui.removeTextArea(id["bind_gest"])
1187
    ui.removeTextArea(id["redefinir_help"])
1188
    ui.removeTextArea(id["bind_help_label"])
1189
    ui.removeTextArea(id["bind_help"])
1190
    ui.removeTextArea(id["redefinir_settings"])
1191
    ui.removeTextArea(id["bind_settings_label"])
1192
    ui.removeTextArea(id["bind_settings"])
1193
    ui.removeTextArea(id["redefinir_themes"])
1194
    ui.removeTextArea(id["bind_themes_label"])
1195
    ui.removeTextArea(id["bind_themes"])
1196
    
1197
    listenKeyGest[playerName] = false
1198
    listenKeyHelp[playerName] = false
1199
    listenKeySettings[playerName] = false
1200
    listenKeyThemes[playerName] = false
1201
  else
1202
    ui.addTextArea(id["main_settings"], "<p align='center'><font color='#C2C2DA' size='25'>"..text.options.."</font></p>", playerName, 175, 100, 450, 220, theme.background, theme.bg_border, theme.opacity)
1203
    ui.addTextArea(id["close_settings"], "<font size='15'><a href='event:callbackCloseSettings'>x</a></font>", playerName, 181, 105, 20, 20, theme.background, theme.background, 0f)
1204
    ui.addTextArea(id["redefinir_gest"], "<a href='event:callbackBindGest'><font color='#BABD2F'>["..text.redefinir.."]</font></a>", playerName, 175, 160, 70, 20, theme.background, theme.background, 0f)
1205
    ui.addTextArea(id["bind_gest_label"], text.bind_gest_label, playerName, 240, 160, 225, 20, theme.background, theme.background, 0f)
1206
    ui.addTextArea(id["bind_gest"], "<p align='center'>["..Key[customKeyGest[playerName]].."]</a></p>", playerName, 465, 160, 150, 20, theme.button, theme.button_border, theme.opacity)
1207
    ui.addTextArea(id["redefinir_help"], "<a href='event:callbackBindHelp'><font color='#BABD2F'>["..text.redefinir.."]</font></a>", playerName, 175, 200, 120, 20, theme.background, theme.background, 0f)
1208
    ui.addTextArea(id["bind_help_label"], text.bind_help_label, playerName, 240, 200, 225, 20, theme.background, theme.background, 0f)
1209
    ui.addTextArea(id["bind_help"], "<p align='center'>["..Key[customKeyHelp[playerName]].."]</p>", playerName, 465, 200, 150, 20, theme.button, theme.button_border, theme.opacity)
1210
    ui.addTextArea(id["redefinir_settings"], "<a href='event:callbackBindSettings'><font color='#BABD2F'>["..text.redefinir.."]</font></a>", playerName, 175, 240, 120, 20, theme.background, theme.background, 0f)
1211
    ui.addTextArea(id["bind_settings_label"], text.bind_settings_label, playerName, 240, 240, 225, 20, theme.background, theme.background, 0f)
1212
    ui.addTextArea(id["bind_settings"], "<p align='center'>["..Key[customKeySettings[playerName]].."]</p>", playerName, 465, 240, 150, 20, theme.button, theme.button_border, theme.opacity)
1213
    ui.addTextArea(id["redefinir_themes"], "<a href='event:callbackBindThemes'><font color='#BABD2F'>["..text.redefinir.."]</font></a>", playerName, 175, 280, 120, 20, theme.background, theme.background, 0f)
1214
    ui.addTextArea(id["bind_themes_label"], text.bind_themes_label, playerName, 240, 280, 225, 20, theme.background, theme.background, 0f)
1215
    ui.addTextArea(id["bind_themes"], "<p align='center'>["..Key[customKeyThemes[playerName]].."]</p>", playerName, 465, 280, 150, 20, theme.button, theme.button_border, theme.opacity)
1216
  end
1217
end
1218
1219
function displayThemes(doClose, playerName)
1220
  if doClose then
1221
    ui.removeTextArea(id["main_themes"])
1222
    ui.removeTextArea(id["close_themes"])
1223
    ui.removeTextArea(id["classic_theme"])
1224
    ui.removeTextArea(id["dark_theme"])
1225
  else
1226
    ui.addTextArea(id["main_themes"], "<p align='center'><font color='#C2C2DA' size='25' >"..text.themes_label.."</font><br><br>"..text.themes_main, playerName, 250, 140, 300, 120, theme.background, theme.bg_border, theme.opacity)
1227
    ui.addTextArea(id["close_themes"], "<font size='15'><a href='event:callbackCloseThemes'>x</a></font>", playerName, 256, 145, 20, 20, theme.background, theme.background, 0f)
1228
    ui.addTextArea(id["classic_theme"], "<p align='center'><a href='event:callbackThemeClassic'>"..text.classicTheme.."</a></p>", playerName, 270, 220, 120, 20, theme.button, theme.button_border, theme.opacity)
1229
    ui.addTextArea(id["dark_theme"], "<p align='center'><a href='event:callbackThemeDark'>"..text.darkTheme.."</a></p>", playerName, 410, 220, 120, 20, theme.button, theme.button_border, theme.opacity)
1230
  end
1231
end
1232
1233
function displayCredits()
1234
  ui.addTextArea(id["credits"], text.credits.." Deathmatic & Allounett", NIL, 5, 380, 400, 20, 0x6A7495, 0x6A7495, 0f)
1235
end
1236
1237
function displayHeader()
1238
  local currentMap = {}
1239
1240
  if tfm.get.room.xmlMapInfo ~= nil then
1241
    if tfm.get.room.xmlMapInfo.author ~= nil then
1242
      currentMap.code = tfm.get.room.currentMap
1243
      currentMap.auteur = tfm.get.room.xmlMapInfo.author
1244
    else
1245
      currentMap.auteur = "Inconnu"
1246
    end
1247
  end
1248
  
1249
  local codetmp = string.gsub(currentMap.code, "@", "")
1250
  codetmp = tonumber(codetmp)
1251
  
1252
  if codetmp < 900 then
1253
    tfm.exec.setUIMapName(currentMap.code.." <font color='#60608F'>|</font>   <font color='#C2C2DA'>"..text.minijeu_label.." :</font> <font color='#E5C66C'>"..keyWord.."</font>")  
1254
  else
1255
    tfm.exec.setUIMapName(currentMap.auteur.." <font color='#6C77C1'>- "..currentMap.code.." </font><font color='#60608F'>|</font>   <font color='#C2C2DA'>"..text.minijeu_label.." :</font> <font color='#E5C66C'>"..keyWord.."</font>")
1256
  end
1257
end
1258
1259
function displayQueue()
1260
  local qvalue = ""
1261
  local opacity = 0f
1262
  local height = 8
1263
  
1264
  if #queue~=0 then
1265
    opacity = 0.5f
1266
    for id,map in pairs(queue) do
1267
      qvalue = qvalue.."<J> ["..id.."] : <N>"..map.."<br />"
1268
      height = height + 13
1269
    end
1270
  end
1271
    
1272
  ui.addTextArea(id["main_queue"], qvalue, nil, 5, 25, 100, height, 0x010101, 0xFFFFFF, opacity)
1273
end
1274
1275
function askQuestion(question, player, isNext)
1276
  if not isNext then
1277
    ui.addTextArea(id["question_quizz"], "<p align='center'><font size='18'>"..question.."</font></p>", player, 225, 100, 350, 150, 0x010101, 0x010101, 1f)
1278
  end
1279
end
1280
1281
function updateWindow(windowId, player)
1282
  if windowId==id["gest_window"] then
1283
    if isGestOpen[player] ~= nil then
1284
      if isGestOpen[player] == true then
1285
        displayGestionnaire(true, player)
1286
        isGestOpen[player] = false
1287
      else
1288
        displayGestionnaire(false, player)
1289
        isGestOpen[player] = true
1290
      end
1291
    end
1292
    
1293
  elseif windowId==id["help_window"] then
1294
    if isHelpOpen[player] ~= nil then
1295
      if isHelpOpen[player] == true then
1296
        displayHelp(true, player)
1297
        isHelpOpen[player] = false
1298
      else
1299
        displayHelp(false, player)
1300
        isHelpOpen[player] = true
1301
      end
1302
    end
1303
    
1304
  elseif windowId==id["settings_window"] then
1305
    if isSettingsOpen[player] ~= nil then
1306
      if isSettingsOpen[player] == true then
1307
        displaySettings(true, player)
1308
        isSettingsOpen[player] = false
1309
      else
1310
        displaySettings(false, player)
1311
        isSettingsOpen[player] = true
1312
      end
1313
    end
1314
    
1315
  elseif windowId==id["themes_window"] then
1316
    if isThemesOpen[player] ~= nil then
1317
      if isThemesOpen[player] == true then
1318
        displayThemes(true, player)
1319
        isThemesOpen[player] = false
1320
      else
1321
        displayThemes(false, player)
1322
        isThemesOpen[player] = true
1323
      end
1324
    end
1325
  end
1326
end
1327
1328
function activate(target)
1329
  if target=="bootcamp" then
1330
    fly = false
1331
    chamane = false
1332
    vampire = false
1333
    survivor = false
1334
    quizz = false
1335
    robber = false
1336
      
1337
    bootcamp = true
1338
    keyWord = "Bootcamp"
1339
      
1340
    tfm.exec.disableAutoScore(true)
1341
    tfm.exec.disableAutoShaman(true)
1342
    tfm.exec.disableAutoTimeLeft(true)
1343
    tfm.exec.disableAutoNewGame(true)
1344
    tfm.exec.disableAfkDeath(true)
1345
    tfm.exec.disableAllShamanSkills(false)
1346
    tfm.exec.newGame(bootcampMaps[math.random(#bootcampMaps)])
1347
    tfm.exec.setGameTime(bootcampDuration)
1348
  
1349
  elseif target=="chamane" then
1350
    fly = false
1351
		vampire = false
1352
    bootcamp = false
1353
    survivor = false
1354
    quizz = false
1355
    robber = false
1356
      
1357
		chamane = true
1358
    keyWord = "Shaman"
1359
1360
		tfm.exec.disableAutoShaman(true)
1361
    tfm.exec.disableAutoNewGame(true)
1362
    tfm.exec.disableAllShamanSkills(false)
1363
    tfm.exec.disableAfkDeath(true)
1364
    tfm.exec.newGame(tfm.get.room.currentMap)
1365
    
1366
  elseif target=="fly" then
1367
    chamane = false
1368
		vampire = false
1369
    bootcamp = false
1370
    survivor = false
1371
    quizz = false
1372
    robber = false
1373
      
1374
		fly = true
1375
    keyWord = "Fly"
1376
1377
    tfm.exec.disableAutoShaman(true)
1378
    tfm.exec.disableAllShamanSkills(false)
1379
    tfm.exec.disableAutoNewGame(true)
1380
    tfm.exec.disableAfkDeath(true)    
1381
		tfm.exec.newGame(tfm.get.room.currentMap)
1382
    
1383
    
1384
  elseif target=="vampire" then 
1385
    fly = false
1386
    chamane = false
1387
    bootcamp = false
1388
    survivor = false
1389
    quizz = false
1390
    robber = false
1391
      
1392
    hasVampired = false
1393
    hasEndVampired = false
1394
    vampire = true
1395
    keyWord = "Vampire"
1396
1397
    tfm.exec.disableAutoShaman(true)
1398
    tfm.exec.disableAutoNewGame(true)
1399
    tfm.exec.disableAfkDeath(true)
1400
    tfm.exec.disableAllShamanSkills(false)
1401
1402
    tfm.exec.newGame(vampireMaps[math.random(#vampireMaps)])
1403
    
1404
    for p,_ in pairs(tfm.get.room.playerList) do
1405
      tfm.exec.giveMeep(p)
1406
    end
1407
  
1408
  elseif target=="survivor" then
1409
    fly = false
1410
    chamane = false
1411
    bootcamp = false
1412
    vampire = false
1413
    quizz = false
1414
    robber = false
1415
      
1416
    survivor = true
1417
    keyWord = "Survivor"
1418
    
1419
    tfm.exec.disableAutoScore(true)
1420
    tfm.exec.disableAutoNewGame(true)
1421
    tfm.exec.disableAutoShaman(false)
1422
    tfm.exec.disableAllShamanSkills(true)
1423
    tfm.exec.disableAfkDeath(false)
1424
    tfm.exec.newGame(survivorMaps[math.random(#survivorMaps)])
1425
    
1426
    for p,_ in pairs(tfm.get.room.playerList) do
1427
      tfm.exec.setPlayerScore(p, 0, false)
1428
    end
1429
  
1430
  elseif target=="quizz" then
1431
    fly = false
1432
    chamane = false
1433
    bootcamp = false
1434
    vampire = false
1435
    survivor = false
1436
    robber = false
1437
      
1438
    quizz = true
1439
    keyWord = "Quizz !"
1440
    
1441
    tfm.exec.disableAutoScore(true)
1442
    tfm.exec.disableAutoNewGame(true)
1443
    tfm.exec.disableAutoShaman(true)
1444
    tfm.exec.disableAllShamanSkills(true)
1445
    tfm.exec.disableAfkDeath(true)
1446
    tfm.exec.newGame(quizzMaps[math.random(#quizzMaps)])
1447
  
1448
  elseif target=="robber" then
1449
    fly = false
1450
    chamane = false
1451
    bootcamp = false
1452
    vampire = false
1453
    survivor = false
1454
    quizz = false
1455
      
1456
    robber = true
1457
    keyWord = "Cheese robber !"
1458
  
1459
    tfm.exec.disableAfkDeath(false)
1460
    tfm.exec.disableAutoShaman(false)
1461
    tfm.exec.disableAutoNewGame(true)
1462
    tfm.exec.disableAutoScore(false)
1463
    tfm.exec.disableAllShamanSkills(true)
1464
    tfm.exec.disableAutoTimeLeft(false)
1465
    tfm.exec.newGame(robberMaps[math.random(#robberMaps)])
1466
  else
1467
    if quizz==true then
1468
      ui.removeTextArea(id["question_quizz"], nil)
1469
      ui.removeTextArea(id["quizz_rebours"], nil)
1470
      ui.removeTextArea(id["bravo_quizz"], nil)
1471
      ui.removeTextArea(id["time_quizz"], nil)
1472
    end
1473
    
1474
    if target==nil then
1475
      queue = {}
1476
      
1477
      for p,_ in pairs(tfm.get.room.playerList) do
1478
        tfm.exec.setPlayerScore(p, 0, false)
1479
      end
1480
    end
1481
    
1482
    vampire = false
1483
    chamane = false
1484
    fly = false
1485
    bootcamp = false
1486
    survivor = false
1487
    quizz = false
1488
    robber = false
1489
    
1490
    keyWord = text.aucun
1491
    
1492
    hasVampired = false
1493
    hasEndVampired = false
1494
    
1495
    currentQuestion = nil
1496
    quizzTimer = 0
1497
    hasPosedQuestion = false
1498
    questionTime = 0
1499
    hasAnswered = false
1500
    hasWonQuiz = false
1501
    
1502
    tfm.exec.disableAfkDeath(false)
1503
    tfm.exec.disableAutoShaman(false)
1504
    tfm.exec.disableAutoNewGame(false)
1505
    tfm.exec.disableAutoScore(false)
1506
    tfm.exec.disableAllShamanSkills(false)
1507
    tfm.exec.disableAutoTimeLeft(false)
1508
    tfm.exec.newGame(target)
1509
  end
1510
end
1511
1512
function isActivated(target)
1513
  if target=="bootcamp" then if bootcamp then return true end
1514
  elseif target=="vampire" then if vampire then return true end 
1515
  elseif target=="survivor" then if survivor then return true end 
1516
  elseif target=="chamane" then if chamane then return true end 
1517
  elseif target=="fly" then if fly then return true end 
1518
  elseif target=="quizz" then if quizz then return true end 
1519
  elseif target=="robber" then if robber then return true end 
1520
  else if bootcamp or vampire or survivor or chamane or fly or quizz or robber then return true end end
1521
  
1522
  return false
1523
end
1524
1525
function changeLanguage(language)
1526
  if language=="fr" then
1527
    lang_name = "fr"
1528
    text = lang.fr
1529
  else
1530
    lang_name = "en"
1531
    text = lang.en
1532
  end
1533
  
1534
  if not isActivated(nil) then keyWord = text.aucun end
1535
  displayHeader()
1536
  displayCredits()
1537
  
1538
  for p,_ in pairs(tfm.get.room.playerList) do
1539
    if isGestOpen[p] == true then
1540
      updateWindow(id["gest_window"], p)
1541
      updateWindow(id["gest_window"], p)
1542
    end
1543
    
1544
    if isHelpOpen[p] == true then
1545
      updateWindow(id["help_window"], p)
1546
      updateWindow(id["help_window"], p)
1547
    end
1548
    
1549
    if isSettingsOpen[p] == true then
1550
      updateWindow(id["settings_window"], p)
1551
      updateWindow(id["settings_window"], p)
1552
    end
1553
    
1554
    if isThemesOpen[p] == true then
1555
      updateWindow(id["themes_window"], p)
1556
      updateWindow(id["themes_window"], p)
1557
    end
1558
  end
1559
end
1560
1561
function changeTheme(theme_target)
1562
  if theme_target=="dark" then
1563
    theme = themes.dark
1564
  else
1565
    theme = themes.classic
1566
  end
1567
  
1568
  for p,_ in pairs(tfm.get.room.playerList) do
1569
    if isGestOpen[p] == true then
1570
      updateWindow(id["gest_window"], p)
1571
      updateWindow(id["gest_window"], p)
1572
    end
1573
    
1574
    if isHelpOpen[p] == true then
1575
      updateWindow(id["help_window"], p)
1576
      updateWindow(id["help_window"], p)
1577
    end
1578
    
1579
    if isSettingsOpen[p] == true then
1580
      updateWindow(id["settings_window"], p)
1581
      updateWindow(id["settings_window"], p)
1582
    end
1583
    
1584
    if isThemesOpen[p] == true then
1585
      updateWindow(id["themes_window"], p)
1586
    end
1587
  end
1588
end
1589
1590
function randomQuestion()
1591
  local tmpquestions = {}
1592
  
1593
  for quast,_ in pairs(bddquiz) do
1594
    table.insert(tmpquestions, quast)
1595
  end
1596
  
1597
  index = math.random(1, #tmpquestions)
1598
  question = tmpquestions[index]
1599
  return question
1600
end
1601
1602
function table.random(t, associative)
1603
	associative = associative or false
1604
	if associative then
1605
		local t2 = {}
1606
		for k in pairs(t) do
1607
			t2[#t2 + 1] = k
1608
		end
1609
		return t[table.random(t2)]
1610
	else
1611
		return t[math.random(1,#t)]
1612
	end
1613
end
1614
1615
function randomPlayer()
1616
  return table.random(tfm.get.room.playerList, true)
1617
end
1618
1619
activate(nil)