Added Bonus Island III
[supertux.git] / data / levels / bonus3 / default.nut
1 //INITIALIZATION OF STATE VARIABLES
2 key_names <- [ "darkness" "unlicensed"]
3
4 if(!("keys" in state)){
5   state.keys <- {};
6   foreach(name in key_names){
7     state.keys[name] <- false;
8   }
9   print("[DEBUG] key state initialized\n");
10 }
11
12 status <- state.keys;
13
14 function set_darkness(night){
15   dark.fade(night ? 0.6 : 0, 1);
16   status.darkness <- night;
17   save_keys();
18 }
19
20 function set_unlicensed(under){
21   if(true||!(under && status.unlicensed)){
22     speed <- 0.5;
23     pathing.fade(under ? 0 : 1, speed);
24     land_detail_far.fade(under ? 0 : 1, speed);
25     land_detail_near.fade(under ? 0 : 1, speed);
26     foreground_far.fade(under ? 0 : 1, speed);
27     foreground_near.fade(under ? 0 : 1, speed);
28     map.fade(under ? 0 : 1, speed);
29     exit.fade(under ? 0 : (outpath ? 1 : 1), speed);
30     noexit.fade(under ? 0 : (outpath ? 0 : 0), speed);
31     u_pathing.fade(under ? 1 : 0, speed);
32     u_map.fade(under ? 1 : 0, speed);
33     u_background.fade(under ? 1 : 0, speed);
34     u_foreground.fade(under ? 1 : 0, speed);
35     status.unlicensed <- under;
36     save_keys();
37     //print("[DEBUG] un "+under+"\n");
38     play_music(under ? "music/voc-night.music" : "music/voc-daytime2.music");
39   }
40 }
41
42 function query(item){return status[item];}
43
44 function fire_bonus(){
45   Tux.deactivate();
46   Tux.add_bonus("fireflower");
47   play_sound("sounds/fire-flower.wav");
48   print("fire bonus added\n");
49   wait(1);
50   Effect.fade_out(2);
51   wait(2);
52   Level.finish(true);
53 }
54
55 function ice_bonus(){
56   Tux.deactivate();
57   Tux.add_bonus("iceflower");
58   play_sound("sounds/fire-flower.wav");
59   print("ice bonus added\n");
60   wait(1);
61   Effect.fade_out(2);
62   wait(2);
63   Level.finish(true);
64 }
65
66 function save_keys(){state.keys <- status;}
67
68 function reset_keys(){
69   foreach(name in key_names){
70     status[name] <- false;
71   }
72   save_keys();
73 }
74
75 if("map" in this){
76   outpath <- state.worlds["levels/bonus3/worldmap.stwm"].levels["sever_escape.stl"].solved;
77   set_darkness(status.darkness);
78   set_unlicensed(status.unlicensed);
79   wait(0.1);
80   if(!status.unlicensed){
81     exit.fade(outpath ? 1 : 0, 0);
82     noexit.fade(outpath ? 0 : 1, 0);
83   }
84   //print("[DEBUG] map set\n");
85 }