Yeah it's possible. If you want the player to walk on a certain tile at a certain time, use timers & area collide callbacks. Use GetTimerTimeLeft to set the window of time that the tile is safe. If you actually want him/her to have to interact with it, you'll need to change each area's properties. Under the Area tab, add TileCollide as the PlayerInteractCallback, and change the function to TileCollide(string &in entity). This script uses 10 tile areas with timers of 5 seconds each. You can change the timer values. The window of opportunity is 1 second in each direction, so I make the timers use 6 seconds instead.
AddEntityCollideCallback("Player", "tile_*", "TileCollide", true, 1); //put this in OnStart()
void TileCollide(string &in parent, string &in child, int state)
{
AddTimer("tile_1", 6, "TileTimers");
for(int a=1;a<=10;a++) if(child == "tile_"+a) if(GetTimerTimeLeft(child) < 2 && GetTimerTimeLeft(child) != 0) { //Do cool stuff here; if(a < 10)
AddTimer("tile_"+(a+1), 6, "TileTimers"); if(a == 10) { //Do cool stuff here, what will happen when the player touches all tiles successfully!; }
}
void TileTimers(string &in asTimer)
{
//Do cool stuff here, what will happen when the player fails to press or walk on the tile at the right time
}
Not entirely sure if the bolded text will work. Don't add in that part until your map is open in Amnesia. If it doesn't work you'll crash, and you and I and everyone will be sadface panda