mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
var/list/datum/weakref/spawned_threat_refs = list()
|
||||
/// Scales loot with extra players
|
||||
var/multiplayer_bonus = 1.1
|
||||
/// Extra bonus for every player that nohits the run
|
||||
var/nohit_bonus = 0.8
|
||||
/// The amount of points in the system, used to purchase maps
|
||||
var/points = 0
|
||||
/// Keeps track of the number of times someone has built a hololadder
|
||||
|
||||
@@ -16,11 +16,36 @@
|
||||
|
||||
rewards_base += (length(spawned_threat_refs) * 2)
|
||||
|
||||
for(var/index in 2 to length(avatar_connection_refs))
|
||||
rewards_base += multiplayer_bonus
|
||||
rewards_base += get_multiplayer_bonus()
|
||||
|
||||
rewards_base += get_nohit_bouns()
|
||||
|
||||
return rewards_base
|
||||
|
||||
/// Calculates total bonus from completing the domain in multiplayer
|
||||
/obj/machinery/quantum_server/proc/get_multiplayer_bonus()
|
||||
var/total = 0
|
||||
var/multiplayer = FALSE
|
||||
for(var/datum/weakref/connection_ref as anything in avatar_connection_refs)
|
||||
var/datum/component/avatar_connection/connection = connection_ref.resolve()
|
||||
if(isnull(connection))
|
||||
continue
|
||||
if(multiplayer)
|
||||
total += multiplayer_bonus
|
||||
multiplayer = TRUE
|
||||
return total
|
||||
|
||||
/// Calculates total bonus from completing the domain without taking damage
|
||||
/obj/machinery/quantum_server/proc/get_nohit_bouns()
|
||||
if(generated_domain.domain_flags & DOMAIN_NO_NOHIT_BONUS)
|
||||
return 0
|
||||
|
||||
var/total = 0
|
||||
for(var/datum/weakref/connection_ref as anything in avatar_connection_refs)
|
||||
var/datum/component/avatar_connection/connection = connection_ref.resolve()
|
||||
if(connection?.nohit)
|
||||
total += nohit_bonus
|
||||
return total
|
||||
|
||||
/// Handles spawning the (new) crate and deleting the former
|
||||
/obj/machinery/quantum_server/proc/generate_loot(obj/cache, obj/machinery/byteforge/chosen_forge)
|
||||
@@ -101,8 +126,13 @@
|
||||
if(domain_randomized)
|
||||
text += "- **Randomized:** + 0.2\n"
|
||||
|
||||
if(length(avatar_connection_refs) > 1)
|
||||
text += "- **Multiplayer:** + [(length(avatar_connection_refs) - 1) * multiplayer_bonus]\n"
|
||||
var/mp_bonus = get_multiplayer_bonus()
|
||||
if(mp_bonus)
|
||||
text += "- **Multiplayer:** + [mp_bonus]\n"
|
||||
|
||||
var/nohit_bonus = get_nohit_bouns()
|
||||
if(nohit_bonus)
|
||||
text += "- **No hit:** + [nohit_bonus]\n"
|
||||
|
||||
if(domain_threats > 0)
|
||||
text += "- **Threats:** + [domain_threats * 2]\n"
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
/// Scans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar.
|
||||
/obj/machinery/quantum_server/proc/stock_gear(mob/living/carbon/human/avatar, mob/living/carbon/human/neo, datum/lazy_template/virtual_domain/generated_domain)
|
||||
var/domain_forbids_flags = generated_domain.external_load_flags
|
||||
var/domain_forbids_flags = generated_domain.domain_flags
|
||||
|
||||
var/import_ban = list()
|
||||
var/disk_ban = list()
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain))
|
||||
var/init_cost = initial(available.cost)
|
||||
|
||||
if(!initial(available.test_only) && \
|
||||
if(!(initial(available.domain_flags) & DOMAIN_TEST_ONLY) && \
|
||||
init_cost <= points && \
|
||||
init_cost > BITRUNNER_COST_NONE && \
|
||||
init_cost < BITRUNNER_COST_EXTREME \
|
||||
|
||||
Reference in New Issue
Block a user