var light_on = 0;
function light_toggle()
{
if(light_on == 0)
{
light_on = 1;
return;
}
else
{
light_on = 0;
return;
}
}
action flashlight_pickup()
{
while (player == NULL) {wait (1);}
set(my,PASSABLE);
while (vec_dist (player.x, my.x) > 100) {wait (1);}
set(my,INVISIBLE);
vec_set(my.blue,vector(255,255,170));
set(taschl100_pan,SHOW);
reset(taschl75_pan,SHOW);
reset(taschl50_pan,SHOW);
reset(taschl25_pan,SHOW);
reset(taschl0_pan,SHOW);
set(TaschenLampe_str,SHOW);
wait(-16*zeit);
reset(TaschenLampe_str,SHOW);
on_f = light_toggle();
while (1)
{
while (energy > 0 && light_on == 1) // press the "F" key to use the flashlight
{
my.lightrange = 150;
temp2.x = max_dist * cos(player.pan) * cos(camera.tilt) + player.x;
temp2.y = max_dist * sin(player.pan) * cos(camera.tilt) + player.y;
temp2.z = max_dist * sin(camera.tilt) + player.z;
//trace_mode = IGNORE_MODELS + USE_BOX;
my.skill1 = c_trace (player.x, temp,IGNORE_MODELS | USE_BOX);
if (my.skill1 != 0)
{
temp2.x = (my.skill1 - 30) * cos(player.pan) * cos(camera.tilt) + player.x;
temp2.y = (my.skill1 - 30) * sin(player.pan) * cos(camera.tilt) + player.y;
temp2.z = (my.skill1 - 30) * sin(camera.tilt) + player.z;
vec_set (my.x, temp);
}
energy -= 0.5 * time_step;
wait (1);
if (energy <= 200)
{
set(taschl100_pan,SHOW);
reset(taschl75_pan,SHOW);
reset(taschl50_pan,SHOW);
reset(taschl25_pan,SHOW);
reset(taschl0_pan,SHOW);
}
if (energy <= 150)
{
reset(taschl100_pan,SHOW);
set(taschl75_pan,SHOW);
reset(taschl50_pan,SHOW);
reset(taschl25_pan,SHOW);
reset(taschl0_pan,SHOW);
}
if (energy <= 100)
{
reset(taschl100_pan,SHOW);
reset(taschl75_pan,SHOW);
set(taschl50_pan,SHOW);
reset(taschl25_pan,SHOW);
reset(taschl0_pan,SHOW);
}
if (energy <= 50)
{
reset(taschl100_pan,SHOW);
reset(taschl75_pan,SHOW);
reset(taschl50_pan,SHOW);
set(taschl25_pan,SHOW);
reset(taschl0_pan,SHOW);
}
if (energy <= 1)
{
reset(taschl100_pan,SHOW);
reset(taschl75_pan,SHOW);
reset(taschl50_pan,SHOW);
reset(taschl25_pan,SHOW);
set(taschl0_pan,SHOW);
}
}
my.lightrange = 0;
wait (1);
}
}