Winding down to the final commits.
This commit is contained in:
@@ -73,7 +73,7 @@
|
||||
#define TRAIT_MUSICIAN "musician"
|
||||
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
|
||||
#define TRAIT_NYMPHO "nymphomania"
|
||||
#define TRAIT_HIGH_BLOOD "high_blood"
|
||||
#define TRAIT_HIGH_BLOOD "high_blood"
|
||||
|
||||
// common trait sources
|
||||
#define TRAIT_GENERIC "generic"
|
||||
|
||||
@@ -313,3 +313,51 @@
|
||||
/obj/item/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
activate()
|
||||
return ..()
|
||||
|
||||
//ported from tg - check to make sure it can't appear where it's not supposed to.
|
||||
/obj/item/assembly/flash/hypnotic
|
||||
desc = "A modified flash device, programmed to emit a sequence of subliminal flashes that can send a vulnerable target into a hypnotic trance."
|
||||
//flashing_overlay = "flash-hypno" doesn't seem to be in citcode yet.
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
cooldown = 20
|
||||
|
||||
/obj/item/assembly/flash/hypnotic/burn_out()
|
||||
return
|
||||
|
||||
/obj/item/assembly/flash/hypnotic/flash_carbon(mob/living/carbon/M, mob/user, power = 15, targeted = TRUE, generic_message = FALSE)
|
||||
if(!istype(M))
|
||||
return
|
||||
if(user)
|
||||
log_combat(user, M, "[targeted? "hypno-flashed(targeted)" : "hypno-flashed(AOE)"]", src)
|
||||
else //caused by emp/remote signal
|
||||
M.log_message("was [targeted? "hypno-flashed(targeted)" : "hypno-flashed(AOE)"]",LOG_ATTACK)
|
||||
if(generic_message && M != user)
|
||||
to_chat(M, "<span class='disarm'>[src] emits a soothing light...</span>")
|
||||
if(targeted)
|
||||
if(M.flash_act(1, 1))
|
||||
var/hypnosis = FALSE
|
||||
if(M.hypnosis_vulnerable())
|
||||
hypnosis = TRUE
|
||||
if(user)
|
||||
user.visible_message("<span class='disarm'>[user] blinds [M] with the flash!</span>", "<span class='danger'>You hypno-flash [M]!</span>")
|
||||
|
||||
if(!hypnosis)
|
||||
to_chat(M, "<span class='notice'>The light makes you feel oddly relaxed...</span>")
|
||||
M.confused += min(M.confused + 10, 20)
|
||||
M.dizziness += min(M.dizziness + 10, 20)
|
||||
M.drowsyness += min(M.drowsyness + 10, 20)
|
||||
//M.apply_status_effect(STATUS_EFFECT_PACIFY, 100) for when we port apply_status_effect pacifist (maybe I'll do it)
|
||||
else
|
||||
M.apply_status_effect(/datum/status_effect/trance, 200, TRUE)
|
||||
|
||||
else if(user)
|
||||
user.visible_message("<span class='disarm'>[user] fails to blind [M] with the flash!</span>", "<span class='warning'>You fail to hypno-flash [M]!</span>")
|
||||
else
|
||||
to_chat(M, "<span class='danger'>[src] fails to blind you!</span>")
|
||||
|
||||
else if(M.flash_act())
|
||||
to_chat(M, "<span class='notice'>Such a pretty light...</span>")
|
||||
M.confused += min(M.confused + 4, 20)
|
||||
M.dizziness += min(M.dizziness + 4, 20)
|
||||
M.drowsyness += min(M.drowsyness + 4, 20)
|
||||
//M.apply_status_effect(STATUS_EFFECT_PACIFY, 40) for when we port apply_status_effect pacifist (maybe I'll do it)
|
||||
|
||||
@@ -566,6 +566,7 @@ im
|
||||
//message_admins("updating targetVol from [targetVol]")
|
||||
for(var/B in cached_required_reagents) //
|
||||
multiplier = min(multiplier, round(get_reagent_amount(B) / cached_required_reagents[B]))
|
||||
multiplier*=10
|
||||
if (multiplier == 0)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
fermiIsReacting = FALSE
|
||||
@@ -646,12 +647,12 @@ im
|
||||
var/purity = 1
|
||||
//var/tempVol = totalVol
|
||||
|
||||
//message_admins("Loop beginning")
|
||||
message_admins("multiplier [multiplier], target vol:[targetVol], rate lim: [C.RateUpLim], reactedVol: [reactedVol]")
|
||||
//Begin Parse
|
||||
|
||||
WARNING("Purity precalc: [overallPurity]")
|
||||
update_holder_purity(C)//updates holder's purity
|
||||
WARNING("Purity postcalc: [overallPurity]")
|
||||
//WARNING("Purity precalc: [overallPurity]")
|
||||
//update_holder_purity(C)//updates holder's purity
|
||||
//WARNING("Purity postcalc: [overallPurity]")
|
||||
|
||||
//Check extremes first
|
||||
if (cached_temp > C.ExplodeTemp)
|
||||
@@ -709,8 +710,7 @@ im
|
||||
deltaT = 0
|
||||
//message_admins("calculating temperature factor, min: [C.OptimalTempMin], max: [C.OptimalTempMax], Exponential: [C.CurveSharpT], deltaT: [deltaT]")
|
||||
|
||||
|
||||
stepChemAmmount = deltaT //used to have multipler, now it doesn't
|
||||
stepChemAmmount = CLAMP((deltaT * C.RateUpLim), 0, (targetVol - reactedVol)) //used to have multipler, now it doesn't
|
||||
if (stepChemAmmount > C.RateUpLim)
|
||||
stepChemAmmount = C.RateUpLim
|
||||
else if (stepChemAmmount <= 0.01)
|
||||
@@ -728,7 +728,7 @@ im
|
||||
|
||||
//TODO: Check overall beaker purity with proc
|
||||
//Then adjust purity of result AND yeild ammount with said purity.
|
||||
stepChemAmmount *= overallPurity
|
||||
stepChemAmmount *= reactant_purity(C)
|
||||
|
||||
// End.
|
||||
/*
|
||||
@@ -764,7 +764,7 @@ im
|
||||
|
||||
return (reactedVol)
|
||||
|
||||
/datum/reagents/proc/update_holder_purity(var/datum/chemical_reaction/fermi/C, holder)
|
||||
/datum/reagents/proc/reactant_purity(var/datum/chemical_reaction/fermi/C, holder)
|
||||
var/list/cached_reagents = reagent_list
|
||||
var/i
|
||||
var/cachedPurity
|
||||
@@ -773,7 +773,7 @@ im
|
||||
if (R in cached_reagents)
|
||||
cachedPurity += R.purity
|
||||
i++
|
||||
overallPurity = cachedPurity/i
|
||||
return cachedPurity/i
|
||||
|
||||
/datum/reagents/proc/isolate_reagent(reagent)
|
||||
var/list/cached_reagents = reagent_list
|
||||
@@ -881,12 +881,12 @@ im
|
||||
if (pH <= 2)
|
||||
var/datum/effect_system/smoke_spread/chem/s = new
|
||||
var/turf/T = get_turf(my_atom)
|
||||
var/datum/reagents/R = new/datum/re agents(3000)//I don't want to hold it back..!
|
||||
var/datum/reagents/R = new/datum/reagents(3000)//I don't want to hold it back..!
|
||||
R.add_reagent("fermiAcid", amount)
|
||||
for (var/datum/reagent/reagentgas in reagent_list)
|
||||
R.add_reagent(reagentgas, amount/5)
|
||||
remove_reagent(reagentgas, amount/5)
|
||||
s.set_up(R, CLAMP(amount/10, 0, 3), T)
|
||||
s.set_up(R, CLAMP(amount/10, 0, 1), T)
|
||||
s.start()
|
||||
return FALSE
|
||||
|
||||
@@ -937,6 +937,10 @@ im
|
||||
//if(R.FermiChem == TRUE)
|
||||
// R.on_mob_add(my_atom)
|
||||
R.on_merge(data, amount, my_atom, other_purity)
|
||||
if(istype(D, /datum/reagent/fermi))//Is this a fermichem?
|
||||
var/datum/reagent/fermi/Ferm = D //It's Fermi time!
|
||||
if(Ferm.OnMobMergeCheck == TRUE) //// Ooooooh fermifermifermi
|
||||
R.on_mob_add(my_atom, amount)
|
||||
if(!no_react)
|
||||
handle_reactions()
|
||||
|
||||
|
||||
@@ -1930,6 +1930,7 @@
|
||||
if(prob(20))
|
||||
to_chat(M, "You find yourself unable to supress the desire to meow!")
|
||||
M.emote("nya")
|
||||
..()
|
||||
|
||||
//Kept for legacy, I think it will break everything if you enable it.
|
||||
/datum/reagent/penis_enlargement
|
||||
|
||||
@@ -717,21 +717,21 @@
|
||||
if(user.mind)
|
||||
//Chaplains are very good at indoctrinating
|
||||
if(user.mind.assigned_role == "Chaplain")
|
||||
power_multiplier *= 2
|
||||
power_multiplier *= 1.2
|
||||
//Command staff has authority
|
||||
if(user.mind.assigned_role in GLOB.command_positions)
|
||||
power_multiplier *= 1.4
|
||||
power_multiplier *= 1.1
|
||||
//Why are you speaking
|
||||
if(user.mind.assigned_role == "Mime")
|
||||
power_multiplier *= 0.5
|
||||
|
||||
//Cultists are closer to their gods and are better at indoctrinating
|
||||
if(iscultist(user))
|
||||
power_multiplier *= 2
|
||||
power_multiplier *= 1.2
|
||||
else if (is_servant_of_ratvar(user))
|
||||
power_multiplier *= 2
|
||||
power_multiplier *= 1.2
|
||||
else if (is_devil(user))//The devil is supposed to be seductive, right?
|
||||
power_multiplier *= 2
|
||||
power_multiplier *= 1.2
|
||||
|
||||
//range = 0.5 - 4.2~
|
||||
//most cases = 1-2
|
||||
@@ -854,10 +854,16 @@
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
|
||||
if(L.has_trait(TRAIT_NYMPHO))
|
||||
L.adjustArousalLoss(2*power_multiplier)
|
||||
/* TODO: ADD THIS IN WHEN MASO IS MERGED
|
||||
if(L.has_trait(TRAIT_MASO))
|
||||
E.enthrallTally -= power_multiplier
|
||||
E.resistanceTally += power_multiplier
|
||||
E.cooldown += 1
|
||||
*/
|
||||
else
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'><b><i>I've been praised for doing a good job!</b></i></span>"), 5)
|
||||
E.resistanceTally -= power_multiplier
|
||||
E.enthrallTally += 1
|
||||
E.enthrallTally += power_multiplier
|
||||
var/descmessage = "[(L.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise, descmessage)
|
||||
E.cooldown += 1
|
||||
@@ -867,18 +873,25 @@
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
power_multiplier *= distancelist[get_dist(user, V)+1]
|
||||
//power_multiplier *= distancelist[get_dist(user, V)+1]
|
||||
//power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values
|
||||
var/descmessage = "[(L.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
|
||||
if (L.lewd)
|
||||
E.resistanceTally /= 1*power_multiplier
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
|
||||
/* TODO: ADD THIS IN WHEN MASO IS MERGED
|
||||
if(L.has_trait(TRAIT_MASO))
|
||||
L.adjustArousalLoss(3*power_multiplier)
|
||||
descmessage += " And yet, it feels good..!"
|
||||
E.enthrallTally += power_multiplier
|
||||
E.resistanceTally -= power_multiplier
|
||||
E.cooldown += 1
|
||||
*/
|
||||
else
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've failed [E.master]...</b></span>"), 5)
|
||||
|
||||
var/descmessage = "[(L.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold, descmessage)
|
||||
E.resistanceTally += 1
|
||||
E.cooldown += 1
|
||||
E.resistanceTally += power_multiplier
|
||||
E.enthrallTally += power_multiplier
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold, descmessage)
|
||||
E.cooldown += 1
|
||||
|
||||
//teir 0
|
||||
@@ -891,7 +904,7 @@
|
||||
if(C.lewd)
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)//The least lewdest I could think of
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)
|
||||
|
||||
//WAKE UP
|
||||
else if((findtext(message, wakeup_words)))
|
||||
@@ -938,7 +951,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
E.status = "Antiresist"
|
||||
E.statusStrength = (1 * power_multiplier * E.phase)
|
||||
E.cooldown += 6//Too short?
|
||||
E.cooldown += 15//Too short? yes, made 15
|
||||
|
||||
//RESIST
|
||||
else if((findtext(message, resist_words)))
|
||||
@@ -993,6 +1006,9 @@
|
||||
E.resistanceTally = 0 //makes resistance 0, but resets arousal, resistance buildup is faster unaroused (massively so).
|
||||
E.enthrallTally += power_multiplier
|
||||
E.cooldown += 6
|
||||
else
|
||||
H.throw_at(get_step_towards(user,H), 3 * power_multiplier, 1 * power_multiplier)
|
||||
|
||||
|
||||
|
||||
//awoo
|
||||
@@ -1022,7 +1038,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(2 to INFINITY)
|
||||
C.Sleeping(40 * power_multiplier)
|
||||
C.Sleeping(45 * power_multiplier)
|
||||
E.cooldown += 10
|
||||
|
||||
//STRIP
|
||||
@@ -1039,7 +1055,7 @@
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='warning'>Before you can even think about it, you quickly remove your clothes in response to [(H.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")].</b></span>"), 5)
|
||||
E.cooldown += 10
|
||||
|
||||
//WALK doesn't work?
|
||||
//WALK doesn't work? it does, randomly, work now
|
||||
else if((findtext(message, walk_words)))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
@@ -1061,13 +1077,24 @@
|
||||
L.toggle_move_intent()
|
||||
E.cooldown += 1
|
||||
|
||||
//LIE DOWN
|
||||
else if(findtext(message, liedown_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(2 to INFINITY)//Tier 2 only
|
||||
L.lay_down()
|
||||
E.cooldown += 10
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You suddenly lie down!'</b></span>"), 5)
|
||||
|
||||
//KNOCKDOWN
|
||||
else if(findtext(message, knockdown_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(3 to INFINITY)//Tier 2 only
|
||||
if(2 to INFINITY)//Tier 2 only
|
||||
L.Knockdown(30 * power_multiplier * E.phase)
|
||||
E.cooldown += 8
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You suddenly drop to the ground!'</b></span>"), 5)
|
||||
@@ -1080,7 +1107,7 @@
|
||||
var/speaktrigger = ""
|
||||
var/mob/living/carbon/C = V
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if (E.phase > 3)
|
||||
if (E.phase > 2)
|
||||
for (var/trigger in E.customTriggers)
|
||||
speaktrigger += "[trigger], "
|
||||
C.add_trait(TRAIT_DEAF, "Triggers") //So you don't trigger yourself!
|
||||
@@ -1099,6 +1126,8 @@
|
||||
return
|
||||
else
|
||||
user.emote(user, 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.'")
|
||||
user.SetStun(1000)//Hands are handy, so you have to stay still
|
||||
H.SetStun(1000)
|
||||
if (E.mental_capacity >= 10)
|
||||
var/trigger = stripped_input(user, "Enter the trigger phrase", MAX_MESSAGE_LEN)
|
||||
var/trigger2 = stripped_input(user, "Enter the effect.", MAX_MESSAGE_LEN)
|
||||
@@ -1107,14 +1136,18 @@
|
||||
if (trigger2 == "speak" || trigger2 == "echo")
|
||||
var/trigger3 = stripped_input(user, "Enter the phrase spoken.", MAX_MESSAGE_LEN)
|
||||
E.customTriggers[trigger] = list(trigger2, trigger3)
|
||||
message_admins("[H] has been implanted by [user] with [trigger], triggering [trigger2], to send [trigger3].")
|
||||
else
|
||||
E.customTriggers[trigger] = trigger2
|
||||
message_admins("[H] has been implanted by [user] with [trigger], triggering [trigger2].")
|
||||
E.mental_capacity -= 10
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger.</span>"), 5)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your pet looks at you confused, it seems they don't understand that effect!</b></span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your pet looks at you with a vacant blase expression, you don't think you can program anything else into them</b></span>")
|
||||
user.SetStun(0)
|
||||
H.SetStun(0)
|
||||
|
||||
//CUSTOM OBJECTIVE
|
||||
else if((findtext(message, objective_words)))
|
||||
@@ -1127,6 +1160,8 @@
|
||||
return
|
||||
else
|
||||
user.emote(user, 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.'")
|
||||
user.SetStun(1000)//So you can't run away!
|
||||
H.SetStun(1000)
|
||||
if (E.mental_capacity >= 250 || message == "objective")
|
||||
var/datum/objective/brainwashing/objective = stripped_input(user, "Add an objective to give your pet.", MAX_MESSAGE_LEN)
|
||||
if(!LAZYLEN(objective))
|
||||
@@ -1137,12 +1172,16 @@
|
||||
objective = replacetext(lowertext(objective), "harm", "snuggle")
|
||||
objective = replacetext(lowertext(objective), "decapitate", "headpat")
|
||||
objective = replacetext(lowertext(objective), "strangle", "meow at")
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new objective.</span>"), 5)
|
||||
objective = replacetext(lowertext(objective), "suicide", "self-love")
|
||||
message_admins("[H] has been implanted by [user] with the objective [objective].")
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.lewd?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective.</span>"), 5)
|
||||
brainwash(H, objective)
|
||||
E.mental_capacity -= 250
|
||||
E.mental_capacity -= 200
|
||||
//else if (E.mental_capacity >= 150)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your pet looks at you with a vacant blasé expression, you don't think you can program anything else into them</b></span>")
|
||||
user.SetStun(0)
|
||||
H.SetStun(0)
|
||||
|
||||
|
||||
//RECOGNISE
|
||||
@@ -1168,7 +1207,7 @@
|
||||
E.statusStrength = (5 * power_multiplier)
|
||||
E.cooldown += 5
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You begin to lick your wounds.</b></span>"), 5)
|
||||
L.Stun(40)
|
||||
L.Stun(5 * power_multiplier)
|
||||
|
||||
//STUN
|
||||
else if(findtext(message, stun_words))
|
||||
@@ -1197,7 +1236,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(3 to INFINITY)//Tier 3 only
|
||||
L.adjust_bodytemperature(10 * power_multiplier)//This seems nuts, reduced it
|
||||
L.adjust_bodytemperature(50 * power_multiplier)//This seems nuts, reduced it, but then it didn't do anything, so I reverted it.
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You feel your metabolism speed up!</b></span>"), 5)
|
||||
|
||||
//COLD
|
||||
@@ -1207,7 +1246,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(3 to INFINITY)//Tier 3 only
|
||||
L.adjust_bodytemperature(-10 * power_multiplier)//This
|
||||
L.adjust_bodytemperature(-50 * power_multiplier)//This
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You feel your metabolism slow down!</b></span>"), 5)
|
||||
|
||||
|
||||
@@ -1243,6 +1282,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(3 to INFINITY)//Tier 3 only
|
||||
E.statusStrength = 2* power_multiplier
|
||||
E.status = "charge"
|
||||
E.cooldown += 10
|
||||
|
||||
|
||||
@@ -1504,7 +1504,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
cost = 15
|
||||
restricted_roles = list("Clown")
|
||||
|
||||
/datum/uplink_item/device_tools/honkpins //Idealy so they can place it into their own guns without needing cargo
|
||||
/datum/uplink_item/device_tools/honkpins //Idealy so they can place it into their own guns without needing cargo
|
||||
name = "Hilarious firing pin"
|
||||
desc = "A single firing pin made for Clown agents, this firing pin makes any gun honk when fired if not a true clown! \
|
||||
This firing pin also helps you fire the gun correctly. May the HonkMother HONK you agent."
|
||||
@@ -1552,6 +1552,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate
|
||||
cost = 2
|
||||
|
||||
//ported from tg as is along with functions, feel free to edit/remove
|
||||
/datum/uplink_item/device_tools/hypnotic_flash
|
||||
name = "Hypnotic Flash"
|
||||
desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily."
|
||||
item = /obj/item/assembly/flash/hypnotic
|
||||
cost = 7
|
||||
|
||||
/datum/uplink_item/badass/balloon
|
||||
name = "Syndicate Balloon"
|
||||
desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \
|
||||
|
||||
Reference in New Issue
Block a user