mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 07:28:14 +00:00
refactor medal achievement unlocking code, might be more reliable? unsure
This commit is contained in:
@@ -313,43 +313,45 @@ func get_best_time() -> float:
|
||||
|
||||
func check_for_medal_achievement() -> void:
|
||||
|
||||
var has_gold_warp := true
|
||||
var has_gold_warpless := true
|
||||
var has_silver_warpless := true
|
||||
var has_silver_warp := true
|
||||
var has_bronze_warpless := true
|
||||
var has_bronze_warp := true
|
||||
|
||||
var has_gold_levels_warpless := true
|
||||
var has_gold_levels_any := true
|
||||
var has_gold_full := false
|
||||
|
||||
var has_silver_levels_warpless := true
|
||||
var has_silver_levels_any := true
|
||||
var has_silver_full := false
|
||||
|
||||
var has_bronze_levels_warpless := true
|
||||
var has_bronze_levels_any := true
|
||||
var has_bronze_full := false
|
||||
|
||||
if Global.current_campaign == "SMBANN":
|
||||
return
|
||||
|
||||
|
||||
for i in LEVEL_GOLD_ANY_TIMES[Global.current_campaign]:
|
||||
if best_level_any_times.has(i):
|
||||
if best_level_any_times[i] > LEVEL_GOLD_ANY_TIMES[Global.current_campaign][i]:
|
||||
has_gold_warp = false
|
||||
has_gold_levels_any = false
|
||||
if best_level_any_times[i] > LEVEL_GOLD_ANY_TIMES[Global.current_campaign][i] * MEDAL_CONVERSIONS[1]:
|
||||
has_silver_warp = false
|
||||
has_silver_levels_any = false
|
||||
if best_level_any_times[i] > LEVEL_GOLD_ANY_TIMES[Global.current_campaign][i] * MEDAL_CONVERSIONS[0]:
|
||||
has_bronze_warp = false
|
||||
has_bronze_levels_any = false
|
||||
|
||||
var world := 0
|
||||
for i in best_level_warpless_times:
|
||||
var level := 0
|
||||
for x in i:
|
||||
if x < 0:
|
||||
has_gold_warpless = false
|
||||
has_silver_warpless = false
|
||||
has_bronze_warpless = false
|
||||
has_gold_levels_warpless = false
|
||||
has_silver_levels_warpless = false
|
||||
has_bronze_levels_warpless = false
|
||||
if x > LEVEL_GOLD_WARPLESS_TIMES[Global.current_campaign][world][level]:
|
||||
has_gold_warpless = false
|
||||
has_gold_levels_warpless = false
|
||||
if x > LEVEL_GOLD_WARPLESS_TIMES[Global.current_campaign][world][level] * MEDAL_CONVERSIONS[1]:
|
||||
has_silver_warpless = false
|
||||
has_silver_levels_warpless = false
|
||||
if x > LEVEL_GOLD_WARPLESS_TIMES[Global.current_campaign][world][level] * MEDAL_CONVERSIONS[0]:
|
||||
has_bronze_warpless = false
|
||||
has_bronze_levels_warpless = false
|
||||
level += 1
|
||||
world += 1
|
||||
|
||||
@@ -360,19 +362,19 @@ func check_for_medal_achievement() -> void:
|
||||
if marathon_best_any_time <= GOLD_ANY_TIMES[Global.current_campaign] * MEDAL_CONVERSIONS[0] and marathon_best_warpless_time <= GOLD_WARPLESS_TIMES[Global.current_campaign] * MEDAL_CONVERSIONS[0]:
|
||||
has_bronze_full = true
|
||||
|
||||
if has_gold_warp and has_gold_warpless and has_gold_full:
|
||||
if has_gold_levels_warpless and has_gold_levels_any and has_gold_full:
|
||||
match Global.current_campaign:
|
||||
"SMB1": Global.unlock_achievement(Global.AchievementID.SMB1_GOLD)
|
||||
"SMBLL": Global.unlock_achievement(Global.AchievementID.SMBLL_GOLD)
|
||||
"SMBS": Global.unlock_achievement(Global.AchievementID.SMBS_GOLD)
|
||||
|
||||
if has_silver_warp and has_silver_warpless and has_silver_full:
|
||||
if has_silver_levels_any and has_silver_levels_warpless and has_silver_full:
|
||||
match Global.current_campaign:
|
||||
"SMB1": Global.unlock_achievement(Global.AchievementID.SMB1_SILVER)
|
||||
"SMBLL": Global.unlock_achievement(Global.AchievementID.SMBLL_SILVER)
|
||||
"SMBS": Global.unlock_achievement(Global.AchievementID.SMBS_SILVER)
|
||||
|
||||
if has_bronze_warp and has_bronze_warpless and has_bronze_full:
|
||||
if has_bronze_levels_warpless and has_bronze_levels_any and has_bronze_full:
|
||||
match Global.current_campaign:
|
||||
"SMB1": Global.unlock_achievement(Global.AchievementID.SMB1_BRONZE)
|
||||
"SMBLL": Global.unlock_achievement(Global.AchievementID.SMBLL_BRONZE)
|
||||
|
Reference in New Issue
Block a user