Removes cortical borers. No, I am not sorry. (#18161)

* Removes cortical borers. No, I am not sorry.

* Icon purge
This commit is contained in:
AffectedArc07
2022-07-01 23:25:01 +01:00
committed by GitHub
parent 26bd519465
commit 3c00a1f061
37 changed files with 7 additions and 1266 deletions
+1 -1
View File
@@ -48,7 +48,7 @@
#define CANWEAKEN 2
#define CANPARALYSE 4
#define CANPUSH 8
#define PASSEMOTES 16 //Mob has a cortical borer or holders inside of it that need to see emotes.
#define PASSEMOTES 16 //Mob has holders inside of it that need to see emotes.
#define GODMODE 32
//Health Defines
-1
View File
@@ -24,7 +24,6 @@
#define SPECIAL_ROLE_ABDUCTOR_SCIENTIST "Abductor Scientist"
#define SPECIAL_ROLE_BLOB "Blob"
#define SPECIAL_ROLE_BLOB_OVERMIND "Blob Overmind"
#define SPECIAL_ROLE_BORER "Borer"
#define SPECIAL_ROLE_CHANGELING "Changeling"
#define SPECIAL_ROLE_CULTIST "Cultist"
#define SPECIAL_ROLE_DEATHSQUAD "Death Commando"
-2
View File
@@ -28,7 +28,6 @@
#define ROLE_TRADER "trader"
#define ROLE_VAMPIRE "vampire"
// Role tags for EVERYONE!
#define ROLE_BORER "cortical borer"
#define ROLE_DEMON "slaughter demon"
#define ROLE_SENTIENT "sentient animal"
#define ROLE_POSIBRAIN "positronic brain"
@@ -54,7 +53,6 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_ABDUCTOR = /datum/game_mode/abduction, // Abductor
ROLE_BLOB = /datum/game_mode/blob, // Blob
ROLE_CHANGELING = /datum/game_mode/changeling, // Changeling
ROLE_BORER, // Cortical borer
ROLE_CULTIST = /datum/game_mode/cult, // Cultist
ROLE_GSPIDER, // Giant spider
ROLE_GUARDIAN, // Guardian
-1
View File
@@ -10,7 +10,6 @@ GLOBAL_LIST_INIT(antag_roles, list(
ROLE_BLOB,
ROLE_NINJA,
ROLE_VAMPIRE,
ROLE_BORER,
ROLE_DEMON,
ROLE_REVENANT,
ROLE_GUARDIAN,
+1 -3
View File
@@ -186,7 +186,7 @@
var/image/holder = hud_list[STATUS_HUD]
if(ismachineperson(src))
holder = hud_list[DIAG_STAT_HUD]
var/mob/living/simple_animal/borer/B = has_brain_worms()
// To the right of health bar
if(stat == DEAD || HAS_TRAIT(src, TRAIT_FAKEDEATH))
var/revivable
@@ -204,8 +204,6 @@
else if(HAS_TRAIT(src, TRAIT_XENO_HOST))
holder.icon_state = "hudxeno"
else if(B && B.controlling)
holder.icon_state = "hudbrainworm"
else if(is_in_crit())
holder.icon_state = "huddefib"
else if(has_virus())
File diff suppressed because it is too large Load Diff
@@ -1,51 +0,0 @@
/datum/borer_chem
var/chemname
var/chemdesc = "This is a chemical"
var/chemuse = 30
var/quantity = 10
/datum/borer_chem/capulettium_plus
chemname = "capulettium_plus"
chemdesc = "Silences and masks pulse."
/datum/borer_chem/charcoal
chemname = "charcoal"
chemdesc = "Slowly heals toxin damage, also slowly removes other chemicals."
/datum/borer_chem/epinephrine
chemname = "epinephrine"
chemdesc = "Stabilizes critical condition and slowly heals suffocation damage."
/datum/borer_chem/fliptonium
chemname = "fliptonium"
chemdesc = "Causes uncontrollable flipping."
chemuse = 50
/datum/borer_chem/hydrocodone
chemname = "hydrocodone"
chemdesc = "An extremely strong painkiller."
/datum/borer_chem/mannitol
chemname = "mannitol"
chemdesc = "Heals brain damage."
/datum/borer_chem/methamphetamine
chemname = "methamphetamine"
chemdesc = "Reduces stun times and increases stamina. Deals small amounts of brain damage."
chemuse = 50
/datum/borer_chem/mitocholide
chemname = "mitocholide"
chemdesc = "Heals internal organ damage."
/datum/borer_chem/salbutamol
chemname = "salbutamol"
chemdesc = "Heals suffocation damage."
/datum/borer_chem/salglu_solution
chemname = "salglu_solution"
chemdesc = "Slowly heals brute and burn damage, also slowly restores blood."
/datum/borer_chem/spaceacillin
chemname = "spaceacillin"
chemdesc = "Slows progression of diseases and fights infections."
@@ -1,28 +0,0 @@
//Cortical borer spawn event - care of RobRichards1997 with minor editing by Zuhayr.
/datum/event/borer_infestation
announceWhen = 400
var/spawncount = 5
var/successSpawn = FALSE //So we don't make a command report if nothing gets spawned.
/datum/event/borer_infestation/setup()
announceWhen = rand(announceWhen, announceWhen + 50)
spawncount = rand(2, 3)
/datum/event/borer_infestation/announce()
if(successSpawn)
GLOB.command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
else
log_and_message_admins("Warning: Could not spawn any mobs for event Borer Infestation")
/datum/event/borer_infestation/start()
var/list/vents = get_valid_vent_spawns(exclude_mobs_nearby = TRUE)
if(!length(vents))
message_admins("Warning: No suitable vents detected for spawning borers. Force picking from station vents regardless of state!")
vents = get_valid_vent_spawns(unwelded_only = FALSE, min_network_size = 0)
while(spawncount && length(vents))
var/obj/vent = pick_n_take(vents)
new /mob/living/simple_animal/borer(vent.loc)
successSpawn = TRUE
spawncount--
@@ -1,69 +0,0 @@
/mob/living/simple_animal/borer/proc/get_html_template(content)
var/html = {"<!DOCTYPE html">
<html>
<head>
<title>Borer Chemicals</title>
<link rel='stylesheet' type='text/css' href='icons.css'>
<link rel='stylesheet' type='text/css' href='shared.css'>
<style type='text/css'>
body {
font-size: 12px;
color: #ffffff;
font-family: Verdana, Geneva, sans-serif;
background: #272727;
overflow-x: hidden;
}
a, a:link, a:visited, a:active, .link, .linkOn, .linkOff, .selected, .disabled {
color: #ffffff;
text-decoration: none;
background: #40628a;
border: 1px solid #161616;
cursor: pointer;
display: inline-block;
}
a:hover, .linkActive:hover {
background: #507aac;
cursor: pointer;
}
p {
text-align: center;
font-size: 11px;
margin: 0px;
}
table {
width: 560px;
text-align: center;
}
td {
width: 560px;
}
.chem-select {
width: 560px;
text-align: center;
}
.enabled {
background-color: #0a0;
}
.disabled {
background-color: #a00;
}
.shown {
display: block;
}
.hidden {
display: none;
}
</style>
<script src="jquery.min.js"></script>
<script type='text/javascript'>
function update_chemicals(chemicals) {
$('#chemicals').text(chemicals);
}
$(function() {
});
</script>
</head>
<body scroll='yes'><div id='content'>
[content]
</div></body></html>"}
return html
-4
View File
@@ -88,10 +88,6 @@
to_chat(user, "<span class='warning'>This being has no soul!</span>")
return ..()
if(M.has_brain_worms()) //Borer stuff - RR
to_chat(user, "<span class='warning'>This being is corrupted by an alien intelligence and cannot be soul trapped.</span>")
return ..()
if(jobban_isbanned(M, ROLE_CULTIST) || jobban_isbanned(M, ROLE_SYNDICATE))
to_chat(user, "<span class='warning'>A mysterious force prevents you from trapping this being's soul.</span>")
return ..()
-1
View File
@@ -17,7 +17,6 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list(
ROLE_VAMPIRE = 5,
ROLE_BLOB = 20,
ROLE_REVENANT = 3,
ROLE_BORER = 3,
ROLE_NINJA = 20,
ROLE_MORPH = 5,
ROLE_DEMON = 5,
-5
View File
@@ -246,8 +246,6 @@
occupantData["bodyTempC"] = occupant.bodytemperature-T0C
occupantData["bodyTempF"] = (((occupant.bodytemperature-T0C) * 1.8) + 32)
occupantData["hasBorer"] = occupant.has_brain_worms()
var/bloodData[0]
bloodData["hasBlood"] = FALSE
if(!(NO_BLOOD in occupant.dna.species.species_traits))
@@ -412,9 +410,6 @@
dat += "<hr>"
if(occupant.has_brain_worms())
dat += "Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.<br>"
var/blood_percent = round((occupant.blood_volume / BLOOD_VOLUME_NORMAL))
blood_percent *= 100
@@ -194,8 +194,6 @@ REAGENT SCANNER
to_chat(user, "<span class='info'>Subject appears to be suffering from fatigue.</span>")
if(H.getCloneLoss())
to_chat(user, "<span class='warning'>Subject appears to have [H.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.</span>")
if(H.has_brain_worms())
to_chat(user, "<span class='warning'>Subject suffering from aberrant brain activity. Recommend further scanning.</span>")
if(H.get_int_organ(/obj/item/organ/internal/brain))
if(H.getBrainLoss() >= 100)
@@ -754,9 +752,6 @@ REAGENT SCANNER
dat += "<hr>"
if(target.has_brain_worms())
dat += "Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.<br>"
var/blood_percent = round((target.blood_volume / BLOOD_VOLUME_NORMAL))
blood_percent *= 100
-5
View File
@@ -63,11 +63,6 @@
to_chat(src, "You can't commit suicide before the game starts!")
return
// No more borergrief, one way or the other
if(has_brain_worms())
to_chat(src, "You try to bring yourself to commit suicide, but - something prevents you!")
return
if(suiciding)
to_chat(src, "You're already committing suicide! Be patient!")
return
@@ -13,9 +13,6 @@
/datum/action/changeling/lesserform/sting_action(mob/living/carbon/human/user)
if(!user)
return FALSE
if(user.has_brain_worms())
to_chat(user, "<span class='warning'>We cannot perform this ability at the present time!</span>")
return FALSE
var/mob/living/carbon/human/H = user
@@ -13,14 +13,6 @@
to_chat(user, "<span class='notice'>We cleanse impurities from our form.</span>")
var/mob/living/simple_animal/borer/B = user.has_brain_worms()
if(B)
B.leave_host()
if(iscarbon(user))
var/mob/living/carbon/C = user
C.vomit(0)
to_chat(user, "<span class='notice'>We expel a parasite from our form.</span>")
var/obj/item/organ/internal/body_egg/egg = user.get_int_organ(/obj/item/organ/internal/body_egg)
if(egg)
egg.remove(user)
@@ -25,9 +25,6 @@
if(ischangeling(target))
to_chat(user, "<span class='warning'>We are unable to swap forms with another changeling!</span>")
return FALSE
if(target.has_brain_worms() || user.has_brain_worms())
to_chat(user, "<span class='warning'>A foreign presence repels us from this body!</span>")
return FALSE
return TRUE
/datum/action/changeling/swap_form/sting_action(mob/living/carbon/user)
@@ -15,7 +15,6 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
ROLE_DEMON = 21,
ROLE_SENTIENT = 21,
// ROLE_GANG = 21,
ROLE_BORER = 21,
ROLE_NINJA = 21,
ROLE_GSPIDER = 21,
ROLE_ABDUCTOR = 30
-1
View File
@@ -163,7 +163,6 @@ GLOBAL_LIST_EMPTY(event_last_fired)
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 25, list(ASSIGNMENT_MEDICAL = 50), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 40, list(ASSIGNMENT_SECURITY = 30), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 30), TRUE),
//new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), TRUE),
// NON-BAY EVENTS
+1 -1
View File
@@ -54,7 +54,7 @@
if(istype(M))
for(var/atom/A in M.contents)
if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/holder))
if(istype(A, /obj/item/holder))
return
M.status_flags &= ~PASSEMOTES
-24
View File
@@ -568,30 +568,6 @@
/datum/language/abductor/golem/check_special_condition(mob/living/carbon/human/other, mob/living/carbon/human/speaker)
return TRUE
/datum/language/corticalborer
name = "Cortical Link"
desc = "Cortical borers possess a strange link between their tiny minds."
speech_verb = "sings"
ask_verb = "sings"
exclaim_verbs = list("sings")
colour = "alien"
key = "bo"
flags = RESTRICTED | HIVEMIND | NOBABEL
follow = TRUE
/datum/language/corticalborer/broadcast(mob/living/speaker, message, speaker_mask)
var/mob/living/simple_animal/borer/B
if(iscarbon(speaker))
var/mob/living/carbon/M = speaker
B = M.has_brain_worms()
else if(istype(speaker,/mob/living/simple_animal/borer))
B = speaker
if(B)
speaker_mask = B.truename
..(speaker,message,speaker_mask)
/datum/language/binary
name = "Robot Talk"
desc = "Most human stations support free-use communications protocols and routing hubs for synthetic use."
@@ -30,9 +30,6 @@
continue
no_queen = 0
if(src.has_brain_worms())
to_chat(src, "<span class='warning'>We cannot perform this ability at the present time!</span>")
return
if(no_queen)
adjustPlasma(-500)
to_chat(src, "<span class='noticealien'>You begin to evolve!</span>")
@@ -61,10 +61,6 @@
var/obj/item/organ/internal/brain/B = src
if(!special)
var/mob/living/simple_animal/borer/borer = owner.has_brain_worms()
if(borer)
borer.leave_host() //Should remove borer if the brain is removed - RR
if(owner.mind && !non_primary)//don't transfer if the owner does not have a mind.
B.transfer_identity(user)
-4
View File
@@ -14,10 +14,6 @@
QDEL_LIST(internal_organs)
QDEL_LIST(stomach_contents)
QDEL_LIST(processing_patches)
var/mob/living/simple_animal/borer/B = has_brain_worms()
if(B)
B.leave_host()
qdel(B)
GLOB.carbon_list -= src
return ..()
@@ -14,8 +14,6 @@
var/obj/item/head = null
var/obj/item/clothing/suit/wear_suit = null //TODO: necessary? Are they even used? ~Carn
var/mob/living/simple_animal/borer/borer = null
//Active emote/pose
var/pose = null
@@ -203,9 +203,6 @@
stat("Distribution Pressure", internal.distribute_pressure)
// I REALLY need to split up status panel things into datums
var/mob/living/simple_animal/borer/B = has_brain_worms()
if(B && B.controlling)
stat("Chemicals", B.chemicals)
if(mind)
var/datum/antagonist/changeling/cling = mind.has_antag_datum(/datum/antagonist/changeling)
@@ -39,9 +39,6 @@
winset(client, "input", "text=[null]")
/mob/living/carbon/human/say_understands(mob/other, datum/language/speaking = null)
if(has_brain_worms()) //Brain worms translate everything. Even mice and alien speak.
return 1
if(dna.species.can_understand(other))
return 1
-4
View File
@@ -2,7 +2,6 @@
mob_type_allowed_typecache = /mob/living
mob_type_blacklist_typecache = list(
/mob/living/carbon/brain, // nice try
/mob/living/captive_brain,
/mob/living/silicon,
/mob/living/simple_animal/bot
)
@@ -83,7 +82,6 @@
mob_type_blacklist_typecache = list(
/mob/living/carbon/brain,
/mob/living/captive_brain
)
/datum/emote/living/deathgasp/get_sound(mob/living/user)
@@ -346,7 +344,6 @@
mob_type_blacklist_typecache = list(
/mob/living/carbon/brain,
/mob/living/captive_brain
)
/datum/emote/living/tilt
@@ -389,7 +386,6 @@
message = null
mob_type_blacklist_typecache = list(
/mob/living/carbon/brain, // nice try
/mob/living/captive_brain
)
// Custom emotes should be able to be forced out regardless of context.
+1 -1
View File
@@ -922,7 +922,7 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \
if(isliving(M))
var/mob/living/L = M
if(L.mob_size <= MOB_SIZE_SMALL)
return // Stops pAI drones and small mobs (borers, parrots, crabs) from stripping people. --DZD
return // Stops pAI drones and small mobs (parrots, crabs) from stripping people. --DZD
if(!M.can_strip)
return
if(usr == src)
@@ -99,6 +99,7 @@
"SECRET TECHNIQUE: TOOLBOX TO THE FACE!",
"SECRET TECHNIQUE: PLASMA CANISTER FIRE!",
"SECRET TECHNIQUE: TABLE AND DISPOSAL!",
// Borers got removed but the below reference stays because its hilarious
"[pick("MY BROTHER", " MY DOG", "MY BEST FRIEND", "THE BORER", "GEORGE MELONS", "BADMINS")] DID IT!",
";s WHATS SPACE LAW?!",
"I BOUGHT THESE GLOVES, NOT STEAL THEM",
+1 -13
View File
@@ -167,12 +167,7 @@
else if(implement_type in implements_extract)
current_type = "extract"
var/list/organs = target.get_organs_zone(target_zone)
var/mob/living/simple_animal/borer/B = target.has_brain_worms()
if(target_zone == "head" && B)
user.visible_message("[user] begins to extract [B] from [target]'s [parse_zone(target_zone)].",
"<span class='notice'>You begin to extract [B] from [target]'s [parse_zone(target_zone)]...</span>")
return TRUE
if(!organs.len)
if(!length(organs))
to_chat(user, "<span class='notice'>There are no removeable organs in [target]'s [parse_zone(target_zone)]!</span>")
return -1
@@ -277,13 +272,6 @@
"<span class='notice'> You have transplanted [tool] into [target]'s [parse_zone(target_zone)].</span>")
else if(current_type == "extract")
var/mob/living/simple_animal/borer/B = target.has_brain_worms()
if(target_zone == "head" && B && B.host == target)
user.visible_message("[user] successfully extracts [B] from [target]'s [parse_zone(target_zone)]!",
"<span class='notice'>You successfully extract [B] from [target]'s [parse_zone(target_zone)].</span>")
add_attack_logs(user, target, "Surgically removed [B]. INTENT: [uppertext(user.a_intent)]")
B.leave_host()
return FALSE
if(I && I.owner == target)
user.visible_message("<span class='notice'> [user] has separated and extracts [target]'s [I] with [tool].</span>",
"<span class='notice'> You have separated and extracted [target]'s [I] with [tool].</span>")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

After

Width:  |  Height:  |  Size: 294 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

-4
View File
@@ -580,10 +580,6 @@
#include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm"
#include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm"
#include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm"
#include "code\game\gamemodes\miniantags\borer\borer.dm"
#include "code\game\gamemodes\miniantags\borer\borer_chemicals.dm"
#include "code\game\gamemodes\miniantags\borer\borer_event.dm"
#include "code\game\gamemodes\miniantags\borer\borer_html.dm"
#include "code\game\gamemodes\miniantags\bot_swarm\swarmer.dm"
#include "code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm"
#include "code\game\gamemodes\miniantags\guardian\guardian.dm"
@@ -22,12 +22,6 @@ const stats = [
];
const abnormalities = [
[
'hasBorer',
'bad',
'Large growth detected in frontal lobe,' +
' possibly cancerous. Surgical removal is recommended.',
],
['hasVirus', 'bad', 'Viral pathogen detected in blood stream.'],
['blind', 'average', 'Cataracts detected.'],
['colourblind', 'average', 'Photoreceptor abnormalities detected.'],
File diff suppressed because one or more lines are too long