#define scr_playerDies // Kill the player and determine if game over // argument0 = X coordinate of player // argument1 = Y coordinate of player // argument2 = offset to calculate new position { var x_offset; var y_offset; x_offset = argument2; y_offset = argument2; var previous_lives; if(obj_playerController.player_lives > 1) { // At least 1 more life with (obj_playerController) { previous_lives = player_lives; // Store current number of lives before playable character destroyed instance_destroy(); // Destory current playable character } // Create new playable character at nearby location to where killed // Can never start with spear if(!place_free(argument0 + argument2, argument1)) // Applying offset to x-coordinate would cause collision so set to 0 x_offset = 0; if(!place_free(argument0, argument1 + argument2)) // Applying offset to y-coordinate would cause collision so set to 0 y_offset = 0; instance_create(argument0 + x_offset, argument1 + y_offset, obj_playerNoSpear); obj_playerController.player_lives = previous_lives - 1; // Lose a life instance_activate_object(Inventory); // Reactivate inventory for new life // Reset each rots feared variable so they can cause fear again. if(instance_exists(obj_rot)) { var r; var rot; for(r = 0; r < instance_number(obj_rot); r += 1) { rot = instance_find(obj_rot, r); rot.feared = 0; } } return false; // Death does not result in game over } else { // Last life lost so jump to Game Over room instance_activate_object(Inventory); // Reactivate inventory so can delete in game over room room_goto(GameOver); // Will destroy all game objects return true; } }