1 HedgewarsScriptLoad("/Scripts/Locale.lua") |
|
2 HedgewarsScriptLoad("/Scripts/Animate.lua") |
|
3 |
|
4 -----------------------------Map-------------------------------------- |
|
5 local map = |
|
6 { |
|
7 "\0\91\4\253\131\0\88\0\46\0\0\91\0\49\131\15\196\0\53\0\15\196\0\53\131\15\196\4\250\0\255\242\7\179\131\1\128\7\214\0", |
|
8 "\1\113\7\207\131\3\182\7\157\0\3\175\7\143\131\6\58\7\200\0\6\76\7\193\131\6\188\7\129\0\6\188\7\129\131\6\248\6\216\0", |
|
9 "\6\248\6\216\131\7\52\8\14\0\10\206\8\0\131\11\203\6\65\0\11\203\6\65\131\12\18\7\66\0\12\18\7\69\131\16\0\7\69\0", |
|
10 "\0\109\1\1\131\2\111\0\49\0\2\111\0\49\131\3\133\1\18\0\3\140\1\18\131\4\162\0\165\0\4\162\0\165\131\5\135\1\29\0", |
|
11 "\5\145\1\22\131\8\84\0\232\0\8\84\0\232\131\9\26\0\70\0\9\26\0\70\131\10\5\1\4\0\10\48\0\243\131\10\2\1\8\0", |
|
12 "\10\58\0\243\131\10\118\1\15\0\10\118\1\15\131\10\234\1\173\0\11\10\1\177\131\12\11\1\22\0\12\39\1\40\131\12\243\2\9\0", |
|
13 "\12\243\2\9\131\13\106\0\165\0\13\131\0\176\131\15\186\1\78\0\1\244\0\81\136\0\120\0\84\0\1\99\0\123\137\0\130\0\215\0", |
|
14 "\0\158\0\130\143\0\158\0\130\0\2\216\0\88\138\4\165\0\102\0\4\91\0\127\142\3\129\0\197\0\3\69\0\134\142\3\69\0\134\0", |
|
15 "\4\215\0\120\143\8\88\0\134\0\8\187\0\84\139\8\187\0\84\0\8\239\0\70\135\8\239\0\70\0\8\60\0\187\138\5\99\0\222\0", |
|
16 "\5\61\0\197\138\5\61\0\197\0\9\99\0\81\137\10\23\0\218\0\9\187\0\77\137\11\31\1\117\0\10\30\0\88\137\15\161\0\109\0", |
|
17 "\15\126\0\225\144\13\177\0\116\0\15\150\0\144\139\15\157\1\26\0\10\202\0\169\152\12\246\0\169\0\10\72\0\144\145\11\122\1\36\0", |
|
18 "\11\17\1\121\141\11\17\1\121\0\12\229\1\194\138\12\229\1\194\0\12\208\1\85\150\12\208\1\85\0\12\148\1\15\147\12\148\1\15\0", |
|
19 "\13\145\0\208\147\13\145\0\208\0\6\238\7\45\135\7\10\7\238\0\6\220\7\150\135\6\206\7\242\0\6\174\7\175\135\6\135\8\7\0", |
|
20 "\6\118\7\214\135\6\62\7\238\0\6\30\7\245\140\3\217\7\210\0\3\161\7\221\138\255\252\7\231\0\15\242\7\165\148\11\115\7\175\0", |
|
21 "\11\196\6\164\138\11\10\8\4\0\11\210\7\31\141\11\210\7\31\0\14\216\2\72\166\14\216\2\72\0\14\213\4\4\166\14\213\4\4\0", |
|
22 "\13\216\1\159\148\13\216\1\159\0\13\159\2\143\148\13\159\2\143\0\13\230\3\69\145\13\230\3\69\0\13\163\4\11\145\13\166\4\11\0", |
|
23 "\13\237\4\208\145\13\237\4\208\0\14\195\5\61\145\14\195\5\61\0\13\78\1\254\136\13\78\1\254\0\12\239\2\93\136\12\239\2\93\0", |
|
24 "\12\250\2\227\136\12\250\2\227\0\13\71\3\59\136\13\71\3\59\0\13\1\3\168\136\13\1\3\168\0\12\243\4\32\136\12\246\4\32\0", |
|
25 "\13\40\4\130\136\13\43\4\134\0\13\92\4\243\136\13\92\4\243\0\13\142\5\135\136\13\142\5\135\0\14\33\5\106\136\14\33\5\106\0", |
|
26 "\14\111\5\208\136\14\121\5\216\0\15\13\5\237\136\15\13\5\237\0\15\73\5\128\136\15\73\5\128\0\15\84\4\243\136\15\84\4\243\0", |
|
27 "\14\199\6\33\133\14\199\6\33\0\14\97\6\44\133\14\83\6\44\0\14\9\5\240\133\14\9\5\240\0\13\226\5\163\133\13\226\5\163\0", |
|
28 "\13\170\5\233\133\13\170\5\233\0\13\71\5\205\133\13\71\5\205\0\13\61\5\117\133\13\61\5\117\0\13\22\5\40\133\13\22\5\40\0", |
|
29 "\12\253\4\211\133\12\253\4\211\0\12\197\4\169\133\12\197\4\169\0\12\204\4\106\133\12\204\4\106\0\12\162\4\46\133\12\162\4\42\0", |
|
30 "\12\194\3\200\133\12\194\3\196\0\12\201\3\84\133\12\201\3\84\0\12\253\3\62\133\12\253\3\62\0\12\169\2\241\133\12\169\2\241\0", |
|
31 "\12\187\2\167\133\12\187\2\167\0\12\158\2\93\133\12\158\2\93\0\12\162\2\9\133\12\162\2\9\0\12\123\1\205\132\12\123\1\205\0", |
|
32 "\12\84\1\251\132\12\84\1\251\0\12\91\2\55\132\12\95\2\55\0\12\63\2\139\132\12\63\2\139\0\12\120\2\164\132\12\120\2\164\0", |
|
33 "\12\81\2\206\132\12\81\2\206\0\12\106\3\17\132\12\109\3\20\0\12\137\3\73\132\12\137\3\73\0\12\84\3\122\132\12\84\3\122\0", |
|
34 "\12\137\3\150\132\12\137\3\150\0\12\95\3\217\132\12\95\3\217\0\12\134\3\231\132\12\134\3\231\0\12\106\4\63\132\12\106\4\63\0", |
|
35 "\12\137\4\120\132\12\141\4\120\0\12\88\4\179\132\12\88\4\183\0\12\134\4\190\132\12\134\4\190\0\12\158\4\232\132\12\165\4\232\0", |
|
36 "\12\215\5\15\132\12\215\5\15\0\12\91\4\243\130\12\91\4\243\0\12\144\5\26\130\12\144\5\26\0\12\176\5\54\130\12\176\5\54\0", |
|
37 "\12\225\5\82\130\12\225\5\82\0\13\4\5\117\130\13\1\5\117\0\12\239\5\166\130\12\239\5\166\0\13\8\5\184\130\13\11\5\184\0", |
|
38 "\13\8\5\226\130\13\8\5\226\0\13\54\6\12\130\13\57\6\12\0\13\106\6\2\130\13\106\5\254\0\13\138\6\12\130\13\138\6\12\0", |
|
39 "\13\184\6\30\130\13\187\6\30\0\13\223\5\254\130\13\223\5\254\0\13\149\6\69\130\13\145\6\69\0\13\128\6\33\130\13\128\6\33\0", |
|
40 "\13\85\6\40\130\13\85\6\40\0\12\232\6\2\130\12\232\6\2\0\12\204\5\205\130\12\204\5\201\0\12\183\5\159\130\12\183\5\156\0", |
|
41 "\12\211\5\128\130\12\211\5\128\0\12\165\5\103\130\12\165\5\103\0\12\123\5\64\130\12\120\5\64\0\12\81\5\71\130\12\81\5\71\0", |
|
42 "\12\84\5\18\130\12\84\5\18\0\12\39\4\243\130\12\39\4\243\0\12\35\4\194\130\12\35\4\194\0\12\63\4\127\130\12\63\4\127\0", |
|
43 "\12\91\4\106\130\12\91\4\106\0\12\53\4\60\130\12\53\4\60\0\12\74\4\25\130\12\84\4\21\0\12\120\4\4\130\12\120\4\4\0", |
|
44 "\12\42\3\231\130\12\42\3\231\0\12\39\3\189\130\12\42\3\186\0\12\60\3\175\130\12\60\3\175\0\12\39\3\133\130\12\39\3\133\0", |
|
45 "\12\70\3\73\130\12\70\3\73\0\12\25\3\77\130\12\25\3\77\0\12\42\3\13\130\12\46\3\13\0\12\81\3\31\130\12\81\3\31\0", |
|
46 "\12\32\2\213\130\12\32\2\213\0\12\14\2\178\130\12\14\2\178\0\12\42\2\181\130\12\46\2\181\0\12\14\2\128\130\12\14\2\128\0", |
|
47 "\12\39\2\100\130\12\42\2\100\0\12\74\2\104\130\12\77\2\104\0\12\106\2\135\130\12\109\2\135\0\12\39\2\72\130\12\39\2\69\0", |
|
48 "\12\35\2\37\130\12\35\2\37\0\12\32\2\2\130\12\32\2\2\0\12\28\1\226\130\12\28\1\223\0\12\63\1\208\130\12\63\1\208\0", |
|
49 "\12\84\1\173\130\12\84\1\170\0\12\63\1\159\130\12\60\1\159\0\12\39\1\113\130\12\39\1\113\0\12\14\1\96\130\12\11\1\96\0", |
|
50 "\11\228\1\131\130\11\228\1\135\0\12\7\1\149\130\12\7\1\149\0\12\21\1\177\130\12\25\1\177\0\11\242\1\201\130\11\242\1\201\0", |
|
51 "\13\226\6\58\130\13\226\6\58\0\14\16\6\40\130\14\16\6\40\0\13\208\6\86\130\13\208\6\86\0\13\247\6\111\130\13\247\6\114\0", |
|
52 "\13\184\6\121\130\13\184\6\121\0\13\198\6\146\130\13\201\6\146\0\13\244\6\139\130\13\244\6\139\0\13\223\6\185\130\13\223\6\185\0", |
|
53 "\13\173\6\199\130\13\173\6\199\0\13\159\6\171\130\13\159\6\171\0\13\138\6\220\130\13\138\6\220\0\13\184\6\238\130\13\184\6\238\0", |
|
54 "\13\208\6\223\130\13\208\6\223\0\13\216\7\10\130\13\216\7\10\0\13\184\7\10\130\13\180\7\10\0\13\142\7\38\130\13\142\7\41\0", |
|
55 "\13\128\7\6\130\13\128\7\6\0\13\85\7\34\130\13\89\7\34\0\13\89\7\3\130\13\89\7\3\0\13\117\6\220\130\13\121\6\220\0", |
|
56 "\13\75\6\195\130\13\75\6\195\0\13\110\6\164\130\13\110\6\164\0\13\156\6\125\130\13\156\6\125\0\13\106\6\135\130\13\106\6\135\0", |
|
57 "\13\103\6\100\130\13\103\6\100\0\13\64\6\143\130\13\64\6\143\0\13\47\6\104\130\13\47\6\104\0\13\71\6\79\130\13\71\6\79\0", |
|
58 "\13\40\6\65\130\13\36\6\65\0\13\8\6\44\130\13\1\6\44\0\13\8\6\76\130\13\8\6\76\0\13\1\6\132\130\13\1\6\132\0", |
|
59 "\13\33\6\135\130\13\33\6\135\0\13\26\6\178\130\13\22\6\178\0\13\47\6\202\130\13\50\6\202\0\13\54\6\245\130\13\54\6\245\0", |
|
60 "\13\22\7\3\130\13\22\7\3\0\13\43\7\27\130\13\43\7\27\0\12\253\6\248\130\12\250\6\248\0\12\253\6\220\130\12\253\6\220\0", |
|
61 "\12\215\6\174\130\12\225\6\174\0\12\253\6\174\130\12\253\6\174\0\12\215\6\121\130\12\215\6\121\0\12\229\6\76\130\12\229\6\76\0", |
|
62 "\12\201\6\51\130\12\201\6\51\0\12\190\6\19\130\12\190\6\19\0\12\151\5\223\130\12\151\5\223\0\12\148\5\194\130\12\151\5\194\0", |
|
63 "\12\155\5\159\130\12\155\5\156\0\12\144\5\121\130\12\144\5\121\0\12\95\5\110\130\12\95\5\110\0\12\102\5\156\130\12\102\5\159\0", |
|
64 "\12\99\5\216\130\12\106\5\219\0\12\148\6\40\130\12\148\6\40\0\12\127\6\19\130\12\127\6\19\0\12\176\6\104\130\12\176\6\104\0", |
|
65 "\12\141\6\72\130\12\141\6\72\0\12\162\6\139\130\12\162\6\143\0\12\172\6\181\130\12\172\6\181\0\12\204\6\216\130\12\208\6\216\0", |
|
66 "\12\201\7\3\130\12\201\7\3\0\12\236\7\24\130\12\236\7\24\0\12\120\6\146\130\12\120\6\146\0\12\123\6\104\130\12\123\6\104\0", |
|
67 "\12\123\6\185\130\12\123\6\185\0\12\162\6\227\130\12\162\6\227\0\12\134\6\241\130\12\134\6\241\0\12\155\7\10\130\12\155\7\10\0", |
|
68 "\12\190\7\41\130\12\190\7\41\0\11\228\1\96\129\11\228\1\96\0\11\200\1\121\129\11\200\1\121\0\11\193\1\156\129\11\196\1\156\0", |
|
69 "\11\221\1\170\129\11\221\1\170\0\11\217\1\208\129\11\217\1\208\0\11\245\1\230\129\11\245\1\230\0\11\245\2\16\129\11\245\2\16\0", |
|
70 "\12\14\2\62\129\12\18\2\62\0\11\242\2\93\129\11\242\2\93\0\11\235\2\178\129\11\235\2\178\0\11\231\2\238\129\11\235\2\238\0", |
|
71 "\12\4\2\252\129\12\4\2\252\0\11\252\3\34\129\11\252\3\34\0\11\235\3\87\129\11\238\3\87\0\12\11\3\119\129\12\11\3\119\0", |
|
72 "\12\4\3\168\129\12\4\3\168\0\11\245\3\200\129\11\245\3\200\0\11\252\3\238\129\11\252\3\242\0\12\11\4\7\129\12\11\4\7\0", |
|
73 "\11\245\4\60\129\11\238\4\60\0\11\224\4\74\129\11\221\4\74\0\11\210\4\137\129\11\210\4\137\0\11\228\4\151\129\11\231\4\151\0", |
|
74 "\11\242\4\130\129\11\242\4\130\0\12\4\4\113\129\12\7\4\113\0\12\28\4\102\129\12\28\4\102\0\12\11\4\141\129\12\11\4\141\0", |
|
75 "\11\249\4\162\129\11\249\4\162\0\11\221\4\116\129\11\221\4\116\0\11\214\4\106\129\11\217\4\102\0\12\4\4\211\129\12\4\4\211\0", |
|
76 "\11\249\5\8\129\11\252\5\8\0\12\39\5\11\129\12\42\5\11\0\12\56\5\50\129\12\60\5\47\0\12\46\5\96\129\12\49\5\96\0", |
|
77 "\12\70\5\113\129\12\70\5\113\0\12\56\5\166\129\12\63\5\166\0\12\70\5\145\129\12\74\5\145\0\12\70\5\194\129\12\77\5\194\0", |
|
78 "\12\70\5\237\129\12\74\5\237\0\12\106\5\240\129\12\109\5\240\0\12\99\6\33\129\12\99\6\33\0\12\88\6\72\129\12\88\6\72\0", |
|
79 "\12\91\6\107\129\12\95\6\107\0\12\77\6\146\129\12\81\6\146\0\12\88\6\181\129\12\91\6\181\0\12\91\6\220\129\12\99\6\220\0", |
|
80 "\12\113\7\10\129\12\116\7\10\0\8\116\4\18\179\8\116\4\18\0\9\205\3\73\156\9\205\3\73\0\10\83\2\146\144\10\83\2\146\0", |
|
81 "\10\153\2\44\136\10\153\2\44\0\10\181\1\240\132\10\181\1\240\0\10\199\1\205\131\10\199\1\205\0\10\209\1\184\129\10\209\1\184\0", |
|
82 "\8\42\2\167\150\8\42\2\167\0\8\53\1\240\141\8\53\1\237\0\8\67\1\135\134\8\67\1\135\0\11\224\5\8\129\11\224\5\8\0", |
|
83 "\11\200\5\8\129\11\200\5\8\0\11\182\5\8\129\11\182\5\8\0\11\154\5\4\129\11\154\5\4\0\11\129\5\8\129\11\129\5\8\0", |
|
84 "\11\119\3\84\129\11\119\3\84\0\11\140\3\87\129\11\140\3\87\0\11\165\3\87\129\11\165\3\87\0\11\182\3\87\129\11\182\3\87\0", |
|
85 "\11\203\3\87\129\11\203\3\87\0\9\33\6\223\132\9\33\8\11\0\9\33\6\188\129\9\33\6\188\0\0\123\1\26\136\0\211\2\223\0", |
|
86 "\0\211\2\223\136\0\120\3\84\0\0\130\3\101\136\0\211\4\53\0\0\204\4\53\136\0\120\4\151\0\0\130\3\193\136\0\127\4\63\0", |
|
87 "\0\130\3\31\136\0\130\1\201\0\0\91\4\253\130\0\91\6\76\0\7\94\3\136\138\7\94\3\136\0\7\24\3\77\135\7\24\3\77\0", |
|
88 "\6\238\3\24\132\6\241\3\24\0\6\223\2\238\131\6\223\2\238\0\6\220\2\209\129\6\220\2\209\0\7\87\4\14\133\7\87\4\14\0", |
|
89 "\7\38\4\0\131\7\38\4\0\0\7\6\3\242\130\7\6\3\242\0\6\241\3\228\129\6\241\3\228\0\6\227\3\217\128\6\227\3\217\0", |
|
90 "\0\109\4\197\135\0\162\5\99\0\0\144\5\121\135\0\123\6\9\0\0\127\5\92\135\0\127\5\92\0\0\127\5\54\135\0\127\5\54\0", |
|
91 "\0\134\6\23\132\0\236\6\97\0\0\236\6\97\132\1\106\6\135\0\1\117\6\135\132\1\177\6\143\0\2\234\7\80\130\3\69\7\80\0", |
|
92 "\3\69\7\80\130\3\84\7\101\0\3\84\7\101\130\3\87\7\129\0\3\87\7\129\130\3\84\7\150\0\0\183\5\103\130\1\92\5\159\0", |
|
93 "\1\11\5\138\130\0\253\5\180\0\0\253\5\180\130\0\158\5\166\0\0\239\4\60\131\1\166\4\95\0\2\104\3\133\131\3\84\3\129\0", |
|
94 "\4\162\2\181\131\4\162\3\147\0\3\115\2\26\131\4\74\2\30\0\2\23\1\54\131\2\230\1\54\0\0\204\2\5\131\1\194\2\5\0", |
|
95 "\4\74\2\33\131\5\226\1\223\0\0\225\5\121\197\1\135\5\163\0\0\204\5\173\197\1\1\5\173\0\0\179\5\152\131\1\57\5\163\0", |
|
96 "\1\57\5\159\131\1\106\5\219\0\0\165\5\226\130\0\253\5\230\0\0\253\5\230\130\1\8\5\159\0\1\254\6\86\131\1\254\6\86\0", |
|
97 "\1\254\6\33\131\1\254\6\33\0\1\254\5\230\131\1\254\5\230\0\1\254\5\170\131\1\254\5\170\0\1\254\5\113\131\1\254\5\113\0", |
|
98 "\1\251\6\5\129\1\251\6\5\0\1\254\5\201\129\1\254\5\201\0\1\254\5\138\129\1\254\5\138\0\1\254\6\58\129\1\254\6\58\0", |
|
99 "\1\254\5\78\129\1\254\5\78\0\2\2\5\40\131\2\2\5\40\0\2\2\4\246\131\2\2\4\246\0\1\237\4\204\131\1\237\4\204\0", |
|
100 "\2\40\4\190\131\2\40\4\190\0\6\160\7\52\223\7\27\7\126\0\1\219\4\172\204\1\219\4\172\0\2\37\4\183\197\2\37\4\183\0", |
|
101 "\3\98\3\122\131\3\126\3\84\0\3\126\3\84\131\3\126\3\52\0\3\126\3\41\131\3\80\3\24\0\3\80\3\24\131\3\112\2\248\0", |
|
102 "\3\112\2\248\131\3\98\2\188\0", |
|
103 } |
|
104 |
|
105 |
|
106 -----------------------------Constants--------------------------------- |
|
107 choiceAccepted = 1 |
|
108 choiceRefused = 2 |
|
109 choiceAttacked = 3 |
|
110 |
|
111 choiceEliminate = 1 |
|
112 choiceSpare = 2 |
|
113 |
|
114 leaksNum = 1 |
|
115 denseNum = 2 |
|
116 waterNum = 3 |
|
117 buffaloNum = 4 |
|
118 chiefNum = 5 |
|
119 girlNum = 6 |
|
120 wiseNum = 7 |
|
121 |
|
122 nativeNames = {loc("Leaks A Lot"), loc("Dense Cloud"), loc("Fiery Water"), |
|
123 loc("Raging Buffalo"), loc("Righteous Beard"), loc("Fell From Grace"), |
|
124 loc("Wise Oak")} |
|
125 |
|
126 nativeUnNames = {loc("Zork"), loc("Steve"), loc("Jack"), |
|
127 loc("Lee"), loc("Elmo"), loc("Rachel"), |
|
128 loc("Muriel")} |
|
129 |
|
130 nativeHats = {"Rambo", "RobinHood", "pirate_jack", "zoo_Bunny", "IndianChief", |
|
131 "tiara", "AkuAku"} |
|
132 |
|
133 nativePos = {257, 1950} |
|
134 |
|
135 cyborgNames = {loc("Syntax Errol"), loc("Segmentation Paul"), loc("Unexpected Igor"), loc("Jeremiah")} |
|
136 cyborgPos = {745, 1847} |
|
137 cyborgsPos = {{2937, 831}, {2945, 1264}, {2335, 1701}, {448, 484}} |
|
138 cyborgsDir = {"Left", "Left", "Left", "Right"} |
|
139 |
|
140 cratePos = { |
|
141 {788, 1919, amGirder, 2}, {412, 1615, amGirder, 1}, |
|
142 {209, 1474, amSniperRifle, 1}, {1178, 637, amDEagle, 1}, |
|
143 {633, 268, amDEagle, 1}, {3016, 1545, amDEagle, 1}, |
|
144 {249, 1377, amRope, 3}, {330, 1018, amGirder, 1}, |
|
145 {888, 647, amRope, 3}, {2116, 337, amRope, 3}, |
|
146 {1779, 948, amRope, 3}, {3090, 1066, amRope, 3}, |
|
147 {947, 480, amBazooka, 3}, {1097, 480, amMortar, 3}, |
|
148 {1139, 451, amSnowball, 3}, {1207, 468, amShotgun, 3}, |
|
149 {1024, 393, amSniperRifle, 2}, {998, 391, amDynamite, 2}, |
|
150 {1024, 343, amRope, 2}, {998, 341, amRope, 2} |
|
151 } |
|
152 reactions = {loc("Yeah, take that!"), loc("Bullseye"), loc("Die, die, die!")} |
|
153 |
|
154 secondPos = {{1010, 510}, {1067, 510}} |
|
155 -----------------------------Variables--------------------------------- |
|
156 natives = {} |
|
157 native = nil |
|
158 |
|
159 cyborgs = {} |
|
160 cyborg = {} |
|
161 cyborgsLeft = 0 |
|
162 |
|
163 gearDead = {} |
|
164 hedgeHidden = {} |
|
165 |
|
166 startAnim = {} |
|
167 killAnim = {} |
|
168 killedAnim = {} |
|
169 |
|
170 freshDead = nil |
|
171 crates = {} |
|
172 cratesNum = 0 |
|
173 jetCrate = nil |
|
174 -----------------------------Animations-------------------------------- |
|
175 function EmitDenseClouds(dir) |
|
176 local dif |
|
177 if dir == "Left" then |
|
178 dif = 10 |
|
179 else |
|
180 dif = -10 |
|
181 end |
|
182 AnimInsertStepNext({func = AnimVisualGear, args = {native, GetX(native) + dif, GetY(native) + dif, vgtSteam, 0, true}, swh = false}) |
|
183 AnimInsertStepNext({func = AnimVisualGear, args = {native, GetX(native) + dif, GetY(native) + dif, vgtSteam, 0, true}, swh = false}) |
|
184 AnimInsertStepNext({func = AnimVisualGear, args = {native, GetX(native) + dif, GetY(native) + dif, vgtSteam, 0, true}, swh = false}) |
|
185 AnimInsertStepNext({func = AnimWait, args = {native, 800}}) |
|
186 AnimInsertStepNext({func = AnimVisualGear, args = {native, GetX(native) + dif, GetY(native) + dif, vgtSteam, 0, true}, swh = false}) |
|
187 AnimInsertStepNext({func = AnimVisualGear, args = {native, GetX(native) + dif, GetY(native) + dif, vgtSteam, 0, true}, swh = false}) |
|
188 AnimInsertStepNext({func = AnimWait, args = {native, 800}}) |
|
189 AnimInsertStepNext({func = AnimVisualGear, args = {native, GetX(native) + dif, GetY(native) + dif, vgtSteam, 0, true}, swh = false}) |
|
190 end |
|
191 |
|
192 function AnimationSetup() |
|
193 startAnim = {} |
|
194 local m = m5DeployedNum |
|
195 table.insert(startAnim, {func = AnimWait, args = {native, 3000}}) |
|
196 table.insert(startAnim, {func = AnimCaption, args = {native, loc("With the rest of the tribe gone, it was up to ") .. nativeNames[m5DeployedNum] .. loc(" to save the village."), 5000}}) |
|
197 table.insert(startAnim, {func = AnimCaption, args = {native, loc("But it proved to be no easy task!"), 2000}}) |
|
198 for i = 1, 4 do |
|
199 table.insert(startAnim, {func = FollowGear, swh = false, args = {cyborgs[i]}}) |
|
200 table.insert(startAnim, {func = AnimWait, args = {native, 1000}}) |
|
201 end |
|
202 table.insert(startAnim, {func = FollowGear, swh = false, args = {native}}) |
|
203 if m == leaksNum then |
|
204 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
205 table.insert(startAnim, {func = AnimSay, args = {native, loc("What a strange cave!"), SAY_THINK, 0}}) |
|
206 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
207 table.insert(startAnim, {func = AnimSay, args = {native, loc("Now how do I get on the other side?!"), SAY_THINK, 5500}}) |
|
208 elseif m == denseNum then |
|
209 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
210 table.insert(startAnim, {func = AnimSay, args = {native, loc("Dude, what's this place?!"), SAY_THINK, 0}}) |
|
211 table.insert(startAnim, {func = AnimCustomFunction, args = {native, EmitDenseClouds, {"Right"}}}) |
|
212 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
213 table.insert(startAnim, {func = AnimSay, args = {native, loc("And where's all the weed?"), SAY_THINK, 4000}}) |
|
214 elseif m == waterNum then |
|
215 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
216 table.insert(startAnim, {func = AnimSay, args = {native, loc("Is this place in my head?"), SAY_THINK, 0}}) |
|
217 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
218 table.insert(startAnim, {func = AnimSay, args = {native, loc("I shouldn't have drunk that last pint."), SAY_THINK, 6000}}) |
|
219 elseif m == buffaloNum then |
|
220 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
221 table.insert(startAnim, {func = AnimSay, args = {native, loc("Where did that alien run?"), SAY_THINK, 0}}) |
|
222 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
223 table.insert(startAnim, {func = AnimSay, args = {native, loc("When I find it..."), SAY_THINK, 3000}}) |
|
224 elseif m == girlNum then |
|
225 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
226 table.insert(startAnim, {func = AnimSay, args = {native, loc("This is typical!"), SAY_THINK, 0}}) |
|
227 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
228 table.insert(startAnim, {func = AnimSay, args = {native, loc("It's always up to women to clear up the mess men created!"), SAY_THINK, 8500}}) |
|
229 elseif m == chiefNum then |
|
230 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
231 table.insert(startAnim, {func = AnimSay, args = {native, loc("What is this place?"), SAY_THINK, 0}}) |
|
232 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
233 table.insert(startAnim, {func = AnimSay, args = {native, loc("It doesn't matter. I won't let that alien hurt my daughter!"), SAY_THINK, 8500}}) |
|
234 elseif m == wiseNum then |
|
235 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 50, 0}}) |
|
236 table.insert(startAnim, {func = AnimSay, args = {native, loc("Every single time!"), SAY_THINK, 0}}) |
|
237 table.insert(startAnim, {func = AnimMove, args = {native, "Right", nativePos[1] + 200, 0}}) |
|
238 table.insert(startAnim, {func = AnimSay, args = {native, loc("How come in a village full of warriors, it's up to me to save it?"), SAY_THINK, 8500}}) |
|
239 end |
|
240 |
|
241 table.insert(startAnim, {func = AnimCustomFunction, args = {native, RestoreHedge, {cyborg, unpack(cyborgPos)}}}) |
|
242 table.insert(startAnim, {func = AnimOutOfNowhere, args = {cyborg, unpack(cyborgPos)}}) |
|
243 table.insert(startAnim, {func = AnimTurn, args = {cyborg, "Left"}}) |
|
244 table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("Greetings, ") .. nativeUnNames[m] .. "!", SAY_SAY, 2500}}) |
|
245 table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("As you can see, there is no way to get on the other side!"), SAY_SAY, 7000}}) |
|
246 table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("I wish to help you, ") .. nativeUnNames[m] .. "!", SAY_SAY, 4000}}) |
|
247 table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("Beware, though! If you are slow, you die!"), SAY_SAY, 7000}}) |
|
248 table.insert(startAnim, {func = AnimDisappear, args = {cyborg, unpack(cyborgPos)}}) |
|
249 table.insert(startAnim, {func = AnimSwitchHog, args = {native}}) |
|
250 table.insert(startAnim, {func = AnimCustomFunction, args = {native, HideHedge, {cyborg}}}) |
|
251 table.insert(startAnim, {func = AnimSay, args = {native, loc("Talk about mixed signals..."), SAY_SAY, 4000}}) |
|
252 AddSkipFunction(startAnim, SkipStartAnim, {}) |
|
253 end |
|
254 |
|
255 function SetupKillAnim() |
|
256 table.insert(killAnim, {func = AnimSay, args = {native, loc("Well, that was a waste of time."), SAY_THINK, 5000}}) |
|
257 table.insert(killAnim, {func = AnimCustomFunction, args = {native, RestoreHedge, {cyborg, unpack(cyborgPos)}}}) |
|
258 table.insert(killAnim, {func = AnimOutOfNowhere, args = {cyborg, unpack(cyborgPos)}}) |
|
259 table.insert(killAnim, {func = AnimCustomFunction, args = {cyborg, CondNeedToTurn, {cyborg, native}}}) |
|
260 table.insert(killAnim, {func = AnimSay, args = {cyborg, loc("You bear impressive skills, ") .. nativeUnNames[m5DeployedNum] .. "!", SAY_SHOUT, 4000}}) |
|
261 table.insert(killAnim, {func = AnimSay, args = {cyborg, loc("However, my mates don't agree with me on letting you go..."), SAY_SHOUT, 7000}}) |
|
262 table.insert(killAnim, {func = AnimSay, args = {cyborg, loc("I guess you'll have to kill them."), SAY_SHOUT, 4000}}) |
|
263 table.insert(killAnim, {func = AnimDisappear, args = {cyborg, unpack(cyborgPos)}}) |
|
264 table.insert(killAnim, {func = AnimSwitchHog, args = {native}}) |
|
265 table.insert(killAnim, {func = AnimWait, args = {native, 1}}) |
|
266 table.insert(killAnim, {func = AnimCustomFunction, args = {native, HideHedge, {cyborg}}}) |
|
267 AddSkipFunction(killAnim, SkipKillAnim, {}) |
|
268 end |
|
269 |
|
270 function SetupKilledAnim() |
|
271 table.insert(killedAnim, {func = AnimWait, args = {cyborg, 500}}) |
|
272 table.insert(killedAnim, {func = AnimOutOfNowhere, args = {cyborg, unpack(secondPos[2])}}) |
|
273 table.insert(killedAnim, {func = AnimOutOfNowhere, args = {native, unpack(secondPos[1])}}) |
|
274 table.insert(killedAnim, {func = AnimCustomFunction, args = {cyborg, CondNeedToTurn, {cyborg, native}}}) |
|
275 table.insert(killedAnim, {func = AnimSay, args = {cyborg, loc("Nice work, ") .. nativeUnNames[m5DeployedNum] .. "!", SAY_SHOUT, 4000}}) |
|
276 table.insert(killedAnim, {func = AnimSay, args = {cyborg, loc("As a reward for your performance, here's some new technology!"), SAY_SHOUT, 8000}}) |
|
277 table.insert(killedAnim, {func = AnimSay, args = {cyborg, loc("Use it wisely!"), SAY_SHOUT, 3000}}) |
|
278 table.insert(killedAnim, {func = AnimDisappear, args = {cyborg, unpack(secondPos[2])}}) |
|
279 table.insert(killedAnim, {func = AnimSwitchHog, args = {native}}) |
|
280 AddSkipFunction(killedAnim, SkipKilledAnim, {}) |
|
281 end |
|
282 --------------------------Anim skip functions-------------------------- |
|
283 function SkipStartAnim() |
|
284 AnimSwitchHog(native) |
|
285 AnimWait(native, 1) |
|
286 AddFunction({func = HideHedge, args = {cyborg}}) |
|
287 end |
|
288 |
|
289 function AfterStartAnim() |
|
290 SetGearMessage(native, 0) |
|
291 cratesNum = 0 |
|
292 for i = 1, 6 do |
|
293 crates[i] = SpawnAmmoCrate(unpack(cratePos[i])) |
|
294 cratesNum = cratesNum + 1 |
|
295 end |
|
296 FollowGear(native) |
|
297 AddNewEvent(CheckGearsDead, {{crates[1], crates[2]}}, PutCrates, {2}, 0) |
|
298 TurnTimeLeft = TurnTime |
|
299 ShowMission(loc("Dragon's Lair"), loc("Obstacle course"), loc("In order to get to the other side, you need to collect the crates first.|") .. |
|
300 loc("As the ammo is sparse, you might want to reuse ropes while mid-air.|") .. |
|
301 loc("If you wish to restart the course, hold [Precise] while your turn ends (e.g with Skip)!|") .. |
|
302 loc("The enemy can't move but it might be a good idea to stay out of sight!|") .. |
|
303 loc("You have ") .. SuddenDeathTurns .. loc(" turns until Sudden Death! Better hurry!"), 1, 0) |
|
304 end |
|
305 |
|
306 function SkipKillAnim() |
|
307 AnimSwitchHog(native) |
|
308 AnimWait(native, 1) |
|
309 AddFunction({func = HideHedge, args = {cyborg}}) |
|
310 end |
|
311 |
|
312 function AfterKillAnim() |
|
313 PutWeaponCrates() |
|
314 TurnTimeLeft = TurnTime |
|
315 AddEvent(CheckCyborgsDead, {}, DoCyborgsDead, {}, 0) |
|
316 ShowMission(loc("Dragon's Lair"), loc("The Slaughter"), loc("Kill the aliens!"), 1, 2000) |
|
317 end |
|
318 |
|
319 function SkipKilledAnim() |
|
320 AnimSetGearPosition(native, unpack(secondPos[1])) |
|
321 AnimSwitchHog(native) |
|
322 AnimWait(native, 1) |
|
323 end |
|
324 |
|
325 function AfterKilledAnim() |
|
326 HideHedge(cyborg) |
|
327 TurnTimeLeft = TurnTime |
|
328 SetGearMessage(native, 0) |
|
329 AddAmmo(native, amPortalGun, 100) |
|
330 SpawnUtilityCrate(2259, 755, amTeleport, 2) |
|
331 SpawnHealthCrate(secondPos[1][1] + 30, secondPos[1][2]) |
|
332 ShowMission(loc("Dragon's Lair"), loc("The what?!"), loc("Use the portal gun to get to the next crate, then use the new gun to get to the final destination!|").. |
|
333 loc("Portal hint: one goes to the destination, and one is the entrance.|").. |
|
334 loc("Teleport hint: just use the mouse to select the destination!"), 1, 0) |
|
335 end |
|
336 -----------------------------Events------------------------------------ |
|
337 |
|
338 function CheckCyborgsDead() |
|
339 return cyborgsLeft == 0 |
|
340 end |
|
341 |
|
342 function NullifyAmmo() |
|
343 AddAmmo(native, amRope, 0) |
|
344 AddAmmo(native, amGirder, 0) |
|
345 AddAmmo(native, amLowGravity, 0) |
|
346 AddAmmo(native, amBazooka, 0) |
|
347 AddAmmo(native, amSniperRifle, 0) |
|
348 AddAmmo(native, amDEagle, 0) |
|
349 AddAmmo(native, amDynamite, 0) |
|
350 AddAmmo(native, amFirePunch, 0) |
|
351 AddAmmo(native, amBaseballBat, 0) |
|
352 AddAmmo(native, amMortar, 0) |
|
353 AddAmmo(native, amSnowball, 0) |
|
354 AddAmmo(native, amShotgun, 0) |
|
355 end |
|
356 |
|
357 function DoCyborgsDead() |
|
358 NullifyAmmo() |
|
359 RestoreHedge(cyborg) |
|
360 SetupKilledAnim() |
|
361 SetGearMessage(CurrentHedgehog, 0) |
|
362 AddAnim(killedAnim) |
|
363 AddFunction({func = AfterKilledAnim, args = {}}) |
|
364 end |
|
365 |
|
366 |
|
367 function PutWeaponCrates() |
|
368 for i = 1, 8 do |
|
369 cratesNum = cratesNum + 1 |
|
370 crates[cratesNum] = SpawnAmmoCrate(unpack(cratePos[cratesNum])) |
|
371 end |
|
372 FollowGear(native) |
|
373 end |
|
374 |
|
375 function DoCratesTaken() |
|
376 SetupKillAnim() |
|
377 SetGearMessage(CurrentHedgehog, 0) |
|
378 AddAnim(killAnim) |
|
379 AddFunction({func = AfterKillAnim, args = {}}) |
|
380 end |
|
381 |
|
382 function PutCrates(index) |
|
383 if index <= 7 then |
|
384 cratesNum = cratesNum + 1 |
|
385 crates[cratesNum] = SpawnUtilityCrate(unpack(cratePos[cratesNum])) |
|
386 AddNewEvent(CheckGearDead, {crates[cratesNum]}, PutCrates, {index + 1}, 0) |
|
387 FollowGear(native) |
|
388 else |
|
389 AddEvent(StoppedGear, {native}, DoCratesTaken, {}, 0) |
|
390 end |
|
391 if index == 4 then |
|
392 AnimSay(native, loc("I'm a ninja."), SAY_THINK, 0) |
|
393 end |
|
394 end |
|
395 |
|
396 function CheckMissionFinished() |
|
397 return gearDead[jetCrate] == true |
|
398 end |
|
399 |
|
400 function DoMissionFinished() |
|
401 AddCaption(loc("Salvation was one step closer now...")) |
|
402 if progress and progress<6 then |
|
403 SaveCampaignVar("Progress", "6") |
|
404 end |
|
405 RestoreHedge(cyborg) |
|
406 DeleteGear(cyborg) |
|
407 TurnTimeLeft = 0 |
|
408 end |
|
409 |
|
410 function CheckGearsDead(gearList) |
|
411 for i = 1, # gearList do |
|
412 if gearDead[gearList[i]] ~= true then |
|
413 return false |
|
414 end |
|
415 end |
|
416 return true |
|
417 end |
|
418 |
|
419 |
|
420 function CheckGearDead(gear) |
|
421 return gearDead[gear] |
|
422 end |
|
423 |
|
424 function EndMission() |
|
425 RestoreHedge(cyborg) |
|
426 DeleteGear(cyborg) |
|
427 TurnTimeLeft = 0 |
|
428 end |
|
429 |
|
430 function CheckFreshDead() |
|
431 return freshDead ~= nil |
|
432 end |
|
433 |
|
434 function CyborgDeadReact() |
|
435 freshDead = nil |
|
436 if cyborgsLeft == 0 then |
|
437 return |
|
438 end |
|
439 AnimSay(native, reactions[cyborgsLeft]) |
|
440 end |
|
441 -----------------------------Misc-------------------------------------- |
|
442 function HideHedge(hedge) |
|
443 if hedgeHidden[hedge] ~= true then |
|
444 HideHog(hedge) |
|
445 hedgeHidden[hedge] = true |
|
446 end |
|
447 end |
|
448 |
|
449 function RestoreHedge(hedge) |
|
450 if hedgeHidden[hedge] == true then |
|
451 RestoreHog(hedge) |
|
452 hedgeHidden[hedge] = false |
|
453 end |
|
454 end |
|
455 |
|
456 function GetVariables() |
|
457 progress = tonumber(GetCampaignVar("Progress")) |
|
458 m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum")) |
|
459 end |
|
460 |
|
461 function SetupPlace() |
|
462 for i = 1, 7 do |
|
463 if i ~= m5DeployedNum then |
|
464 DeleteGear(natives[i]) |
|
465 else |
|
466 native = natives[i] |
|
467 end |
|
468 end |
|
469 HideHedge(cyborg) |
|
470 jetCrate = SpawnUtilityCrate(3915, 1723, amJetpack) |
|
471 |
|
472 SetTimer(AddGear(1071, 1913, gtMine, 0, 0, 0, 0), 5000) |
|
473 SetTimer(AddGear(1098, 1919, gtMine, 0, 0, 0, 0), 5000) |
|
474 SetTimer(AddGear(1136, 1923, gtMine, 0, 0, 0, 0), 5000) |
|
475 SetTimer(AddGear(1170, 1930, gtMine, 0, 0, 0, 0), 5000) |
|
476 SetTimer(AddGear(1203, 1924, gtMine, 0, 0, 0, 0), 5000) |
|
477 SetTimer(AddGear(1228, 1939, gtMine, 0, 0, 0, 0), 5000) |
|
478 SetTimer(AddGear(1264, 1931, gtMine, 0, 0, 0, 0), 5000) |
|
479 SetTimer(AddGear(1309, 1938, gtMine, 0, 0, 0, 0), 5000) |
|
480 SetTimer(AddGear(1352, 1936, gtMine, 0, 0, 0, 0), 5000) |
|
481 SetTimer(AddGear(1386, 1939, gtMine, 0, 0, 0, 0), 5000) |
|
482 SetTimer(AddGear(1432, 1942, gtMine, 0, 0, 0, 0), 5000) |
|
483 SetTimer(AddGear(1483, 1950, gtMine, 0, 0, 0, 0), 5000) |
|
484 SetTimer(AddGear(1530, 1954, gtMine, 0, 0, 0, 0), 5000) |
|
485 SetTimer(AddGear(1579, 1959, gtMine, 0, 0, 0, 0), 5000) |
|
486 SetTimer(AddGear(1000, 1903, gtMine, 0, 0, 0, 0), 5000) |
|
487 SetTimer(AddGear(957, 1903, gtMine, 0, 0, 0, 0), 5000) |
|
488 SetTimer(AddGear(909, 1910, gtMine, 0, 0, 0, 0), 5000) |
|
489 SetTimer(AddGear(889, 1917, gtMine, 0, 0, 0, 0), 5000) |
|
490 ------ STICKY MINE LIST ------ |
|
491 tempG = AddGear(1199, 733, gtSMine, 0, 0, 0, 0) |
|
492 tempG = AddGear(1195, 793, gtSMine, 0, 0, 0, 0) |
|
493 tempG = AddGear(1201, 861, gtSMine, 0, 0, 0, 0) |
|
494 tempG = AddGear(682, 878, gtSMine, 0, 0, 0, 0) |
|
495 tempG = AddGear(789, 876, gtSMine, 0, 0, 0, 0) |
|
496 end |
|
497 |
|
498 function SetupEvents() |
|
499 AddNewEvent(CheckMissionFinished, {}, DoMissionFinished, {}, 0) |
|
500 AddNewEvent(CheckGearDead, {native}, EndMission, {}, 0) |
|
501 AddNewEvent(CheckFreshDead, {}, CyborgDeadReact, {}, 1) |
|
502 end |
|
503 |
|
504 function SetupAmmo() |
|
505 AddAmmo(cyborgs[1], amBazooka, 100) |
|
506 -- AddAmmo(cyborgs[1], amSniperRifle, 100) |
|
507 AddAmmo(cyborgs[1], amShotgun, 100) |
|
508 AddAmmo(cyborgs[1], amSwitch, 100) |
|
509 end |
|
510 |
|
511 function AddHogs() |
|
512 AddTeam(loc("Natives"), 29439, "Bone", "Island", "HillBilly", "cm_birdy") |
|
513 for i = 1, 7 do |
|
514 natives[i] = AddHog(nativeNames[i], 0, 200, nativeHats[i]) |
|
515 gearDead[natives[i]] = false |
|
516 end |
|
517 |
|
518 AddTeam(loc("011101001"), 14483456, "ring", "UFO", "Robot", "cm_star") |
|
519 cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1") |
|
520 gearDead[cyborg] = false |
|
521 |
|
522 AddTeam(loc("011101000"), 14483455, "ring", "UFO", "Robot", "cm_star") |
|
523 for i = 1, 4 do |
|
524 cyborgs[i] = AddHog(cyborgNames[i], 2, 100, "cyborg2") |
|
525 gearDead[cyborgs[i]] = false |
|
526 end |
|
527 cyborgsLeft = 4 |
|
528 |
|
529 for i = 1, 7 do |
|
530 AnimSetGearPosition(natives[i], unpack(nativePos)) |
|
531 end |
|
532 |
|
533 AnimSetGearPosition(cyborg, unpack(cyborgPos)) |
|
534 |
|
535 for i = 1, 4 do |
|
536 AnimSetGearPosition(cyborgs[i], unpack(cyborgsPos[i])) |
|
537 AnimTurn(cyborgs[i], cyborgsDir[i]) |
|
538 end |
|
539 |
|
540 end |
|
541 |
|
542 function CondNeedToTurn(hog1, hog2) |
|
543 xl, xd = GetX(hog1), GetX(hog2) |
|
544 if xl > xd then |
|
545 AnimInsertStepNext({func = AnimTurn, args = {hog1, "Left"}}) |
|
546 AnimInsertStepNext({func = AnimTurn, args = {hog2, "Right"}}) |
|
547 elseif xl < xd then |
|
548 AnimInsertStepNext({func = AnimTurn, args = {hog2, "Left"}}) |
|
549 AnimInsertStepNext({func = AnimTurn, args = {hog1, "Right"}}) |
|
550 end |
|
551 end |
|
552 |
|
553 -----------------------------Main Functions---------------------------- |
|
554 |
|
555 function onGameInit() |
|
556 Seed = 0 |
|
557 GameFlags = gfSolidLand + gfDisableLandObjects + gfDisableWind + gfDisableGirders |
|
558 TurnTime = 60000 |
|
559 CaseFreq = 0 |
|
560 MinesNum = 20 |
|
561 MinesTime = 3000 |
|
562 Explosives = 6 |
|
563 Delay = 10 |
|
564 MapGen = 2 |
|
565 Theme = "City" |
|
566 SuddenDeathTurns = 25 |
|
567 |
|
568 for i = 1, #map do |
|
569 ParseCommand('draw ' .. map[i]) |
|
570 end |
|
571 |
|
572 AddHogs() |
|
573 AnimInit() |
|
574 end |
|
575 |
|
576 function onGameStart() |
|
577 GetVariables() |
|
578 SetupAmmo() |
|
579 SetupPlace() |
|
580 AnimationSetup() |
|
581 SetupEvents() |
|
582 AddAnim(startAnim) |
|
583 AddFunction({func = AfterStartAnim, args = {}}) |
|
584 ShowMission(loc("Dragon's Lair"), loc("Y Chwiliad"), loc("Find your tribe!|Cross the lake!"), 1, 0) |
|
585 end |
|
586 |
|
587 function onGameTick() |
|
588 AnimUnWait() |
|
589 if ShowAnimation() == false then |
|
590 return |
|
591 end |
|
592 ExecuteAfterAnimations() |
|
593 CheckEvents() |
|
594 end |
|
595 |
|
596 function onGearDelete(gear) |
|
597 gearDead[gear] = true |
|
598 if GetGearType(gear) == gtHedgehog then |
|
599 if GetHogTeamName(gear) == loc("011101000") then |
|
600 freshDead = GetHogName(gear) |
|
601 cyborgsLeft = cyborgsLeft - 1 |
|
602 end |
|
603 end |
|
604 end |
|
605 |
|
606 function onAmmoStoreInit() |
|
607 SetAmmo(amFirePunch, 3, 0, 0, 0) |
|
608 SetAmmo(amBaseballBat, 2, 0, 0, 0) |
|
609 SetAmmo(amGirder, 0, 0, 0, 2) |
|
610 SetAmmo(amLowGravity, 0, 0, 0, 1) |
|
611 SetAmmo(amSkip, 9, 0, 0, 0) |
|
612 end |
|
613 |
|
614 function onNewTurn() |
|
615 if AnimInProgress() then |
|
616 TurnTimeLeft = -1 |
|
617 return |
|
618 end |
|
619 if GetHogTeamName(CurrentHedgehog) == loc("011101000") then |
|
620 SetInputMask(band(0xFFFFFFFF, bnot(gmLeft + gmRight + gmLJump + gmHJump))) |
|
621 for i = 1, 4 do |
|
622 if gearDead[CurrentHedgehog] ~= true and gearDead[native] ~= true then |
|
623 if gearDead[cyborgs[i]] ~= true and GetX(cyborgs[i]) < GetX(native) then |
|
624 HogTurnLeft(cyborgs[i], false) |
|
625 else |
|
626 HogTurnLeft(cyborgs[i], true) |
|
627 end |
|
628 end |
|
629 end |
|
630 if TotalRounds % 6 == 0 then |
|
631 AddAmmo(CurrentHedgehog, amSniperRifle, 1) |
|
632 AddAmmo(CurrentHedgehog, amDEagle, 1) |
|
633 end |
|
634 TurnTimeLeft = 30000 |
|
635 elseif GetHogTeamName(CurrentHedgehog) == loc("011101001") then |
|
636 TurnTimeLeft = 0 |
|
637 else |
|
638 SetInputMask(0xFFFFFFFF) |
|
639 AddCaption(loc("Turns until Sudden Death: ") .. SuddenDeathTurns - TotalRounds) |
|
640 end |
|
641 end |
|
642 |
|
643 function onPrecise() |
|
644 if GameTime > 2500 and AnimInProgress() then |
|
645 SetAnimSkip(true) |
|
646 end |
|
647 if AnimInProgress() == false then |
|
648 end |
|
649 end |
|
650 |
|
651 function onPreciseUp() |
|
652 end |
|