[s] Hallucinations 4.0
This commit is contained in:
@@ -160,7 +160,7 @@
|
||||
to_chat(owner, "<span class='warning'>You feel really lonely...</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>You're going mad with loneliness!</span>")
|
||||
owner.hallucination += 20
|
||||
owner.hallucination += 30
|
||||
|
||||
if(5)
|
||||
if(!high_stress)
|
||||
|
||||
@@ -231,6 +231,7 @@
|
||||
if(prob(2)) //we'll all be mad soon enough
|
||||
madness()
|
||||
|
||||
<<<<<<< HEAD
|
||||
/datum/trait/insanity/proc/madness(mad_fools)
|
||||
set waitfor = FALSE
|
||||
if(!mad_fools)
|
||||
@@ -240,6 +241,10 @@
|
||||
new hallucination_type (trait_holder, FALSE)
|
||||
else
|
||||
trait_holder.hallucination += rand(10, 50)
|
||||
=======
|
||||
/datum/quirk/insanity/proc/madness()
|
||||
quirk_holder.hallucination += rand(10, 25)
|
||||
>>>>>>> aa782ff... [s] Hallucinations 4.0 (#37423)
|
||||
|
||||
/datum/trait/insanity/post_add() //I don't /think/ we'll need this but for newbies who think "roleplay as insane" = "license to kill" it's probably a good thing to have
|
||||
if(!trait_holder.mind || trait_holder.mind.special_role)
|
||||
|
||||
@@ -323,12 +323,12 @@
|
||||
return
|
||||
else
|
||||
return
|
||||
else if(user.hallucinating() && ishuman(user) && prob(4) && !operating)
|
||||
else if(user.hallucinating() && ishuman(user) && prob(1) && !operating)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.gloves)
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
if(G.siemens_coefficient)//not insulated
|
||||
hallucinate_shock(H)
|
||||
new /datum/hallucination/shock(H)
|
||||
return
|
||||
if (cyclelinkedairlock)
|
||||
if (!shuttledocked && !emergency && !cyclelinkedairlock.shuttledocked && !cyclelinkedairlock.emergency && allowed(user))
|
||||
@@ -338,34 +338,6 @@
|
||||
addtimer(CALLBACK(cyclelinkedairlock, .proc/close), 2)
|
||||
..()
|
||||
|
||||
/obj/machinery/door/airlock/proc/hallucinate_shock(mob/living/user)
|
||||
var/image/shock_image = image(user, user, dir = user.dir)
|
||||
var/image/electrocution_skeleton_anim = image('icons/mob/human.dmi', user, icon_state = "electrocuted_base", layer=ABOVE_MOB_LAYER)
|
||||
shock_image.color = rgb(0,0,0)
|
||||
shock_image.override = TRUE
|
||||
electrocution_skeleton_anim.appearance_flags |= RESET_COLOR|KEEP_APART
|
||||
|
||||
to_chat(user, "<span class='userdanger'>You feel a powerful shock course through your body!</span>")
|
||||
if(user.client)
|
||||
user.client.images |= shock_image
|
||||
user.client.images |= electrocution_skeleton_anim
|
||||
addtimer(CALLBACK(src, .proc/reset_hallucinate_shock_animation, user, shock_image, electrocution_skeleton_anim), 40)
|
||||
user.playsound_local(get_turf(src), "sparks", 100, 1)
|
||||
user.staminaloss += 50
|
||||
user.Stun(40)
|
||||
user.jitteriness += 1000
|
||||
user.do_jitter_animation(user.jitteriness)
|
||||
addtimer(CALLBACK(src, .proc/hallucinate_shock_drop, user), 20)
|
||||
|
||||
/obj/machinery/door/airlock/proc/reset_hallucinate_shock_animation(mob/living/user, shock_image, electrocution_skeleton_anim)
|
||||
if(user.client)
|
||||
user.client.images.Remove(shock_image)
|
||||
user.client.images.Remove(electrocution_skeleton_anim)
|
||||
|
||||
/obj/machinery/door/airlock/proc/hallucinate_shock_drop(mob/living/user)
|
||||
user.jitteriness = max(user.jitteriness - 990, 10) //Still jittery, but vastly less
|
||||
user.Knockdown(60)
|
||||
|
||||
/obj/machinery/door/airlock/proc/isElectrified()
|
||||
if(src.secondsElectrified != NOT_ELECTRIFIED)
|
||||
return TRUE
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
H.confused += 15
|
||||
H.adjustBrainLoss(10, 160)
|
||||
if(3)
|
||||
H.hallucination += 80
|
||||
H.hallucination += 60
|
||||
|
||||
/obj/item/organ/heart/gland/pop
|
||||
cooldown_low = 900
|
||||
|
||||
@@ -214,19 +214,19 @@
|
||||
/obj/effect/proc_holder/changeling/sting/LSD
|
||||
name = "Hallucination Sting"
|
||||
desc = "Causes terror in the target."
|
||||
helptext = "We evolve the ability to sting a target with a powerful hallucinogenic chemical. The target does not notice they have been stung, and the effect occurs after 30 to 60 seconds."
|
||||
helptext = "We evolve the ability to sting a target with a powerful hallucinogenic chemical. The target does not notice they have been stung, and the effect begins after a few seconds."
|
||||
sting_icon = "sting_lsd"
|
||||
chemical_cost = 10
|
||||
dna_cost = 1
|
||||
|
||||
/obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target)
|
||||
add_logs(user, target, "stung", "LSD sting")
|
||||
addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(300,600))
|
||||
addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(100,200))
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target)
|
||||
if(target)
|
||||
target.hallucination = max(400, target.hallucination)
|
||||
target.hallucination = max(90, target.hallucination)
|
||||
|
||||
/obj/effect/proc_holder/changeling/sting/cryo
|
||||
name = "Cryogenic Sting"
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
if(!ishuman(target) || iscultist(target))
|
||||
return
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.hallucination = max(H.hallucination, 240)
|
||||
H.hallucination = max(H.hallucination, 120)
|
||||
SEND_SOUND(ranged_ability_user, sound('sound/effects/ghost.ogg',0,1,50))
|
||||
var/image/C = image('icons/effects/cult_effects.dmi',H,"bloodsparkles", ABOVE_MOB_LAYER)
|
||||
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, FALSE)
|
||||
|
||||
@@ -11,22 +11,27 @@
|
||||
/datum/round_event/mass_hallucination/start()
|
||||
switch(rand(1,4))
|
||||
if(1) //same sound for everyone
|
||||
var/sound = pick("explosion","far_explosion","phone","alarm","hallelujah","creepy","ratvar","shuttle_dock",
|
||||
"wall_decon","door_hack","blob_alert","tesla","malf_ai","meteors")
|
||||
var/sound = pick("airlock","airlock_pry","console","explosion","far_explosion","mech","glass","alarm","beepsky","mech","wall_decon","door_hack","tesla")
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
new /datum/hallucination/sounds(C, TRUE, sound)
|
||||
if(2 to 4)
|
||||
if(2)
|
||||
var/weirdsound = pick("phone","hallelujah","highlander","hyperspace","game_over","creepy","tesla")
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
new /datum/hallucination/weird_sounds(C, TRUE, weirdsound)
|
||||
if(3)
|
||||
var/stationmessage = pick("ratvar","shuttle_dock","blob_alert","malf_ai","meteors","supermatter")
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
new /datum/hallucination/stationmessage(C, TRUE, stationmessage)
|
||||
if(4 to 6)
|
||||
var/picked_hallucination = pick( /datum/hallucination/bolts,
|
||||
/datum/hallucination/whispers,
|
||||
/datum/hallucination/chat,
|
||||
/datum/hallucination/message,
|
||||
/datum/hallucination/bolts,
|
||||
/datum/hallucination/fake_flood,
|
||||
/datum/hallucination/battle,
|
||||
/datum/hallucination/fire,
|
||||
/datum/hallucination/self_delusion,
|
||||
/datum/hallucination/fakeattacker,
|
||||
/datum/hallucination/death,
|
||||
/datum/hallucination/xeno_attack,
|
||||
/datum/hallucination/delusion,
|
||||
/datum/hallucination/oh_yeah)
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -207,9 +207,9 @@
|
||||
if(breath_gases[/datum/gas/bz])
|
||||
var/bz_partialpressure = (breath_gases[/datum/gas/bz][MOLES]/breath.total_moles())*breath_pressure
|
||||
if(bz_partialpressure > 1)
|
||||
hallucination += 20
|
||||
hallucination += 10
|
||||
else if(bz_partialpressure > 0.01)
|
||||
hallucination += 5//Removed at 2 per tick so this will slowly build up
|
||||
hallucination += 5
|
||||
//TRITIUM
|
||||
if(breath_gases[/datum/gas/tritium])
|
||||
var/tritium_partialpressure = (breath_gases[/datum/gas/tritium][MOLES]/breath.total_moles())*breath_pressure
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
M.adjustBrainLoss(20)
|
||||
M.hallucination += 20
|
||||
M.hallucination += 30
|
||||
|
||||
@@ -287,7 +287,7 @@
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
M.adjustStaminaLoss(-5, 0)
|
||||
M.adjustBrainLoss(4)
|
||||
M.hallucination += 10
|
||||
M.hallucination += 5
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
@@ -295,7 +295,7 @@
|
||||
. = 1
|
||||
|
||||
/datum/reagent/drug/bath_salts/overdose_process(mob/living/M)
|
||||
M.hallucination += 10
|
||||
M.hallucination += 5
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
for(var/i in 1 to 8)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
@@ -341,7 +341,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M)
|
||||
M.hallucination += 40
|
||||
M.hallucination += 30
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 16, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
|
||||
@@ -1093,7 +1093,7 @@
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/earthsblood/overdose_process(mob/living/M)
|
||||
M.hallucination = min(max(0, M.hallucination + 10), 50)
|
||||
M.hallucination = min(max(0, M.hallucination + 5), 60)
|
||||
M.adjustToxLoss(5 * REM, 0)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
/datum/reagent/blackpowder/on_mob_life(mob/living/M)
|
||||
..()
|
||||
if(isplasmaman(M))
|
||||
M.hallucination += 10
|
||||
M.hallucination += 5
|
||||
|
||||
/datum/reagent/blackpowder/on_ex_act()
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
taste_description = "sourness"
|
||||
|
||||
/datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/M)
|
||||
M.hallucination += 10
|
||||
M.hallucination += 5
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/plantbgone
|
||||
|
||||
@@ -236,13 +236,13 @@
|
||||
|
||||
var/bz_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/bz][MOLES])
|
||||
if(bz_pp > BZ_trip_balls_min)
|
||||
H.hallucination += 20
|
||||
H.hallucination += 10
|
||||
H.reagents.add_reagent("bz_metabolites",5)
|
||||
if(prob(33))
|
||||
H.adjustBrainLoss(3, 150)
|
||||
|
||||
else if(bz_pp > 0.01)
|
||||
H.hallucination += 5//Removed at 2 per tick so this will slowly build up
|
||||
H.hallucination += 5
|
||||
H.reagents.add_reagent("bz_metabolites",1)
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,22 @@
|
||||
"@pick(add_name)what are you hiding?",
|
||||
"I saw that"
|
||||
],
|
||||
|
||||
"conversation": [
|
||||
"Yes",
|
||||
"Yeah",
|
||||
"Yup",
|
||||
"No",
|
||||
"Nah",
|
||||
"I doubt it",
|
||||
"Uh...",
|
||||
"Why?",
|
||||
"But...",
|
||||
"Hold on",
|
||||
"Hmm",
|
||||
"Yeah, i know",
|
||||
"Weird"
|
||||
],
|
||||
|
||||
"greetings": [
|
||||
"",
|
||||
@@ -29,7 +45,7 @@
|
||||
"Kchckchk...",
|
||||
"EEEeeeeEEEE",
|
||||
"khhhhh",
|
||||
"#@§*&£",
|
||||
"#@<EFBFBD>*&<EFBFBD>",
|
||||
"H**p m*",
|
||||
"H-hhhhh..."
|
||||
],
|
||||
@@ -40,47 +56,9 @@
|
||||
"What was that?"
|
||||
],
|
||||
|
||||
"imatraitor": [
|
||||
"Hail Ratvar",
|
||||
"Hail Nar'Sie",
|
||||
"Hey, @pick(add_name)i've got some TC left, want something?",
|
||||
"Viva!",
|
||||
"I'll spare you if you don't tell anybody about me",
|
||||
"Hey, @pick(add_name)are you a traitor too?",
|
||||
"You're my target, but @pick(excuses)",
|
||||
"Are you mr. @pick(ling_names)?"
|
||||
],
|
||||
|
||||
"excuses": [
|
||||
"i like you, so i'll spare you",
|
||||
"i don't really feel like following objectives today",
|
||||
"i'm not robust enough to fight you",
|
||||
"who cares",
|
||||
"i'll kill you later"
|
||||
],
|
||||
|
||||
"ling_names": [
|
||||
"Alpha",
|
||||
"Beta",
|
||||
"Gamma",
|
||||
"Delta",
|
||||
"Epsilon",
|
||||
"Eta",
|
||||
"Theta",
|
||||
"Lambda",
|
||||
"Mu",
|
||||
"Xi",
|
||||
"Rho",
|
||||
"Sigma",
|
||||
"Tau",
|
||||
"Upsilon",
|
||||
"Phi",
|
||||
"Psi",
|
||||
"Omega"
|
||||
],
|
||||
|
||||
"add_name": [
|
||||
"%TARGETNAME%, ",
|
||||
"%TARGETNAME% ",
|
||||
""
|
||||
],
|
||||
|
||||
@@ -95,11 +73,16 @@
|
||||
|
||||
"aggressive": [
|
||||
"@pick(add_name)give me that!",
|
||||
"@pick(add_name)stop it!",
|
||||
"@pick(add_name)i'm going to kill you!",
|
||||
"@pick(add_name)fuck you!"
|
||||
],
|
||||
|
||||
"help": [
|
||||
"HELP",
|
||||
"HELP",
|
||||
"HELP",
|
||||
"HELP",
|
||||
"HELP",
|
||||
"HELP ME",
|
||||
"HELP HIM",
|
||||
@@ -140,6 +123,7 @@
|
||||
],
|
||||
|
||||
"accusations": [
|
||||
"dead",
|
||||
"rogue",
|
||||
"cult",
|
||||
"a cultist",
|
||||
@@ -162,32 +146,64 @@
|
||||
"Ling",
|
||||
"Ops",
|
||||
"Swarmers",
|
||||
"Spiders",
|
||||
"Xenos",
|
||||
"Revenant",
|
||||
"Traitor",
|
||||
"Harm",
|
||||
"Blue APC",
|
||||
"I hear flashing",
|
||||
"Help",
|
||||
"%TARGETNAME%"
|
||||
],
|
||||
|
||||
"location": [
|
||||
"bridge",
|
||||
"armory",
|
||||
"space near @pick(sublocation)",
|
||||
"the bridge",
|
||||
"the armory",
|
||||
"sec",
|
||||
"security",
|
||||
"science",
|
||||
"xenobio",
|
||||
"engineering",
|
||||
"cargo",
|
||||
"medbay",
|
||||
"atmos",
|
||||
"maint",
|
||||
"@pick(sublocation) maint",
|
||||
"virology",
|
||||
"morgue",
|
||||
"hops office",
|
||||
"captains office",
|
||||
"chapel",
|
||||
"library",
|
||||
"the chapel",
|
||||
"the library",
|
||||
"tool storage",
|
||||
"botany",
|
||||
"kitchen",
|
||||
"the kitchen",
|
||||
"the ai sat"
|
||||
],
|
||||
|
||||
"sublocation": [
|
||||
"the bridge",
|
||||
"the armory",
|
||||
"sec",
|
||||
"security",
|
||||
"science",
|
||||
"xenobio",
|
||||
"engineering",
|
||||
"cargo",
|
||||
"medbay",
|
||||
"atmos",
|
||||
"maint",
|
||||
"virology",
|
||||
"morgue",
|
||||
"hops office",
|
||||
"captains office",
|
||||
"the chapel",
|
||||
"the library",
|
||||
"tool storage",
|
||||
"botany",
|
||||
"the kitchen",
|
||||
"the ai sat"
|
||||
],
|
||||
|
||||
@@ -201,10 +217,12 @@
|
||||
"Kill that person. You know who.",
|
||||
"You should go somewhere else. Quickly.",
|
||||
"Good luck. You'll need it.",
|
||||
"You have my permission. Do it."
|
||||
"You have my permission. Do it.",
|
||||
"Just do it."
|
||||
],
|
||||
|
||||
"chemicals": [
|
||||
"Something",
|
||||
"Ooze",
|
||||
"Fire",
|
||||
"Earth",
|
||||
|
||||
Reference in New Issue
Block a user