From e10458d6b992f301ae28df48ee3a7c33124f8f44 Mon Sep 17 00:00:00 2001 From: Kierany9 Date: Tue, 23 Apr 2019 11:14:08 +0200 Subject: [PATCH] Modifies how the Assimilation pinpointer radars work (#43575) * Update hivemind.dm * Update radar.dm --- code/game/gamemodes/hivemind/radar.dm | 4 ++-- code/modules/spells/spell_types/hivemind.dm | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/code/game/gamemodes/hivemind/radar.dm b/code/game/gamemodes/hivemind/radar.dm index 647f864b646..bb5827cdc2c 100644 --- a/code/game/gamemodes/hivemind/radar.dm +++ b/code/game/gamemodes/hivemind/radar.dm @@ -1,6 +1,6 @@ -#define HIVEMIND_RADAR_MIN_DISTANCE 7 //Very generous, as the targets are only tracked for a few minutes. +#define HIVEMIND_RADAR_MIN_DISTANCE 0 //Very generous, as the targets are only tracked for a few minutes. #define HIVEMIND_RADAR_MAX_DISTANCE 50 -#define HIVEMIND_RADAR_PING_TIME 20 //2s update time. +#define HIVEMIND_RADAR_PING_TIME 40 //4s update time. //Modified IA/changeling pinpointer, points to the nearest person who is afflicted with the hive tracker status effect /datum/status_effect/agent_pinpointer/hivemind diff --git a/code/modules/spells/spell_types/hivemind.dm b/code/modules/spells/spell_types/hivemind.dm index daddde83744..85d939b26ff 100644 --- a/code/modules/spells/spell_types/hivemind.dm +++ b/code/modules/spells/spell_types/hivemind.dm @@ -68,6 +68,7 @@ to_chat(user, "[target.name] was added to the Hive!") success = TRUE hive.add_to_hive(target) + hive.threat_level = max(0, hive.threat_level-0.1) if(ignore_mindshield) to_chat(user, "We are briefly exhausted by the effort required by our enhanced assimilation abilities.") user.Immobilize(50) @@ -109,6 +110,7 @@ return hive.remove_from_hive(M) hive.calc_size() + hive.threat_level += 0.1 to_chat(user, "We remove [target.name] from the hive") if(hive.active_one_mind) var/datum/antagonist/hivevessel/woke = target.is_wokevessel() @@ -379,7 +381,7 @@ if(original_body?.mind) var/datum/antagonist/hivemind/hive = original_body.mind.has_antag_datum(/datum/antagonist/hivemind) if(hive) - hive.threat_level += 0.5 + hive.threat_level += 1 /obj/effect/proc_holder/spell/target_hive/hive_control/on_lose(mob/user) @@ -573,6 +575,9 @@ victim.Sleeping(max(80,240/(1+round(victims.len/3)))) for(var/mob/living/silicon/victim in victims) victim.Unconscious(240) + var/datum/antagonist/hivemind/hive = user.mind.has_antag_datum(/datum/antagonist/hivemind) + if(victims.len && hive) + hive.threat_level += 1 /obj/effect/proc_holder/spell/target_hive/hive_attack name = "Medullary Failure" @@ -594,7 +599,7 @@ to_chat(user, "We are unable to induce a heart attack!") var/datum/antagonist/hivemind/hive = user.mind.has_antag_datum(/datum/antagonist/hivemind) if(hive) - hive.threat_level += 2 + hive.threat_level += 4 /obj/effect/proc_holder/spell/target_hive/hive_warp name = "Distortion Field" @@ -731,6 +736,7 @@ C.gib() hive.track_bonus += TRACKER_BONUS_LARGE hive.size_mod += 5 + hive.threat_level += 1 gibbed = TRUE found_target = TRUE else if(C.IsUnconscious()) @@ -786,10 +792,11 @@ var/objective = stripped_input(user, "What objective do you want to give to your vessels?", "Objective") - if(!objective) + if(!objective || !hive) revert_cast() return - + + hive.threat_level += 6 for(var/i = 0, i < 4, i++) var/mob/living/carbon/C = pick_n_take(valid_targets) C.hive_awaken(objective) @@ -843,6 +850,9 @@ new wall_type(get_turf(user),user) for(var/dir in GLOB.alldirs) new wall_type_b(get_step(user, dir),user) + var/datum/antagonist/hivemind/hive = user.mind.has_antag_datum(/datum/antagonist/hivemind) + if(hive) + hive.threat_level += 0.5 /obj/effect/forcefield/wizard/hive name = "Telekinetic Field"