-- name: \\#009b00\\TimeToDie\\#009b00\\ -- description: You might wanna be quick! Life is like a box of chocolates, if you're not quick enough, they will all be gone before you know it. local LifeTimer = 0 local LifeTimerActive = true local Ltimer = 0 function Update_LifeTimer() if LifeTimerActive then LifeTimer = LifeTimer + 1 end end function Show_LifeTimer() local Seconds = math.floor(LifeTimer / 30) local Minutes = math.floor(Seconds / 60) Seconds = Seconds % 60 local TimeString = string.format("%02d", Seconds) djui_hud_set_color(0, 155, 0, 255) djui_hud_print_text(TimeString, 150, 125, 3) end function LifeGameOver() local m = gMarioStates[0] if not m or m.marioObj == nil then return end Ltimer = Ltimer + 1 if Ltimer >= 1800 then Ltimer = 0 if m.numLives > 0 then m.numLives = m.numLives - 1 else for i = COURSE_NONE - 1, COURSE_MAX - 1, 1 do save_file_remove_star_flags(get_current_save_file_num() - 1, i, 255) end save_file_clear_flags(SAVE_FLAG_COLLECTED_MIPS_STAR_1) save_file_clear_flags(SAVE_FLAG_COLLECTED_MIPS_STAR_2) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_1) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_2) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_3) save_file_clear_flags(SAVE_FLAG_HAVE_KEY_1) save_file_clear_flags(SAVE_FLAG_HAVE_KEY_2) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BASEMENT_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_UPSTAIRS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_WF_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_CCM_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_JRB_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_PSS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BITDW_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BITFS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_50_STAR_DOOR) save_file_clear_flags(SAVE_FLAG_HAVE_METAL_CAP) save_file_clear_flags(SAVE_FLAG_HAVE_VANISH_CAP) save_file_clear_flags(SAVE_FLAG_HAVE_WING_CAP) save_file_clear_flags(SAVE_FLAG_MOAT_DRAINED) save_file_clear_flags(SAVE_FLAG_DDD_MOVED_BACK) save_file_clear_flags(SAVE_FLAG_CAP_ON_GROUND) save_file_clear_flags(SAVE_FLAG_CAP_ON_KLEPTO) save_file_clear_flags(SAVE_FLAG_CAP_ON_UKIKI) save_file_clear_flags(SAVE_FLAG_CAP_ON_MR_BLIZZARD) save_file_do_save(get_current_save_file_num() - 1, true) gMarioStates[0].numStars = save_file_get_total_star_count(get_current_save_file_num() - 1, COURSE_NONE, COURSE_MAX - 1) gMarioStates[0].numLives = 4 gMarioStates[0].health = 0x880 warp_to_start_level() end end end function DamadgeGameOver(m) local m = gMarioStates[0] if not m or not m.marioObj then return end if m.health <= 255 then if m.numLives == 0 then Ltimer = 0 for i = COURSE_NONE - 1, COURSE_MAX - 1, 1 do save_file_remove_star_flags(get_current_save_file_num() - 1, i, 255) end save_file_clear_flags(SAVE_FLAG_COLLECTED_MIPS_STAR_1) save_file_clear_flags(SAVE_FLAG_COLLECTED_MIPS_STAR_2) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_1) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_2) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_3) save_file_clear_flags(SAVE_FLAG_HAVE_KEY_1) save_file_clear_flags(SAVE_FLAG_HAVE_KEY_2) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BASEMENT_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_UPSTAIRS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_WF_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_CCM_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_JRB_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_PSS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BITDW_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BITFS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_50_STAR_DOOR) save_file_clear_flags(SAVE_FLAG_HAVE_METAL_CAP) save_file_clear_flags(SAVE_FLAG_HAVE_VANISH_CAP) save_file_clear_flags(SAVE_FLAG_HAVE_WING_CAP) save_file_clear_flags(SAVE_FLAG_MOAT_DRAINED) save_file_clear_flags(SAVE_FLAG_DDD_MOVED_BACK) save_file_clear_flags(SAVE_FLAG_CAP_ON_GROUND) save_file_clear_flags(SAVE_FLAG_CAP_ON_KLEPTO) save_file_clear_flags(SAVE_FLAG_CAP_ON_UKIKI) save_file_clear_flags(SAVE_FLAG_CAP_ON_MR_BLIZZARD) save_file_do_save(get_current_save_file_num() - 1, true) gMarioStates[0].numStars = save_file_get_total_star_count(get_current_save_file_num() - 1, COURSE_NONE, COURSE_MAX - 1) gMarioStates[0].numLives = 4 gMarioStates[0].health = 0x880 warp_to_start_level() end end end local function FallGameOver(m) if m.floor and m.floor.type == SURFACE_DEATH_PLANE then if m.numLives == 0 then Ltimer = 0 for i = COURSE_NONE - 1, COURSE_MAX - 1, 1 do save_file_remove_star_flags(get_current_save_file_num() - 1, i, 255) end save_file_clear_flags(SAVE_FLAG_COLLECTED_MIPS_STAR_1) save_file_clear_flags(SAVE_FLAG_COLLECTED_MIPS_STAR_2) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_1) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_2) save_file_clear_flags(SAVE_FLAG_COLLECTED_TOAD_STAR_3) save_file_clear_flags(SAVE_FLAG_HAVE_KEY_1) save_file_clear_flags(SAVE_FLAG_HAVE_KEY_2) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BASEMENT_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_UPSTAIRS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_WF_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_CCM_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_JRB_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_PSS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BITDW_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_BITFS_DOOR) save_file_clear_flags(SAVE_FLAG_UNLOCKED_50_STAR_DOOR) save_file_clear_flags(SAVE_FLAG_HAVE_METAL_CAP) save_file_clear_flags(SAVE_FLAG_HAVE_VANISH_CAP) save_file_clear_flags(SAVE_FLAG_HAVE_WING_CAP) save_file_clear_flags(SAVE_FLAG_MOAT_DRAINED) save_file_clear_flags(SAVE_FLAG_DDD_MOVED_BACK) save_file_clear_flags(SAVE_FLAG_CAP_ON_GROUND) save_file_clear_flags(SAVE_FLAG_CAP_ON_KLEPTO) save_file_clear_flags(SAVE_FLAG_CAP_ON_UKIKI) save_file_clear_flags(SAVE_FLAG_CAP_ON_MR_BLIZZARD) save_file_do_save(get_current_save_file_num() - 1, true) gMarioStates[0].numStars = save_file_get_total_star_count(get_current_save_file_num() - 1, COURSE_NONE, COURSE_MAX - 1) gMarioStates[0].numLives = 4 gMarioStates[0].health = 0x880 warp_to_start_level() end end end hook_event(HOOK_ON_HUD_RENDER, Show_LifeTimer) hook_event(HOOK_UPDATE, Update_LifeTimer) hook_event(HOOK_UPDATE, LifeGameOver) hook_event(HOOK_ON_DEATH, FallGameOver) hook_event(HOOK_MARIO_UPDATE, DamadgeGameOver)