mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-2405a
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
#define GRADE_D "D"
|
||||
#define GRADE_C "C"
|
||||
#define GRADE_B "B"
|
||||
#define GRADE_A "A"
|
||||
#define GRADE_S "S"
|
||||
|
||||
/// Handles calculating rewards based on number of players, parts, threats, etc
|
||||
/obj/machinery/quantum_server/proc/calculate_rewards()
|
||||
var/rewards_base = 0.8
|
||||
@@ -28,8 +34,11 @@
|
||||
|
||||
var/bonus = calculate_rewards()
|
||||
|
||||
var/time_difference = world.time - generated_domain.start_time
|
||||
var/grade = grade_completion(time_difference)
|
||||
|
||||
var/obj/item/paper/certificate = new()
|
||||
certificate.add_raw_text(get_completion_certificate())
|
||||
certificate.add_raw_text(get_completion_certificate(time_difference, grade))
|
||||
certificate.name = "certificate of domain completion"
|
||||
certificate.update_appearance()
|
||||
|
||||
@@ -37,6 +46,10 @@
|
||||
reward_cache.manifest = certificate
|
||||
reward_cache.update_appearance()
|
||||
|
||||
if(can_generate_tech_disk(grade))
|
||||
new /obj/item/disk/design_disk/bepis/remove_tech(reward_cache)
|
||||
generated_domain.disk_reward_spawned = TRUE
|
||||
|
||||
chosen_forge.start_to_spawn(reward_cache)
|
||||
return TRUE
|
||||
|
||||
@@ -50,7 +63,7 @@
|
||||
return TRUE
|
||||
|
||||
/// Returns the markdown text containing domain completion information
|
||||
/obj/machinery/quantum_server/proc/get_completion_certificate()
|
||||
/obj/machinery/quantum_server/proc/get_completion_certificate(time_difference, grade)
|
||||
var/base_points = generated_domain.reward_points
|
||||
if(domain_randomized)
|
||||
base_points -= 1
|
||||
@@ -59,11 +72,9 @@
|
||||
|
||||
var/domain_threats = length(spawned_threat_refs)
|
||||
|
||||
var/time_difference = world.time - generated_domain.start_time
|
||||
|
||||
var/completion_time = "### Completion Time: [DisplayTimeText(time_difference)]\n"
|
||||
|
||||
var/grade = "\n---\n\n# Rating: [grade_completion(time_difference)]"
|
||||
var/completion_grade = "\n---\n\n# Rating: [grade]"
|
||||
|
||||
var/text = "# Certificate of Domain Completion\n\n---\n\n"
|
||||
|
||||
@@ -75,7 +86,7 @@
|
||||
|
||||
if(bonuses <= 1)
|
||||
text += completion_time
|
||||
text += grade
|
||||
text += completion_grade
|
||||
return text
|
||||
|
||||
text += "### Bonuses\n"
|
||||
@@ -94,10 +105,24 @@
|
||||
text += "- **Components:** + [servo_rating]\n"
|
||||
|
||||
text += completion_time
|
||||
text += grade
|
||||
text += completion_grade
|
||||
|
||||
return text
|
||||
|
||||
/// Checks if the players should get a bepis reward
|
||||
/obj/machinery/quantum_server/proc/can_generate_tech_disk(grade)
|
||||
if(generated_domain.disk_reward_spawned)
|
||||
return FALSE
|
||||
|
||||
if(!LAZYLEN(SSresearch.techweb_nodes_experimental))
|
||||
return FALSE
|
||||
|
||||
var/static/list/passing_grades = list()
|
||||
if(!passing_grades.len)
|
||||
passing_grades = list(GRADE_A,GRADE_S)
|
||||
|
||||
return generated_domain.difficulty >= BITRUNNER_DIFFICULTY_MEDIUM && (grade in passing_grades)
|
||||
|
||||
/// Grades the player's run based on several factors
|
||||
/obj/machinery/quantum_server/proc/grade_completion(completion_time)
|
||||
var/score = length(spawned_threat_refs) * 5
|
||||
@@ -124,13 +149,18 @@
|
||||
|
||||
switch(score)
|
||||
if(1 to 4)
|
||||
return "D"
|
||||
return GRADE_D
|
||||
if(5 to 7)
|
||||
return "C"
|
||||
return GRADE_C
|
||||
if(8 to 10)
|
||||
return "B"
|
||||
return GRADE_B
|
||||
if(11 to 13)
|
||||
return "A"
|
||||
return GRADE_A
|
||||
else
|
||||
return "S"
|
||||
return GRADE_S
|
||||
|
||||
#undef GRADE_D
|
||||
#undef GRADE_C
|
||||
#undef GRADE_B
|
||||
#undef GRADE_A
|
||||
#undef GRADE_S
|
||||
|
||||
Reference in New Issue
Block a user