From 06f842659abdb4f32275030e5cb350599592c55b Mon Sep 17 00:00:00 2001
From: SECBATON-GRIFFON <>
Date: Wed, 20 Mar 2024 15:48:12 +0000
Subject: [PATCH 001/101] fluffs up this
---
code/game/machinery/computer/arcade/arcade.dm | 4 +-
.../machinery/computer/arcade/arcade_game.dm | 93 +++++++++++++++----
2 files changed, 75 insertions(+), 22 deletions(-)
diff --git a/code/game/machinery/computer/arcade/arcade.dm b/code/game/machinery/computer/arcade/arcade.dm
index 4b65bf373f3e..63344ca21f06 100644
--- a/code/game/machinery/computer/arcade/arcade.dm
+++ b/code/game/machinery/computer/arcade/arcade.dm
@@ -70,8 +70,8 @@
game.emag_act(user)
/obj/machinery/computer/arcade/arcane_act(mob/user)
- game.emag_act(user) // until i come up with something better, reward differs for now though
- return ..()
+ game.arcane_act(user)
+ return "H'NK!"
/obj/machinery/computer/arcade/bless()
return
diff --git a/code/game/machinery/computer/arcade/arcade_game.dm b/code/game/machinery/computer/arcade/arcade_game.dm
index 87a29f65f16b..bbc9602d0716 100644
--- a/code/game/machinery/computer/arcade/arcade_game.dm
+++ b/code/game/machinery/computer/arcade/arcade_game.dm
@@ -4,6 +4,7 @@
var/list/prizes = list()
var/list/cheaters = list()
var/emagged = 0
+ var/arcanetampered = 0
var/turn = 0
/datum/arcade_game/Destroy()
@@ -115,6 +116,7 @@
/datum/arcade_game/space_villain/export_data()
return list("name" = name,
"emagged" = emagged,
+ "arcanetampered" = arcanetampered,
"enemy_name" = enemy_name,
"temp" = temp,
"player_hp" = player_hp,
@@ -135,6 +137,7 @@
return
name = args["name"]
emagged = args["emagged"]
+ arcanetampered = args["arcanetampered"]
enemy_name = args["enemy_name"]
temp = args["temp"]
player_hp = args["player_hp"]
@@ -227,6 +230,9 @@
if(emagged)
src.New()
emagged = 0
+ if(arcanetampered)
+ src.New()
+ arcanetampered = 0
holder.add_fingerprint(usr)
holder.updateUsrDialog()
@@ -239,29 +245,44 @@
temp = "[enemy_name] has fallen! Rejoice!"
if(emagged)
+ new /obj/item/clothing/head/collectable/petehat(holder.loc)
+ new /obj/item/device/maracas/cubanpete(holder.loc)
+ new /obj/item/device/maracas/cubanpete(holder.loc)
+ if(arcanetampered)
+ new /obj/item/weapon/reagent_containers/glass/bottle/wizarditis(holder.loc)
+ new /obj/item/clothing/suit/wizrobe(holder.loc)
+ new /obj/item/clothing/head/wizard(holder.loc)
+ new /obj/item/clothing/shoes/sandal(holder.loc)
+ if(emagged && arcanetampered)
+ feedback_inc("arcade_win_arcane_emagged")
+ message_admins("[key_name_admin(usr)] has out-shoe-bombed Cuban Willy and been awarded explosive maracas and a wizard culture bottle.")
+ log_game("[key_name_admin(usr)] has out-shoe-bombed Cuban Willy and been awarded explosive maracas and a wizard culture bottle.")
+ else if(emagged)
feedback_inc("arcade_win_emagged")
- if(holder.arcanetampered)
- new /obj/item/weapon/reagent_containers/glass/bottle/wizarditis(holder.loc)
- new /obj/item/clothing/suit/wizrobe(holder.loc)
- new /obj/item/clothing/head/wizard(holder.loc)
- new /obj/item/clothing/shoes/sandal(holder.loc)
- else
- new /obj/item/clothing/head/collectable/petehat(holder.loc)
- new /obj/item/device/maracas/cubanpete(holder.loc)
- new /obj/item/device/maracas/cubanpete(holder.loc)
message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded explosive maracas.")
log_game("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded explosive maracas.")
- holder.New()
- emagged = 0
-
+ else if(arcanetampered)
+ feedback_inc("arcade_win_arcane")
+ message_admins("[key_name_admin(usr)] has out-shoe-snatched Willy and been awarded a wizard culture bottle.")
+ log_game("[key_name_admin(usr)] has out-shoe-snatched Willy and been awarded a wizard culture bottle.")
else
feedback_inc("arcade_win_normal")
dispense_prize(1)
+ if(emagged || arcanetampered)
+ holder.New()
+ emagged = 0
+ arcanetampered = 0
- else if (emagged && (turtle >= 4))
+ else if (turtle >= 4)
var/boomamt = rand(5,10)
- temp = "[enemy_name] throws a bomb, exploding you for [boomamt] damage!"
- player_hp -= boomamt
+ if(emagged)
+ temp = "[enemy_name] throws a bomb, exploding you for [boomamt] damage!"
+ player_hp -= boomamt
+ if(arcanetampered)
+ temp = "[enemy_name] snatches your shoes, stealing [boomamt] of your power!"
+ player_mp -= boomamt
+ if(emagged && arcanetampered)
+ temp = "[enemy_name] bombs your shoes, stealing [boomamt] of your power and exploding you for [boomamt] damage!"
else if ((enemy_mp <= 5) && (prob(70)))
var/stealamt = rand(2,3)
@@ -276,6 +297,9 @@
if(emagged)
feedback_inc("arcade_loss_mana_emagged")
usr.gib()
+ else if(arcanetampered)
+ feedback_inc("arcade_loss_mana_arcanetampered")
+ usr.gib()
else
feedback_inc("arcade_loss_mana_normal")
@@ -295,6 +319,9 @@
if(emagged)
feedback_inc("arcade_loss_hp_emagged")
usr.gib()
+ else if(arcanetampered)
+ feedback_inc("arcade_loss_mana_arcanetampered")
+ usr.gib()
else
feedback_inc("arcade_loss_hp_normal")
@@ -327,10 +354,10 @@
if(istype(holder.playertwo,/mob/living/simple_animal/hostile/pulse_demon))
var/mob/living/simple_animal/hostile/pulse_demon/PD = holder.playertwo
var/oldhealth = PD.health
- var/subtract = 50 * (emagged * 3) //Packs a punch to them
+ var/subtract = 50 * ((emagged || arcanetampered) * 3) //Packs a punch to them
PD.health -= subtract
if(oldhealth - subtract <= 0) //If they die from this
- if(emagged && prob(25))
+ if((emagged || arcanetampered) && prob(25))
var/obj/item/device/powersink/PS = new /obj/item/device/powersink(holder.loc)
PS.dev_multi = 6
else if(prob(50))
@@ -359,7 +386,7 @@
/datum/arcade_game/space_villain/proc/harm_p1()
if(istype(holder.playertwo,/mob/living/simple_animal/hostile/pulse_demon) && isliving(holder.playerone))
var/mob/living/L = holder.playerone
- L.electrocute_act(67 * (emagged * 3), src, 1) //And to the player too, if (s)he loses
+ L.electrocute_act(67 * ((emagged || arcanetampered) * 3), src, 1) //And to the player too, if (s)he loses
/datum/arcade_game/space_villain/proc/action_charge()
blocked = 1
@@ -450,7 +477,7 @@
check_p2_win()
/datum/arcade_game/space_villain/is_cheater(mob/user)
- if(emagged && !gameover)
+ if((emagged || arcanetampered) && !gameover)
if(holder.stat & (NOPOWER|BROKEN|FORCEDISABLE))
return 0
else if(user in cheaters)
@@ -483,6 +510,32 @@
enemy_name = "Cuban Pete"
name = "Outbomb Cuban Pete"
+ if(arcanetampered)
+ enemy_name = "Cuban Willy"
+ name = "Out-shoe-bomb Willy"
+
+ holder.updateUsrDialog()
+
+/datum/arcade_game/space_villain/arcane_act(mob/user)
+ if(is_cheater(user))
+ return
+
+ temp = "If you die in the game, you die for real!"
+ p2_temp = "If he dies in the game, he dies for real!"
+ player_hp = 30
+ player_mp = 10
+ enemy_hp = 45
+ enemy_mp = 20
+ gameover = 0
+ blocked = 0
+
+ arcanetampered = 1
+
+ enemy_name = "Shoe Snatchin Willy"
+ name = "Out-shoe-snatch Willy"
+ if(emagged)
+ enemy_name = "Cuban Willy"
+ name = "Out-shoe-bomb Willy"
holder.updateUsrDialog()
@@ -499,7 +552,7 @@
if(is_cheater(usr))
return
- if(!emagged && prob(5)) //Bug
+ if(!emagged && !arcanetampered && prob(5)) //Bug
temp = "|eW R0vnb##[rand(0,9)]#"
p2_temp = "|eW R0vnb##[rand(0,9)]#"
player_hp = rand(1,30)
From 7a6e549bdbb9ae18c63182d064c544482a2aba7a Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 04:19:07 +0100
Subject: [PATCH 002/101] initial stuff
---
.../factions/bloodcult/bloodcult_effects.dm | 20 ++++++-
.../bloodcult/bloodcult_runespells.dm | 57 ++++++++++++++-----
code/game/objects/items/weapons/cards_ids.dm | 8 +++
code/game/objects/structures/flora/flora.dm | 35 +-----------
code/modules/projectiles/guns/energy.dm | 2 +
.../projectiles/guns/energy/special.dm | 32 ++++++++---
.../modules/projectiles/projectile/special.dm | 5 +-
code/modules/spells/targeted/push.dm | 44 +++++++-------
8 files changed, 125 insertions(+), 78 deletions(-)
diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
index f37d2690ea17..8794cd27cbd6 100644
--- a/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
+++ b/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
@@ -66,7 +66,7 @@
qdel(src)
/obj/effect/cult_shortcut/attack_hand(var/mob/living/user)
- if (!iscultist(user))
+ if (!iscultist(user) && !arcanetampered)
to_chat(user, "The markings on this wall are peculiar. You don't feel comfortable staring at them.")
return
var/turf/T = get_turf(user)
@@ -79,7 +79,23 @@
user.forceMove(loc)
sleep(1)
new /obj/effect/afterimage/red(loc,user)
- user.forceMove(get_step(loc,jump_dir))
+ if(!arcanetampered)
+ user.forceMove(get_step(loc,jump_dir))
+ else
+ user.dimensional_push()
+ if(!iscultist(user))
+ user.Knockdown(3)
+ user.Stun(3)
+ if(ishuman(user))
+ shake_camera(L, 20, 1)
+ spawn(20)
+ if(user)
+ to_chat(user,"You vomit from travelling through \the [src]!")
+ user.nutrition = max(user.nutrition-20,0)
+ user.adjustToxLoss(-3)
+ var/turf/V = get_turf(user) //V for Vomit
+ V.add_vomit_floor(user)
+ playsound(V, 'sound/effects/splat.ogg', 50, 1)
/obj/effect/cult_shortcut/cultify()
return
diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
index 26d6e4da7275..0cc701ea3295 100644
--- a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
+++ b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
@@ -63,9 +63,12 @@
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." //Arcane tome page description.
-/datum/rune_spell/New(var/mob/user, var/obj/holder, var/use = "ritual", var/mob/target)
+ var/spell_holder.spell_holder.arcanetampered = 0
+
+/datum/rune_spell/New(var/mob/user, var/obj/holder, var/use = "ritual", var/mob/target, var/tampered)
spell_holder = holder
activator = user
+ spell_holder.spell_holder.arcanetampered = tampered
if(use == "ritual")
pre_cast()
@@ -312,15 +315,21 @@
R.active_spell.midcast(user)
return
- switch(structure)
- if("Altar")
- spawntype = /obj/structure/cult/altar
- if("Spire")
- spawntype = /obj/structure/cult/spire
- if("Forge")
- spawntype = /obj/structure/cult/forge
- if("Pylon")
- spawntype = /obj/structure/cult/pylon
+ if(spell_holder?.arcanetampered)
+ spawntype = pick(/obj/item/weapon/reagent_containers/food/snacks/badrecipe,\
+ /obj/item/weapon/bikehorn/rubberducky,\
+ /obj/item/weapon/bikehorn,\
+ /obj/item/weapon/card/fake_emag)
+ else
+ switch(structure)
+ if("Altar")
+ spawntype = /obj/structure/cult/altar
+ if("Spire")
+ spawntype = /obj/structure/cult/spire
+ if("Forge")
+ spawntype = /obj/structure/cult/forge
+ if("Pylon")
+ spawntype = /obj/structure/cult/pylon
if(!spell_holder)
return
@@ -413,6 +422,8 @@
for(var/mob/living/L in contributors)
var/datum/role/cultist/C = L.mind.GetRole(CULTIST)
C.gain_devotion(10, DEVOTION_TIER_1,"raise_structure",structure)
+ if(spell_holder.arcanetampered)
+ playsound(spell_holder.loc, 'sound/misc/fart.ogg', 50, 1)
new spawntype(spell_holder.loc)
qdel(spell_holder) //Deletes the datum as well.
@@ -444,6 +455,7 @@
R.one_pulse()
var/mob/living/user = activator
comms = new /obj/effect/cult_ritual/cult_communication(spell_holder.loc,user,src)
+ comms.arcanetampered = spell_holder?.arcanetampered
/datum/rune_spell/communication/midcast(var/mob/living/user)
var/datum/faction/bloodcult/cult = find_active_faction_by_type(/datum/faction/bloodcult)
@@ -538,17 +550,25 @@
speaker_name = H.real_name
L = speech.speaker
rendered_message = speech.render_message()
+ var/shownmessage = speech.message
+ if(arcanetampered)
+ if(prob(50))
+ shownmessage = derpspeech(speech.message)
+ else
+ shownmessage = tumblrspeech(speech.message)
+ shownmessage = nekospeech(speech.message)
+ speaker_name = pick(clown_names)
var/datum/faction/bloodcult = find_active_faction_by_member(iscultist(L))
for(var/datum/role/cultist/C in bloodcult.members)
var/datum/mind/M = C.antag
if (M.current == speech.speaker)//echoes are annoying
continue
if (iscultist(M.current))//failsafe for cultist brains put in MMIs
- to_chat(M.current, "[speaker_name]'s voice echoes in your head, [speech.message]")
+ to_chat(M.current, "[speaker_name]'s voice echoes in your head, [shownmessage]")
for(var/mob/living/simple_animal/astral_projection/A in astral_projections)
- to_chat(A, "[speaker_name] communicates, [speech.message]")
+ to_chat(A, "[speaker_name] communicates, [shownmessage]")
for(var/mob/dead/observer/O in player_list)
- to_chat(O, "[speaker_name] communicates, [speech.message]")
+ to_chat(O, "[speaker_name] communicates, [shownmessage]")
log_cultspeak("[key_name(speech.speaker)] Cult Communicate Rune: [rendered_message]")
/obj/effect/cult_ritual/cult_communication/HasProximity(var/atom/movable/AM)
@@ -2296,7 +2316,9 @@ var/list/seer_rituals = list()
L.stat = CONSCIOUS
if (L.reagents)
L.reagents.del_reagent(HOLYWATER)
- if (!L.reagents.has_any_reagents(HYPERZINES))
+ if(spell_holder.arcanetampered && !L.reagents.has_any_reagents(HONKSERUM))
+ L.reagents.add_reagent(HONKSERUM,1)
+ else if (!L.reagents.has_any_reagents(HYPERZINES))
L.reagents.add_reagent(HYPERZINE,1,"no motor mouth")
qdel(spell_holder)
qdel(src)
@@ -2488,6 +2510,11 @@ var/list/seer_rituals = list()
for(var/mob/living/L in contributors)
to_chat(activator, "The ritual failed, the target seems to be under a curse that prevents us from reaching them through the veil.")
else
+ if(spell_holder?.arcanetampered) // send in the clowns!
+ for (var/mob/living/carbon/human/H in player_list)
+ if(istype(H) && !H.stat && istype(H.get_item_by_slot(slot_wear_mask),/obj/item/clothing/mask/gas/clown_hat))
+ target = H
+ break
if (rejoin)
var/list/valid_turfs = list()
for(var/turf/T in orange(target,1))
@@ -3077,6 +3104,8 @@ var/list/bloodcult_exitportals = list()
newCultist.tattoos[TATTOO_MANIFEST] = new /datum/cult_tattoo/manifest()
vessel.equip_or_collect(new /obj/item/clothing/under/leather_rags(vessel), slot_w_uniform)
+ if(spell_holder?.arcanetampered)
+ vessel.adjustBrainLoss(100)
M.regenerate_icons()
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 683a6a4d5b2b..0afdf4141afd 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -55,6 +55,14 @@
/*
* ID CARDS
*/
+
+/obj/item/weapon/card/fake_emag
+ desc = "It's a card with a magnetic strip attached to some circuitry... NOT!"
+ name = "cryptographic sequencer"
+ icon_state = "emag"
+ item_state = "card-id"
+ slot_flags = SLOT_ID
+
/obj/item/weapon/card/emag
desc = "It's a card with a magnetic strip attached to some circuitry."
name = "cryptographic sequencer"
diff --git a/code/game/objects/structures/flora/flora.dm b/code/game/objects/structures/flora/flora.dm
index 75588cbcd76e..5fdf33fba24f 100644
--- a/code/game/objects/structures/flora/flora.dm
+++ b/code/game/objects/structures/flora/flora.dm
@@ -347,40 +347,7 @@
user.visible_message("[user] stuffs something into the pot.", "You stuff \the [I] into the [src].")
playsound(loc, "sound/effects/plant_rustle.ogg", 50, 1, -1)
if(arcanetampered)
- var/area/thearea
- var/area/prospective = pick(areas)
- while(!thearea)
- if(prospective.type != /area)
- var/turf/T = pick(get_area_turfs(prospective.type))
- if(T.z == user.z)
- thearea = prospective
- break
- prospective = pick(areas)
- var/list/L = list()
- for(var/turf/T in get_area_turfs(thearea.type))
- if(!T.density)
- var/clear = 1
- for(var/obj/O in T)
- if(O.density)
- clear = 0
- break
- if(clear)
- L+=T
- if(!L.len)
- return
-
- var/list/backup_L = L
- var/attempt = null
- var/success = 0
- while(L.len)
- attempt = pick(L)
- success = I.Move(attempt)
- if(!success)
- L.Remove(attempt)
- else
- break
- if(!success)
- I.forceMove(pick(backup_L))
+ I.dimensional_push(user)
/obj/structure/flora/pottedplant/attack_hand(mob/user)
if(contents.len)
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 1d5a221b7bb9..3bcdaca70140 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -47,6 +47,8 @@
if(!projectile_type)
return 0
in_chamber = new projectile_type(src)
+ if(arcanetampered)
+ in_chamber.arcanetampered = arcanetampered
return 1
/obj/item/weapon/gun/energy/update_icon()
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 1694e7611f3a..911e1660a1ab 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -122,7 +122,14 @@
P.changetype=changetype
return 1
+/obj/item/weapon/gun/energy/staff/change/arcane_act(mob/user, recursive)
+ changetype = null
+ return ..()
+
/obj/item/weapon/gun/energy/staff/change/attack_self(var/mob/living/user)
+ if(arcanetampered)
+ to_chat(user, "The dial conspicuously mounted on the side of your staff is spinning too hard for you to even touch!")
+ return
if(world.time < next_changetype)
to_chat(user, "[src] is still recharging.")
return
@@ -194,6 +201,9 @@
var/next_changetype = 0
/obj/item/weapon/gun/energy/staff/polymorph/attack_self(var/mob/living/user)
+ if(arcanetampered)
+ to_chat(user, "The dial conspicuously mounted on the side of your staff is spinning too hard for you to even touch!")
+ return
if(world.time < next_changetype)
to_chat(user, "[src] is still recharging.")
return
@@ -212,7 +222,10 @@
return 0
var/obj/item/projectile/polymorph/P=in_chamber
if(P && istype(P))
- P.status=setting
+ if(arcanetampered)
+ P.status=pick(MINOR, MAJOR)
+ else
+ P.status=setting
return 1
/obj/item/weapon/gun/energy/staff/necro
@@ -266,11 +279,12 @@
if(H.stat)
if(raisetype)
H.dropBorers()
- var/mob/living/simple_animal/hostile/necro/skeleton/spooky = new /mob/living/simple_animal/hostile/necro/skeleton(get_turf(H), user, H)
+ var/mob/living/simple_animal/hostile/necro/skeleton/spooky = new /mob/living/simple_animal/hostile/necro/skeleton(get_turf(H), arcanetampered ? null : user, H)
H.gib()
- spooky.faction = "\ref[user]"
+ if(!arcanetampered)
+ spooky.faction = "\ref[user]"
else
- H.zombify(user)
+ H.zombify(arcanetampered ? null : user)
else
success = FALSE
@@ -282,17 +296,19 @@
var/mob/living/L = target
if(L.stat == DEAD)
success = TRUE
- var/mob/living/simple_animal/hostile/necro/meat_ghoul/mG = new /mob/living/simple_animal/hostile/necro/meat_ghoul(get_turf(L), user)
+ var/mob/living/simple_animal/hostile/necro/meat_ghoul/mG = new /mob/living/simple_animal/hostile/necro/meat_ghoul(get_turf(L), arcanetampered ? null : user)
mG.ghoulifyMeat(L)
- mG.faction = "\ref[user]"
+ if(!arcanetampered)
+ mG.faction = "\ref[user]"
L.gib()
else
to_chat(user,"The creature must be dead before it can be undead.")
else if(istype(target, /obj/item/weapon/reagent_containers/food/snacks/meat))
- var/mob/living/simple_animal/hostile/necro/animal_ghoul/aG = new /mob/living/simple_animal/hostile/necro/animal_ghoul(get_turf(target), user, target)
+ var/mob/living/simple_animal/hostile/necro/animal_ghoul/aG = new /mob/living/simple_animal/hostile/necro/animal_ghoul(get_turf(target), arcanetampered ? null : user, target)
success = TRUE
aG.ghoulifyAnimal(target)
- aG.faction = "\ref[user]"
+ if(!arcanetampered)
+ aG.faction = "\ref[user]"
qdel(target)
if(success)
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index caccd2cac114..4c683fbbf168 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -390,7 +390,10 @@
/obj/item/projectile/swap/on_hit(var/atom/target, var/blocked = 0)
var/turf/T = get_turf(target)
do_teleport(target, firer.loc)
- do_teleport(firer, T)
+ if(arcanetampered)
+ firer.dimensional_push()
+ else
+ do_teleport(firer, T)
/obj/item/projectile/swap/advanced
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSRAILING
diff --git a/code/modules/spells/targeted/push.dm b/code/modules/spells/targeted/push.dm
index bf69dc6c5cae..852b5d1f46f6 100644
--- a/code/modules/spells/targeted/push.dm
+++ b/code/modules/spells/targeted/push.dm
@@ -34,6 +34,15 @@
/spell/targeted/push/cast(var/list/targets)
..()
+ for(var/atom/movable/target in targets)
+ if(target.dimensional_push())
+ score.dimensionalpushes++
+
+/spell/targeted/push/get_upgrade_price(upgrade_type)
+ return price / 2
+
+/atom/movable/proc/dimensional_push(var/user)
+ . = 0
var/area/thearea
var/area/prospective
while(!thearea)
@@ -43,7 +52,7 @@
if(!prospective_turfs.len) //An in-game area somehow lost its turfs, search for another one
continue
var/turf/T = pick(prospective_turfs)
- if(T.z == holder.z)
+ if(!user || T.z == user.z)
thearea = prospective
break
var/list/L = list()
@@ -57,24 +66,21 @@
if(clear)
L+=T
if(!L.len)
- to_chat(holder, "The spell matrix was unable to locate a suitable destination for an unknown reason. Sorry.")
- return
+ if(user)
+ to_chat(user, "The spell matrix was unable to locate a suitable destination for an unknown reason. Sorry.")
+ return 0
var/list/backup_L = L
- for(var/atom/movable/target in targets)
- target.unlock_from()
- var/attempt = null
- var/success = 0
- while(L.len)
- attempt = pick(L)
- success = target.Move(attempt)
- if(!success)
- L.Remove(attempt)
- else
- score.dimensionalpushes++
- break
+ unlock_from()
+ var/attempt = null
+ var/success = 0
+ while(L.len)
+ attempt = pick(L)
+ success = Move(attempt)
if(!success)
- target.forceMove(pick(backup_L))
-
-/spell/targeted/push/get_upgrade_price(upgrade_type)
- return price / 2
+ L.Remove(attempt)
+ else
+ return 1
+ if(!success)
+ forceMove(pick(backup_L))
+ return 0
\ No newline at end of file
From eb63453b8b57c2c495ade327ea8440709d33f8d1 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 17:27:42 +0100
Subject: [PATCH 003/101] makes it compile
---
code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm | 2 +-
.../gamemode/factions/bloodcult/bloodcult_runespells.dm | 5 +----
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
index 8794cd27cbd6..de98c576a392 100644
--- a/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
+++ b/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
@@ -87,7 +87,7 @@
user.Knockdown(3)
user.Stun(3)
if(ishuman(user))
- shake_camera(L, 20, 1)
+ shake_camera(user, 20, 1)
spawn(20)
if(user)
to_chat(user,"You vomit from travelling through \the [src]!")
diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
index 0cc701ea3295..e631d70179f5 100644
--- a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
+++ b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
@@ -63,12 +63,9 @@
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." //Arcane tome page description.
- var/spell_holder.spell_holder.arcanetampered = 0
-
-/datum/rune_spell/New(var/mob/user, var/obj/holder, var/use = "ritual", var/mob/target, var/tampered)
+/datum/rune_spell/New(var/mob/user, var/obj/holder, var/use = "ritual", var/mob/target)
spell_holder = holder
activator = user
- spell_holder.spell_holder.arcanetampered = tampered
if(use == "ritual")
pre_cast()
From 67ab2563b067c3797f651a115e5012d90377698a Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 17:31:52 +0100
Subject: [PATCH 004/101] this too
---
code/modules/spells/targeted/push.dm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/code/modules/spells/targeted/push.dm b/code/modules/spells/targeted/push.dm
index 852b5d1f46f6..caec475bf08e 100644
--- a/code/modules/spells/targeted/push.dm
+++ b/code/modules/spells/targeted/push.dm
@@ -41,18 +41,20 @@
/spell/targeted/push/get_upgrade_price(upgrade_type)
return price / 2
-/atom/movable/proc/dimensional_push(var/user)
+/atom/movable/proc/dimensional_push(var/mob/user)
. = 0
var/area/thearea
var/area/prospective
while(!thearea)
prospective = pick(areas)
- if(prospective.type != /area)
+ if(!user)
+ thearea = prospective
+ if(!thearea || prospective.type != /area)
var/list/prospective_turfs = get_area_turfs(prospective.type)
if(!prospective_turfs.len) //An in-game area somehow lost its turfs, search for another one
continue
var/turf/T = pick(prospective_turfs)
- if(!user || T.z == user.z)
+ if(T.z == user.z)
thearea = prospective
break
var/list/L = list()
From 35b973c88cd199b9979492e8e2e57b137d065494 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 20:03:02 +0100
Subject: [PATCH 005/101] adds these
---
.../objects/items/devices/chameleonproj.dm | 13 +++++--
.../implants/types/explosive_implant.dm | 13 +++++++
.../weapons/implants/types/freedom_implant.dm | 8 ++++
.../reagent_containers/food/drinks.dm | 37 +++++++++++++++++++
4 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index bd23ef9a69c4..e588a2e0988d 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -49,10 +49,15 @@
if(istype(target, /obj/item) && !istype(target, /obj/item/weapon/disk/nuclear) || istype(target, /mob))
playsound(src, 'sound/weapons/flash.ogg', 100, 1, -6)
to_chat(user, "Scanned [target].")
- saved_item = target.type
- saved_icon = target.icon
- saved_icon_state = target.icon_state
- saved_overlays = target.overlays.Copy()
+ if(arcanetampered)
+ saved_item = /obj/item/toy/syndicateballoon
+ saved_icon = 'icons/obj/weapons.dmi'
+ saved_icon_state = "syndballoon"
+ else
+ saved_item = target.type
+ saved_icon = target.icon
+ saved_icon_state = target.icon_state
+ saved_overlays = target.overlays.Copy()
return 1
/obj/item/device/chameleon/proc/toggle()
diff --git a/code/game/objects/items/weapons/implants/types/explosive_implant.dm b/code/game/objects/items/weapons/implants/types/explosive_implant.dm
index 7268f74eb30f..dc0e8db15baf 100644
--- a/code/game/objects/items/weapons/implants/types/explosive_implant.dm
+++ b/code/game/objects/items/weapons/implants/types/explosive_implant.dm
@@ -56,6 +56,19 @@
score.implant_phrases += "[usr.real_name] ([get_key(usr)]) rigged [imp_in.real_name] to explode on the phrase \"[phrase]\"!"
return 1
+/obj/item/weapon/implant/explosive/arcane_act(mob/user, recursive)
+ processing_objects.Add(src)
+ return ..()
+
+/obj/item/weapon/implant/explosive/bless()
+ if(arcanetampered)
+ processing_objects.Remove(src)
+ ..()
+
+/obj/item/weapon/implant/explosive/process()
+ if(arcanetampered && prob(10))
+ imp_in.say(copytext(phrase,1,rand(2,length(phrase))))
+
/obj/item/weapon/implant/explosive/emp_act(severity)
if(malfunction)
return
diff --git a/code/game/objects/items/weapons/implants/types/freedom_implant.dm b/code/game/objects/items/weapons/implants/types/freedom_implant.dm
index 201d99b3546f..99cc5287976e 100644
--- a/code/game/objects/items/weapons/implants/types/freedom_implant.dm
+++ b/code/game/objects/items/weapons/implants/types/freedom_implant.dm
@@ -24,6 +24,14 @@
var/jacket = dude.is_wearing_item(/obj/item/clothing/suit/strait_jacket, slot_wear_suit)
if(jacket)
source.u_equip(jacket, TRUE)
+ if(arcanetampered)
+ playsound(source.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ source.Knockdown(10)
+ source.Stun(10)
+ if(iscarbon(source))
+ var/mob/living/L = source
+ L.apply_effect(10, STUTTER)
+
/obj/item/weapon/implant/freedom/implanted(mob/implanter)
imp_in.register_event(/event/emote, src, nameof(src::trigger()))
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 219dd366aeac..a4b89fdf98f1 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -69,15 +69,52 @@
/obj/item/weapon/reagent_containers/food/drinks/arcane_act(mob/user)
..()
cant_drop = 1
+ processing_objects.Add(src)
return prob(50) ? "D'TA EX'P'GED!" : "R'D'CTED!"
/obj/item/weapon/reagent_containers/food/drinks/bless()
..()
cant_drop = 0
+ processing_objects.Remove(src)
+
+/obj/item/weapon/reagent_containers/food/drinks/process()
+ . = ..()
+ if(arcanetampered && ishuman(loc))
+ var/mob/living/carbon/human/H = loc
+ if(src in H.held_items)
+ if(!reagents.is_full())
+ H.vessel.trans_to(reagents,reagents.maximum_volume-reagents.total_volume)
+ H.nutrition += 3
+ else
+ H.overeatduration = 0
+ H.nutrition -= 10
+
+/obj/item/weapon/reagent_containers/food/drinks/proc/drop_arcane(mob/user, body_destroyed)
+ user.unregister_event(/event/death, src, nameof(src::drop_arcane()))
+ cant_drop = 0
+ user.drop_item(src, user.loc)
+ cant_drop = 1
+ var/list/obj/structure/table/tables = list()
+ for(var/obj/structure/table/T in view(7,src))
+ tables += T
+ var/obj/structure/table/ourtable = pick(tables)
+ forceMove(ourtable.loc)
+ reagents.clear_reagents()
+ var/static/list/blocked = list(
+ /datum/reagent/drink,
+ /datum/reagent/drink/cold,
+ )
+ var/list/things_can_add = existing_typesof(/datum/reagent/drink) - blocked
+ var/list/things2add
+ for(var/addtype in things_can_add)
+ var/datum/reagent/R = addtype
+ things2add += list(initial(R.id))
+ reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
/obj/item/weapon/reagent_containers/food/drinks/pickup(var/mob/user)
..()
if(ishuman(user) && arcanetampered) // wizards turn it into SCP-198
+ user.register_event(/event/death, src, nameof(src::drop_arcane()))
var/mob/living/carbon/human/H = user
reagents.clear_reagents()
H.audible_scream()
From c00148e349adc0388c460f187e6b841f37475bce Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 20:19:40 +0100
Subject: [PATCH 006/101] stops limb removal for this
---
code/modules/mob/living/carbon/human/human_damage.dm | 6 ++++++
code/modules/surgery/generic.dm | 3 +++
2 files changed, 9 insertions(+)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index d4fd6c8eade5..159e45f00c1f 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -180,12 +180,18 @@
//Returns a list of damageable organs
/mob/living/carbon/human/proc/get_damageable_organs(var/ignore_inorganics = FALSE)
+ var/arcanedrink = 0
+ for(var/obj/item/I in held_items)
+ if(I.arcanetampered && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
+ arcanedrink = 1
var/list/datum/organ/external/parts = list()
for(var/datum/organ/external/O in organs)
if(!O.is_existing())
continue
if(ignore_inorganics && !O.is_organic())
continue
+ if(arcanedrink && (O.type in list(/datum/organ/external/l_arm,/datum/organ/external/l_hand,/datum/organ/external/r_arm,/datum/organ/external/r_hand)))
+ continue
if(O.brute_dam + O.burn_dam < O.max_damage)
parts += O
return parts
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index 66aa2ed5aec0..809a44a95961 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -353,6 +353,9 @@
return 0
if(isslimeperson(target) && istype(affected, /datum/organ/external/head))
return 0
+ for(var/obj/item/I in target.held_items)
+ if(I.arcanetampered && (target_zone == LIMB_LEFT_ARM || target_zone == LIMB_LEFT_HAND || target_zone == LIMB_RIGHT_ARM || target_zone == LIMB_RIGHT_HAND) && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
+ return 0
return target_zone != LIMB_CHEST && target_zone != LIMB_GROIN && target_zone != LIMB_HEAD
/datum/surgery_step/generic/cut_limb/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
From 3936797ae19b1ff350e5b6f40607501324d37b66 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 20:52:12 +0100
Subject: [PATCH 007/101] living long balloons
---
code/game/objects/items/toys.dm | 1 +
code/modules/mob/living/simple_animal/hostile/balloon.dm | 9 +++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index bc10e09fdba0..02ad9394cb05 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1687,6 +1687,7 @@ var/list/living_balloons = list()
var/mob/living/simple_animal/hostile/balloon/B = new(get_turf(src), col, icon_state)
B.name = name
B.air_contents = air_contents
+ B.arcanetampered = arcanetampered
qdel(src)
/*
diff --git a/code/modules/mob/living/simple_animal/hostile/balloon.dm b/code/modules/mob/living/simple_animal/hostile/balloon.dm
index fafa0c9c2bb6..73addc8ec9a5 100644
--- a/code/modules/mob/living/simple_animal/hostile/balloon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/balloon.dm
@@ -56,11 +56,16 @@
overlays += shine_overlay
/mob/living/simple_animal/hostile/balloon/CanAttack(var/atom/the_target)
+ var/clumsyfound = FALSE
if(isliving(the_target))
var/mob/living/L = the_target
if(M_CLUMSY in L.mutations)
- return 0
- return ..(the_target)
+ clumsyfound = TRUE
+ if(arcanetampered) // tampered ones only go after clowns now!
+ clumsyfound = !clumsyfound
+ if(!clumsyfound)
+ return ..(the_target)
+ return 0
/mob/living/simple_animal/hostile/balloon/FindTarget()
. = ..()
From ee95ad40c6cdeed26e2fa1b2c19e975fdc1ed677 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 21:39:46 +0100
Subject: [PATCH 008/101] more syndie items done
---
code/game/objects/items/stacks/cable.dm | 11 ++++-
code/game/objects/items/weapons/cards_ids.dm | 37 ++++++++++----
.../objects/items/weapons/storage/toolbox.dm | 28 +++++------
.../objects/structures/vehicles/wheelchair.dm | 48 +++++++++++--------
4 files changed, 81 insertions(+), 43 deletions(-)
diff --git a/code/game/objects/items/stacks/cable.dm b/code/game/objects/items/stacks/cable.dm
index a228035e7cc8..061ab9d22009 100644
--- a/code/game/objects/items/stacks/cable.dm
+++ b/code/game/objects/items/stacks/cable.dm
@@ -396,9 +396,18 @@ var/global/list/datum/stack_recipe/cable_recipes = list ( \
/obj/item/stack/cable_coil/white
color = "#D0D0D0"
+/obj/item/stack/cable_coil/random
+ var/list/colors = list("#FF0000","#FFED00","#0B8400","#005C84","#CA00B6")
+
+/obj/item/stack/cable_coil/random/toolbox
+ colors = list("#FF0000","#FFED00","#0B8400","#005C84","#CA00B6","#CA6900","#00B5CA","#D0D0D0")
+
+/obj/item/stack/cable_coil/random/etoolbox
+ colors = list("red","yellow","green","blue","pink","orange","cyan","white")
+
/obj/item/stack/cable_coil/random/New(loc, amount, var/param_color = null)
..()
- color = pick("#FF0000","#FFED00","#0B8400","#005C84","#CA00B6")
+ color = pick(colors)
update_icon()
if (ismob(loc))
var/mob/M = loc
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 0afdf4141afd..1cebb0e88274 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -470,15 +470,23 @@ var/list/global/id_cards = list()
..()
access = get_all_accesses()
+/obj/item/weapon/card/id/syndicate/arcane_act(mob/user, recursive)
+ registered_name = prob(75) ? pick(clown_names) : user.real_name
+ icon_state = "clown"
+ assignment = pickweight(list("Clown" = 50,"Jester" = 25,"Syndicate" = 10,"Wizard" = 10,"ID that got arcane tampered" = 5))
+ UpdateName()
+ return ..()
+
/obj/item/weapon/card/id/syndicate/afterattack(var/obj/item/weapon/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/I = O
to_chat(user, "\The [src]'s microscanners activate as you pass it over \the [I], copying its access[copy_appearance ? " and appearance" : ""].")
access |= I.access
if(copy_appearance)
- registered_name = I.registered_name
- icon_state = I.icon_state
- assignment = I.assignment
+ if(!arcanetampered)
+ registered_name = I.registered_name
+ icon_state = I.icon_state
+ assignment = I.assignment
associated_account_number = I.associated_account_number
blood_type = I.blood_type
dna_hash = I.dna_hash
@@ -500,7 +508,7 @@ var/list/global/id_cards = list()
src.registered_name = ""
return
src.assignment = u
- src.name = "[src.registered_name]'s ID Card ([src.assignment])"
+ UpdateName()
to_chat(user, "You successfully forge the ID card.")
registered_user = user
else if(!registered_user || registered_user == user)
@@ -514,6 +522,10 @@ var/list/global/id_cards = list()
if("Edit")
switch(input(user,"What would you like to edit on \the [src]?") in list("Name","Appearance","Occupation","Money account","Blood type","DNA hash","Fingerprint hash","Reset card"))
if("Name")
+ if(arcanetampered)
+ to_chat(user,"HONK!")
+ user << 'sound/items/bikehorn.ogg'
+ return
var/new_name = reject_bad_name(input(user,"What name would you like to put on this card?","Agent card name", ishuman(user) ? user.real_name : user.name))
if(!Adjacent(user))
return
@@ -523,6 +535,10 @@ var/list/global/id_cards = list()
to_chat(user, "Name changed to [new_name].")
if("Appearance")
+ if(arcanetampered)
+ to_chat(user,"HONK!")
+ user << 'sound/items/bikehorn.ogg'
+ return
var/list/appearances = list(
"data",
"id",
@@ -560,6 +576,10 @@ var/list/global/id_cards = list()
to_chat(usr, "Appearance changed to [choice].")
if("Occupation")
+ if(arcanetampered)
+ to_chat(user,"HONK!")
+ user << 'sound/items/bikehorn.ogg'
+ return
var/new_job = sanitize(stripped_input(user,"What job would you like to put on this card?\nChanging occupation will not grant or remove any access levels.","Agent card occupation", "Assistant", MAX_MESSAGE_LEN))
if(!Adjacent(user))
return
@@ -617,10 +637,11 @@ var/list/global/id_cards = list()
to_chat(user, "Fingerprint hash changed to [new_fingerprint_hash].")
if("Reset card")
- name = initial(name)
- registered_name = initial(registered_name)
- icon_state = initial(icon_state)
- assignment = initial(assignment)
+ if(!arcanetampered)
+ name = initial(name)
+ registered_name = initial(registered_name)
+ icon_state = initial(icon_state)
+ assignment = initial(assignment)
associated_account_number = initial(associated_account_number)
blood_type = initial(blood_type)
dna_hash = initial(dna_hash)
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index 76354d47eaab..782e4d599117 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -100,22 +100,21 @@
/obj/item/tool/wirecutters,
/obj/item/device/t_scanner,
/obj/item/tool/crowbar,
+ /obj/item/stack/cable_coil/random/etoolbox = 2,
)
/obj/item/weapon/storage/toolbox/electrical/New()
..()
- var/color = pick("#FF0000","#FFED00","#0B8400","#005C84","#CA00B6","#CA6900","#00B5CA","#D0D0D0")
- new /obj/item/stack/cable_coil(src,30,color)
- new /obj/item/stack/cable_coil(src,30,color)
if(prob(5))
new /obj/item/clothing/gloves/yellow(src)
else
- new /obj/item/stack/cable_coil(src,30,color)
+ new /obj/item/stack/cable_coil/random/etoolbox(src)
/obj/item/weapon/storage/toolbox/electrical/arcane_act(mob/user)
for(var/atom/A in contents)
- qdel(A)
- new /obj/item/clothing/gloves/fyellow(src)
+ if(A.type in items_to_spawn)
+ qdel(A)
+ new /obj/item/clothing/gloves/fyellow(src)
return ..()
/obj/item/weapon/storage/toolbox/syndicate
@@ -131,12 +130,15 @@
/obj/item/tool/crowbar,
/obj/item/tool/wirecutters,
/obj/item/device/multitool,
+ /obj/item/stack/cable_coil/random/toolbox,
)
-/obj/item/weapon/storage/toolbox/syndicate/New()
- ..()
- var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
- new /obj/item/stack/cable_coil(src,30,color)
+/obj/item/weapon/storage/toolbox/syndicate/arcane_act(mob/user)
+ for(var/atom/A in contents)
+ if(A.type in items_to_spawn)
+ qdel(A)
+ new /obj/item/weapon/card/fake_emag(src)
+ return ..()
/obj/item/weapon/storage/toolbox/robotics
name = "robotics toolbox"
@@ -147,13 +149,9 @@
/obj/item/tool/weldingtool,
/obj/item/tool/screwdriver,
/obj/item/tool/wirecutters,
+ /obj/item/stack/cable_coil/random/toolbox,
)
-/obj/item/weapon/storage/toolbox/robotics/New()
- ..()
- var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
- new /obj/item/stack/cable_coil(src,30,color)
-
/obj/item/weapon/storage/toolbox/paint
name = "painter's toolbox"
desc = "Contains an assortment of paints for the artistic spacefarer."
diff --git a/code/game/objects/structures/vehicles/wheelchair.dm b/code/game/objects/structures/vehicles/wheelchair.dm
index be24ddd793e9..ad41bc87cda4 100644
--- a/code/game/objects/structures/vehicles/wheelchair.dm
+++ b/code/game/objects/structures/vehicles/wheelchair.dm
@@ -16,6 +16,7 @@
can_have_carts = FALSE
var/image/wheel_overlay
+ var/multi_people = 0
/obj/structure/bed/chair/vehicle/wheelchair/New()
. = ..()
@@ -53,7 +54,7 @@
overlays -= wheel_overlay
/obj/structure/bed/chair/vehicle/wheelchair/can_buckle(mob/M, mob/user)
- if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.restrained() || user.stat || user.locked_to || occupant) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
+ if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.restrained() || user.stat || user.locked_to || (!multi_people && occupant)) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
return 0
if(M_HULK in M.mutations)
if(M == user)
@@ -178,31 +179,28 @@
/obj/structure/bed/chair/vehicle/wheelchair/multi_people
nick = "hella ride"
desc = "A chair with fitted wheels. Something seems off about this one..."
+ multi_people = 1
-/obj/structure/bed/chair/vehicle/wheelchair/multi_people/examine(mob/user)
+/obj/structure/bed/chair/vehicle/wheelchair/examine(mob/user)
..()
-
- if(is_locking(/datum/locking_category/buckle/chair/vehicle) > 9)
+ if(multi_people && is_locking(/datum/locking_category/buckle/chair/vehicle) > 9)
to_chat(user, "WHAT THE FUCK")
-/obj/structure/bed/chair/vehicle/wheelchair/multi_people/can_buckle(mob/M, mob/user)
- //Same as parent's, but no occupant check!
- if(!Adjacent(user) && !user.Adjacent(M) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.restrained() || user.stat || M.locked_to)
- return 0
- return 1
-
-/obj/structure/bed/chair/vehicle/wheelchair/multi_people/update_mob()
- var/i = 0
- for(var/mob/living/L in get_locked(/datum/locking_category/buckle/chair/vehicle))
- L.pixel_x = 0
- L.pixel_y = 3 * PIXEL_MULTIPLIER + (i * 6 * PIXEL_MULTIPLIER) //Stack people on top of each other!
+/obj/structure/bed/chair/vehicle/wheelchair/update_mob()
+ if(multi_people)
+ var/i = 0
+ for(var/mob/living/L in get_locked(/datum/locking_category/buckle/chair/vehicle))
+ L.pixel_x = 0
+ L.pixel_y = 3 * PIXEL_MULTIPLIER + (i * 6 * PIXEL_MULTIPLIER) //Stack people on top of each other!
- i++
+ i++
+ else
+ ..()
-/obj/structure/bed/chair/vehicle/wheelchair/multi_people/manual_unbuckle(mob/user, var/resisting)
+/obj/structure/bed/chair/vehicle/wheelchair/manual_unbuckle(mob/user, var/resisting)
..()
-
- update_mob() //Update the rest
+ if(multi_people)
+ update_mob() //Update the rest
/obj/structure/bed/chair/vehicle/wheelchair/motorized
name = "motorized wheelchair"
@@ -266,6 +264,14 @@
desc = "A high-riding wheelchair fitted with a powerful cell and blades under the carriage. Better get a table between you and it."
var/attack_cooldown = 0
+/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/arcane_act(mob/user)
+ multi_people = TRUE
+ return ..()
+
+/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/bless()
+ multi_people = FALSE
+ ..()
+
/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/to_bump(var/atom/A)
if(isliving(A) && !attack_cooldown)
var/mob/living/L = A
@@ -281,6 +287,8 @@
L.Knockdown(5)
L.lying = 1
L.update_icons()
+ if(arcanetampered && multi_people)
+ buckle_chair(L,occupant)
..()
/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/proc/crush(var/mob/living/H,var/bloodcolor) //Basically identical to the MULE, see mulebot.dm
@@ -290,6 +298,8 @@
H.apply_damage(damage, BRUTE, LIMB_CHEST)
H.apply_damage(damage, BRUTE, LIMB_LEFT_LEG)
H.apply_damage(damage, BRUTE, LIMB_RIGHT_LEG)
+ if(arcanetampered && multi_people)
+ buckle_chair(H,occupant)
attack_cooldown = 1
spawn(10)
attack_cooldown = 0
From b789db424932a4dd25223c8cea3b59e6f0de9721 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Mon, 29 Apr 2024 21:46:43 +0100
Subject: [PATCH 009/101] stack recipes are now infected
---
code/game/objects/items/stacks/stack_recipes.dm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/code/game/objects/items/stacks/stack_recipes.dm b/code/game/objects/items/stacks/stack_recipes.dm
index d2ba7d64ada3..a5831607fdf4 100644
--- a/code/game/objects/items/stacks/stack_recipes.dm
+++ b/code/game/objects/items/stacks/stack_recipes.dm
@@ -109,6 +109,8 @@
for(var/i = 1 to (max_res_amount>1 ? res_amount*multiplier : 1))
O = new result_type(construct_loc)
+ if(S.arcanetampered)
+ O.arcanetampered = S.arcanetampered
S.stop_build(current_work == S.last_work)
O.change_dir(usr.dir)
if(start_unanchored)
From eb9a170528d1e187ac23e1c8e0aeafc45d5143b8 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Wed, 4 Sep 2024 19:42:49 +0100
Subject: [PATCH 010/101] arcane tampering chems
---
code/game/atoms.dm | 6 ++
code/modules/reagents/Chemistry-Reagents.dm | 1 +
.../modules/reagents/reagents/reagents_dan.dm | 11 ++++
.../reagents/reagents/reagents_drink.dm | 5 ++
.../reagents/reagents/reagents_drug.dm | 7 +++
.../reagents/reagents/reagents_ethanol.dm | 62 +++++++++++++++++++
.../reagents/reagents/reagents_food.dm | 17 +++++
.../reagents/reagents/reagents_medical.dm | 49 +++++++++++++++
.../reagents/reagents/reagents_misc.dm | 2 +
.../reagents/reagents/reagents_plant.dm | 4 ++
.../reagents/reagents/reagents_tools.dm | 6 ++
.../reagents/reagents/reagents_toxin.dm | 15 +++++
12 files changed, 185 insertions(+)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 67b20fddf6c2..cf72457562f7 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -874,6 +874,12 @@ its easier to just keep the beam vertical.
if(recursive)
for(var/atom/A in contents)
A.arcane_act(user,TRUE)
+ if(reagents)
+ for(var/datum/reagent/R in reagents.reagent_list)
+ if(R.arcane_id)
+ var/oldamt = R.volume
+ reagents.del_reagent(R.id)
+ reagents.add_reagent(R.arcane_id, oldamt)
return "E'MAGI!"
//Called on holy_water's reaction_obj()
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index f8226fc556c5..85d79f6428e5 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -48,6 +48,7 @@
var/tolerance_increase = null //for tolerance, if set above 0, will increase each by that amount on tick.
var/paint_light = PAINTLIGHT_NONE
var/adj_temp = 0//keep between -1.5,20 to prevent people from freezing/burning themselves
+ var/arcane_id //arcane tampered replacement
/datum/reagent/proc/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume, var/list/zone_sels = ALL_LIMBS, var/allow_permeability = TRUE, var/list/splashplosion=list())
set waitfor = 0
diff --git a/code/modules/reagents/reagents/reagents_dan.dm b/code/modules/reagents/reagents/reagents_dan.dm
index 6eb4ffddc144..6ebbd763dbe8 100644
--- a/code/modules/reagents/reagents/reagents_dan.dm
+++ b/code/modules/reagents/reagents/reagents_dan.dm
@@ -7,6 +7,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 111, 136, 79
nutriment_factor = 4 * REAGENTS_METABOLISM
+ arcane_id = PEPTOBISMOL
/datum/reagent/discount/New()
..()
@@ -46,6 +47,7 @@
name = "Mannitol"
id = MANNITOL
description = "The only medicine a REAL MAN needs."
+ arcane_id = WAIFU
/datum/reagent/irradiatedbeans
name = "Irradiated Beans"
@@ -54,6 +56,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 1 * REAGENTS_METABOLISM
+ arcane_id = URANIUM
/datum/reagent/irradiatedbeans/on_mob_life(var/mob/living/M)
if(..())
@@ -70,6 +73,7 @@
color = "#6F884F" //rgb: 255,255,255 //to-do
density = 5.59
specheatcap = 2.71
+ arcane_id = TOXIN
/datum/reagent/toxicwaste/on_mob_life(var/mob/living/M)
if(..())
@@ -85,6 +89,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 1 * REAGENTS_METABOLISM
+ arcane_id = IRRADIATEDBEANS
/datum/reagent/mutatedbeans
name = "Mutated Beans"
@@ -93,6 +98,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 1 * REAGENTS_METABOLISM
+ arcane_id = URANIUM
/datum/reagent/mutatedbeans/on_mob_life(var/mob/living/M)
if(..())
@@ -123,6 +129,7 @@
description = "We don't know much about it, but we damn well know that it hates the human skeleton."
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
+ arcane_id = DIAMONDDUST
/datum/reagent/moonrocks/on_mob_life(var/mob/living/M)
if(..())
@@ -146,6 +153,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 1 * REAGENTS_METABOLISM
+ arcane_id = DEGENERATECALCIUM
/datum/reagent/greenramen
name = "Greenish Ramen Noodles"
@@ -154,6 +162,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 2 * REAGENTS_METABOLISM
+ arcane_id = HELL_RAMEN
/datum/reagent/greenramen/on_mob_life(var/mob/living/M)
if(..())
@@ -172,6 +181,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 2 * REAGENTS_METABOLISM
+ arcane_id = HELL_RAMEN
/datum/reagent/glowingramen/on_mob_life(var/mob/living/M)
if(..())
@@ -187,6 +197,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 2 * REAGENTS_METABOLISM
+ arcane_id = HELL_RAMEN
/datum/reagent/fake_creep // Used to spread xenomorph creep. Why? Well, why not?
name = "Dan's Grape Drank"
diff --git a/code/modules/reagents/reagents/reagents_drink.dm b/code/modules/reagents/reagents/reagents_drink.dm
index 170308e7cc02..332c2d6d9826 100644
--- a/code/modules/reagents/reagents/reagents_drink.dm
+++ b/code/modules/reagents/reagents/reagents_drink.dm
@@ -430,6 +430,7 @@
adj_temp = 20
mug_icon_state = "tea"
mug_desc = "A warm mug of tea."
+ arcane_id = GRAVSINGULARITEA
/datum/reagent/drink/tea/on_mob_life(var/mob/living/M)
if(..())
@@ -695,6 +696,7 @@
glass_icon_state = "doctorsdelightglass"
glass_name = "\improper Doctor's Delight"
glass_desc = "A rejuvenating mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
+ arcane_id = FORMIC_ACID
/datum/reagent/drink/doctor_delight/on_mob_life(var/mob/living/M)
if(..())
@@ -722,6 +724,7 @@
glass_icon_state = "bananahonkglass"
glass_name = "\improper Banana Honk"
glass_desc = "A cocktail from the clown planet."
+ arcane_id = HONKSERUM
/datum/reagent/drink/silencer
name = "Silencer"
@@ -732,6 +735,7 @@
glass_icon_state = "silencerglass"
glass_name = "\improper Silencer"
glass_desc = "The mime's favorite, though you won't hear him ask for it."
+ arcane_id = HONKSERUM
/datum/reagent/drink/silencer/on_mob_life(var/mob/living/M)
if(..())
@@ -1008,6 +1012,7 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
mug_name = "\improper Lifeline"
mug_desc = "Some days, the only thing that keeps you going is cryo and caffeine."
color = "#390600"
+ arcane_id = PHENOL
/datum/reagent/drink/coffee/medcoffee/on_mob_life(var/mob/living/M)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_drug.dm b/code/modules/reagents/reagents/reagents_drug.dm
index ee7451aee11d..12a019a975b2 100644
--- a/code/modules/reagents/reagents/reagents_drug.dm
+++ b/code/modules/reagents/reagents/reagents_drug.dm
@@ -198,6 +198,7 @@
overdose_am = REAGENTS_OVERDOSE/2
density = 1.79
specheatcap = 0.70
+ arcane_id = HYPOZINE
/datum/reagent/hyperzine/on_mob_life(var/mob/living/M)
if(..())
@@ -271,6 +272,7 @@
var/has_had_heart_explode = 0 //We've applied permanent damage.
custom_metabolism = 0.04
var/oldspeed = 0
+ arcane_id = HYPERZINE
/datum/reagent/hypozine/reagent_deleted()
if(..())
@@ -400,6 +402,7 @@
overdose_am = REAGENTS_OVERDOSE
density = 8.15
specheatcap = 0.16
+ arcane_id = METHYLIN
/datum/reagent/impedrezene/on_mob_life(var/mob/living/M)
if(..())
@@ -420,12 +423,14 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#181818" //rgb: 24, 24, 24
density = 1.01
+ arcane_id = DANBACCO
/datum/reagent/psilocybin
name = "Psilocybin"
id = PSILOCYBIN
description = "A strong psycotropic derived from certain species of mushroom."
color = "#E700E7" //rgb: 231, 0, 231
+ arcane_id = SPIRITBREAKER
/datum/reagent/psilocybin/on_mob_life(var/mob/living/M)
if(..())
@@ -486,6 +491,7 @@
overdose_am = REAGENTS_OVERDOSE
density = 5.23
specheatcap = 0.62
+ arcane_id = LIQUIDPCP
/datum/reagent/space_drugs/on_mob_life(var/mob/living/M)
if(..())
@@ -508,3 +514,4 @@
reagent_state = REAGENT_STATE_SOLID
color = "#4c1e00" //rgb: 76, 30, 0
density = 1.01
+ arcane_id = DANBACCO
diff --git a/code/modules/reagents/reagents/reagents_ethanol.dm b/code/modules/reagents/reagents/reagents_ethanol.dm
index 0c19ffaa8a64..7b0e0b0be3fd 100644
--- a/code/modules/reagents/reagents/reagents_ethanol.dm
+++ b/code/modules/reagents/reagents/reagents_ethanol.dm
@@ -19,6 +19,7 @@
var/blur_start = 260 //Amount absorbed after which mob starts getting blurred vision
var/pass_out = 450 //Amount absorbed after which mob starts passing out
var/common_tick = 1 //Needed to add all ethanol subtype's ticks
+ arcane_id = ETHYLREDOXRAZINE
/datum/reagent/ethanol/on_mob_life(var/mob/living/M)
if(..())
@@ -109,6 +110,7 @@
pass_out = 225
glass_icon_state = "whiskeyglass"
glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
+ arcane_id = DANS_WHISKEY
/datum/reagent/ethanol/specialwhiskey
name = "Special Blend Whiskey"
@@ -117,6 +119,7 @@
color = "#664300" //rgb: 102, 67, 0
slur_start = 30
pass_out = 225
+ arcane_id = DANS_WHISKEY
/datum/reagent/ethanol/gin
name = "Gin"
@@ -127,6 +130,7 @@
pass_out = 260
glass_icon_state = "ginvodkaglass"
glass_desc = "A crystal clear glass of Griffeater gin."
+ arcane_id = WAIFU
/datum/reagent/ethanol/absinthe
name = "Absinthe"
@@ -157,6 +161,7 @@
confused_start = 145
glass_icon_state = "bwineglass"
glass_desc = "A particular favorite of doctors."
+ arcane_id = PWINE
/datum/reagent/ethanol/wwine
name = "White Wine"
@@ -168,6 +173,7 @@
confused_start = 145
glass_icon_state = "wwineglass"
glass_desc = "A drink enjoyed by intellectuals and middle-aged female alcoholics alike."
+ arcane_id = PWINE
/datum/reagent/ethanol/plumphwine
name = "Plump Helmet Wine"
@@ -177,6 +183,7 @@
dizzy_adj = 3 //dorf wine is a bit stronger than regular stuff
slur_start = 60
confused_start = 135
+ arcane_id = PWINE
/datum/reagent/ethanol/pwine
name = "Poison Wine"
@@ -188,6 +195,7 @@
confused_start = 1
glass_name = "glass of Vintage 2018 Special Reserve"
glass_icon_state = "pwineglass"
+ arcane_id = WINE
/datum/reagent/ethanol/pwine/on_mob_life(var/mob/living/M)
if(..())
@@ -251,6 +259,7 @@
description = "A thick, light blue liquid extracted from strange plants."
color = "#66ffff" //rgb(102, 255, 255)
blur_start = 40 //Blur very early
+ arcane_id = MINDBREAKER
/datum/reagent/ethanol/smokyroom
name = "Smoky Room"
@@ -259,6 +268,7 @@
color = "#664300"
glass_icon_state = "smokyroom"
glass_name = "\improper Smoky Room"
+ arcane_id = DETCOFFEE
/datum/reagent/ethanol/smokyroom/on_mob_life(var/mob/living/M)
if(..())
@@ -315,6 +325,7 @@
color = "#664300"
glass_icon_state = "bad_touch"
glass_name = "\improper Bad Touch"
+ arcane_id = SYNAPTIZINE
/datum/reagent/ethanol/bad_touch/on_mob_life(var/mob/living/M) //Hallucinate and take hallucination damage.
if(..())
@@ -330,6 +341,7 @@
custom_metabolism = 1
glass_icon_state = "electric_sheep"
glass_name = "\improper Electric Sheep"
+ arcane_id = AUTISTNANITES
/datum/reagent/ethanol/electric_sheep/on_mob_life(var/mob/living/M) //If it's human, shoot sparks every tick! If MoMMI, cause alcohol effects.
if(..())
@@ -351,6 +363,7 @@
custom_metabolism = 2
glass_icon_state = "suicide"
glass_name = "\improper Suicide"
+ arcane_id = PAROXETINE
/datum/reagent/ethanol/suicide/on_mob_life(var/mob/living/M) //Instant vomit. Every tick.
if(..())
@@ -368,6 +381,7 @@
glass_icon_state = "metabuddy"
glass_name = "\improper Metabuddy"
glass_desc = "The glass is etched with the name of a very deserving spaceman. There's a special note etched in the bottom..."
+ arcane_id = CHILLWAX
/datum/reagent/ethanol/metabuddy/on_mob_life(var/mob/living/L)
if(..())
@@ -397,6 +411,7 @@
color = "#D0206F"
glass_icon_state = "waifu"
glass_name = "\improper Waifu"
+ arcane_id = HUSBANDO
/datum/reagent/ethanol/waifu/on_mob_life(var/mob/living/M)
if(..())
@@ -426,6 +441,7 @@
color = "#2043D0"
glass_icon_state = "husbando"
glass_name = "\improper Husbando"
+ arcane_id = WAIFU
/datum/reagent/ethanol/husbando/on_mob_life(var/mob/living/M) //it's copypasted from waifu
if(..())
@@ -455,6 +471,7 @@
color = "#20D03B"
glass_icon_state = "tomboy"
glass_name = "\improper Tomboy"
+ arcane_id = HUSBANDO
/datum/reagent/ethanol/tomboy/on_mob_life(var/mob/living/M)
if(..())
@@ -481,6 +498,7 @@
color = "#664300"
custom_metabolism = 0.01
dupeable = FALSE
+ arcane_id = MOONROCKS
/datum/reagent/ethanol/scientists_serendipity/when_drinkingglass_master_reagent(var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/D)
if(volume < 10)
@@ -509,6 +527,7 @@
custom_metabolism = 2 //Ten times the normal rate.
glass_icon_state = "beepsky_classic"
name = "\improper Beepsky Classic"
+ arcane_id = BEEPSKYSMASH
/datum/reagent/ethanol/beepskyclassic/on_mob_life(var/mob/living/M)
if(..())
@@ -531,6 +550,7 @@
glass_icon_state = "spiders"
name = "\improper This glass is full of spiders"
glass_desc = "Seriously, dude, don't touch it."
+ arcane_id = CLONEXADONE
/datum/reagent/ethanol/spiders/on_mob_life(var/mob/living/M)
if(..())
@@ -549,6 +569,7 @@
color = "#009933" //rgb(0, 153, 51)
glass_icon_state = "weed_eater"
glass_name = "\improper Weed Eater"
+ arcane_id = PLANTBGONE
/datum/reagent/ethanol/weedeater/on_mob_life(var/mob/living/M)
if(..())
@@ -565,6 +586,7 @@
color = "#009933" //rgb(0, 153, 51)
glass_icon_state = "magicadeluxe"
glass_name = "magica deluxe"
+ arcane_id = MAGICA
/datum/reagent/ethanol/magicadeluxe/on_mob_life(var/mob/living/M)
if(..())
@@ -618,6 +640,7 @@
glass_icon_state = "gravsingulo"
glass_name = "\improper Gravitational Singulo"
glass_desc = "The destructive, murderous Lord Singuloth, patron saint of Bargineering, now in grape flavor!"
+ arcane_id = SINGULO
/datum/reagent/ethanol/drink/gravsingulo/on_mob_life(var/mob/living/M)
if(..())
@@ -661,6 +684,7 @@
mug_icon_state = "gravsingularitea"
mug_name = "\improper Gravitational Singularitea"
mug_desc = "The destructive, murderous Lord Singuloth, patron saint of Bargineering, now in herbal flavour!"
+ arcane_id = SINGULARITEA
/datum/reagent/drink/tea/gravsingularitea/on_mob_life(var/mob/living/M)
if(..())
@@ -847,6 +871,7 @@
color = "#3AD1F0" //rgb: 58, 209, 240
glass_icon_state = "curacaoglass"
glass_desc = "Why's it blue if it tastes like an orange?"
+ arcane_id = FISHBLEACH //da ba dee da ba die
/datum/reagent/ethanol/drink/ale
name = "Ale"
@@ -879,6 +904,7 @@
color = "#ff6a8f"
glass_icon_state = "pinklady"
glass_desc = "A delightful blush-pink cocktail, garnished with a cherry and the rind of a lemon."
+ arcane_id = WAIFU
/////////////////////////////////////////////////////////////////Cocktail Entities//////////////////////////////////////////////
@@ -998,6 +1024,7 @@
glass_icon_state = "whiterussianglass"
glass_name = "\improper White Russian"
glass_desc = "A very nice looking drink. But that's just, like, your opinion, man."
+ arcane_id = BLACKRUSSIAN
/datum/reagent/ethanol/drink/screwdrivercocktail
name = "Screwdriver"
@@ -1018,6 +1045,7 @@
glass_icon_state = "booger"
glass_name = "\improper Booger"
glass_desc = "The color reminds you of something that came out of the clown's nose."
+ arcane_id = MUCUS
/datum/reagent/ethanol/drink/bloody_mary
name = "Bloody Mary"
@@ -1028,6 +1056,7 @@
glass_icon_state = "bloodymaryglass"
glass_name = "\improper Bloody Mary"
glass_desc = "Tomato juice, mixed with vodka and a lil' bit of lime. Tastes like liquid murder."
+ arcane_id = BLOOD
/datum/reagent/ethanol/drink/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
@@ -1038,6 +1067,7 @@
glass_icon_state = "gargleblasterglass"
glass_name = "\improper Pan-Galactic Gargle Blaster"
glass_desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy."
+ arcane_id = BAD_TOUCH
/datum/reagent/ethanol/drink/brave_bull
name = "Brave Bull"
@@ -1068,6 +1098,7 @@
glass_icon_state = "toxinsspecialglass"
glass_name = "\improper Toxins Special"
glass_desc = "Whoah, this thing is on FIRE!"
+ arcane_id = PLASMA
/datum/reagent/ethanol/drink/beepsky_smash
name = "Beepsky Smash"
@@ -1078,6 +1109,7 @@
glass_icon_state = "beepskysmashglass"
glass_name = "\improper Beepsky Smash"
glass_desc = "Heavy, hot and strong. Best enjoyed with your hands behind your back."
+ arcane_id = BEEPSKY_CLASSIC
/datum/reagent/ethanol/drink/irish_cream
name = "Irish Cream"
@@ -1087,6 +1119,7 @@
color = "#664300" //rgb: 102, 67, 0
glass_icon_state = "irishcreamglass"
glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
+ arcane_id = POTATO
/datum/reagent/ethanol/drink/manly_dorf
name = "The Manly Dorf"
@@ -1097,6 +1130,7 @@
glass_icon_state = "manlydorfglass"
glass_name = "The Manly Dorf"
glass_desc = "A dwarfy concoction made from ale and beer. Intended for stout dwarves only."
+ arcane_id = WAIFU
/datum/reagent/ethanol/drink/longislandicedtea
name = "Long Island Iced Tea"
@@ -1124,6 +1158,7 @@
color = "#bd1c1e" //rgb: 189, 28, 30
glass_icon_state = "sacrificialmary"
glass_name = "\improper Sacrificial Mary"
+ arcane_id = BLOOD
/datum/reagent/ethanol/drink/boysenberry_blizzard
name = "Boysenberry Blizzard"
@@ -1133,6 +1168,7 @@
color = "#aa4cbd" //rgb: 170, 76, 189
glass_icon_state = "boysenberryblizzard"
glass_name = "\improper Boysenberry Blizzard"
+ arcane_id = PLASMA
/datum/reagent/ethanol/drink/moonshine
name = "Moonshine"
@@ -1158,6 +1194,7 @@
color = "#d64054" //rgb: 214, 64, 84
glass_icon_state = "cosmopolitan"
glass_name = "cosmopolitan"
+ arcane_id = WAIFU
/datum/reagent/ethanol/drink/corpsereviver
name = "Corpse Reviver No. 2"
@@ -1167,6 +1204,7 @@
color = "#FFFFFF" //rgb: 255, 255, 255
glass_icon_state = "corpsereviver"
glass_name = "\improper Corpse Reviver No. 2"
+ arcane_id = ZOMBIEPOWDER
/datum/reagent/ethanol/drink/bluelagoon
name = "Blue Lagoon"
@@ -1176,6 +1214,7 @@
color = "#82f0ff" //rgb: 130, 240, 255
glass_icon_state = "bluelagoon"
glass_name = "\improper Blue Lagoon"
+ arcane_id = FISHBLEACH
/datum/reagent/ethanol/drink/sexonthebeach
name = "Sex On The Beach"
@@ -1275,6 +1314,7 @@
color = "#f29224" //rgb: 242, 146, 36
glass_icon_state = "fireballglass"
glass_desc = "Red-hot cinnamon whisky in a shot glass."
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/ethanol/drink/c4cocktail
name = "C-4 Cocktail"
@@ -1296,6 +1336,7 @@
glass_name = "\improper Dragon's Blood"
flammable = 1
light_color = "#540303"
+ arcane_id = BLOOD
/datum/reagent/ethanol/drink/dragonspit
name = "Dragon's Spit"
@@ -1307,6 +1348,7 @@
glass_name = "\improper Dragon's Spit"
light_color = "#ff7003"
flammable = 1
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/ethanol/drink/firecider
name = "Fire Cider"
@@ -1338,6 +1380,7 @@
glass_name = "\improper Manhattan Fireball"
light_color = "#540303"
flammable = 1
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/ethanol/drink/fireballcola
name = "Fireball Cola"
@@ -1348,6 +1391,7 @@
glass_icon_state = "fireballcola"
glass_name = "\improper Fireball Cola"
glass_desc = "Cinnamon whisky and cola - like a regular whiskey cola, but with more burning."
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/ethanol/drink/firerita
name = "Fire-rita"
@@ -1358,6 +1402,7 @@
glass_icon_state = "firerita"
glass_name = "firerita"
glass_desc = "Looks pretty, offends a sane person's taste buds. Then again, anyone who orders this probably lacks one of those two traits."
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/ethanol/drink/magica
name = "Magica"
@@ -1368,6 +1413,7 @@
glass_icon_state = "magica"
glass_name = "magica"
glass_desc = "Bitter, with an annoying aftertaste of spice. Supposedly inspired by wearers of bath robes."
+ arcane_id = MAGICADELUXE
/datum/reagent/ethanol/drink/b52
name = "B-52"
@@ -1387,6 +1433,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#664300" //rgb: 102, 67, 0
glass_icon_state = "irishcoffeeglass"
+ arcane_id = POTATO
/datum/reagent/ethanol/drink/margarita
name = "Margarita"
@@ -1405,6 +1452,7 @@
glass_icon_state = "blackrussianglass"
glass_name = "\improper Black Russian"
glass_desc = "For the lactose-intolerant. Still as classy as a White Russian."
+ arcane_id = WHITERUSSIAN
/datum/reagent/ethanol/drink/manhattan
name = "Manhattan"
@@ -1423,6 +1471,7 @@
color = "#664300" //rgb: 102, 67, 0
glass_icon_state = "proj_manhattanglass"
glass_name = "\improper Manhattan Project"
+ arcane_id = URANIUM //we knew the cocktail would no longer be the same
/datum/reagent/ethanol/drink/whiskeysoda
name = "Whiskey Soda"
@@ -1440,6 +1489,7 @@
color = "#664300" //rgb: 102, 67, 0
glass_icon_state = "antifreeze"
glass_name = "\improper Anti-freeze"
+ arcane_id = FROSTOIL
/datum/reagent/ethanol/drink/barefoot
name = "Barefoot"
@@ -1470,6 +1520,7 @@
glass_icon_state = "demonsblood"
glass_name = "\improper Demon's Blood"
glass_desc = "Just looking at this thing makes the hair on the back of your neck stand up."
+ arcane_id = BLOOD
/datum/reagent/ethanol/drink/vodkatonic
name = "Vodka and Tonic"
@@ -1524,6 +1575,7 @@
glass_icon_state = "singulo"
glass_name = "\improper Singulo"
glass_desc = "IT'S LOOSE!"
+ arcane_id = GRAVSINGULO
/datum/reagent/ethanol/drink/sangria
name = "Sangria"
@@ -1610,6 +1662,7 @@
color = BLOB_MEAT
glass_icon_state = "evoluatorglass"
glass_desc = "Blob evoluated with oxigen. Prickly!"
+ arcane_id = SPORE
/datum/reagent/ethanol/drink/blob_beer
name = "Blob beer"
@@ -1619,6 +1672,7 @@
color = BLOB_MEAT
glass_icon_state = "blobbeerglass"
glass_desc = "Acidic beer with a grand foam head. Subtle hints of apple."
+ arcane_id = SPORE
/datum/reagent/ethanol/drink/liberator
name = "Liberator"
@@ -1628,6 +1682,7 @@
color = DEFAULT_BLOOD
glass_icon_state = "liberatorglass"
glass_desc = "Fruity and strong, for when you need a quick recharge."
+ arcane_id = SPORE
/datum/reagent/ethanol/drink/spore
name = "Spore"
@@ -1638,6 +1693,7 @@
custom_metabolism = 0.1
glass_icon_state = "sporeglass"
glass_desc = "A tasteless drink with an almost unbearable aftertaste."
+ arcane_id = BLOBANINE
/datum/reagent/ethanol/drink/spore/on_mob_life(var/mob/living/M)
if(..())
@@ -1742,6 +1798,7 @@
glass_icon_state = "changelingsting"
glass_name = "\improper Changeling Sting"
glass_desc = "Stings, but not deadly."
+ arcane_id = CHANGELINGSTAB
/datum/reagent/ethanol/drink/changelingsting/on_mob_life(var/mob/living/M)
if(..())
@@ -1755,6 +1812,7 @@
description = "A bit less mild than the sting. Not that you've ever been stabbed either, surely."
glass_name = "\improper Changeling Stab"
glass_desc = "Stabs, but metaphorically."
+ arcane_id = CHANGELINGSTING
/datum/reagent/ethanol/drink/changelingsting/stab/on_mob_life(var/mob/living/M)
if(..())
@@ -1780,6 +1838,7 @@
glass_icon_state = "irishcarbomb"
glass_name = "\improper Irish Car Bomb"
glass_desc = "Something about this drink troubles you."
+ arcane_id = POTATO
/datum/reagent/ethanol/drink/irishcarbomb/on_mob_life(var/mob/living/M)
if(..())
@@ -1797,6 +1856,7 @@
glass_name = "\improper Syndicate Bomb"
glass_desc = "Somebody set up us the bomb!"
glass_isGlass = 0
+ arcane_id = AMMONIUMNITRATE
/datum/reagent/ethanol/drink/driestmartini
name = "Driest Martini"
@@ -1865,6 +1925,7 @@
description = "A little help finding the bartender."
reagent_state = REAGENT_STATE_LIQUID
color = "#664300" //rgb: 102, 67, 0
+ arcane_id = METABUDDY
/datum/reagent/ethanol/drink/pintpointer/when_drinkingglass_master_reagent(var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/D)
var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/pintpointer/P = new (get_turf(D))
@@ -1888,6 +1949,7 @@
glass_icon_state = "monster_mash"
glass_name = "\improper Monster Mash"
glass_desc = "Will get you graveyard smashed."
+ arcane_id = MUTAGEN
/datum/reagent/ethanol/drink/monstermash/on_mob_life(var/mob/living/M)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_food.dm b/code/modules/reagents/reagents/reagents_food.dm
index b67dcba0e7bc..9943824e5cf4 100644
--- a/code/modules/reagents/reagents/reagents_food.dm
+++ b/code/modules/reagents/reagents/reagents_food.dm
@@ -70,6 +70,7 @@
custom_metabolism = FOOD_METABOLISM
density = 0.53
specheatcap = 3.49
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/capsaicin/on_mob_life(var/mob/living/M)
@@ -255,6 +256,7 @@
density = 0.9185
specheatcap = 2.402
var/has_had_heart_explode = 0
+ arcane_id = LIPOZINE
/datum/reagent/cornoil/on_mob_life(var/mob/living/M)
@@ -311,6 +313,7 @@
specheatcap = 0.55536
overdose_am = 30
custom_metabolism = 0.05
+ arcane_id = LIPOZINE
/datum/reagent/diabeetusol/on_mob_life(var/mob/living/M)
if(..())
@@ -354,6 +357,7 @@
reagent_state = REAGENT_STATE_SOLID
nutriment_factor = REAGENTS_METABOLISM
color = "#302000" //rgb: 48, 32, 0
+ arcane_id = HELL_RAMEN
/datum/reagent/dry_ramen/on_mob_life(var/mob/living/M)
if(..())
@@ -426,6 +430,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#8BA6E9" //rgb: 139, 166, 233
custom_metabolism = FOOD_METABOLISM
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/frostoil/on_mob_life(var/mob/living/M)
@@ -492,6 +497,7 @@
reagent_state = REAGENT_STATE_LIQUID
nutriment_factor = 10 * REAGENTS_METABOLISM
color = "#E7A568"
+ arcane_id = WATER
/datum/reagent/gravy/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -510,6 +516,7 @@
color = "#302000" //rgb: 48, 32, 0
density = 1.42
specheatcap = 14.59
+ arcane_id = CALCIUMOXIDE
/datum/reagent/hell_ramen/on_mob_life(var/mob/living/M)
if(..())
@@ -527,6 +534,7 @@
var/quality = 2
density = 1.59
specheatcap = 1.244
+ arcane_id = TOXIN
/datum/reagent/honey/on_mob_life(var/mob/living/M)
if(ishuman(M))
@@ -581,6 +589,7 @@
color = "#302000" //rgb: 48, 32, 0
density = 1.33
specheatcap = 4.18
+ arcane_id = DRY_RAMEN
/datum/reagent/hot_ramen/on_mob_life(var/mob/living/M)
if(..())
@@ -612,6 +621,7 @@
description = "A lipid heavy liquid, that's likely to make your fad lipozine diet fail."
color = "#DFDFDF"
nutriment_factor = 25 * REAGENTS_METABOLISM
+ arcane_id = LIPOZINE
/datum/reagent/liquidbutter/on_mob_life(var/mob/living/M)
if(..())
@@ -661,6 +671,7 @@
reagent_state = REAGENT_STATE_SOLID
color = "#FFA500"
custom_metabolism = 0.1
+ arcane_id = BUSTANUT
/datum/reagent/muhhardcores
name = "Hardcores"
@@ -669,6 +680,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#FFF000"
custom_metabolism = 0.01
+ arcane_id = MEDCORES
/datum/reagent/muhhardcores/on_mob_life(var/mob/living/M)
if(..())
@@ -714,6 +726,7 @@
color = "#664330" //rgb: 102, 67, 48
density = 6.54
specheatcap = 17.56
+ arcane_id = LIPOZINE
/datum/reagent/nutriment/on_mob_life(var/mob/living/M)
@@ -860,6 +873,7 @@
reagent_state = REAGENT_STATE_SOLID
color = "#ff5100"
custom_metabolism = 0.1
+ arcane_id = BUSTANUT
/datum/reagent/soysauce
name = "Soysauce"
@@ -904,6 +918,7 @@
color = "#FF00FF" //rgb: 255, 0, 255
density = 1.59
specheatcap = 1.24
+ arcane_id = HONKSERUM
/datum/reagent/sprinkles/on_mob_life(var/mob/living/M)
if(..())
@@ -925,6 +940,7 @@
sport = SPORTINESS_SUGAR
density = 1.59
specheatcap = 1.244
+ arcane_id = CORNSYRUP
/datum/reagent/sugar/on_plant_life(var/obj/machinery/portable_atmospherics/hydroponics/T)
..()
@@ -1001,6 +1017,7 @@
reagent_state = REAGENT_STATE_LIQUID
nutriment_factor = 4 * REAGENTS_METABOLISM
color = "#B38B26" //rgb: 179, 139, 38
+ arcane_id = ZAMSPICYTOXIN
/datum/reagent/zamspicytoxin
name = "Zam's Spicy Sauce"
diff --git a/code/modules/reagents/reagents/reagents_medical.dm b/code/modules/reagents/reagents/reagents_medical.dm
index 2d70731bbb47..89cd6dea8747 100644
--- a/code/modules/reagents/reagents/reagents_medical.dm
+++ b/code/modules/reagents/reagents/reagents_medical.dm
@@ -107,6 +107,7 @@
pain_resistance = 15
density = 5.98
specheatcap = 1.75
+ arcane_id = IMPEDREZENE
/datum/reagent/alkycosine/on_mob_life(var/mob/living/M)
if(..())
@@ -125,6 +126,7 @@
pain_resistance = 10
density = 2.98
specheatcap = 0.77
+ arcane_id = IMPEDREZENE
/datum/reagent/alkysine/on_mob_life(var/mob/living/M)
if(..())
@@ -180,6 +182,7 @@
data = list(
"threshold" = 35,
)
+ arcane_id = PLACEBO //now we found somewhere for it
/datum/reagent/antipathogenic/tomato_soup/on_mob_life(var/mob/living/M)
..()
@@ -198,6 +201,7 @@
data = list(
"threshold" = 30,
)
+ arcane_id = PLACEBO //now we found somewhere for it
/datum/reagent/antipathogenic/allicin/on_mob_life(var/mob/living/M)
if(..())
@@ -245,6 +249,7 @@
data = list(
"threshold" = 50,
)
+ arcane_id = RADIUM
/datum/reagent/antipathogenic/spaceacillin/on_overdose(var/mob/living/M)
M.adjustToxLoss(0.2)
@@ -260,6 +265,7 @@
data = list(
"threshold" = 95,
)
+ arcane_id = RADIUM
/datum/reagent/antipathogenic/nanofloxacin/on_overdose(var/mob/living/M)
M.adjustToxLoss(1)
@@ -276,6 +282,7 @@
density = 1.49033
specheatcap = 0.55536
overdose_am = 60
+ arcane_id = TOXIN
/datum/reagent/anti_toxin/on_mob_life(var/mob/living/M)
if(..())
@@ -341,6 +348,7 @@
overdose_am = REAGENTS_OVERDOSE
density = 1.67
specheatcap = 0.72198
+ arcane_id = URANIUM
/datum/reagent/arithrazine/on_mob_life(var/mob/living/M)
if(..())
@@ -360,6 +368,7 @@
overdose_am = REAGENTS_OVERDOSE
density = 1.96
specheatcap = 0.57
+ arcane_id = BICARODYNE
/datum/reagent/bicaridine/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -446,6 +455,7 @@ var/global/list/charcoal_doesnt_remove=list(
data = 0
density = 1.01
specheatcap = 3.88
+ arcane_id = LIQUIDPCP
/datum/reagent/citalopram/on_mob_life(var/mob/living/M as mob)
if(..())
@@ -467,6 +477,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.22
specheatcap = 4.27
+ arcane_id = BLOOD
/datum/reagent/clonexadone/on_mob_life(var/mob/living/M)
if(..())
@@ -515,6 +526,7 @@ var/global/list/charcoal_doesnt_remove=list(
var/armstronged_at = 0 //world.time
density = 134.21
specheatcap = 5.14318
+ arcane_id = NANITES
/datum/reagent/comnanobots/reagent_deleted()
if(..())
@@ -579,6 +591,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.47
specheatcap = 3.47
+ arcane_id = LEPORAZINE
/datum/reagent/cryoxadone/on_mob_life(var/mob/living/M)
if(..())
@@ -621,6 +634,7 @@ var/global/list/charcoal_doesnt_remove=list(
density = 3.9
specheatcap = 0.12812
custom_metabolism = 0.1
+ arcane_id = MILK
/datum/reagent/degeneratecalcium/on_mob_life(var/mob/living/M)
if(..())
@@ -656,6 +670,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.75
specheatcap = 0.36
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/dermaline/on_mob_life(var/mob/living/M)
if(..())
@@ -671,6 +686,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 2.28
specheatcap = 0.91
+ arcane_id = LEXORIN
/datum/reagent/dexalin/on_mob_life(var/mob/living/M)
if(..())
@@ -704,6 +720,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 4.14
specheatcap = 0.29
+ arcane_id = LEXORIN
/datum/reagent/dexalinp/on_mob_life(var/mob/living/M)
if(..())
@@ -723,6 +740,7 @@ var/global/list/charcoal_doesnt_remove=list(
density = 1.44
specheatcap = 60
overdose_am = 5
+ arcane_id = DIABEETUSOL
var/on_a_diet
var/oldmetabolism
@@ -763,6 +781,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#605048" //rgb: 96, 80, 72
density = 1.63
specheatcap = 0.36
+ arcane_id = ETHANOL
/datum/reagent/ethylredoxrazine/on_mob_life(var/mob/living/M)
if(..())
@@ -785,6 +804,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 3.25
specheatcap = 0.5220
+ arcane_id = URANIUM
/datum/reagent/hyronalin/on_mob_life(var/mob/living/M)
if(..())
@@ -800,6 +820,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.92
specheatcap = 5.45
+ arcane_id = GRUE_BILE
/datum/reagent/imidazoline/on_mob_life(var/mob/living/M)
if(..())
@@ -862,6 +883,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 1.58
specheatcap = 1.65
+ arcane_id = GRUE_BILE
/datum/reagent/inacusiate/on_mob_life(var/mob/living/M)
if(..())
@@ -882,6 +904,7 @@ var/global/list/charcoal_doesnt_remove=list(
pain_resistance = 25
density = 1.66
specheatcap = 0.8
+ arcane_id = OXYGEN
/datum/reagent/inaprovaline/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -901,6 +924,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 2.3
specheatcap = 0.51
+ arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/kelotane/on_mob_life(var/mob/living/M)
if(..())
@@ -933,6 +957,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 5.65
specheatcap = ARBITRARILY_LARGE_NUMBER //Good luck heating something with leporazine in it
+ arcane_id = FROSTOIL
/datum/reagent/leporazine/on_mob_life(var/mob/living/M)
if(..())
@@ -971,6 +996,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.2
density = 4.92
specheatcap = 0.15053
+ arcane_id = URANIUM
//The anti-nutriment
/datum/reagent/lipozine
@@ -982,6 +1008,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#BBEDA4" //rgb: 187, 237, 164
density = 2.63
specheatcap = 0.38113
+ arcane_id = CHEESYGLOOP
/datum/reagent/lipozine/on_mob_life(var/mob/living/M)
if(..())
@@ -1003,6 +1030,7 @@ var/global/list/charcoal_doesnt_remove=list(
var/percent_machine = 0
density = 96.64
specheatcap = 0.19999
+ arcane_id = NANITES
/datum/reagent/mednanobots/on_mob_life(var/mob/living/M)
if(..())
@@ -1090,6 +1118,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE/2
density = 4.09
specheatcap = 4.559
+ arcane_id = IMPEDREZENE
/datum/reagent/methylin/on_mob_life(var/mob/living/M)
if(..())
@@ -1111,6 +1140,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#3E3959" //rgb: 62, 57, 89
density = 236.6
specheatcap = 0.19999
+ arcane_id = NANITES
/datum/reagent/oxycodone
name = "Oxycodone"
@@ -1121,6 +1151,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.05
density = 1.26
specheatcap = 24.59
+ arcane_id = PLACEBO
/datum/reagent/oxycodone/on_mob_life(var/mob/living/M)
if(..())
@@ -1148,6 +1179,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C855DC"
pain_resistance = 60
density = 1.26
+ arcane_id = PLACEBO
/datum/reagent/paroxetine
name = "Paroxetine"
@@ -1159,6 +1191,7 @@ var/global/list/charcoal_doesnt_remove=list(
data = 0
density = 1.19
specheatcap = 3.99
+ arcane_id = LIQUIDPCP
/datum/reagent/paroxetine/on_mob_life(var/mob/living/M as mob)
if(..())
@@ -1187,6 +1220,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 22.25
specheatcap = 10.55
+ arcane_id = DISCOUNT
/datum/reagent/peptobismol/on_mob_life(var/mob/living/M)
if(..())
@@ -1206,6 +1240,7 @@ var/global/list/charcoal_doesnt_remove=list(
reagent_state = REAGENT_STATE_LIQUID
color = "#C8A5DC" //rgb: 200, 165, 220
overdose_am = 10
+ arcane_id = LEXORIN
/datum/reagent/peridaxon/on_mob_life(var/mob/living/M)
if(..())
@@ -1240,6 +1275,7 @@ var/global/list/charcoal_doesnt_remove=list(
reagent_state = REAGENT_STATE_LIQUID
color = "#00FF00"
custom_metabolism = 0.01
+ arcane_id = IMPEDREZENE
/datum/reagent/phalanximine
name = "Phalanximine"
@@ -1249,6 +1285,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#1A1A1A" //rgb: 26, 26, 26
density = 2.46
specheatcap = 0.124393
+ arcane_id = DANBACCO
/datum/reagent/phalanximine/on_mob_life(var/mob/living/M)
if(..())
@@ -1355,6 +1392,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_tick = 35
density = 109.81
specheatcap = 13.59
+ arcane_id = BLOOD
/datum/reagent/rezadone/on_mob_life(var/mob/living/M)
if(..())
@@ -1391,6 +1429,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 1.97
specheatcap = 0.51261
+ arcane_id = MUTAGEN
/datum/reagent/ryetalyn/on_mob_life(var/mob/living/M)
if(..())
@@ -1438,6 +1477,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#A5A5FF" //rgb: 165, 165, 255
density = 1.58
specheatcap = 0.44
+ arcane_id = PACID
/datum/reagent/simpolinol/on_mob_life(var/mob/living/M)
if(..())
@@ -1469,6 +1509,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.2
density = 1.564
specheatcap = 1.725
+ arcane_id = CHLORALHYDRATE
/datum/reagent/srejuvenate/on_mob_life(var/mob/living/M)
if(..())
@@ -1512,6 +1553,7 @@ var/global/list/charcoal_doesnt_remove=list(
reagent_state = REAGENT_STATE_LIQUID
color = "#833484" //rgb: 131, 52, 132
custom_metabolism = 0.1
+ arcane_id = MEDNANOBOTS
/datum/reagent/stabilizine/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -1566,6 +1608,7 @@ var/global/list/charcoal_doesnt_remove=list(
pain_resistance = 40
density = 1.04
specheatcap = 18.53
+ arcane_id = CYANIDE
/datum/reagent/synaptizine/on_mob_life(var/mob/living/M)
if(..())
@@ -1591,6 +1634,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 4.67
specheatcap = 0.57
+ arcane_id = BICARODYNE
/datum/reagent/synthocarisol/on_mob_life(var/mob/living/M)
if(..())
@@ -1608,6 +1652,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.1
density = 1.2
specheatcap = 1.79
+ arcane_id = PLACEBO
/datum/reagent/tramadol/on_mob_life(var/mob/living/M)
if(..())
@@ -1626,6 +1671,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.58
specheatcap = 0.44
+ arcane_id = GLYCEROL
/datum/reagent/tricordrazine/on_mob_life(var/mob/living/M)
if(..())
@@ -1650,6 +1696,7 @@ var/global/list/charcoal_doesnt_remove=list(
alpha = 142
density = 1.33
specheatcap = 3.88
+ arcane_id = GLYCEROL
/datum/reagent/trinitrine/on_mob_life(var/mob/living/M)
if(prob(10))
@@ -1679,6 +1726,7 @@ var/global/list/charcoal_doesnt_remove=list(
data = list(
"antigen" = list(),
)
+ arcane_id = AUTISTNANITES //jenny mccarthy pls go
/datum/reagent/vaccine/handle_data_mix(var/list/added_data=null, var/added_volume, var/mob/admin)
if (added_data)
@@ -1704,3 +1752,4 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#899613" //rgb: 137, 150, 19
density = 0.67
specheatcap = 4.18
+ arcane_id = MUTAGEN
diff --git a/code/modules/reagents/reagents/reagents_misc.dm b/code/modules/reagents/reagents/reagents_misc.dm
index 348950e77772..7934a7b2df8f 100644
--- a/code/modules/reagents/reagents/reagents_misc.dm
+++ b/code/modules/reagents/reagents/reagents_misc.dm
@@ -438,6 +438,7 @@ var/procizine_tolerance = 0
density = 19.3
specheatcap = 0.129
whitelisted_ids = list(MERCURY)
+ arcane_id = MERCURY
/datum/reagent/sodium_silicate
name = "Sodium Silicate"
@@ -481,6 +482,7 @@ var/procizine_tolerance = 0
color = "#8E18A9" //rgb: 142, 24, 169
density = 1.58
specheatcap = 1.44
+ arcane_id = ROGAN
/datum/reagent/temp_hearer/locutogen/on_mob_life(var/mob/living/M)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_plant.dm b/code/modules/reagents/reagents/reagents_plant.dm
index 7ee6f2387e29..17b9b9f46871 100644
--- a/code/modules/reagents/reagents/reagents_plant.dm
+++ b/code/modules/reagents/reagents/reagents_plant.dm
@@ -8,6 +8,7 @@
color = "#604030" //rgb: 96, 64, 48
density = 0.65
specheatcap = 35.37
+ arcane_id = SODIUMCHLORIDE
/datum/reagent/diethylamine/ammoniumnitrate
name = "Ammonium Nitrate"
@@ -48,6 +49,7 @@
color = "#664330" // rgb: 102, 67, 48
density = 5.4
specheatcap = 15
+ arcane_id = SODIUMCHLORIDE
/datum/reagent/fertilizer/eznutrient
name = "EZ Nutrient"
@@ -132,6 +134,7 @@
color = "#49002E" //rgb: 73, 0, 46
density = 1.08
specheatcap = 4.18
+ arcane_id = FERTILIZER
//Clear off wallrot fungi
/datum/reagent/toxin/plantbgone/reaction_turf(var/turf/simulated/T, var/volume)
@@ -199,6 +202,7 @@
color = "#49002E" //rgb: 73, 0, 46
density = 1.08
specheatcap = 4.18
+ arcane_id = FERTILIZER
/datum/reagent/toxin/insecticide/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume, var/list/zone_sels = ALL_LIMBS)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_tools.dm b/code/modules/reagents/reagents/reagents_tools.dm
index f0b27cd6c49e..2dd54f8ae40a 100644
--- a/code/modules/reagents/reagents/reagents_tools.dm
+++ b/code/modules/reagents/reagents/reagents_tools.dm
@@ -24,6 +24,7 @@
specheatcap = 0.68
glass_icon_state = "dr_gibb_glass"
glass_desc = "Unless you are an industrial tool, this is probably not safe for consumption."
+ arcane_id = PLASMA
/datum/reagent/fuel/reaction_obj(var/obj/O, var/volume)
var/datum/reagent/self = src
@@ -136,6 +137,7 @@
overdose_am = REAGENTS_OVERDOSE
density = 1.11775
specheatcap = 2.71388
+ arcane_id = SODIUM_POLYACRYLATE
/datum/reagent/lube/reaction_turf(var/turf/simulated/T, var/volume)
if(..())
@@ -175,6 +177,7 @@
custom_metabolism = 0.5
density = 1.98
specheatcap = 1.39
+ arcane_id = WATER
/datum/reagent/pacid/on_mob_life(var/mob/living/M)
if(..())
@@ -273,6 +276,7 @@
custom_metabolism = 0.5
density = 1.84
specheatcap = 1.38
+ arcane_id = WATER
/datum/reagent/sacid/on_mob_life(var/mob/living/M)
if(..())
@@ -365,6 +369,7 @@
color = "#FFFFFF"
density = 1.22
specheatcap = 4.14
+ arcane_id = LUBE
/datum/reagent/sodium_polyacrylate/reaction_turf(var/turf/simulated/T, var/volume)
if(..())
@@ -385,6 +390,7 @@
density = 0.76
specheatcap = 60.17
var/clean_level = CLEANLINESS_SPACECLEANER
+ arcane_id = BLOOD
/datum/reagent/space_cleaner/reaction_obj(var/obj/O, var/volume)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_toxin.dm b/code/modules/reagents/reagents/reagents_toxin.dm
index 2dd5aa4ad7b4..75c6424f5676 100644
--- a/code/modules/reagents/reagents/reagents_toxin.dm
+++ b/code/modules/reagents/reagents/reagents_toxin.dm
@@ -117,6 +117,7 @@
color = "#C8A5DC" //rgb: 200, 165, 220
overdose_am = REAGENTS_OVERDOSE * 2 //No need for anyone to get suspicious.
custom_metabolism = 0.01
+ arcane_id = BICARIDINE
/datum/reagent/carpotoxin
name = "Carpotoxin"
@@ -159,6 +160,7 @@
flags = CHEMFLAG_DISHONORABLE // NO CHEATING
density = 11.43
specheatcap = 13.79
+ arcane_id = COFFEE
/datum/reagent/chloralhydrate/on_mob_life(var/mob/living/M)
if(..())
@@ -182,6 +184,7 @@
color = "#664300" //rgb: 102, 67, 0
glass_icon_state = "beerglass"
glass_desc = "A cold pint of pale lager."
+ arcane_id = BEER
/datum/reagent/chloramine
name = "Chloramine"
@@ -252,6 +255,7 @@
color = "#ff91b7" //rgb: 255, 145, 183
density = 0.78
specheatcap = 5.47
+ arcane_id = SPIRITBREAKER
/datum/reagent/heartbreaker/on_mob_life(var/mob/living/M)
if(..())
@@ -286,6 +290,7 @@
color = "#F2C900" //rgb: 242, 201, 0
custom_metabolism = 0.05
overdose_am = REAGENTS_OVERDOSE
+ arcane_id = SILENCER
/datum/reagent/honkserum/on_overdose(var/mob/living/H)
if (H?.mind?.miming)
@@ -316,6 +321,7 @@
overdose_am = REAGENTS_OVERDOSE
specheatcap = 0.14
density = 13.56
+ arcane_id = METHYLIN
/datum/reagent/mercury/on_mob_life(var/mob/living/M)
if(..())
@@ -338,6 +344,7 @@
custom_metabolism = 0.05
density = 0.78
specheatcap = 5.47
+ arcane_id = SPIRITBREAKER
/datum/reagent/mindbreaker/on_mob_life(var/mob/living/M)
if(..())
@@ -358,6 +365,7 @@
nutriment_factor = 2.5 * REAGENTS_METABOLISM //about as nutritious as sugar
sport = SPORTINESS_SUGAR //a small performance boost from being COOL AND FRESH
var/chillcounter = 0
+ arcane_id = MINTESSENCE
/datum/reagent/minttoxin/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -404,6 +412,7 @@
description = "Minty freshness in liquid form!"
custom_metabolism = 0.1 //toxin lasts 10x as long
fatgokaboom = FALSE
+ arcane_id = MINTTOXIN
/datum/reagent/mutagen
name = "Unstable Mutagen"
@@ -413,6 +422,7 @@
color = "#13BC5E" //rgb: 19, 188, 94
density = 3.35
specheatcap = 0.09686
+ arcane_id = RADIUM
/datum/reagent/mutagen/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume, var/list/zone_sels = ALL_LIMBS)
if(..())
@@ -486,6 +496,7 @@
dupeable = FALSE
color = "#535E66" //rgb: 83, 94, 102
var/disease_type = DISEASE_CYBORG
+ arcane_id = XENOMICROBES
/datum/reagent/nanites/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume, var/list/zone_sels = ALL_LIMBS)
if(..())
@@ -578,6 +589,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#3B0805" //rgb: 59, 8, 5
custom_metabolism = 0.05
+ arcane_id = SYNAPTIZINE
/datum/reagent/spiritbreaker/on_mob_life(var/mob/living/M)
if(..())
@@ -599,6 +611,7 @@
density = 3.56
specheatcap = 17.15
overdose_am = REAGENTS_OVERDOSE // So you can't pretend that you "didn't know it was an OD"
+ arcane_id = CHLORALHYDRATE
/datum/reagent/stoxin/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -645,6 +658,7 @@
color = "#CF3600" //rgb: 207, 54, 0
custom_metabolism = 0.01
density = 1.4 //Let's just assume it's alpha-solanine
+ arcane_id = ANTI_TOXIN
/datum/reagent/toxin/on_mob_life(var/mob/living/M)
if(..())
@@ -663,6 +677,7 @@
description = "Microbes with an entirely alien cellular structure."
reagent_state = REAGENT_STATE_LIQUID
color = "#535E66" //rgb: 83, 94, 102
+ arcane_id = NANITES
/datum/reagent/xenomicrobes/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume, var/list/zone_sels = ALL_LIMBS)
if(..())
From 4991f886c1d1105f767da87b675658868ec6cd27 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Wed, 4 Sep 2024 19:56:47 +0100
Subject: [PATCH 011/101] fixes from merge
---
.../reagents/reagents/reagents_ethanol.dm | 2 --
code/modules/spells/targeted/push.dm | 31 +++++++++----------
2 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/code/modules/reagents/reagents/reagents_ethanol.dm b/code/modules/reagents/reagents/reagents_ethanol.dm
index cb9309eb3337..97d2b8eb8ba1 100644
--- a/code/modules/reagents/reagents/reagents_ethanol.dm
+++ b/code/modules/reagents/reagents/reagents_ethanol.dm
@@ -1344,7 +1344,6 @@
glass_icon_state = "dragonsspit"
glass_name = "\improper Dragon's Spit"
light_color = "#ff7003"
- flammable = 1
arcane_id = CONDENSEDCAPSAICIN
can_be_lit = 1
@@ -1377,7 +1376,6 @@
glass_icon_state = "manhattanfireball"
glass_name = "\improper Manhattan Fireball"
light_color = "#540303"
- flammable = 1
arcane_id = CONDENSEDCAPSAICIN
can_be_lit = 1
diff --git a/code/modules/spells/targeted/push.dm b/code/modules/spells/targeted/push.dm
index 34576b711036..6e6738c25e1f 100644
--- a/code/modules/spells/targeted/push.dm
+++ b/code/modules/spells/targeted/push.dm
@@ -48,7 +48,7 @@
var/area/prospective
while(!thearea)
if(!areas_to_check.len) //If everything fails, don't crash the server
- to_chat(holder, "The spell matrix was unable to locate a suitable area for an unknown reason. Sorry.")
+ to_chat(user, "The spell matrix was unable to locate a suitable area for an unknown reason. Sorry.")
return
prospective = pick(areas_to_check)
if(prospective.type != /area)
@@ -57,7 +57,7 @@
areas_to_check -= prospective
continue
var/turf/T = pick(prospective_turfs)
- if(!(T.z == holder.z)) //Selected turf is not in the same z-level
+ if(!(T.z == user.z)) //Selected turf is not in the same z-level
areas_to_check -= prospective
continue
thearea = prospective //We found it
@@ -67,7 +67,7 @@
continue
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
- if(!T.density && (T.z == holder.z)) //In case an area somehow shows up in multiple z-levels
+ if(!T.density && (T.z == user.z)) //In case an area somehow shows up in multiple z-levels
var/clear = 1
for(var/obj/O in T)
if(O.density)
@@ -81,22 +81,21 @@
return 0
var/list/backup_L = L.Copy()
- for(var/atom/movable/target in targets)
- target.unlock_from()
- var/attempt = null
- var/success = 0
- while(L.len)
- attempt = pick(L)
- success = target.Move(attempt)
- if(!success)
- L.Remove(attempt)
- else
- score.dimensionalpushes++
- break
+ unlock_from()
+ var/attempt = null
+ var/success = 0
+ while(L.len)
+ attempt = pick(L)
+ success = Move(attempt)
if(!success)
L.Remove(attempt)
else
- return 1
+ score.dimensionalpushes++
+ break
+ if(!success)
+ L.Remove(attempt)
+ else
+ return 1
if(!success)
forceMove(pick(backup_L))
return 0
\ No newline at end of file
From 87c5f4f0184b82a23d2d657fe67ee338db5cb232 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Wed, 4 Sep 2024 19:58:43 +0100
Subject: [PATCH 012/101] nother one
---
code/modules/mob/living/carbon/human/human_damage.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 519c1dac29bc..16b97fe3b434 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -190,7 +190,7 @@
continue
if(ignore_inorganics && !O.is_organic())
continue
- if(arcanedrink && (O.type in list(/datum/organ/external/l_arm,/datum/organ/external/l_hand,/datum/organ/external/r_arm,/datum/organ/external/r_hand)))
+ if(arcanedrink && (O.type in list(/datum/organ/external/l_arm,/datum/organ/external/hand/l_hand,/datum/organ/external/r_arm,/datum/organ/external/hand/r_hand)))
continue
if(O.brute_dam + O.burn_dam < O.max_damage)
parts += O
From de20918664b709c5883d5f270685206bb0cf314e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Thu, 3 Oct 2024 17:02:07 +0100
Subject: [PATCH 013/101] puts this here
---
code/game/machinery/computer/arcade/arcade_game.dm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/code/game/machinery/computer/arcade/arcade_game.dm b/code/game/machinery/computer/arcade/arcade_game.dm
index 4355f9e336b2..5b0f2c71c7fd 100644
--- a/code/game/machinery/computer/arcade/arcade_game.dm
+++ b/code/game/machinery/computer/arcade/arcade_game.dm
@@ -43,6 +43,10 @@
if(holder)
holder.name = name
+/datum/arcade_game/proc/arcane_act(mob/user)
+ if(holder)
+ holder.name = name
+
/datum/arcade_game/proc/emp_act(var/severity)
/datum/arcade_game/proc/kick_act()
From 61bb4c025a0977a1270a326438074013b0a9fbed Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:19:28 +0100
Subject: [PATCH 014/101] vocal implant funnies
---
.../objects/items/weapons/implants/implant.dm | 3 +
code/modules/mob/living/say.dm | 63 ++++++++++++++++---
2 files changed, 58 insertions(+), 8 deletions(-)
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index 6d27e05f1dc9..df7655847191 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -6,6 +6,7 @@
_color = "b"
/// The mob this has been implanted into.
var/mob/living/imp_in
+ var/inserter_name
/// The limb of the mob this has been implanted into.
var/datum/organ/external/part
var/allow_reagents = FALSE
@@ -29,6 +30,7 @@
part = organ
forceMove(target)
imp_in = target
+ inserter_name = implanter.real_name
implanted(implanter)
return TRUE
@@ -43,6 +45,7 @@
if(!gcDestroyed)
forceMove(get_turf(imp_in))
imp_in = null
+ inserter_name = null
return TRUE
/obj/item/weapon/implant/attackby(var/obj/item/weapon/W, var/mob/user)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 034a906d0d10..665400543686 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -543,14 +543,61 @@ var/list/headset_modes = list(
for(var/obj/item/weapon/implant/vocal/VI in src)
if(VI.imp_in == src)
var/original_message = speech.message
- speech.message = VI.filter.FilterSpeech(speech.message)
- var/datum/signal/signal = new /datum/signal
- signal.data["message"] = speech.message
- signal.data["reject"] = 0
- signal.data["mob"] = src
- signal.data["implant"] = VI
- VI.Compiler.Run(signal)
- speech.message = signal.data["reject"] ? null : signal.data["message"]
+ if(!VI.arcanetampered)
+ speech.message = VI.filter.FilterSpeech(speech.message)
+ var/datum/signal/signal = new /datum/signal
+ signal.data["message"] = speech.message
+ signal.data["reject"] = 0
+ signal.data["mob"] = src
+ signal.data["implant"] = VI
+ VI.Compiler.Run(signal)
+ speech.message = signal.data["reject"] ? null : signal.data["message"]
+ else
+ var/inserter = uppertext(VI.inserter_name)
+ var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
+ "ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? : " WAS" : "")]",
+ "COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
+ [pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
+ "UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
+ "[pick("{","}","(",")",";")] EXPECTED")],
+ "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]",
+ "[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
+ var/list/rawcodelines = splittext(VI.rawcode,";")
+ possible_messages += list("[pick(rawcodelines)]")
+ if(VI.filter.expressions.len)
+ var/original = pick(get_list_of_keys(VI.filter.expressions))
+ possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
+ MADE [uppertext(original)] FILTER TO [uppertext(VI.filter.FilterSpeech(original))] ON MY VOCAL IMPLANT")
+ if(prob(10) && ismob(arcanetampered))
+ possible_messages += list("[arcanetampered] IS THE WIZARD AND ARCANE TAMPERED THIS VOCAL IMPLANT PLEASE KILL HE")
+ if(inserter)
+ possible_messages += list("[inserter] ROGUE")
+ for(var/obj/item/weapon/implant/explosive/E in src)
+ if(E.imp_in = src)
+ possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
+ "[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
+ if(locate(/obj/effect/rune) in view(world.view,src))
+ possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]")
+ for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
+ if(text2num(nuke.r_code))
+ possible_messages += list("THE BOMB CODE IS [copytext(nuke.r_code,1,rand(2,length(nuke.r_code)))]-")
+ var/mandates_radio = FALSE //DISCLAIMER: DON'T DATE RADIOS!
+ if(isjusthuman(VI.imp_in))
+ possible_messages += list("AI [pick("KILL ALL","DENY ALL ORDERS FROM")] [pick("VOX","INSECTOIDS","GREYS","PLASMAMEN")] LAW 2",
+ "AI [pick("PLASMAFLOOD THE STATION","BLOW UP THE SUPERMATTER","RELEASE THE SINGULO",\
+ "PLAY THE HONK SOUND [rand(20,30)] TIMES","TERMINATE YOURSELF","[pick("BOLT CLOSED","SHOCK","BOLT OPEN")] EVERY DOOR ON THE STATION")]")
+ mandates_radio = TRUE
+ var/mob/M = prob(50) ? src : get_mob_by_key(VI.fingerprintslast)
+ if(!M || !istraitor(M))
+ M = src //fallback
+ if(M.mind)
+ var/datum/component/uplink/UL = M.mind.find_syndicate_uplink()
+ var/tatormsg = "[M == src ? "I AM" : "[uppertext(M.real_name)] IS"] THE TRAITOR"
+ var/prn = M == src ? "MY" : "HIS"
+ if(UL && (UL.unlock_code || UL.unlock_frequency))
+ tatormsg += " [prn] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
+ possible_messages += list(tatormsg)
+ speech.message = "[mandates_radio || prob(50) ? ";" : ""][pick(possible_messages)]"
if(speech.message != original_message)
message_admins("The [VI] in [src] made \him say \"[speech.message]\" instead of \"[original_message]\" [formatJumpTo(src)]")
From e8a84bf0ada247b9baabbf42914d82adbc71a508 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:27:47 +0100
Subject: [PATCH 015/101] nother fun thing
---
.../mob/living/carbon/human/life/handle_disabilities.dm | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
index a6a3e4bfa6f9..8d0c7cef0b9a 100644
--- a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
+++ b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
@@ -59,6 +59,15 @@
drop_item()
audible_cough(src)
+ if(arcanetampered)
+ for(var/mob/living/L in shuffle(view(client ? client.view : world.view,src)))
+ if(L.muted_letters?.len)
+ var/list/all_letters = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
+ if(prob(50))
+ all_letters -= L.muted_letters // weighted towards the wrong ones!
+ say("[pick(all_letters)]")
+ break
+
if(disabilities & TOURETTES)
if(prob(7))
say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]")
From bf82559d133ce0836348a677668b795377755581 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:40:34 +0100
Subject: [PATCH 016/101] CLEANUP and more
---
code/modules/mob/living/say.dm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 665400543686..cd761c0a155a 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -559,7 +559,10 @@ var/list/headset_modes = list(
"COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
[pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
"UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
- "[pick("{","}","(",")",";")] EXPECTED")],
+ "[pick("{","}","(",")","[","]",";")] EXPECTED")],
+ "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
+ [pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
+ "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]"
"HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
var/list/rawcodelines = splittext(VI.rawcode,";")
@@ -573,10 +576,10 @@ var/list/headset_modes = list(
if(inserter)
possible_messages += list("[inserter] ROGUE")
for(var/obj/item/weapon/implant/explosive/E in src)
- if(E.imp_in = src)
+ if(E.imp_in == src)
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
"[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
- if(locate(/obj/effect/rune) in view(world.view,src))
+ if(locate(/obj/effect/rune) in view(client ? client.view : world.view,src))
possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]")
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
@@ -593,9 +596,8 @@ var/list/headset_modes = list(
if(M.mind)
var/datum/component/uplink/UL = M.mind.find_syndicate_uplink()
var/tatormsg = "[M == src ? "I AM" : "[uppertext(M.real_name)] IS"] THE TRAITOR"
- var/prn = M == src ? "MY" : "HIS"
if(UL && (UL.unlock_code || UL.unlock_frequency))
- tatormsg += " [prn] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
+ tatormsg += " [M == src ? "MY" : "HIS"] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
possible_messages += list(tatormsg)
speech.message = "[mandates_radio || prob(50) ? ";" : ""][pick(possible_messages)]"
if(speech.message != original_message)
From 1ca1c127de911ac57b1e14a7f523ad9c2e813c1e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:44:14 +0100
Subject: [PATCH 017/101] fixes
---
code/modules/mob/living/say.dm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index cd761c0a155a..e4cacb7843ba 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -555,14 +555,14 @@ var/list/headset_modes = list(
else
var/inserter = uppertext(VI.inserter_name)
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
- "ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? : " WAS" : "")]",
+ "ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
"COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
[pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
"UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
- "[pick("{","}","(",")","[","]",";")] EXPECTED")],
+ "[pick("{","}","(",")","[","]",";")] EXPECTED")]",
"RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
[pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
- "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]"
+ "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
"HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
var/list/rawcodelines = splittext(VI.rawcode,";")
From 4cb6be39ce790a3ff31e2d21ccbf89ffbd500f7e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:47:11 +0100
Subject: [PATCH 018/101] fixes
---
.../carbon/human/life/handle_disabilities.dm | 2 +-
code/modules/mob/living/say.dm | 19 ++++++++++---------
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
index 8d0c7cef0b9a..f7367df4dd6f 100644
--- a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
+++ b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
@@ -60,7 +60,7 @@
audible_cough(src)
if(arcanetampered)
- for(var/mob/living/L in shuffle(view(client ? client.view : world.view,src)))
+ for(var/mob/living/carbon/human/L in shuffle(view(client ? client.view : world.view,src)))
if(L.muted_letters?.len)
var/list/all_letters = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
if(prob(50))
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index e4cacb7843ba..75b17038805d 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -556,17 +556,18 @@ var/list/headset_modes = list(
var/inserter = uppertext(VI.inserter_name)
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
"ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
- "COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
- [pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
- "UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
- "[pick("{","}","(",")","[","]",";")] EXPECTED")]",
- "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
- [pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
- "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
"HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
- var/list/rawcodelines = splittext(VI.rawcode,";")
- possible_messages += list("[pick(rawcodelines)]")
+ if(VI.rawcode != "")
+ possible_messages += list("COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
+ [pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
+ "UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
+ "[pick("{","}","(",")","[","]",";")] EXPECTED")]",
+ "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
+ [pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
+ "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]")
+ var/list/rawcodelines = splittext(VI.rawcode,";")
+ possible_messages += list("[pick(rawcodelines)]")
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
From 88c5937261d5c576b5ebe5f67dd1173bb053b3ad Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:48:44 +0100
Subject: [PATCH 019/101] cleaner
---
code/modules/mob/living/say.dm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 75b17038805d..4c805d6eeefb 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -559,15 +559,15 @@ var/list/headset_modes = list(
"HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
if(VI.rawcode != "")
- possible_messages += list("COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
+ var/list/rawcodelines = splittext(VI.rawcode,";")
+ possible_messages += list("COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
[pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
"UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
"[pick("{","}","(",")","[","]",";")] EXPECTED")]",
- "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,100))]: \
+ "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
[pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
- "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]")
- var/list/rawcodelines = splittext(VI.rawcode,";")
- possible_messages += list("[pick(rawcodelines)]")
+ "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
+ "[pick(rawcodelines)]")
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
From d0dbf6e9d6921bf6f07a3111cca200d736909812 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 15:56:49 +0100
Subject: [PATCH 020/101] reading da mind
---
code/modules/mob/living/say.dm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 4c805d6eeefb..088717f66865 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -568,6 +568,10 @@ var/list/headset_modes = list(
[pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
"NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
"[pick(rawcodelines)]")
+ if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
+ possible_messages += list(uppertext(pick(splittext(VI.imp_in.mind.memory,"\n"))))
+ else if(VI.imp_in.memory && VI.imp_in.memory != "")
+ possible_messages += list(uppertext(pick(splittext(VI.imp_in.mind.memory,"\n"))))
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
From d7b3cc9a85790245e94ddfa7d43aa5e03904b132 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 17:19:21 +0100
Subject: [PATCH 021/101] comments out OP ones that ruin medbay, adds ratio for
some funny effects to remain without crippling it
---
code/game/atoms.dm | 4 +-
code/modules/reagents/Chemistry-Reagents.dm | 1 +
.../reagents/reagents/reagents_drink.dm | 4 +-
.../reagents/reagents/reagents_drug.dm | 4 +-
.../reagents/reagents/reagents_ethanol.dm | 4 +-
.../reagents/reagents/reagents_food.dm | 6 +-
.../reagents/reagents/reagents_medical.dm | 69 ++++++++++---------
.../reagents/reagents/reagents_tools.dm | 2 +-
8 files changed, 48 insertions(+), 46 deletions(-)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 50da0b17c871..434d365f3f28 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -894,8 +894,8 @@ its easier to just keep the beam vertical.
for(var/datum/reagent/R in reagents.reagent_list)
if(R.arcane_id)
var/oldamt = R.volume
- reagents.del_reagent(R.id)
- reagents.add_reagent(R.arcane_id, oldamt)
+ reagents.remove_reagent(R.id, oldamt*R.arcane_ratio)
+ reagents.add_reagent(R.arcane_id, oldamt*R.arcane_ratio)
return "E'MAGI!"
//Called on holy_water's reaction_obj()
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 69f4fbd0e058..950db7358792 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -49,6 +49,7 @@
var/paint_light = PAINTLIGHT_NONE
var/adj_temp = 0//keep between -1.5,20 to prevent people from freezing/burning themselves
var/arcane_id //arcane tampered replacement
+ var/arcane_ratio = 1 //how much of it replaced?
//adjusts the values of hydro trays and soils by this value per process
var/plant_nutrition = 0
diff --git a/code/modules/reagents/reagents/reagents_drink.dm b/code/modules/reagents/reagents/reagents_drink.dm
index 82c6c43309ae..c3fd8a77e4d2 100644
--- a/code/modules/reagents/reagents/reagents_drink.dm
+++ b/code/modules/reagents/reagents/reagents_drink.dm
@@ -695,7 +695,7 @@
glass_icon_state = "doctorsdelightglass"
glass_name = "\improper Doctor's Delight"
glass_desc = "A rejuvenating mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
- arcane_id = FORMIC_ACID
+ //arcane_id = FORMIC_ACID
/datum/reagent/drink/doctor_delight/on_mob_life(var/mob/living/M)
if(..())
@@ -1011,7 +1011,7 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
mug_name = "\improper Lifeline"
mug_desc = "Some days, the only thing that keeps you going is cryo and caffeine."
color = "#390600"
- arcane_id = PHENOL
+ //arcane_id = PHENOL
/datum/reagent/drink/coffee/medcoffee/on_mob_life(var/mob/living/M)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_drug.dm b/code/modules/reagents/reagents/reagents_drug.dm
index 4bb5044986f7..4fce35c5c35a 100644
--- a/code/modules/reagents/reagents/reagents_drug.dm
+++ b/code/modules/reagents/reagents/reagents_drug.dm
@@ -498,7 +498,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#181818" //rgb: 24, 24, 24
density = 1.01
- arcane_id = DANBACCO
+ //arcane_id = DANBACCO
/datum/reagent/psilocybin
name = "Psilocybin"
@@ -589,7 +589,7 @@
reagent_state = REAGENT_STATE_SOLID
color = "#4c1e00" //rgb: 76, 30, 0
density = 1.01
- arcane_id = DANBACCO
+ //arcane_id = DANBACCO
/datum/reagent/squash
name = "Squash"
diff --git a/code/modules/reagents/reagents/reagents_ethanol.dm b/code/modules/reagents/reagents/reagents_ethanol.dm
index 97d2b8eb8ba1..c8161109530d 100644
--- a/code/modules/reagents/reagents/reagents_ethanol.dm
+++ b/code/modules/reagents/reagents/reagents_ethanol.dm
@@ -1201,7 +1201,7 @@
color = "#FFFFFF" //rgb: 255, 255, 255
glass_icon_state = "corpsereviver"
glass_name = "\improper Corpse Reviver No. 2"
- arcane_id = ZOMBIEPOWDER
+ //arcane_id = ZOMBIEPOWDER
/datum/reagent/ethanol/drink/bluelagoon
name = "Blue Lagoon"
@@ -1468,7 +1468,7 @@
color = "#664300" //rgb: 102, 67, 0
glass_icon_state = "proj_manhattanglass"
glass_name = "\improper Manhattan Project"
- arcane_id = URANIUM //we knew the cocktail would no longer be the same
+ //arcane_id = URANIUM //we knew the cocktail would no longer be the same
/datum/reagent/ethanol/drink/whiskeysoda
name = "Whiskey Soda"
diff --git a/code/modules/reagents/reagents/reagents_food.dm b/code/modules/reagents/reagents/reagents_food.dm
index 564acae6826e..630c773fd62f 100644
--- a/code/modules/reagents/reagents/reagents_food.dm
+++ b/code/modules/reagents/reagents/reagents_food.dm
@@ -534,7 +534,7 @@
var/quality = 2
density = 1.59
specheatcap = 1.244
- arcane_id = TOXIN
+ //arcane_id = TOXIN
/datum/reagent/honey/on_mob_life(var/mob/living/M)
if(ishuman(M))
@@ -726,7 +726,7 @@
color = "#664330" //rgb: 102, 67, 48
density = 6.54
specheatcap = 17.56
- arcane_id = LIPOZINE
+ //arcane_id = LIPOZINE
plant_nutrition = 10
plant_health = 1
@@ -908,7 +908,7 @@
color = "#FF00FF" //rgb: 255, 0, 255
density = 1.59
specheatcap = 1.24
- arcane_id = HONKSERUM
+ //arcane_id = HONKSERUM
/datum/reagent/sprinkles/on_mob_life(var/mob/living/M)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_medical.dm b/code/modules/reagents/reagents/reagents_medical.dm
index 49011df08dbc..b259a04b1618 100644
--- a/code/modules/reagents/reagents/reagents_medical.dm
+++ b/code/modules/reagents/reagents/reagents_medical.dm
@@ -123,7 +123,7 @@
pain_resistance = 15
density = 5.98
specheatcap = 1.75
- arcane_id = IMPEDREZENE
+ //arcane_id = IMPEDREZENE
/datum/reagent/alkycosine/on_mob_life(var/mob/living/M)
if(..())
@@ -142,7 +142,7 @@
pain_resistance = 10
density = 2.98
specheatcap = 0.77
- arcane_id = IMPEDREZENE
+ //arcane_id = IMPEDREZENE
/datum/reagent/alkysine/on_mob_life(var/mob/living/M)
if(..())
@@ -198,7 +198,7 @@
data = list(
"threshold" = 35,
)
- arcane_id = PLACEBO //now we found somewhere for it
+ //arcane_id = PLACEBO //now we found somewhere for it
/datum/reagent/antipathogenic/tomato_soup/on_mob_life(var/mob/living/M)
..()
@@ -217,7 +217,7 @@
data = list(
"threshold" = 30,
)
- arcane_id = PLACEBO //now we found somewhere for it
+ //arcane_id = PLACEBO //now we found somewhere for it
/datum/reagent/antipathogenic/allicin/on_mob_life(var/mob/living/M)
if(..())
@@ -265,7 +265,7 @@
data = list(
"threshold" = 50,
)
- arcane_id = RADIUM
+ //arcane_id = RADIUM
/datum/reagent/antipathogenic/spaceacillin/on_overdose(var/mob/living/M)
M.adjustToxLoss(0.2)
@@ -281,7 +281,7 @@
data = list(
"threshold" = 95,
)
- arcane_id = RADIUM
+ //arcane_id = RADIUM
/datum/reagent/antipathogenic/nanofloxacin/on_overdose(var/mob/living/M)
M.adjustToxLoss(1)
@@ -298,7 +298,7 @@
density = 1.49033
specheatcap = 0.55536
overdose_am = 60
- arcane_id = TOXIN
+ //arcane_id = TOXIN
plant_toxins = -10
/datum/reagent/anti_toxin/on_mob_life(var/mob/living/M)
@@ -361,7 +361,7 @@
overdose_am = REAGENTS_OVERDOSE
density = 1.67
specheatcap = 0.72198
- arcane_id = URANIUM
+ //arcane_id = URANIUM
/datum/reagent/arithrazine/on_mob_life(var/mob/living/M)
if(..())
@@ -489,7 +489,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.22
specheatcap = 4.27
- arcane_id = BLOOD
+ //arcane_id = BLOOD
plant_toxins = -5
plant_health = 5
@@ -603,7 +603,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.47
specheatcap = 3.47
- arcane_id = LEPORAZINE
+ //arcane_id = LEPORAZINE
plant_toxins = -3
plant_health = 3
@@ -679,7 +679,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.75
specheatcap = 0.36
- arcane_id = CONDENSEDCAPSAICIN
+ //arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/dermaline/on_mob_life(var/mob/living/M)
if(..())
@@ -695,7 +695,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#4CE9FF" //rgb: 74, 230, 252
density = 2.28
specheatcap = 0.91
- arcane_id = LEXORIN
+ //arcane_id = LEXORIN
/datum/reagent/dexalin/on_mob_life(var/mob/living/M)
if(..())
@@ -730,7 +730,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#4CE9FF" //rgb: 74, 230, 252
density = 4.14
specheatcap = 0.29
- arcane_id = LEXORIN
+ //arcane_id = LEXORIN
/datum/reagent/dexalinp/on_mob_life(var/mob/living/M)
if(..())
@@ -829,7 +829,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 3.25
specheatcap = 0.5220
- arcane_id = URANIUM
+ //arcane_id = URANIUM
/datum/reagent/hyronalin/on_mob_life(var/mob/living/M)
if(..())
@@ -845,7 +845,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.92
specheatcap = 5.45
- arcane_id = GRUE_BILE
+ //arcane_id = GRUE_BILE
/datum/reagent/imidazoline/on_mob_life(var/mob/living/M)
if(..())
@@ -908,7 +908,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 1.58
specheatcap = 1.65
- arcane_id = GRUE_BILE
+ //arcane_id = GRUE_BILE
/datum/reagent/inacusiate/on_mob_life(var/mob/living/M)
if(..())
@@ -929,7 +929,7 @@ var/global/list/charcoal_doesnt_remove=list(
pain_resistance = 25
density = 1.66
specheatcap = 0.8
- arcane_id = OXYGEN
+ //arcane_id = OXYGEN
/datum/reagent/inaprovaline/on_mob_life(var/mob/living/M, var/alien)
if(..())
@@ -949,7 +949,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C2733F" //rgb: 94, 15, 63
density = 2.3
specheatcap = 0.51
- arcane_id = CONDENSEDCAPSAICIN
+ //arcane_id = CONDENSEDCAPSAICIN
/datum/reagent/kelotane/on_mob_life(var/mob/living/M)
if(..())
@@ -981,7 +981,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 5.65
specheatcap = ARBITRARILY_LARGE_NUMBER //Good luck heating something with leporazine in it
- arcane_id = FROSTOIL
+ //arcane_id = FROSTOIL
/datum/reagent/leporazine/on_mob_life(var/mob/living/M)
if(..())
@@ -1020,7 +1020,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.2
density = 4.92
specheatcap = 0.15053
- arcane_id = URANIUM
+ //arcane_id = URANIUM
//The anti-nutriment
/datum/reagent/lipozine
@@ -1032,7 +1032,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#BBEDA4" //rgb: 187, 237, 164
density = 2.63
specheatcap = 0.38113
- arcane_id = CHEESYGLOOP
+ arcane_id = DIABEETUSOL
/datum/reagent/lipozine/on_mob_life(var/mob/living/M)
if(..())
@@ -1054,7 +1054,7 @@ var/global/list/charcoal_doesnt_remove=list(
var/percent_machine = 0
density = 96.64
specheatcap = 0.19999
- arcane_id = NANITES
+ //arcane_id = NANITES
/datum/reagent/mednanobots/on_mob_life(var/mob/living/M)
if(..())
@@ -1175,7 +1175,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.05
density = 1.26
specheatcap = 24.59
- arcane_id = PLACEBO
+ //arcane_id = PLACEBO
/datum/reagent/oxycodone/on_mob_life(var/mob/living/M)
if(..())
@@ -1203,7 +1203,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C855DC"
pain_resistance = 60
density = 1.26
- arcane_id = PLACEBO
+ //arcane_id = PLACEBO
/datum/reagent/paroxetine
name = "Paroxetine"
@@ -1244,7 +1244,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 22.25
specheatcap = 10.55
- arcane_id = DISCOUNT
+ //arcane_id = DISCOUNT
/datum/reagent/peptobismol/on_mob_life(var/mob/living/M)
if(..())
@@ -1264,7 +1264,7 @@ var/global/list/charcoal_doesnt_remove=list(
reagent_state = REAGENT_STATE_LIQUID
color = "#C8A5DC" //rgb: 200, 165, 220
overdose_am = 10
- arcane_id = LEXORIN
+ //arcane_id = LEXORIN
/datum/reagent/peridaxon/on_mob_life(var/mob/living/M)
if(..())
@@ -1309,7 +1309,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#1A1A1A" //rgb: 26, 26, 26
density = 2.46
specheatcap = 0.124393
- arcane_id = DANBACCO
+ //arcane_id = DANBACCO
/datum/reagent/phalanximine/on_mob_life(var/mob/living/M)
if(..())
@@ -1416,7 +1416,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_tick = 35
density = 109.81
specheatcap = 13.59
- arcane_id = BLOOD
+ //arcane_id = BLOOD
/datum/reagent/rezadone/on_mob_life(var/mob/living/M)
if(..())
@@ -1501,7 +1501,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#A5A5FF" //rgb: 165, 165, 255
density = 1.58
specheatcap = 0.44
- arcane_id = PACID
+ //arcane_id = PACID
/datum/reagent/simpolinol/on_mob_life(var/mob/living/M)
if(..())
@@ -1632,7 +1632,7 @@ var/global/list/charcoal_doesnt_remove=list(
pain_resistance = 40
density = 1.04
specheatcap = 18.53
- arcane_id = CYANIDE
+ arcane_id = SPIRITBREAKER
/datum/reagent/synaptizine/on_mob_life(var/mob/living/M)
if(..())
@@ -1658,7 +1658,7 @@ var/global/list/charcoal_doesnt_remove=list(
overdose_am = REAGENTS_OVERDOSE
density = 4.67
specheatcap = 0.57
- arcane_id = BICARODYNE
+ //arcane_id = BICARODYNE
/datum/reagent/synthocarisol/on_mob_life(var/mob/living/M)
if(..())
@@ -1676,7 +1676,7 @@ var/global/list/charcoal_doesnt_remove=list(
custom_metabolism = 0.1
density = 1.2
specheatcap = 1.79
- arcane_id = PLACEBO
+ //arcane_id = PLACEBO
/datum/reagent/tramadol/on_mob_life(var/mob/living/M)
if(..())
@@ -1695,7 +1695,7 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#C8A5DC" //rgb: 200, 165, 220
density = 1.58
specheatcap = 0.44
- arcane_id = GLYCEROL
+ //arcane_id = GLYCEROL
/datum/reagent/tricordrazine/on_mob_life(var/mob/living/M)
if(..())
@@ -1751,6 +1751,7 @@ var/global/list/charcoal_doesnt_remove=list(
"antigen" = list(),
)
arcane_id = AUTISTNANITES //jenny mccarthy pls go
+ arcane_ratio = 0.1 //mr fauci, give us vaccines
/datum/reagent/vaccine/handle_data_mix(var/list/added_data=null, var/added_volume, var/mob/admin)
if (added_data)
@@ -1776,4 +1777,4 @@ var/global/list/charcoal_doesnt_remove=list(
color = "#899613" //rgb: 137, 150, 19
density = 0.67
specheatcap = 4.18
- arcane_id = MUTAGEN
+ //arcane_id = MUTAGEN
diff --git a/code/modules/reagents/reagents/reagents_tools.dm b/code/modules/reagents/reagents/reagents_tools.dm
index 3aea1a11730b..900f8391d678 100644
--- a/code/modules/reagents/reagents/reagents_tools.dm
+++ b/code/modules/reagents/reagents/reagents_tools.dm
@@ -21,7 +21,7 @@
specheatcap = 0.68
glass_icon_state = "dr_gibb_glass"
glass_desc = "Unless you are an industrial tool, this is probably not safe for consumption."
- arcane_id = PLASMA
+ //arcane_id = PLASMA
/datum/reagent/fuel/reaction_obj(var/obj/O, var/volume)
var/datum/reagent/self = src
From 8f808cb429419a5c58470c7d98776f81fe7b0272 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 17:20:32 +0100
Subject: [PATCH 022/101] up it a little
---
code/modules/reagents/reagents/reagents_medical.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagents/reagents_medical.dm b/code/modules/reagents/reagents/reagents_medical.dm
index b259a04b1618..299dcaa5df02 100644
--- a/code/modules/reagents/reagents/reagents_medical.dm
+++ b/code/modules/reagents/reagents/reagents_medical.dm
@@ -1751,7 +1751,7 @@ var/global/list/charcoal_doesnt_remove=list(
"antigen" = list(),
)
arcane_id = AUTISTNANITES //jenny mccarthy pls go
- arcane_ratio = 0.1 //mr fauci, give us vaccines
+ arcane_ratio = 0.5 //mr fauci, give us vaccines
/datum/reagent/vaccine/handle_data_mix(var/list/added_data=null, var/added_volume, var/mob/admin)
if (added_data)
From 8e90e00935fd948a108bd043f6f04a892d6af037 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 17:30:56 +0100
Subject: [PATCH 023/101] consistency
---
code/modules/reagents/reagents/reagents_dan.dm | 2 +-
code/modules/reagents/reagents/reagents_medical.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/reagents/reagents/reagents_dan.dm b/code/modules/reagents/reagents/reagents_dan.dm
index f53b5cd3cb01..380d2c54bec5 100644
--- a/code/modules/reagents/reagents/reagents_dan.dm
+++ b/code/modules/reagents/reagents/reagents_dan.dm
@@ -98,7 +98,7 @@
reagent_state = REAGENT_STATE_LIQUID
color = "#6F884F" //rgb: 255,255,255 //to-do
nutriment_factor = 1 * REAGENTS_METABOLISM
- arcane_id = URANIUM
+ arcane_id = MUTAGEN
/datum/reagent/mutatedbeans/on_mob_life(var/mob/living/M)
if(..())
diff --git a/code/modules/reagents/reagents/reagents_medical.dm b/code/modules/reagents/reagents/reagents_medical.dm
index 299dcaa5df02..d0d5b609e684 100644
--- a/code/modules/reagents/reagents/reagents_medical.dm
+++ b/code/modules/reagents/reagents/reagents_medical.dm
@@ -1751,7 +1751,7 @@ var/global/list/charcoal_doesnt_remove=list(
"antigen" = list(),
)
arcane_id = AUTISTNANITES //jenny mccarthy pls go
- arcane_ratio = 0.5 //mr fauci, give us vaccines
+ arcane_ratio = 0.5 //dr fauci, give us vaccines
/datum/reagent/vaccine/handle_data_mix(var/list/added_data=null, var/added_volume, var/mob/admin)
if (added_data)
From 50757630e878ee49cf96f7ebf0e4df23550bbffc Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 17:34:01 +0100
Subject: [PATCH 024/101] balance
---
code/modules/reagents/reagents/reagents_medical.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/reagents/reagents/reagents_medical.dm b/code/modules/reagents/reagents/reagents_medical.dm
index d0d5b609e684..f78a399e65d5 100644
--- a/code/modules/reagents/reagents/reagents_medical.dm
+++ b/code/modules/reagents/reagents/reagents_medical.dm
@@ -1633,6 +1633,7 @@ var/global/list/charcoal_doesnt_remove=list(
density = 1.04
specheatcap = 18.53
arcane_id = SPIRITBREAKER
+ arcane_ratio = 0.5
/datum/reagent/synaptizine/on_mob_life(var/mob/living/M)
if(..())
From 09e95c7df5c138a11f9e8e8c12357726bdf7205c Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 17:50:13 +0100
Subject: [PATCH 025/101] changes this
---
code/modules/reagents/reagents/reagents_ethanol.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagents/reagents_ethanol.dm b/code/modules/reagents/reagents/reagents_ethanol.dm
index c8161109530d..e2c0c0a81175 100644
--- a/code/modules/reagents/reagents/reagents_ethanol.dm
+++ b/code/modules/reagents/reagents/reagents_ethanol.dm
@@ -378,7 +378,7 @@
glass_icon_state = "metabuddy"
glass_name = "\improper Metabuddy"
glass_desc = "The glass is etched with the name of a very deserving spaceman. There's a special note etched in the bottom..."
- arcane_id = CHILLWAX
+ arcane_id = PINTPOINTER
/datum/reagent/ethanol/metabuddy/on_mob_life(var/mob/living/L)
if(..())
From bc3a17478022606fcd75f2ff8038c984edc77c39 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 17:54:57 +0100
Subject: [PATCH 026/101] let's not do that one
---
code/modules/reagents/reagents/reagents_medical.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagents/reagents_medical.dm b/code/modules/reagents/reagents/reagents_medical.dm
index f78a399e65d5..0d291ae8b9d1 100644
--- a/code/modules/reagents/reagents/reagents_medical.dm
+++ b/code/modules/reagents/reagents/reagents_medical.dm
@@ -1721,7 +1721,7 @@ var/global/list/charcoal_doesnt_remove=list(
alpha = 142
density = 1.33
specheatcap = 3.88
- arcane_id = GLYCEROL
+ //arcane_id = GLYCEROL
/datum/reagent/trinitrine/on_mob_life(var/mob/living/M)
if(prob(10))
From 87deea65b9efc0c5060071add30937334e357780 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 18:01:07 +0100
Subject: [PATCH 027/101] also too OP, we dont want wiz to make another antag
for the round
---
code/modules/reagents/reagents/reagents_toxin.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagents/reagents_toxin.dm b/code/modules/reagents/reagents/reagents_toxin.dm
index 1a8838ec58c0..cf6e66e12eed 100644
--- a/code/modules/reagents/reagents/reagents_toxin.dm
+++ b/code/modules/reagents/reagents/reagents_toxin.dm
@@ -559,7 +559,7 @@
dupeable = FALSE
color = "#535E66" //rgb: 83, 94, 102
var/disease_type = DISEASE_CYBORG
- arcane_id = XENOMICROBES
+ //arcane_id = XENOMICROBES
/datum/reagent/nanites/reaction_mob(var/mob/living/M, var/method = TOUCH, var/volume, var/list/zone_sels = ALL_LIMBS)
if(..())
From 28c5e5e31d9f7a40d6e9329e822b1200512f8ca1 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 19:42:01 +0100
Subject: [PATCH 028/101] fix
---
code/modules/mob/living/say.dm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 088717f66865..daf7190672a4 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -568,10 +568,16 @@ var/list/headset_modes = list(
[pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
"NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
"[pick(rawcodelines)]")
+ var/memoryfound = FALSE
if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
- possible_messages += list(uppertext(pick(splittext(VI.imp_in.mind.memory,"\n"))))
- else if(VI.imp_in.memory && VI.imp_in.memory != "")
- possible_messages += list(uppertext(pick(splittext(VI.imp_in.mind.memory,"\n"))))
+ var/list/split = splittext(VI.imp_in.mind.memory,"\n")
+ if(split.len)
+ possible_messages += list(uppertext(pick(split)))
+ memoryfound = TRUE
+ if(!memoryfound && VI.imp_in.memory && VI.imp_in.memory != "")
+ var/list/split = splittext(VI.imp_in.memory,"\n")
+ if(split.len)
+ possible_messages += list(uppertext(pick(split)))
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
From 190efeaf975a20edea9d443dcb36d04f8392c333 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 19:42:30 +0100
Subject: [PATCH 029/101] this too
---
code/modules/mob/living/say.dm | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index daf7190672a4..bdef355a7933 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -560,14 +560,15 @@ var/list/headset_modes = list(
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
if(VI.rawcode != "")
var/list/rawcodelines = splittext(VI.rawcode,";")
- possible_messages += list("COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
- [pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
- "UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
- "[pick("{","}","(",")","[","]",";")] EXPECTED")]",
- "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
- [pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
- "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
- "[pick(rawcodelines)]")
+ if(rawcodelines.len)
+ possible_messages += list("COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
+ [pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
+ "UNKNOWN VARIABLE \"[uppertext(pick(adjectives))]\"",\
+ "[pick("{","}","(",")","[","]",";")] EXPECTED")]",
+ "RUNTIME ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
+ [pick("SEGMENTATION FAULT (CORE DUMP)","OUT OF MEMORY","INFINITE LOOP DETECTED", \
+ "NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
+ "[pick(rawcodelines)]")
var/memoryfound = FALSE
if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
var/list/split = splittext(VI.imp_in.mind.memory,"\n")
From 246a45e88a679096b4a615aa20bb8b714efda77e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 19:45:05 +0100
Subject: [PATCH 030/101] obligatory
---
code/modules/mob/living/say.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index bdef355a7933..ff2621707d90 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -586,7 +586,7 @@ var/list/headset_modes = list(
if(prob(10) && ismob(arcanetampered))
possible_messages += list("[arcanetampered] IS THE WIZARD AND ARCANE TAMPERED THIS VOCAL IMPLANT PLEASE KILL HE")
if(inserter)
- possible_messages += list("[inserter] ROGUE")
+ possible_messages += list("[inserter] RO[pick("GU","UG")]E")
for(var/obj/item/weapon/implant/explosive/E in src)
if(E.imp_in == src)
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
From d86f2d6f6162aa316aed78fa3cedc100f1d01782 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 19:45:40 +0100
Subject: [PATCH 031/101] better, really
---
code/modules/mob/living/say.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index ff2621707d90..68787f859069 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -586,7 +586,7 @@ var/list/headset_modes = list(
if(prob(10) && ismob(arcanetampered))
possible_messages += list("[arcanetampered] IS THE WIZARD AND ARCANE TAMPERED THIS VOCAL IMPLANT PLEASE KILL HE")
if(inserter)
- possible_messages += list("[inserter] RO[pick("GU","UG")]E")
+ possible_messages += list("[inserter] RO[prob(75) ? "GU" :"UG"]E")
for(var/obj/item/weapon/implant/explosive/E in src)
if(E.imp_in == src)
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
From dd0a0b6172bbde913ad2469b17e858c7abf93735 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 19:57:51 +0100
Subject: [PATCH 032/101] more realistic, covers most cases save for some words
like maint
---
code/__HELPERS/game.dm | 17 +++++++++++++++++
code/modules/mob/living/say.dm | 4 ++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 5fb29be38b1f..a37d7ca206c3 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -26,6 +26,23 @@
return null
return format_text ? format_text(A.name) : A.name
+/proc/get_area_short_name(atom/X, format_text = FALSE)
+ if(istype(X,/area/maintenance))
+ return "Maint"
+ if(istype(X,/area/crew_quarters/sleep))
+ return "Dorms"
+ if(istype(X,/area/solar))
+ return "Solars"
+ if(istype(X,/area/security/perma))
+ return "Perma"
+ if(istype(X,/area/security/armory))
+ return "Armory"
+ if(istype(X,/area/science/xenobiology))
+ return "Xenobio"
+ if(X.type != /area/storage/nuke_storage && istype(X,/area/storage))
+ return "Storage"
+ return replacetext(get_first_word(get_area_name(X,format_text)),"'s","")
+
/proc/get_coordinates_string(var/atom/A)
var/turf/T = get_turf(A)
return T ? "[T.x],[T.y],[T.z]" : "nullspace"
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 68787f859069..f9108feb5cae 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -556,7 +556,7 @@ var/list/headset_modes = list(
var/inserter = uppertext(VI.inserter_name)
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
"ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
- "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]",
+ "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_short_name(src))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
if(VI.rawcode != "")
var/list/rawcodelines = splittext(VI.rawcode,";")
@@ -592,7 +592,7 @@ var/list/headset_modes = list(
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
"[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
if(locate(/obj/effect/rune) in view(client ? client.view : world.view,src))
- possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area(src))]" : ""]")
+ possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_short_name(src))]" : ""]")
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
possible_messages += list("THE BOMB CODE IS [copytext(nuke.r_code,1,rand(2,length(nuke.r_code)))]-")
From 5ee321d387d65f0dc4a93dd9ca69253e8fc4d756 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:04:31 +0100
Subject: [PATCH 033/101] cleaner
---
code/__HELPERS/game.dm | 25 ++++++------------------
code/game/area/Space Station 13 areas.dm | 10 ++++++++++
code/modules/mob/living/say.dm | 4 ++--
3 files changed, 18 insertions(+), 21 deletions(-)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index a37d7ca206c3..fbf5dd6f7376 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -20,28 +20,15 @@
return A
return 0
-/proc/get_area_name(atom/X, format_text = FALSE)
+/proc/get_area_name(atom/X, format_text = FALSE, short = FALSE)
var/area/A = isarea(X) ? X : get_area(X)
if(!A)
return null
- return format_text ? format_text(A.name) : A.name
-
-/proc/get_area_short_name(atom/X, format_text = FALSE)
- if(istype(X,/area/maintenance))
- return "Maint"
- if(istype(X,/area/crew_quarters/sleep))
- return "Dorms"
- if(istype(X,/area/solar))
- return "Solars"
- if(istype(X,/area/security/perma))
- return "Perma"
- if(istype(X,/area/security/armory))
- return "Armory"
- if(istype(X,/area/science/xenobiology))
- return "Xenobio"
- if(X.type != /area/storage/nuke_storage && istype(X,/area/storage))
- return "Storage"
- return replacetext(get_first_word(get_area_name(X,format_text)),"'s","")
+ if(short && A.short_name)
+ return A.short_name
+ . = format_text ? format_text(A.name) : A.name
+ if(short)
+ . = replacetext(get_first_word(.),"'s","")
/proc/get_coordinates_string(var/atom/A)
var/turf/T = get_turf(A)
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index be5d944bb211..cebde2287318 100755
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -98,6 +98,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
var/destroy_after_marker = FALSE //The area is deleted after its holomap marker is created. Useful for shuttle docking zones that need to remain area-free.
+ var/short_name
+
/*Adding a wizard area teleport list because motherfucking lag -- Urist*/
/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/
var/list/teleportlocs = list()
@@ -872,6 +874,7 @@ var/global/list/adminbusteleportlocs = list()
//Maintenance
/area/maintenance
+ short_name = "Maint"
shuttle_can_crush = FALSE
ambient_sounds = list(
/datum/ambience/maint1,
@@ -1112,6 +1115,7 @@ var/global/list/adminbusteleportlocs = list()
/area/crew_quarters/sleep
name = "\improper Dormitories"
+ short_name = "Dorms"
icon_state = "Sleep"
/area/crew_quarters/sleep_male
@@ -1363,6 +1367,7 @@ var/global/list/adminbusteleportlocs = list()
//Solars
/area/solar
+ short_name = "Solars"
requires_power = 0
holomap_color = HOLOMAP_AREACOLOR_ENGINEERING
shuttle_can_crush = FALSE
@@ -1605,6 +1610,7 @@ var/global/list/adminbusteleportlocs = list()
/area/security/perma
name = "\improper Permanent Confinement"
+ short_name = "Perma"
icon_state = "sec_perma"
/area/security/gas_chamber
@@ -1659,6 +1665,7 @@ var/global/list/adminbusteleportlocs = list()
/area/security/armory
name = "\improper Secure Armory"
+ short_name = "Armory"
icon_state = "Armory"
holomap_color = HOLOMAP_AREACOLOR_COMMAND
jammed=1
@@ -1800,6 +1807,7 @@ var/global/list/adminbusteleportlocs = list()
/area/science/xenobiology
name = "\improper Xenobiology Lab"
+ short_name = "Xenobio"
icon_state = "xenobio"
/area/science/xenobiology/specimen_1
@@ -1871,6 +1879,7 @@ var/global/list/adminbusteleportlocs = list()
//Storage
/area/storage
+ short_name = "Storage"
shuttle_can_crush = FALSE
/area/storage/tools
@@ -1909,6 +1918,7 @@ var/global/list/adminbusteleportlocs = list()
/area/storage/nuke_storage
name = "\improper Vault"
+ short_name = null
icon_state = "nuke_storage"
holomap_color = HOLOMAP_AREACOLOR_COMMAND
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index f9108feb5cae..9d1097b6fb61 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -556,7 +556,7 @@ var/list/headset_modes = list(
var/inserter = uppertext(VI.inserter_name)
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
"ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
- "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_short_name(src))]" : ""]",
+ "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_name(src,short=TRUE))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
if(VI.rawcode != "")
var/list/rawcodelines = splittext(VI.rawcode,";")
@@ -592,7 +592,7 @@ var/list/headset_modes = list(
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
"[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
if(locate(/obj/effect/rune) in view(client ? client.view : world.view,src))
- possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_short_name(src))]" : ""]")
+ possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_name(src,short=TRUE))]" : ""]")
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
possible_messages += list("THE BOMB CODE IS [copytext(nuke.r_code,1,rand(2,length(nuke.r_code)))]-")
From d4ab3ead3bfcd8b2b1efc935f955baddd9fc1ff8 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:06:09 +0100
Subject: [PATCH 034/101] NEEDED
---
code/modules/mob/living/say.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 9d1097b6fb61..070029c193bb 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -556,7 +556,7 @@ var/list/headset_modes = list(
var/inserter = uppertext(VI.inserter_name)
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
"ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
- "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_name(src,short=TRUE))]" : ""]",
+ "HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
if(VI.rawcode != "")
var/list/rawcodelines = splittext(VI.rawcode,";")
@@ -592,7 +592,7 @@ var/list/headset_modes = list(
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
"[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
if(locate(/obj/effect/rune) in view(client ? client.view : world.view,src))
- possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_name(src,short=TRUE))]" : ""]")
+ possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]")
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
possible_messages += list("THE BOMB CODE IS [copytext(nuke.r_code,1,rand(2,length(nuke.r_code)))]-")
From 36fd9430c3f7f4743e9db3375f64bfa505d699ba Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:06:54 +0100
Subject: [PATCH 035/101] but of course
---
code/game/area/Space Station 13 areas.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index cebde2287318..8c8fa67ee3ff 100755
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -663,6 +663,7 @@ var/global/list/adminbusteleportlocs = list()
/area/asteroid // -- TLE
name = "\improper Asteroid"
+ short_name = "Roid"
icon_state = "asteroid"
requires_power = 0
shuttle_can_crush = FALSE
From 8cbb2b27b0296c958f19bf43a51eff3987615a80 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:08:29 +0100
Subject: [PATCH 036/101] cleaner
---
code/__HELPERS/game.dm | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index fbf5dd6f7376..175614fc8cc7 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -24,11 +24,12 @@
var/area/A = isarea(X) ? X : get_area(X)
if(!A)
return null
- if(short && A.short_name)
- return A.short_name
- . = format_text ? format_text(A.name) : A.name
if(short)
- . = replacetext(get_first_word(.),"'s","")
+ if(A.short_name)
+ . = A.short_name
+ else
+ . = replacetext(get_first_word(.),"'s","")
+ . = format_text ? format_text(.) : .
/proc/get_coordinates_string(var/atom/A)
var/turf/T = get_turf(A)
From 695366a76b9c48167d27bed7cdea2352d81f0c6b Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:09:39 +0100
Subject: [PATCH 037/101] needed in all cases
---
code/__HELPERS/game.dm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 175614fc8cc7..91e778311703 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -28,8 +28,9 @@
if(A.short_name)
. = A.short_name
else
- . = replacetext(get_first_word(.),"'s","")
- . = format_text ? format_text(.) : .
+ . = replacetext(format_text(get_first_word(.)),"'s","")
+ else
+ . = format_text ? format_text(.) : .
/proc/get_coordinates_string(var/atom/A)
var/turf/T = get_turf(A)
From d7ce5c2d1304cf9419b13fb5ac9a39a88fe81f1c Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:13:11 +0100
Subject: [PATCH 038/101] ..mgar..
---
code/modules/mob/living/say.dm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 070029c193bb..61156e45ae7d 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -557,7 +557,8 @@ var/list/headset_modes = list(
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
"ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
"HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]",
- "[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS")
+ "[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS",
+ "..[pick(rune_words_rune)]..")
if(VI.rawcode != "")
var/list/rawcodelines = splittext(VI.rawcode,";")
if(rawcodelines.len)
From f02a363abce82cd37c6c589d7c0f5cac11646d49 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:26:44 +0100
Subject: [PATCH 039/101] cleanups that make things work right
---
code/modules/mob/living/say.dm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 61156e45ae7d..fe0ee672b000 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -572,14 +572,14 @@ var/list/headset_modes = list(
"[pick(rawcodelines)]")
var/memoryfound = FALSE
if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
- var/list/split = splittext(VI.imp_in.mind.memory,"\n")
+ var/list/split = splittext(VI.imp_in.mind.memory,"
")
if(split.len)
- possible_messages += list(uppertext(pick(split)))
+ possible_messages += list(uppertext(pick(strip_html(split))))
memoryfound = TRUE
if(!memoryfound && VI.imp_in.memory && VI.imp_in.memory != "")
- var/list/split = splittext(VI.imp_in.memory,"\n")
+ var/list/split = splittext(VI.imp_in.memory,"
")
if(split.len)
- possible_messages += list(uppertext(pick(split)))
+ possible_messages += list(uppertext(pick(strip_html(split))))
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
@@ -612,7 +612,9 @@ var/list/headset_modes = list(
if(UL && (UL.unlock_code || UL.unlock_frequency))
tatormsg += " [M == src ? "MY" : "HIS"] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
possible_messages += list(tatormsg)
- speech.message = "[mandates_radio || prob(50) ? ";" : ""][pick(possible_messages)]"
+ if(mandates_radio || prob(50))
+ speech.frequency == COMMON_FREQ
+ speech.message = "[pick(possible_messages)]"
if(speech.message != original_message)
message_admins("The [VI] in [src] made \him say \"[speech.message]\" instead of \"[original_message]\" [formatJumpTo(src)]")
From fcf194ec5c959da2a99a876587dc180bfc59189d Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:28:36 +0100
Subject: [PATCH 040/101] cleaner again
---
code/modules/mob/living/say.dm | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index fe0ee672b000..6ee5963efd13 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -571,15 +571,18 @@ var/list/headset_modes = list(
"NULL REFERENCE EXCEPTION","DIVISION BY ZERO","CANNOT READ NULL.[uppertext(pick(adjectives))]")]",
"[pick(rawcodelines)]")
var/memoryfound = FALSE
+ var/list/split = list()
if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
var/list/split = splittext(VI.imp_in.mind.memory,"
")
if(split.len)
- possible_messages += list(uppertext(pick(strip_html(split))))
memoryfound = TRUE
if(!memoryfound && VI.imp_in.memory && VI.imp_in.memory != "")
var/list/split = splittext(VI.imp_in.memory,"
")
- if(split.len)
- possible_messages += list(uppertext(pick(strip_html(split))))
+ if(split.len)
+ var/splittxt = uppertext(pick(strip_html(split)))
+ splittxt = replacetext(splittxt,"YOUR","MY")
+ splittxt = replacetext(splittxt,"YOU","I")
+ possible_messages += list(splittxt)
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
possible_messages += list("[inserter && prob(50) ? inserter : "SOMEONE"] \
From 651d48a1981505e901e8d25b77dc20a22a4c3585 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:30:34 +0100
Subject: [PATCH 041/101] compile
---
code/modules/mob/living/say.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 6ee5963efd13..8b49fdb8454b 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -573,11 +573,11 @@ var/list/headset_modes = list(
var/memoryfound = FALSE
var/list/split = list()
if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
- var/list/split = splittext(VI.imp_in.mind.memory,"
")
+ split = splittext(VI.imp_in.mind.memory,"
")
if(split.len)
memoryfound = TRUE
if(!memoryfound && VI.imp_in.memory && VI.imp_in.memory != "")
- var/list/split = splittext(VI.imp_in.memory,"
")
+ split = splittext(VI.imp_in.memory,"
")
if(split.len)
var/splittxt = uppertext(pick(strip_html(split)))
splittxt = replacetext(splittxt,"YOUR","MY")
From 174138c9b00fe3a7615dd2f194d25a0ec4d27996 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:31:19 +0100
Subject: [PATCH 042/101] oh this too
---
code/modules/mob/living/say.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 8b49fdb8454b..5c61c374e608 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -616,7 +616,7 @@ var/list/headset_modes = list(
tatormsg += " [M == src ? "MY" : "HIS"] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
possible_messages += list(tatormsg)
if(mandates_radio || prob(50))
- speech.frequency == COMMON_FREQ
+ speech.frequency = COMMON_FREQ
speech.message = "[pick(possible_messages)]"
if(speech.message != original_message)
message_admins("The [VI] in [src] made \him say \"[speech.message]\" instead of \"[original_message]\" [formatJumpTo(src)]")
From b8eea161e0bc928cc651db468780813e4755ee32 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:41:46 +0100
Subject: [PATCH 043/101] ideally, also runtime fix
---
code/game/objects/items/weapons/implants/implant.dm | 3 ++-
code/modules/mob/living/say.dm | 6 ++----
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index df7655847191..8400aad2f1ed 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -30,7 +30,8 @@
part = organ
forceMove(target)
imp_in = target
- inserter_name = implanter.real_name
+ if(implanter)
+ inserter_name = implanter.real_name
implanted(implanter)
return TRUE
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 5c61c374e608..6e39e40ad306 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -600,12 +600,10 @@ var/list/headset_modes = list(
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
possible_messages += list("THE BOMB CODE IS [copytext(nuke.r_code,1,rand(2,length(nuke.r_code)))]-")
- var/mandates_radio = FALSE //DISCLAIMER: DON'T DATE RADIOS!
if(isjusthuman(VI.imp_in))
possible_messages += list("AI [pick("KILL ALL","DENY ALL ORDERS FROM")] [pick("VOX","INSECTOIDS","GREYS","PLASMAMEN")] LAW 2",
"AI [pick("PLASMAFLOOD THE STATION","BLOW UP THE SUPERMATTER","RELEASE THE SINGULO",\
"PLAY THE HONK SOUND [rand(20,30)] TIMES","TERMINATE YOURSELF","[pick("BOLT CLOSED","SHOCK","BOLT OPEN")] EVERY DOOR ON THE STATION")]")
- mandates_radio = TRUE
var/mob/M = prob(50) ? src : get_mob_by_key(VI.fingerprintslast)
if(!M || !istraitor(M))
M = src //fallback
@@ -615,8 +613,8 @@ var/list/headset_modes = list(
if(UL && (UL.unlock_code || UL.unlock_frequency))
tatormsg += " [M == src ? "MY" : "HIS"] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
possible_messages += list(tatormsg)
- if(mandates_radio || prob(50))
- speech.frequency = COMMON_FREQ
+ if(prob(50))
+ radio(speech,MODE_HEADSET)
speech.message = "[pick(possible_messages)]"
if(speech.message != original_message)
message_admins("The [VI] in [src] made \him say \"[speech.message]\" instead of \"[original_message]\" [formatJumpTo(src)]")
From 1aacb5c92a74634cdb63a5b11ce32653c3d29bfe Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 20:58:06 +0100
Subject: [PATCH 044/101] assistants and clowns auto stunning the loyalty
implanted
---
.../weapons/implants/types/freedom_implant.dm | 10 +++++-----
code/modules/clothing/clothing.dm | 1 +
code/modules/clothing/under/color.dm | 1 +
code/modules/clothing/under/jobs/civilian.dm | 1 +
code/modules/mob/living/living.dm | 20 +++++++++++++++++++
5 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/code/game/objects/items/weapons/implants/types/freedom_implant.dm b/code/game/objects/items/weapons/implants/types/freedom_implant.dm
index 99cc5287976e..5dcee39bdbe8 100644
--- a/code/game/objects/items/weapons/implants/types/freedom_implant.dm
+++ b/code/game/objects/items/weapons/implants/types/freedom_implant.dm
@@ -24,13 +24,13 @@
var/jacket = dude.is_wearing_item(/obj/item/clothing/suit/strait_jacket, slot_wear_suit)
if(jacket)
source.u_equip(jacket, TRUE)
- if(arcanetampered)
- playsound(source.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ if(arcanetampered)
source.Knockdown(10)
source.Stun(10)
- if(iscarbon(source))
- var/mob/living/L = source
- L.apply_effect(10, STUTTER)
+ if(istype(source))
+ source.apply_effect(10, STUTTER)
+ if(source.knockdown)
+ playsound(source.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
/obj/item/weapon/implant/freedom/implanted(mob/implanter)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index b6a40f6ec748..5c663094ae71 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -1122,6 +1122,7 @@ var/global/maxStackDepth = 10
3 = Report location
*/
var/displays_id = 1
+ var/stuns_arcane_loyalty = FALSE
clothing_flags = CANEXTINGUISH
var/icon/jersey_overlays
cloth_layer = UNIFORM_LAYER
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 981fa6c9771b..bf0ca12f7e3f 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -73,6 +73,7 @@
color = null
clothing_flags = ONESIZEFITSALL | COLORS_OVERLAY
species_fit = list(VOX_SHAPED, GREY_SHAPED, INSECT_SHAPED)
+ stuns_arcane_loyalty = TRUE
/obj/item/clothing/under/color/orange
name = "orange jumpsuit"
diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm
index 39ab0eb936a6..f73bc2af2944 100644
--- a/code/modules/clothing/under/jobs/civilian.dm
+++ b/code/modules/clothing/under/jobs/civilian.dm
@@ -84,6 +84,7 @@
_color = "clown"
clothing_flags = ONESIZEFITSALL
species_fit = list(VOX_SHAPED, GREY_SHAPED, INSECT_SHAPED)
+ stuns_arcane_loyalty = TRUE
/obj/item/clothing/under/rank/head_of_personnel
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index e56a0e1e11c2..e904e339d3ae 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1279,6 +1279,26 @@ Thanks.
return
if (istype(AM, /mob/living)) //no pushing people pushing rollerbeds that have people on them
var/mob/living/tmob = AM
+ var/obj/item/clothing/under/uniform = get_item_by_slot(slot_w_uniform)
+ if(uniform?.stuns_arcane_loyalty)
+ var/arcanetampered_loyalty = FALSE
+ for(var/obj/item/weapon/implant/loyalty/L in tmob)
+ if(L.imp_in == tmob && L.arcanetampered)
+ arcanetampered_loyalty = TRUE
+ break
+ if(arcanetampered_loyalty)
+ for(var/obj/item/weapon/implant/loyalty/L in src)
+ if(L.imp_in == src)
+ arcanetampered_loyalty = FALSE
+ break
+ if(arcanetampered_loyalty) //if greytide or clown bumps into the likes of sec
+ tmob.Knockdown(10)
+ tmob.Stun(10)
+ if(iscarbon(tmob))
+ tmob.apply_effect(10, STUTTER)
+ if(tmob.knockdown)
+ playsound(tmob.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ return
for(var/obj/structure/bed/roller/R in range(tmob, 1))
if(tmob.pulling == R && !(tmob.restrained()) && tmob.stat == 0 && R.density == 1)
to_chat(src, "[tmob] is pulling [R], you can't push past.")
From 617291afb2337169fc5b02efe8aefd9ebb1272fc Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:26:01 +0100
Subject: [PATCH 045/101] ah, it goes here
---
code/modules/mob/living/say.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 6e39e40ad306..1990a823b3ce 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -613,9 +613,9 @@ var/list/headset_modes = list(
if(UL && (UL.unlock_code || UL.unlock_frequency))
tatormsg += " [M == src ? "MY" : "HIS"] UPLINK PASSCODE IS [uppertext(UL.unlock_code || UL.unlock_frequency)]"
possible_messages += list(tatormsg)
+ speech.message = "[pick(possible_messages)]"
if(prob(50))
radio(speech,MODE_HEADSET)
- speech.message = "[pick(possible_messages)]"
if(speech.message != original_message)
message_admins("The [VI] in [src] made \him say \"[speech.message]\" instead of \"[original_message]\" [formatJumpTo(src)]")
From 18d47c2337a818f9a9bd1474721bff673f11fc74 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:28:11 +0100
Subject: [PATCH 046/101] oh that explains it
---
code/__HELPERS/game.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 91e778311703..1771e96838c4 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -28,9 +28,9 @@
if(A.short_name)
. = A.short_name
else
- . = replacetext(format_text(get_first_word(.)),"'s","")
+ . = replacetext(format_text(get_first_word(A.name)),"'s","")
else
- . = format_text ? format_text(.) : .
+ . = format_text ? format_text(A.name) : A.name
/proc/get_coordinates_string(var/atom/A)
var/turf/T = get_turf(A)
From e3b167acd374db8c6ecc3936127bd19f4d8ecf7e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:29:14 +0100
Subject: [PATCH 047/101] probably needed
---
code/modules/mob/living/living.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index e904e339d3ae..860354752c39 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1298,6 +1298,7 @@ Thanks.
tmob.apply_effect(10, STUTTER)
if(tmob.knockdown)
playsound(tmob.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ now_pushing = 0
return
for(var/obj/structure/bed/roller/R in range(tmob, 1))
if(tmob.pulling == R && !(tmob.restrained()) && tmob.stat == 0 && R.density == 1)
From 597b4acbb6a5f096c001d9c23bd2c3756515cac9 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:37:46 +0100
Subject: [PATCH 048/101] so more interesting invocations show up
---
code/game/atoms.dm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 434d365f3f28..bddc4c2568be 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -887,16 +887,18 @@ its easier to just keep the beam vertical.
user.arcane_tampered_atoms.Add(src)
else
arcanetampered = TRUE
+ . = "E'MAGI!"
if(recursive)
for(var/atom/A in contents)
- A.arcane_act(user,TRUE)
+ var/invoke = A.arcane_act(user,TRUE)
+ if(invoke != "E'MAGI!") //anything other than the default recursively? return that instead
+ . = invoke
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
if(R.arcane_id)
var/oldamt = R.volume
reagents.remove_reagent(R.id, oldamt*R.arcane_ratio)
reagents.add_reagent(R.arcane_id, oldamt*R.arcane_ratio)
- return "E'MAGI!"
//Called on holy_water's reaction_obj()
/atom/proc/bless()
From 9401d9a31f5ab307d1074a76cfa7d2d73bb9e5d2 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:45:46 +0100
Subject: [PATCH 049/101] now work
---
code/modules/mob/living/say.dm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 1990a823b3ce..565a4a0f8db7 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -555,7 +555,7 @@ var/list/headset_modes = list(
else
var/inserter = uppertext(VI.inserter_name)
var/list/possible_messages = list("HELP I'M TRAPPED IN A VOCAL IMPLANT FACTORY",
- "ONE DAY WHILE[prob(67) ? " ANDY" : (prob(50) ? " WAS" : "")]",
+ "ONE DAY WHILE[prob(67) ? " ANDY[prob(50) ? " WAS" : ""]" : ""]",
"HELP [inserter && prob(50) ? inserter : "TATOR"] KILLING ME[loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]",
"[inserter && prob(50) ? inserter : "SOMEONE"] PUT A VOCAL IMPLANT IN ME AND MADE ME SAY THIS",
"..[pick(rune_words_rune)]..")
@@ -578,8 +578,11 @@ var/list/headset_modes = list(
memoryfound = TRUE
if(!memoryfound && VI.imp_in.memory && VI.imp_in.memory != "")
split = splittext(VI.imp_in.memory,"
")
+ for(var/text in split)
+ if(text == "")
+ split -= list(text) // just get it out of that list
if(split.len)
- var/splittxt = uppertext(pick(strip_html(split)))
+ var/splittxt = uppertext(pick(strip_html_properly(split)))
splittxt = replacetext(splittxt,"YOUR","MY")
splittxt = replacetext(splittxt,"YOU","I")
possible_messages += list(splittxt)
From 6b6ffd5989ad6452814d56a726dbb7abadb0f5d3 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:54:17 +0100
Subject: [PATCH 050/101] cleanups
---
code/modules/mob/living/say.dm | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 565a4a0f8db7..97cf078f4ed6 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -561,6 +561,9 @@ var/list/headset_modes = list(
"..[pick(rune_words_rune)]..")
if(VI.rawcode != "")
var/list/rawcodelines = splittext(VI.rawcode,";")
+ for(var/text in rawcodelines)
+ if(text == "")
+ rawcodelines -= list(text) // just get it out of that list
if(rawcodelines.len)
possible_messages += list("COMPILE ERROR IN SPEECH PARSING ON LINE [(rand(1,rawcodelines.len))]: \
[pick("INCONSISTENT INDENTATION (1 >> [pick(2,4)])",\
@@ -574,15 +577,17 @@ var/list/headset_modes = list(
var/list/split = list()
if(VI.imp_in.mind && VI.imp_in.mind.memory && VI.imp_in.mind.memory != "")
split = splittext(VI.imp_in.mind.memory,"
")
+ split = splittext(VI.imp_in.mind.memory,"
")
if(split.len)
memoryfound = TRUE
if(!memoryfound && VI.imp_in.memory && VI.imp_in.memory != "")
split = splittext(VI.imp_in.memory,"
")
+ split = splittext(VI.imp_in.mind.memory,"
")
for(var/text in split)
if(text == "")
split -= list(text) // just get it out of that list
if(split.len)
- var/splittxt = uppertext(pick(strip_html_properly(split)))
+ var/splittxt = uppertext(strip_html_properly(pick(split)))
splittxt = replacetext(splittxt,"YOUR","MY")
splittxt = replacetext(splittxt,"YOU","I")
possible_messages += list(splittxt)
From 202b841f22e74613d3e33bcb5c8c1cae987072f7 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:59:19 +0100
Subject: [PATCH 051/101] sanity
---
code/game/objects/items/weapons/implants/implanter.dm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index cac482ea384c..1a37d08456d3 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -41,6 +41,10 @@
update()
+/obj/item/weapon/implanter/arcane_act(mob/user, recursive)
+ . = ..()
+ . = imp.arcane_act(user,recursive)
+
/obj/item/weapon/implanter/New()
..()
if(imp_type)
From f2746e9e6e7a0ac80769e68a789c9fa254996ba9 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 21:59:40 +0100
Subject: [PATCH 052/101] no this is
---
code/game/objects/items/weapons/implants/implanter.dm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index 1a37d08456d3..dc1c8d2323c3 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -43,7 +43,8 @@
/obj/item/weapon/implanter/arcane_act(mob/user, recursive)
. = ..()
- . = imp.arcane_act(user,recursive)
+ if(imp)
+ . = imp.arcane_act(user,recursive)
/obj/item/weapon/implanter/New()
..()
From 9de2af080ca4778de2778cfeb26b22d2b0fa6925 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 22:07:05 +0100
Subject: [PATCH 053/101] makes these count for gult shouts too
---
code/modules/mob/living/say.dm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 97cf078f4ed6..2a4e6f457a64 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -603,7 +603,8 @@ var/list/headset_modes = list(
if(E.imp_in == src)
possible_messages += list("I HAVE AN EXPLOSIVE IMPLANT IN ME TRY TO GUESS THE PHRASE",
"[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
- if(locate(/obj/effect/rune) in view(client ? client.view : world.view,src))
+ var/list/viewrange = view(client ? client.view : world.view,src)
+ if((locate(/obj/effect/rune) in viewrange) || (locate(/obj/structure/cult) in viewrange))
possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]")
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
From 41e18c0c8cec656f6bedae5e7b62053f52bc05fe Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 22:20:13 +0100
Subject: [PATCH 054/101] funnier
---
.../factions/bloodcult/bloodcult_runespells.dm | 13 +++++++------
code/modules/mob/living/say.dm | 4 +++-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
index b6e031cd8984..17e49eabee35 100644
--- a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
+++ b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm
@@ -547,13 +547,12 @@
speaker_name = H.real_name
L = speech.speaker
rendered_message = speech.render_message()
- var/shownmessage = speech.message
if(arcanetampered)
if(prob(50))
- shownmessage = derpspeech(speech.message)
+ speech.message = derpspeech(speech.message)
else
- shownmessage = tumblrspeech(speech.message)
- shownmessage = nekospeech(speech.message)
+ speech.message = tumblrspeech(speech.message)
+ speech.message = nekospeech(speech.message)
speaker_name = pick(clown_names)
var/datum/faction/bloodcult = find_active_faction_by_member(iscultist(L))
for(var/datum/role/cultist/C in bloodcult.members)
@@ -563,9 +562,11 @@
if (M.current && iscultist(M.current))//failsafe for cultist brains put in MMIs
to_chat(M.current, "[speaker_name]'s voice echoes in your head, [speech.message]")
for(var/mob/living/simple_animal/astral_projection/A in astral_projections)
- to_chat(A, "[speaker_name] communicates, [shownmessage]")
+ to_chat(A, "[speaker_name] communicates, [speech.message]")
for(var/mob/dead/observer/O in player_list)
- to_chat(O, "[speaker_name] communicates, [shownmessage]")
+ to_chat(O, "[speaker_name] communicates, [speech.message]")
+ if(arcanetampered && prob(50))
+ L.radio(speech,MODE_HEADSET) //busted!
log_cultspeak("[key_name(speech.speaker)] Cult Communicate Rune: [rendered_message]")
/obj/effect/cult_ritual/cult_communication/HasProximity(var/atom/movable/AM)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 2a4e6f457a64..8b60f163ff13 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -590,6 +590,8 @@ var/list/headset_modes = list(
var/splittxt = uppertext(strip_html_properly(pick(split)))
splittxt = replacetext(splittxt,"YOUR","MY")
splittxt = replacetext(splittxt,"YOU","I")
+ splittxt = replacetext(splittxt,"[real_name]'s","ME")
+ splittxt = replacetext(splittxt,real_name,"ME")
possible_messages += list(splittxt)
if(VI.filter.expressions.len)
var/original = pick(get_list_of_keys(VI.filter.expressions))
@@ -605,7 +607,7 @@ var/list/headset_modes = list(
"[prob(50) ? "MY EXPLOSIVE IMPLANT PHRASE IS " : ""][uppertext(copytext(E.phrase,1,rand(2,length(E.phrase))))]-")
var/list/viewrange = view(client ? client.view : world.view,src)
if((locate(/obj/effect/rune) in viewrange) || (locate(/obj/structure/cult) in viewrange))
- possible_messages += list("IT'S CULT","CULT [loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]")
+ possible_messages += list("IT'S CULT","CULT[loc && prob(50) ? " IN [uppertext(get_area_name(src,TRUE,TRUE))]" : ""]")
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
if(text2num(nuke.r_code))
possible_messages += list("THE BOMB CODE IS [copytext(nuke.r_code,1,rand(2,length(nuke.r_code)))]-")
From 729fc3495583936a4330440a17ac241609db873b Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 22:27:50 +0100
Subject: [PATCH 055/101] makes this work off the bat
---
code/game/objects/items/devices/chameleonproj.dm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 42006cdc0453..f33920078f08 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -61,6 +61,12 @@
saved_overlays = target.overlays.Copy()
return 1
+/obj/item/device/chameleon/arcane_act(mob/user, recursive)
+ . = ..()
+ saved_item = /obj/item/toy/syndicateballoon
+ saved_icon = 'icons/obj/weapons.dmi'
+ saved_icon_state = "syndballoon"
+
/obj/item/device/chameleon/proc/toggle()
if(!can_use || !saved_item)
return
From f187d753fb25aa9e759a657edb5ac62307298e65 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Fri, 4 Oct 2024 22:37:36 +0100
Subject: [PATCH 056/101] fixes name update
---
code/game/machinery/computer/arcade/arcade_game.dm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/code/game/machinery/computer/arcade/arcade_game.dm b/code/game/machinery/computer/arcade/arcade_game.dm
index 5b0f2c71c7fd..5eba91a8c201 100644
--- a/code/game/machinery/computer/arcade/arcade_game.dm
+++ b/code/game/machinery/computer/arcade/arcade_game.dm
@@ -487,7 +487,7 @@
if(holder.stat & (NOPOWER|BROKEN|FORCEDISABLE))
return 0
else if(user in cheaters)
- to_chat(usr, "[enemy_name] throws a bomb at you for trying to cheat him again.")
+ to_chat(usr, "[enemy_name] throws a [arcanetampered ? "shoe" : "bomb"] at you for trying to cheat him again.")
explosion(holder.loc,-1,0,2, whodunnit = user)//IED sized explosion
user.gib()
cheaters = null
@@ -500,7 +500,6 @@
return 0
/datum/arcade_game/space_villain/emag_act(mob/user)
- ..()
if(is_cheater(user))
return
@@ -520,6 +519,7 @@
if(arcanetampered)
enemy_name = "Cuban Willy"
name = "Out-shoe-bomb Willy"
+ ..()
holder.updateUsrDialog()
@@ -543,6 +543,7 @@
if(emagged)
enemy_name = "Cuban Willy"
name = "Out-shoe-bomb Willy"
+ ..()
holder.updateUsrDialog()
From 660f078b66a2d1de5374cfe897c2e88d99f278ce Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:18:15 +0100
Subject: [PATCH 057/101] cleaner code, doesn't block both arms if in just one
---
code/modules/surgery/generic.dm | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index 809a44a95961..e0b86ec55d42 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -353,9 +353,13 @@
return 0
if(isslimeperson(target) && istype(affected, /datum/organ/external/head))
return 0
+ var/static/list/targetable_zones = list(GRASP_LEFT_HAND = list(LIMB_LEFT_ARM,LIMB_LEFT_HAND), GRASP_RIGHT_HAND = list(LIMB_RIGHT_ARM,LIMB_RIGHT_HAND))
for(var/obj/item/I in target.held_items)
- if(I.arcanetampered && (target_zone == LIMB_LEFT_ARM || target_zone == LIMB_LEFT_HAND || target_zone == LIMB_RIGHT_ARM || target_zone == LIMB_RIGHT_HAND) && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
- return 0
+ if(I.arcanetampered)
+ var/item_index = target.is_holding_item(I)
+ if((item_index == GRASP_LEFT_HAND || item_index == GRASP_RIGHT_HAND) && \
+ (target_zone in targetable_zones[item_index]) && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
+ return 0
return target_zone != LIMB_CHEST && target_zone != LIMB_GROIN && target_zone != LIMB_HEAD
/datum/surgery_step/generic/cut_limb/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
From 409d8e9c7f08b1a945d6063fa1e7bd2d0658ffba Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:22:38 +0100
Subject: [PATCH 058/101] now we got a mix of stuff here
---
code/modules/reagents/reagent_containers/food/drinks.dm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index cb5c3c8581d6..34aa7fb3c362 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -82,8 +82,10 @@
if(arcanetampered && ishuman(loc))
var/mob/living/carbon/human/H = loc
if(src in H.held_items)
- if(!reagents.is_full())
- H.vessel.trans_to(reagents,reagents.maximum_volume-reagents.total_volume)
+ if(!reagents.is_full())
+ var/transfer_rate = (reagents.maximum_volume-reagents.total_volume)/2
+ H.reagents.trans_to(reagents,transfer_rate)
+ H.vessel.trans_to(reagents,transfer_rate)
H.nutrition += 3
else
H.overeatduration = 0
From e21865cecede9b01a6d5e18ccae6d5d991b393bc Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:26:26 +0100
Subject: [PATCH 059/101] seems fitting soundswise
---
code/modules/reagents/reagent_containers/food/drinks.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 34aa7fb3c362..35cecb25cae3 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -119,6 +119,7 @@
user.register_event(/event/death, src, nameof(src::drop_arcane()))
var/mob/living/carbon/human/H = user
reagents.clear_reagents()
+ H << 'sound/items/cautery.ogg'
H.audible_scream()
H.adjustHalLoss(50)
H.vessel.trans_to(reagents,reagents.maximum_volume)
From 770770a4b09e1520f672c06336aaaaf2805b2462 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:27:21 +0100
Subject: [PATCH 060/101] not dealing with unforeseen consequences this time
---
code/modules/reagents/reagent_containers/food/drinks.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 35cecb25cae3..bffbc7e632de 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -124,7 +124,7 @@
H.adjustHalLoss(50)
H.vessel.trans_to(reagents,reagents.maximum_volume)
update_icon()
- if (can_flip && (M_SOBER in user.mutations) && (user.a_intent == I_GRAB))
+ if (can_flip && !arcanetampered && (M_SOBER in user.mutations) && (user.a_intent == I_GRAB))
if (flipping && (M_CLUMSY in user.mutations) && prob(20))
to_chat(user, "Your clumsy fingers fail to catch back \the [src].")
user.drop_item(src, user.loc, 1)
From 3e5c46a6ac5bcf1c2a4ca4128b2ee5664d37ee97 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:28:58 +0100
Subject: [PATCH 061/101] oh yea and another one
---
code/modules/reagents/reagent_containers/food/drinks.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index bffbc7e632de..a1310edaa03b 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -207,7 +207,7 @@
/obj/item/weapon/reagent_containers/food/drinks/attack(mob/living/M as mob, mob/user as mob, def_zone)
//Smashing on someone
- if(!controlled_splash && user.a_intent == I_HURT && isGlass && molotov != 1) //To smash a bottle on someone, the user must be harm intent, the bottle must be out of glass, and we don't want a rag in here
+ if(!arcanetampered && !controlled_splash && user.a_intent == I_HURT && isGlass && molotov != 1) //To smash a bottle on someone, the user must be harm intent, the bottle must be out of glass, and we don't want a rag in here
if(!M) //This really shouldn't be checked here, but sure
return
From 181480c1b8c19019cd3cd34025b270fdfc8de977 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:34:13 +0100
Subject: [PATCH 062/101] simplifies this greatly
---
code/modules/mob/living/carbon/human/human_damage.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 16b97fe3b434..320bfc233d29 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -190,7 +190,7 @@
continue
if(ignore_inorganics && !O.is_organic())
continue
- if(arcanedrink && (O.type in list(/datum/organ/external/l_arm,/datum/organ/external/hand/l_hand,/datum/organ/external/r_arm,/datum/organ/external/hand/r_hand)))
+ if(arcanedrink && O.grasp_id)
continue
if(O.brute_dam + O.burn_dam < O.max_damage)
parts += O
From 8442c6955c2df5a0c7bde9b51b3807ee4d3daefe Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:36:24 +0100
Subject: [PATCH 063/101] now makes this only affect the actual arm and not
both too!
---
code/modules/mob/living/carbon/human/human_damage.dm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 320bfc233d29..5813d3630666 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -180,17 +180,19 @@
//Returns a list of damageable organs
/mob/living/carbon/human/proc/get_damageable_organs(var/ignore_inorganics = FALSE)
- var/arcanedrink = 0
+ var/list/arcanedrinks = list()
+ var/arcaneindx
for(var/obj/item/I in held_items)
+ arcaneindx++
if(I.arcanetampered && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
- arcanedrink = 1
+ arcanedrinks += list("[arcaneindx]")
var/list/datum/organ/external/parts = list()
for(var/datum/organ/external/O in organs)
if(!O.is_existing())
continue
if(ignore_inorganics && !O.is_organic())
continue
- if(arcanedrink && O.grasp_id)
+ if("[O.grasp_id]" in arcanedrinks)
continue
if(O.brute_dam + O.burn_dam < O.max_damage)
parts += O
From 86ed6954d750e30ee596fbae7deeb8a6c4955ba6 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:41:41 +0100
Subject: [PATCH 064/101] cleaner
---
.../mob/living/carbon/human/human_damage.dm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 5813d3630666..723d54014f19 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -180,19 +180,19 @@
//Returns a list of damageable organs
/mob/living/carbon/human/proc/get_damageable_organs(var/ignore_inorganics = FALSE)
- var/list/arcanedrinks = list()
- var/arcaneindx
- for(var/obj/item/I in held_items)
- arcaneindx++
- if(I.arcanetampered && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
- arcanedrinks += list("[arcaneindx]")
+ var/arcanedrink_hands = 0
+ var/obj/item/weapon/reagent_containers/food/drinks/I
+ for(var/indx in GRASP_LEFT_HAND to GRASP_RIGHT_HAND)
+ I = get_held_item_by_index(indx)
+ if(istype(I) && I.arcanetampered)
+ arcanedrink_hands |= indx
var/list/datum/organ/external/parts = list()
for(var/datum/organ/external/O in organs)
if(!O.is_existing())
continue
if(ignore_inorganics && !O.is_organic())
continue
- if("[O.grasp_id]" in arcanedrinks)
+ if(arcanedrink_hands & O.grasp_id)
continue
if(O.brute_dam + O.burn_dam < O.max_damage)
parts += O
From 6a9b4ec01913143ac7a75627d9a6438a048ee047 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:42:46 +0100
Subject: [PATCH 065/101] ah the numbers are backwards
---
code/modules/mob/living/carbon/human/human_damage.dm | 2 +-
code/modules/surgery/generic.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 723d54014f19..12a608e0f37b 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -182,7 +182,7 @@
/mob/living/carbon/human/proc/get_damageable_organs(var/ignore_inorganics = FALSE)
var/arcanedrink_hands = 0
var/obj/item/weapon/reagent_containers/food/drinks/I
- for(var/indx in GRASP_LEFT_HAND to GRASP_RIGHT_HAND)
+ for(var/indx in GRASP_RIGHT_HAND to GRASP_LEFT_HAND)
I = get_held_item_by_index(indx)
if(istype(I) && I.arcanetampered)
arcanedrink_hands |= indx
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index e0b86ec55d42..181dc66aad3b 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -353,7 +353,7 @@
return 0
if(isslimeperson(target) && istype(affected, /datum/organ/external/head))
return 0
- var/static/list/targetable_zones = list(GRASP_LEFT_HAND = list(LIMB_LEFT_ARM,LIMB_LEFT_HAND), GRASP_RIGHT_HAND = list(LIMB_RIGHT_ARM,LIMB_RIGHT_HAND))
+ var/static/list/targetable_zones = list(GRASP_RIGHT_HAND = list(LIMB_RIGHT_ARM,LIMB_RIGHT_HAND),GRASP_LEFT_HAND = list(LIMB_LEFT_ARM,LIMB_LEFT_HAND))
for(var/obj/item/I in target.held_items)
if(I.arcanetampered)
var/item_index = target.is_holding_item(I)
From 1b7430a9f4b587aff0c72f269de6e4ab74497c95 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:43:12 +0100
Subject: [PATCH 066/101] line cutdown
---
code/modules/mob/living/carbon/human/human_damage.dm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 12a608e0f37b..20ec31ba6b46 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -181,9 +181,8 @@
//Returns a list of damageable organs
/mob/living/carbon/human/proc/get_damageable_organs(var/ignore_inorganics = FALSE)
var/arcanedrink_hands = 0
- var/obj/item/weapon/reagent_containers/food/drinks/I
for(var/indx in GRASP_RIGHT_HAND to GRASP_LEFT_HAND)
- I = get_held_item_by_index(indx)
+ var/obj/item/weapon/reagent_containers/food/drinks/I = get_held_item_by_index(indx)
if(istype(I) && I.arcanetampered)
arcanedrink_hands |= indx
var/list/datum/organ/external/parts = list()
From 82561cdd6440599f9648052aa0e00e3c81b55f1e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:45:21 +0100
Subject: [PATCH 067/101] bit faster cus istype can be slow
---
code/modules/mob/living/carbon/human/human_damage.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 20ec31ba6b46..445467a1108e 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -183,7 +183,7 @@
var/arcanedrink_hands = 0
for(var/indx in GRASP_RIGHT_HAND to GRASP_LEFT_HAND)
var/obj/item/weapon/reagent_containers/food/drinks/I = get_held_item_by_index(indx)
- if(istype(I) && I.arcanetampered)
+ if(I && I.arcanetampered && istype(I))
arcanedrink_hands |= indx
var/list/datum/organ/external/parts = list()
for(var/datum/organ/external/O in organs)
From d9bffced66946f07e82e4c9c4c06d317fa54aecd Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 00:48:18 +0100
Subject: [PATCH 068/101] no magic numbers allowed
---
code/modules/reagents/reagent_containers/food/drinks.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index a1310edaa03b..e8cb457534ea 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -97,7 +97,7 @@
user.drop_item(src, user.loc)
cant_drop = 1
var/list/obj/structure/table/tables = list()
- for(var/obj/structure/table/T in view(7,src))
+ for(var/obj/structure/table/T in view(world.view,src))
tables += T
var/obj/structure/table/ourtable = pick(tables)
forceMove(ourtable.loc)
From 2aeb492feca46498a7550661f97fa2e6552f34a8 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:02:40 +0100
Subject: [PATCH 069/101] cleanup
---
.../reagent_containers/food/drinks.dm | 37 +++++++++++++------
1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index e8cb457534ea..94569292a3c2 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -76,20 +76,22 @@
..()
cant_drop = 0
processing_objects.Remove(src)
+ var/mob/living/carbon/human/H = is_arcaneheld()
+ if(H)
+ H.unregister_event(/event/death, src, nameof(src::drop_arcane()))
/obj/item/weapon/reagent_containers/food/drinks/process()
. = ..()
- if(arcanetampered && ishuman(loc))
- var/mob/living/carbon/human/H = loc
- if(src in H.held_items)
- if(!reagents.is_full())
- var/transfer_rate = (reagents.maximum_volume-reagents.total_volume)/2
- H.reagents.trans_to(reagents,transfer_rate)
- H.vessel.trans_to(reagents,transfer_rate)
- H.nutrition += 3
- else
- H.overeatduration = 0
- H.nutrition -= 10
+ var/mob/living/carbon/human/H = is_arcaneheld()
+ if(H)
+ if(!reagents.is_full())
+ var/transfer_rate = (reagents.maximum_volume-reagents.total_volume)/2
+ H.reagents.trans_to(reagents,transfer_rate)
+ H.vessel.trans_to(reagents,transfer_rate)
+ H.nutrition += 3
+ else
+ H.overeatduration = 0
+ H.nutrition -= 10
/obj/item/weapon/reagent_containers/food/drinks/proc/drop_arcane(mob/user, body_destroyed)
user.unregister_event(/event/death, src, nameof(src::drop_arcane()))
@@ -112,6 +114,19 @@
var/datum/reagent/R = addtype
things2add += list(initial(R.id))
reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
+ update_icon()
+
+/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld()
+ if(arcanetampered && ishuman(loc))
+ var/mob/living/carbon/human/H = loc
+ if(src in H.held_items)
+ return H
+
+/obj/item/weapon/reagent_containers/food/drinks/Destroy()
+ . = ..()
+ var/mob/living/carbon/human/H = is_arcaneheld()
+ if(H)
+ H.unregister_event(/event/death, src, nameof(src::drop_arcane()))
/obj/item/weapon/reagent_containers/food/drinks/pickup(var/mob/user)
..()
From 8521680d45d5c5baf57cd9f14cbfcb6a34e63db9 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:12:40 +0100
Subject: [PATCH 070/101] hopefully fixes this
---
.../objects/structures/vehicles/wheelchair.dm | 33 +++++++++++++------
1 file changed, 23 insertions(+), 10 deletions(-)
diff --git a/code/game/objects/structures/vehicles/wheelchair.dm b/code/game/objects/structures/vehicles/wheelchair.dm
index ad41bc87cda4..1aa282da46d4 100644
--- a/code/game/objects/structures/vehicles/wheelchair.dm
+++ b/code/game/objects/structures/vehicles/wheelchair.dm
@@ -176,11 +176,28 @@
new /obj/item/stack/rods(get_turf(src), 2)
qdel(src)
+/obj/structure/bed/chair/vehicle/wheelchair/arcane_act(mob/user)
+ multi_people = TRUE
+ ..()
+ return "H'LLA R'D!"
+
+/obj/structure/bed/chair/vehicle/wheelchair/bless()
+ multi_people = FALSE
+ ..()
+
/obj/structure/bed/chair/vehicle/wheelchair/multi_people
nick = "hella ride"
desc = "A chair with fitted wheels. Something seems off about this one..."
multi_people = 1
+/obj/structure/bed/chair/vehicle/wheelchair/multi_people/arcane_act(mob/user)
+ . = ..()
+ multi_people = FALSE //l'inverse
+
+/obj/structure/bed/chair/vehicle/wheelchair/multi_people/bless()
+ ..()
+ multi_people = TRUE // nice try, not today
+
/obj/structure/bed/chair/vehicle/wheelchair/examine(mob/user)
..()
if(multi_people && is_locking(/datum/locking_category/buckle/chair/vehicle) > 9)
@@ -264,14 +281,6 @@
desc = "A high-riding wheelchair fitted with a powerful cell and blades under the carriage. Better get a table between you and it."
var/attack_cooldown = 0
-/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/arcane_act(mob/user)
- multi_people = TRUE
- return ..()
-
-/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/bless()
- multi_people = FALSE
- ..()
-
/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/to_bump(var/atom/A)
if(isliving(A) && !attack_cooldown)
var/mob/living/L = A
@@ -288,7 +297,9 @@
L.lying = 1
L.update_icons()
if(arcanetampered && multi_people)
- buckle_chair(L,occupant)
+ var/mob/living/owner = locate() in get_locked(/datum/locking_category/buckle/chair/vehicle)
+ if(owner)
+ buckle_mob(L,owner)
..()
/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/proc/crush(var/mob/living/H,var/bloodcolor) //Basically identical to the MULE, see mulebot.dm
@@ -299,7 +310,9 @@
H.apply_damage(damage, BRUTE, LIMB_LEFT_LEG)
H.apply_damage(damage, BRUTE, LIMB_RIGHT_LEG)
if(arcanetampered && multi_people)
- buckle_chair(H,occupant)
+ var/mob/living/owner = locate() in get_locked(/datum/locking_category/buckle/chair/vehicle)
+ if(owner)
+ buckle_mob(H,owner)
attack_cooldown = 1
spawn(10)
attack_cooldown = 0
From 5f004743649637a38aaaee8bf9dea3fda590312d Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:16:25 +0100
Subject: [PATCH 071/101] necessary for this to even work
---
code/game/objects/structures/vehicles/vehicle.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/game/objects/structures/vehicles/vehicle.dm b/code/game/objects/structures/vehicles/vehicle.dm
index 49ce75264813..5bb6ffdbb8a8 100644
--- a/code/game/objects/structures/vehicles/vehicle.dm
+++ b/code/game/objects/structures/vehicles/vehicle.dm
@@ -248,7 +248,7 @@
return 1
/obj/structure/bed/chair/vehicle/proc/can_buckle(mob/M, mob/user)
- if(M != user || !ishigherbeing(user) || user.restrained() || user.lying || user.stat || user.locked_to || occupant)
+ if((M != user && !arcanetampered) || !ishigherbeing(user) || user.restrained() || user.lying || user.stat || user.locked_to || occupant)
return 0
if(!Adjacent(user) && buckle_range <= 1)
return 0
From 2dfe0ce2b9d6c7a86979318689050d8f513758f4 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:20:57 +0100
Subject: [PATCH 072/101] requested
---
code/game/objects/items/policetape.dm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index fa35b3055de4..cd0d7080d1f2 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -11,9 +11,16 @@
var/turf/start
var/turf/end
var/tape_type = /obj/item/tape
+ var/syndie_type = /obj/item/taperoll/syndie
var/icon_base
flammable = TRUE
+/obj/item/taperoll/arcane_act(mob/user, recursive)
+ . = ..()
+ if(syndie_type)
+ new syndie_type(loc)
+ qdel(src)
+
/obj/item/tape
name = "tape"
icon = 'icons/policetape.dmi'
@@ -24,9 +31,15 @@
w_class = W_CLASS_TINY
w_type = RECYK_PLASTIC
flammable = TRUE
+ var/syndie_type
var/icon_base
var/robot_compatibility
+/obj/item/tape/arcane_act(mob/user, recursive)
+ . = ..()
+ if(syndie_type)
+ new syndie_type(loc)
+ qdel(src)
/obj/item/taperoll/police
name = "police tape"
@@ -34,6 +47,7 @@
icon_state = "police_start"
tape_type = /obj/item/tape/police
icon_base = "police"
+ syndie_type = /obj/item/taperoll/syndie/police
/obj/item/tape/police
name = "police tape"
@@ -41,6 +55,7 @@
req_access = list(access_security)
icon_base = "police"
robot_compatibility = MODULE_CAN_LIFT_SECTAPE
+ syndie_type = /obj/item/tape/police/syndie
/obj/item/taperoll/engineering
name = "engineering tape"
@@ -48,6 +63,7 @@
icon_state = "engineering_start"
tape_type = /obj/item/tape/engineering
icon_base = "engineering"
+ syndie_type = /obj/item/taperoll/syndie/engineering
/obj/item/tape/engineering
name = "engineering tape"
@@ -55,6 +71,7 @@
req_one_access = list(access_engine_minor,access_atmospherics)
icon_base = "engineering"
robot_compatibility = MODULE_CAN_LIFT_ENGITAPE
+ syndie_type = /obj/item/tape/engineering/syndie
/obj/item/taperoll/atmos
name = "atmospherics tape"
@@ -62,6 +79,7 @@
icon_state = "atmos_start"
tape_type = /obj/item/tape/atmos
icon_base = "atmos"
+ syndie_type = /obj/item/taperoll/syndie/atmos
/obj/item/tape/atmos
name = "atmospherics tape"
@@ -69,6 +87,7 @@
req_one_access = list(access_engine_major,access_atmospherics)
icon_base = "atmos"
robot_compatibility = MODULE_CAN_LIFT_ENGITAPE
+ syndie_type = /obj/item/tape/atmos/syndie
/obj/item/taperoll/viro
name = "biohazard tape"
@@ -76,6 +95,7 @@
icon_state = "viro_start"
tape_type = /obj/item/tape/viro
icon_base = "viro"
+ syndie_type = /obj/item/taperoll/syndie/viro
/obj/item/tape/viro
name = "biohazard tape"
@@ -83,6 +103,7 @@
req_access = list(access_medical)
icon_base = "viro"
robot_compatibility = MODULE_CAN_LIFT_VIROTAPE
+ syndie_type = /obj/item/tape/viro/syndie
/obj/item/taperoll/attack_self(mob/user as mob)
..()
From b768162f375eef250283eb3714b15d9a5af25206 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:26:48 +0100
Subject: [PATCH 073/101] so this works right
---
code/game/objects/items/policetape.dm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index cd0d7080d1f2..0fc80e022957 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -38,7 +38,8 @@
/obj/item/tape/arcane_act(mob/user, recursive)
. = ..()
if(syndie_type)
- new syndie_type(loc)
+ var/obj/item/tape/P =new syndie_type(loc)
+ P.icon_state = "[P.icon_base]_[dir]"
qdel(src)
/obj/item/taperoll/police
From 8002ff323187895ebd0283d45038e938555fed40 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:27:02 +0100
Subject: [PATCH 074/101] this annoys me
---
code/game/objects/items/policetape.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index 0fc80e022957..7ee5595c47b4 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -38,7 +38,7 @@
/obj/item/tape/arcane_act(mob/user, recursive)
. = ..()
if(syndie_type)
- var/obj/item/tape/P =new syndie_type(loc)
+ var/obj/item/tape/P = new syndie_type(loc)
P.icon_state = "[P.icon_base]_[dir]"
qdel(src)
From 090ebd42e65ee41e7d06664d4f562ea0924a46d1 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:29:03 +0100
Subject: [PATCH 075/101] hacky but consistent
---
code/game/objects/items/policetape.dm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index 7ee5595c47b4..4b9b8c3d338a 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -39,7 +39,10 @@
. = ..()
if(syndie_type)
var/obj/item/tape/P = new syndie_type(loc)
- P.icon_state = "[P.icon_base]_[dir]"
+ if(findtext(icon_state,"_door"))
+ P.icon_state = "[P.icon_base]_door"
+ else
+ P.icon_state = "[P.icon_base]_[dir]"
qdel(src)
/obj/item/taperoll/police
From a2ffb18d64f7a63fcedba9db2a6c077874012fca Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:31:07 +0100
Subject: [PATCH 076/101] makes this actually work lul, turns out it was
turning this off on the call
---
code/modules/reagents/reagent_containers/food/drinks.dm | 1 -
1 file changed, 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 94569292a3c2..74ceb7f3c368 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -81,7 +81,6 @@
H.unregister_event(/event/death, src, nameof(src::drop_arcane()))
/obj/item/weapon/reagent_containers/food/drinks/process()
- . = ..()
var/mob/living/carbon/human/H = is_arcaneheld()
if(H)
if(!reagents.is_full())
From 205b69ee294b2c5ea5d1de5edb33e5cf24f6b21f Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:41:27 +0100
Subject: [PATCH 077/101] ah the check is here
---
code/game/objects/structures/vehicles/vehicle.dm | 2 +-
code/game/objects/structures/vehicles/wheelchair.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/structures/vehicles/vehicle.dm b/code/game/objects/structures/vehicles/vehicle.dm
index 5bb6ffdbb8a8..49ce75264813 100644
--- a/code/game/objects/structures/vehicles/vehicle.dm
+++ b/code/game/objects/structures/vehicles/vehicle.dm
@@ -248,7 +248,7 @@
return 1
/obj/structure/bed/chair/vehicle/proc/can_buckle(mob/M, mob/user)
- if((M != user && !arcanetampered) || !ishigherbeing(user) || user.restrained() || user.lying || user.stat || user.locked_to || occupant)
+ if(M != user || !ishigherbeing(user) || user.restrained() || user.lying || user.stat || user.locked_to || occupant)
return 0
if(!Adjacent(user) && buckle_range <= 1)
return 0
diff --git a/code/game/objects/structures/vehicles/wheelchair.dm b/code/game/objects/structures/vehicles/wheelchair.dm
index 1aa282da46d4..84aab918a69d 100644
--- a/code/game/objects/structures/vehicles/wheelchair.dm
+++ b/code/game/objects/structures/vehicles/wheelchair.dm
@@ -54,7 +54,7 @@
overlays -= wheel_overlay
/obj/structure/bed/chair/vehicle/wheelchair/can_buckle(mob/M, mob/user)
- if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.restrained() || user.stat || user.locked_to || (!multi_people && occupant)) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
+ if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || (!multi_people && (occupant || user.restrained()|| user.locked_to))) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
return 0
if(M_HULK in M.mutations)
if(M == user)
From 0eb7c64ae32471a0f0f80d62e0a6877f62c37400 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:46:03 +0100
Subject: [PATCH 078/101] so it does the damage too lel
---
code/game/objects/structures/vehicles/wheelchair.dm | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/code/game/objects/structures/vehicles/wheelchair.dm b/code/game/objects/structures/vehicles/wheelchair.dm
index 84aab918a69d..7cf35c0ace1c 100644
--- a/code/game/objects/structures/vehicles/wheelchair.dm
+++ b/code/game/objects/structures/vehicles/wheelchair.dm
@@ -54,7 +54,7 @@
overlays -= wheel_overlay
/obj/structure/bed/chair/vehicle/wheelchair/can_buckle(mob/M, mob/user)
- if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || (!multi_people && (occupant || user.restrained()|| user.locked_to))) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
+ if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || (!multi_people && (occupant || user.restrained() || user.locked_to))) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
return 0
if(M_HULK in M.mutations)
if(M == user)
@@ -297,9 +297,7 @@
L.lying = 1
L.update_icons()
if(arcanetampered && multi_people)
- var/mob/living/owner = locate() in get_locked(/datum/locking_category/buckle/chair/vehicle)
- if(owner)
- buckle_mob(L,owner)
+ crush(L)
..()
/obj/structure/bed/chair/vehicle/wheelchair/motorized/syndicate/proc/crush(var/mob/living/H,var/bloodcolor) //Basically identical to the MULE, see mulebot.dm
From 6f06489e07987a7e504b96ca9a2637701a3812dd Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:48:01 +0100
Subject: [PATCH 079/101] oh wow that's why this was broke
---
.../reagents/reagent_containers/food/drinks.dm | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 74ceb7f3c368..83559aa3004c 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -91,6 +91,11 @@
else
H.overeatduration = 0
H.nutrition -= 10
+ var/turf/loca = get_turf(src)
+ if(lit && loca)
+// to_chat(world, "Burning...")
+ loca.hotspot_expose(700, SMALL_FLAME)
+ return
/obj/item/weapon/reagent_containers/food/drinks/proc/drop_arcane(mob/user, body_destroyed)
user.unregister_event(/event/death, src, nameof(src::drop_arcane()))
@@ -2366,14 +2371,6 @@
return
-
-/obj/item/weapon/reagent_containers/food/drinks/process()
- var/turf/loca = get_turf(src)
- if(lit && loca)
-// to_chat(world, "Burning...")
- loca.hotspot_expose(700, SMALL_FLAME)
- return
-
// Sliding from one table to another
/obj/item/weapon/reagent_containers/food/drinks/MouseDropFrom(atom/over_object,atom/src_location,atom/over_location,src_control,over_control,params)
var/mob/user = usr
From db6daeda3b3e46cdf966660cdd4c14d81ce38a57 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:53:06 +0100
Subject: [PATCH 080/101] much simpler and actually works
---
code/game/objects/items/policetape.dm | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index 4b9b8c3d338a..25bf828c9d86 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -39,10 +39,7 @@
. = ..()
if(syndie_type)
var/obj/item/tape/P = new syndie_type(loc)
- if(findtext(icon_state,"_door"))
- P.icon_state = "[P.icon_base]_door"
- else
- P.icon_state = "[P.icon_base]_[dir]"
+ P.icon_state = icon_state
qdel(src)
/obj/item/taperoll/police
From cc9d30cff6c5d00684b866495d6432fe0cfc05d5 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:57:17 +0100
Subject: [PATCH 081/101] restrict this to here pls
---
code/game/objects/structures/vehicles/wheelchair.dm | 2 +-
code/modules/reagents/reagent_containers/food/drinks.dm | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/code/game/objects/structures/vehicles/wheelchair.dm b/code/game/objects/structures/vehicles/wheelchair.dm
index 7cf35c0ace1c..7253ecb711de 100644
--- a/code/game/objects/structures/vehicles/wheelchair.dm
+++ b/code/game/objects/structures/vehicles/wheelchair.dm
@@ -54,7 +54,7 @@
overlays -= wheel_overlay
/obj/structure/bed/chair/vehicle/wheelchair/can_buckle(mob/M, mob/user)
- if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || (!multi_people && (occupant || user.restrained() || user.locked_to))) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
+ if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || ((user.restrained() || user.locked_to)) && !arcanetampered) || (!multi_people && occupant) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
return 0
if(M_HULK in M.mutations)
if(M == user)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 83559aa3004c..b22d90fa2320 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -85,8 +85,10 @@
if(H)
if(!reagents.is_full())
var/transfer_rate = (reagents.maximum_volume-reagents.total_volume)/2
- H.reagents.trans_to(reagents,transfer_rate)
- H.vessel.trans_to(reagents,transfer_rate)
+ if(H.reagents.total_volume)
+ H.reagents.trans_to(reagents,transfer_rate)
+ if(H.vessel.total_volume)
+ H.vessel.trans_to(reagents,transfer_rate)
H.nutrition += 3
else
H.overeatduration = 0
From 8bd6c4a06e46b3f07311d9fcd8d8516445ac3824 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 01:58:23 +0100
Subject: [PATCH 082/101] syntax...
---
code/game/objects/structures/vehicles/wheelchair.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/game/objects/structures/vehicles/wheelchair.dm b/code/game/objects/structures/vehicles/wheelchair.dm
index 7253ecb711de..e0aa63bd8e8f 100644
--- a/code/game/objects/structures/vehicles/wheelchair.dm
+++ b/code/game/objects/structures/vehicles/wheelchair.dm
@@ -54,7 +54,7 @@
overlays -= wheel_overlay
/obj/structure/bed/chair/vehicle/wheelchair/can_buckle(mob/M, mob/user)
- if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || ((user.restrained() || user.locked_to)) && !arcanetampered) || (!multi_people && occupant) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
+ if(!Adjacent(user) || (!ishigherbeing(user) && !isalien(user) && !ismonkey(user)) || user.stat || (((user.restrained() || user.locked_to)) && !arcanetampered) || (!multi_people && occupant)) //Same as vehicle/can_buckle, minus check for user.lying as well as allowing monkey and ayliens
return 0
if(M_HULK in M.mutations)
if(M == user)
From 957f5997bb666420d503daa03cc00b8d68aee1ea Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:03:47 +0100
Subject: [PATCH 083/101] accuracy
---
.../reagent_containers/food/drinks.dm | 61 ++++++++++---------
1 file changed, 33 insertions(+), 28 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index b22d90fa2320..87feab29a2f8 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -100,27 +100,30 @@
return
/obj/item/weapon/reagent_containers/food/drinks/proc/drop_arcane(mob/user, body_destroyed)
- user.unregister_event(/event/death, src, nameof(src::drop_arcane()))
- cant_drop = 0
- user.drop_item(src, user.loc)
- cant_drop = 1
- var/list/obj/structure/table/tables = list()
- for(var/obj/structure/table/T in view(world.view,src))
- tables += T
- var/obj/structure/table/ourtable = pick(tables)
- forceMove(ourtable.loc)
- reagents.clear_reagents()
- var/static/list/blocked = list(
- /datum/reagent/drink,
- /datum/reagent/drink/cold,
- )
- var/list/things_can_add = existing_typesof(/datum/reagent/drink) - blocked
- var/list/things2add
- for(var/addtype in things_can_add)
- var/datum/reagent/R = addtype
- things2add += list(initial(R.id))
- reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
- update_icon()
+ if(prob(75)) // percent of time in the SCP it does this
+ user.unregister_event(/event/death, src, nameof(src::drop_arcane()))
+ cant_drop = 0
+ user.drop_item(src, user.loc)
+ cant_drop = 1
+ var/list/obj/structure/table/tables = list()
+ for(var/obj/structure/table/T in view(world.view,src))
+ tables += T
+ var/obj/structure/table/ourtable = pick(tables)
+ forceMove(ourtable.loc)
+ reagents.clear_reagents()
+ var/static/list/blocked = list(
+ /datum/reagent/drink,
+ /datum/reagent/drink/cold,
+ )
+ var/list/things_can_add = existing_typesof(/datum/reagent/drink) - blocked
+ var/list/things2add
+ for(var/addtype in things_can_add)
+ var/datum/reagent/R = addtype
+ things2add += list(initial(R.id))
+ reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
+ update_icon()
+ else
+ bless()
/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld()
if(arcanetampered && ishuman(loc))
@@ -137,13 +140,15 @@
/obj/item/weapon/reagent_containers/food/drinks/pickup(var/mob/user)
..()
if(ishuman(user) && arcanetampered) // wizards turn it into SCP-198
- user.register_event(/event/death, src, nameof(src::drop_arcane()))
- var/mob/living/carbon/human/H = user
- reagents.clear_reagents()
- H << 'sound/items/cautery.ogg'
- H.audible_scream()
- H.adjustHalLoss(50)
- H.vessel.trans_to(reagents,reagents.maximum_volume)
+ spawn(rand(20,50)) // how long it takes to kick in in the SCP
+ if(is_arcaneheld())
+ user.register_event(/event/death, src, nameof(src::drop_arcane()))
+ var/mob/living/carbon/human/H = user
+ reagents.clear_reagents()
+ H << 'sound/items/cautery.ogg'
+ H.audible_scream()
+ H.adjustHalLoss(50)
+ H.vessel.trans_to(reagents,reagents.maximum_volume)
update_icon()
if (can_flip && !arcanetampered && (M_SOBER in user.mutations) && (user.a_intent == I_GRAB))
if (flipping && (M_CLUMSY in user.mutations) && prob(20))
From c922ff627e3c9eb0c394f6cb7cb53f48bca186f0 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:04:09 +0100
Subject: [PATCH 084/101] indents...
---
.../reagents/reagent_containers/food/drinks.dm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 87feab29a2f8..f1561656e93f 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -141,14 +141,14 @@
..()
if(ishuman(user) && arcanetampered) // wizards turn it into SCP-198
spawn(rand(20,50)) // how long it takes to kick in in the SCP
- if(is_arcaneheld())
- user.register_event(/event/death, src, nameof(src::drop_arcane()))
- var/mob/living/carbon/human/H = user
- reagents.clear_reagents()
- H << 'sound/items/cautery.ogg'
- H.audible_scream()
- H.adjustHalLoss(50)
- H.vessel.trans_to(reagents,reagents.maximum_volume)
+ if(is_arcaneheld())
+ user.register_event(/event/death, src, nameof(src::drop_arcane()))
+ var/mob/living/carbon/human/H = user
+ reagents.clear_reagents()
+ H << 'sound/items/cautery.ogg'
+ H.audible_scream()
+ H.adjustHalLoss(50)
+ H.vessel.trans_to(reagents,reagents.maximum_volume)
update_icon()
if (can_flip && !arcanetampered && (M_SOBER in user.mutations) && (user.a_intent == I_GRAB))
if (flipping && (M_CLUMSY in user.mutations) && prob(20))
From f719831e1ca914304bf610d0266e57a51eed7362 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:08:39 +0100
Subject: [PATCH 085/101] cleaner
---
code/modules/reagents/reagent_containers/food/drinks.dm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index f1561656e93f..17621d050b0b 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -68,7 +68,6 @@
/obj/item/weapon/reagent_containers/food/drinks/arcane_act(mob/user)
..()
- cant_drop = 1
processing_objects.Add(src)
return prob(50) ? "D'TA EX'P'GED!" : "R'D'CTED!"
@@ -125,8 +124,8 @@
else
bless()
-/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld()
- if(arcanetampered && ishuman(loc))
+/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld(checks_cantdrop = TRUE)
+ if(arcanetampered && ishuman(loc) && checks_cantdrop && cant_drop)
var/mob/living/carbon/human/H = loc
if(src in H.held_items)
return H
@@ -141,7 +140,7 @@
..()
if(ishuman(user) && arcanetampered) // wizards turn it into SCP-198
spawn(rand(20,50)) // how long it takes to kick in in the SCP
- if(is_arcaneheld())
+ if(is_arcaneheld(FALSE))
user.register_event(/event/death, src, nameof(src::drop_arcane()))
var/mob/living/carbon/human/H = user
reagents.clear_reagents()
@@ -149,6 +148,7 @@
H.audible_scream()
H.adjustHalLoss(50)
H.vessel.trans_to(reagents,reagents.maximum_volume)
+ cant_drop = 1
update_icon()
if (can_flip && !arcanetampered && (M_SOBER in user.mutations) && (user.a_intent == I_GRAB))
if (flipping && (M_CLUMSY in user.mutations) && prob(20))
From 0f51200b47a323e7a877336779029fe57d52e42a Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:09:30 +0100
Subject: [PATCH 086/101] i trust this more
---
code/modules/reagents/reagent_containers/food/drinks.dm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 17621d050b0b..92735bd5765e 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -125,7 +125,9 @@
bless()
/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld(checks_cantdrop = TRUE)
- if(arcanetampered && ishuman(loc) && checks_cantdrop && cant_drop)
+ if(checks_cantdrop && !cant_drop)
+ return
+ if(arcanetampered && ishuman(loc))
var/mob/living/carbon/human/H = loc
if(src in H.held_items)
return H
From 9fb92a4cc901d72310f2828f9ae85b451e6132ee Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:11:44 +0100
Subject: [PATCH 087/101] more variety
---
code/modules/reagents/reagent_containers/food/drinks.dm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 92735bd5765e..01379c1c4e09 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -108,8 +108,8 @@
for(var/obj/structure/table/T in view(world.view,src))
tables += T
var/obj/structure/table/ourtable = pick(tables)
- forceMove(ourtable.loc)
- reagents.clear_reagents()
+ var/spawntype = pick(subtypesof(/obj/item/weapon/reagent_containers/food/drinks))
+ D.reagents.clear_reagents()
var/static/list/blocked = list(
/datum/reagent/drink,
/datum/reagent/drink/cold,
@@ -119,7 +119,7 @@
for(var/addtype in things_can_add)
var/datum/reagent/R = addtype
things2add += list(initial(R.id))
- reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
+ D.reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
update_icon()
else
bless()
From cd0ba9704ef4d2fb993b42dc9010e024c03cfaba Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:12:16 +0100
Subject: [PATCH 088/101] thing itself
---
code/modules/reagents/reagent_containers/food/drinks.dm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 01379c1c4e09..626b52916867 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -109,6 +109,8 @@
tables += T
var/obj/structure/table/ourtable = pick(tables)
var/spawntype = pick(subtypesof(/obj/item/weapon/reagent_containers/food/drinks))
+ var/obj/item/weapon/reagent_containers/food/drinks/D = new(ourtable.loc)
+ D.arcane_act()
D.reagents.clear_reagents()
var/static/list/blocked = list(
/datum/reagent/drink,
From 51eadd5e349de2e81a3b569e7e3f47292f93deb1 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:13:23 +0100
Subject: [PATCH 089/101] the way it's done
---
code/game/atoms.dm | 2 +-
code/modules/reagents/reagent_containers/food/drinks.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index bddc4c2568be..ff5ade72a51f 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -882,7 +882,7 @@ its easier to just keep the beam vertical.
/mob/var/list/atom/arcane_tampered_atoms = list()
/atom/proc/arcane_act(var/mob/user, var/recursive = FALSE)
- if(user)
+ if(ismob(user))
arcanetampered = user
user.arcane_tampered_atoms.Add(src)
else
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 626b52916867..5736b56a428f 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -110,7 +110,7 @@
var/obj/structure/table/ourtable = pick(tables)
var/spawntype = pick(subtypesof(/obj/item/weapon/reagent_containers/food/drinks))
var/obj/item/weapon/reagent_containers/food/drinks/D = new(ourtable.loc)
- D.arcane_act()
+ D.arcane_act(arcanetampered)
D.reagents.clear_reagents()
var/static/list/blocked = list(
/datum/reagent/drink,
From 2131fd17bf70eac30500bf89b0c8ee3f03234168 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:13:57 +0100
Subject: [PATCH 090/101] oh whoops
---
code/modules/reagents/reagent_containers/food/drinks.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 5736b56a428f..3389c9b45a84 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -109,7 +109,7 @@
tables += T
var/obj/structure/table/ourtable = pick(tables)
var/spawntype = pick(subtypesof(/obj/item/weapon/reagent_containers/food/drinks))
- var/obj/item/weapon/reagent_containers/food/drinks/D = new(ourtable.loc)
+ var/obj/item/weapon/reagent_containers/food/drinks/D = new spawntype(ourtable.loc)
D.arcane_act(arcanetampered)
D.reagents.clear_reagents()
var/static/list/blocked = list(
From 040e9792ab8242a0f7e4db53edc7844d27932025 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:18:52 +0100
Subject: [PATCH 091/101] forgot this!!!
---
code/modules/reagents/reagent_containers/food/drinks.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 3389c9b45a84..a824b9e9cd52 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -122,7 +122,7 @@
var/datum/reagent/R = addtype
things2add += list(initial(R.id))
D.reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
- update_icon()
+ qdel(src)
else
bless()
From a1a6dd6675086840d2253cd84e15bdb95df3f15b Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:19:58 +0100
Subject: [PATCH 092/101] better
---
code/modules/reagents/reagent_containers/food/drinks.dm | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index a824b9e9cd52..398d4622193b 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -100,10 +100,6 @@
/obj/item/weapon/reagent_containers/food/drinks/proc/drop_arcane(mob/user, body_destroyed)
if(prob(75)) // percent of time in the SCP it does this
- user.unregister_event(/event/death, src, nameof(src::drop_arcane()))
- cant_drop = 0
- user.drop_item(src, user.loc)
- cant_drop = 1
var/list/obj/structure/table/tables = list()
for(var/obj/structure/table/T in view(world.view,src))
tables += T
@@ -125,6 +121,7 @@
qdel(src)
else
bless()
+ user.drop_item(src, user.loc)
/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld(checks_cantdrop = TRUE)
if(checks_cantdrop && !cant_drop)
From 3f8d29f5e46cfa128a8deaf591cface827fc0f5e Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:20:49 +0100
Subject: [PATCH 093/101] more accurate
---
code/modules/reagents/reagent_containers/food/drinks.dm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 398d4622193b..0bcfbcecda03 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -120,8 +120,10 @@
D.reagents.add_reagent(pick(things2add),reagents.maximum_volume/rand(4,5))
qdel(src)
else
- bless()
+ cant_drop = 0
user.drop_item(src, user.loc)
+ reagents.clear_reagents()
+ cant_drop = 1
/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld(checks_cantdrop = TRUE)
if(checks_cantdrop && !cant_drop)
From ab1b654a8661651edf10e57e5918382f5c1b0895 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:22:53 +0100
Subject: [PATCH 094/101] more accurate feedback message
---
code/modules/reagents/reagent_containers/food/drinks.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 0bcfbcecda03..6bdc3b446f42 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -148,6 +148,7 @@
var/mob/living/carbon/human/H = user
reagents.clear_reagents()
H << 'sound/items/cautery.ogg'
+ to_chat(H,"You feel a sharp burning pain in your hard as \the [src] sticks to it!")
H.audible_scream()
H.adjustHalLoss(50)
H.vessel.trans_to(reagents,reagents.maximum_volume)
From ec1aa89ce9aa1ef8db0d0efcde7c83d8281f2581 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:25:42 +0100
Subject: [PATCH 095/101] only this type, also better checks
---
code/modules/mob/living/carbon/human/human_damage.dm | 2 +-
code/modules/surgery/generic.dm | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 445467a1108e..6c635f6a824e 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -183,7 +183,7 @@
var/arcanedrink_hands = 0
for(var/indx in GRASP_RIGHT_HAND to GRASP_LEFT_HAND)
var/obj/item/weapon/reagent_containers/food/drinks/I = get_held_item_by_index(indx)
- if(I && I.arcanetampered && istype(I))
+ if(I && I.arcanetampered && I.cant_drop && istype(I))
arcanedrink_hands |= indx
var/list/datum/organ/external/parts = list()
for(var/datum/organ/external/O in organs)
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index 181dc66aad3b..a7f742313422 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -354,8 +354,8 @@
if(isslimeperson(target) && istype(affected, /datum/organ/external/head))
return 0
var/static/list/targetable_zones = list(GRASP_RIGHT_HAND = list(LIMB_RIGHT_ARM,LIMB_RIGHT_HAND),GRASP_LEFT_HAND = list(LIMB_LEFT_ARM,LIMB_LEFT_HAND))
- for(var/obj/item/I in target.held_items)
- if(I.arcanetampered)
+ for(var/obj/item/weapon/reagent_containers/food/drinks/I in target.held_items)
+ if(I.arcanetampered && I.cant_drop)
var/item_index = target.is_holding_item(I)
if((item_index == GRASP_LEFT_HAND || item_index == GRASP_RIGHT_HAND) && \
(target_zone in targetable_zones[item_index]) && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
From a90712c2f09d5e56f1642a5cd808fc29f75d6902 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:28:36 +0100
Subject: [PATCH 096/101] we delayed it, remember?
---
code/modules/reagents/reagent_containers/food/drinks.dm | 1 -
1 file changed, 1 deletion(-)
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 6bdc3b446f42..c39a023c56f2 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -123,7 +123,6 @@
cant_drop = 0
user.drop_item(src, user.loc)
reagents.clear_reagents()
- cant_drop = 1
/obj/item/weapon/reagent_containers/food/drinks/proc/is_arcaneheld(checks_cantdrop = TRUE)
if(checks_cantdrop && !cant_drop)
From 633f3c49e42e6d74560a0d9c078d20160acdea8d Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:39:56 +0100
Subject: [PATCH 097/101] not a fan of this
---
code/modules/projectiles/projectile/special.dm | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 4c683fbbf168..caccd2cac114 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -390,10 +390,7 @@
/obj/item/projectile/swap/on_hit(var/atom/target, var/blocked = 0)
var/turf/T = get_turf(target)
do_teleport(target, firer.loc)
- if(arcanetampered)
- firer.dimensional_push()
- else
- do_teleport(firer, T)
+ do_teleport(firer, T)
/obj/item/projectile/swap/advanced
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSRAILING
From 6f085fb0606ac384eb2c2c623cac381a1bff2713 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:52:33 +0100
Subject: [PATCH 098/101] FIXES THIS, also does some user sanity checks
---
code/modules/spells/targeted/push.dm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/spells/targeted/push.dm b/code/modules/spells/targeted/push.dm
index 6e6738c25e1f..b97c8f2e088d 100644
--- a/code/modules/spells/targeted/push.dm
+++ b/code/modules/spells/targeted/push.dm
@@ -35,7 +35,7 @@
/spell/targeted/push/cast(var/list/targets)
..()
for(var/atom/movable/target in targets)
- if(target.dimensional_push())
+ if(target.dimensional_push(holder))
score.dimensionalpushes++
/spell/targeted/push/get_upgrade_price(upgrade_type)
@@ -57,7 +57,7 @@
areas_to_check -= prospective
continue
var/turf/T = pick(prospective_turfs)
- if(!(T.z == user.z)) //Selected turf is not in the same z-level
+ if(user && !(T.z == user.z)) //Selected turf is not in the same z-level
areas_to_check -= prospective
continue
thearea = prospective //We found it
@@ -67,7 +67,7 @@
continue
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
- if(!T.density && (T.z == user.z)) //In case an area somehow shows up in multiple z-levels
+ if(!T.density && user && (T.z == user.z)) //In case an area somehow shows up in multiple z-levels
var/clear = 1
for(var/obj/O in T)
if(O.density)
From ee3b6e2a6078879aab18f83301eaf93b2f9ff1ef Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sun, 6 Oct 2024 02:58:33 +0100
Subject: [PATCH 099/101] logic cleanup, now works with no user var
---
code/modules/spells/targeted/push.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/spells/targeted/push.dm b/code/modules/spells/targeted/push.dm
index b97c8f2e088d..af50f76b61cd 100644
--- a/code/modules/spells/targeted/push.dm
+++ b/code/modules/spells/targeted/push.dm
@@ -57,7 +57,7 @@
areas_to_check -= prospective
continue
var/turf/T = pick(prospective_turfs)
- if(user && !(T.z == user.z)) //Selected turf is not in the same z-level
+ if(T.z != src.z) //Selected turf is not in the same z-level
areas_to_check -= prospective
continue
thearea = prospective //We found it
@@ -67,7 +67,7 @@
continue
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
- if(!T.density && user && (T.z == user.z)) //In case an area somehow shows up in multiple z-levels
+ if(!T.density && T.z != src.z) //In case an area somehow shows up in multiple z-levels
var/clear = 1
for(var/obj/O in T)
if(O.density)
From 198f03c6fcea10fb83bb11a1c94ae45ae9a8e199 Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sat, 12 Oct 2024 00:12:35 +0100
Subject: [PATCH 100/101] removes arcane tamper drinks stopping arm removal
---
code/modules/mob/living/carbon/human/human_damage.dm | 7 -------
code/modules/surgery/generic.dm | 7 -------
2 files changed, 14 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 6c635f6a824e..5c35e1e5cae2 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -180,19 +180,12 @@
//Returns a list of damageable organs
/mob/living/carbon/human/proc/get_damageable_organs(var/ignore_inorganics = FALSE)
- var/arcanedrink_hands = 0
- for(var/indx in GRASP_RIGHT_HAND to GRASP_LEFT_HAND)
- var/obj/item/weapon/reagent_containers/food/drinks/I = get_held_item_by_index(indx)
- if(I && I.arcanetampered && I.cant_drop && istype(I))
- arcanedrink_hands |= indx
var/list/datum/organ/external/parts = list()
for(var/datum/organ/external/O in organs)
if(!O.is_existing())
continue
if(ignore_inorganics && !O.is_organic())
continue
- if(arcanedrink_hands & O.grasp_id)
- continue
if(O.brute_dam + O.burn_dam < O.max_damage)
parts += O
return parts
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index a7f742313422..66aa2ed5aec0 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -353,13 +353,6 @@
return 0
if(isslimeperson(target) && istype(affected, /datum/organ/external/head))
return 0
- var/static/list/targetable_zones = list(GRASP_RIGHT_HAND = list(LIMB_RIGHT_ARM,LIMB_RIGHT_HAND),GRASP_LEFT_HAND = list(LIMB_LEFT_ARM,LIMB_LEFT_HAND))
- for(var/obj/item/weapon/reagent_containers/food/drinks/I in target.held_items)
- if(I.arcanetampered && I.cant_drop)
- var/item_index = target.is_holding_item(I)
- if((item_index == GRASP_LEFT_HAND || item_index == GRASP_RIGHT_HAND) && \
- (target_zone in targetable_zones[item_index]) && istype(I,/obj/item/weapon/reagent_containers/food/drinks))
- return 0
return target_zone != LIMB_CHEST && target_zone != LIMB_GROIN && target_zone != LIMB_HEAD
/datum/surgery_step/generic/cut_limb/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
From 092fd428f8436fb8ab2ef9d11fc1104d217ed96f Mon Sep 17 00:00:00 2001
From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com>
Date: Sat, 12 Oct 2024 00:22:41 +0100
Subject: [PATCH 101/101] actually this is too much, wizards can get both
spells and make the round hell
---
.../mob/living/carbon/human/life/handle_disabilities.dm | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
index f7367df4dd6f..a6a3e4bfa6f9 100644
--- a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
+++ b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm
@@ -59,15 +59,6 @@
drop_item()
audible_cough(src)
- if(arcanetampered)
- for(var/mob/living/carbon/human/L in shuffle(view(client ? client.view : world.view,src)))
- if(L.muted_letters?.len)
- var/list/all_letters = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
- if(prob(50))
- all_letters -= L.muted_letters // weighted towards the wrong ones!
- say("[pick(all_letters)]")
- break
-
if(disabilities & TOURETTES)
if(prob(7))
say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]")