From 4da50828f76eb8a8ce11977381f96dfa2dc57320 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 22 May 2019 18:31:36 -0400 Subject: [PATCH 001/180] Update suit_storage_unit.dm --- code/game/machinery/suit_storage_unit.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index b84db2ca8d..90166dacf0 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -51,6 +51,7 @@ /obj/machinery/suit_storage_unit/security suit_type = /obj/item/clothing/suit/space/hardsuit/security mask_type = /obj/item/clothing/mask/gas/sechailer + storage_type = /obj/item/tank/jetpack/oxygen/security /obj/machinery/suit_storage_unit/hos suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos From 915e41e5e6335ff4738e4b542f6fdbf7ca1431e6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 25 May 2019 16:08:19 -0400 Subject: [PATCH 002/180] Update jetpack.dm --- code/game/objects/items/tanks/jetpack.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index b3ee748d13..9771677fbd 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -151,6 +151,7 @@ desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas by security forces." icon_state = "jetpack-sec" item_state = "jetpack-sec" + full_speed = FALSE From 12994f7a59669b06acc1b134e09cc58dac30867c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 25 May 2019 16:11:33 -0400 Subject: [PATCH 003/180] Update jetpack.dm --- code/game/objects/items/tanks/jetpack.dm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 9771677fbd..53fb218755 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -33,7 +33,6 @@ else toggle_internals(user) - /obj/item/tank/jetpack/proc/cycle(mob/user) if(user.incapacitated()) return @@ -48,7 +47,6 @@ var/datum/action/A = X A.UpdateButtonIcon() - /obj/item/tank/jetpack/proc/turn_on() on = TRUE icon_state = "[initial(icon_state)]-on" @@ -121,6 +119,7 @@ desc = "It works well in a void." icon_state = "jetpack-void" item_state = "jetpack-void" + full_speed = FALSE //Pre-hardsuit tech /obj/item/tank/jetpack/oxygen name = "jetpack (oxygen)" @@ -153,8 +152,6 @@ item_state = "jetpack-sec" full_speed = FALSE - - /obj/item/tank/jetpack/carbondioxide name = "jetpack (carbon dioxide)" desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals." @@ -163,7 +160,6 @@ distribute_pressure = 0 gas_type = /datum/gas/carbon_dioxide - /obj/item/tank/jetpack/suit name = "hardsuit jetpack upgrade" desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment." @@ -222,7 +218,6 @@ return ..() - //Return a jetpack that the mob can use //Back worn jetpacks, hardsuit internal packs, and so on. //Used in Process_Spacemove() and wherever you want to check for/get a jetpack From 5f94441cc7371dcc1c400123cf774da6e8ad42af Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 30 May 2019 22:52:43 -0700 Subject: [PATCH 005/180] Adds Clockwork Reflectors --- .../items/stacks/sheets/sheet_types.dm | 6 +- .../clockcult/clock_structures/reflector.dm | 86 ++++++++++++++++++ icons/obj/clockwork_objects.dmi | Bin 126871 -> 130475 bytes tgstation.dme | 25 ++--- 4 files changed, 103 insertions(+), 14 deletions(-) create mode 100644 code/modules/antagonists/clockcult/clock_structures/reflector.dm diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index a8c44656ca..c6a664e865 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -394,8 +394,10 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ new/datum/stack_recipe("brass pinion airlock - windowed", /obj/machinery/door/airlock/clockwork/brass, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass windoor", /obj/machinery/door/window/clockwork, 2, time = 30, on_floor = TRUE, window_checks = TRUE), \ null, - new/datum/stack_recipe("directional brass window", /obj/structure/window/reinforced/clockwork/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile brass window", /obj/structure/window/reinforced/clockwork/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("brass reflector", /obj/structure/destructible/clockwork/reflector, 10, time = 100, one_per_turf = TRUE, on_floor = TRUE, window_checks = TRUE), \ + null, + new/datum/stack_recipe("brass window - directional", /obj/structure/window/reinforced/clockwork/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("brass window - fulltile", /obj/structure/window/reinforced/clockwork/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ new/datum/stack_recipe("brass chair", /obj/structure/chair/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = TRUE, on_floor = TRUE), \ null, diff --git a/code/modules/antagonists/clockcult/clock_structures/reflector.dm b/code/modules/antagonists/clockcult/clock_structures/reflector.dm new file mode 100644 index 0000000000..34ad051d19 --- /dev/null +++ b/code/modules/antagonists/clockcult/clock_structures/reflector.dm @@ -0,0 +1,86 @@ +/obj/structure/destructible/clockwork/reflector + name = "reflector" + desc = "A large lantern-shaped machine made of thin brass. It looks fragile." + clockwork_desc = "A lantern-shaped generator that produces power when near starlight." + icon_state = "reflector" + unanchored_icon = "reflector_unwrenched" + max_integrity = 40 + construction_value = 5 + layer = WALL_OBJ_LAYER + break_message = "The reflectors's fragile shield shatters into pieces!" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + light_color = "#DAAA18" + var/list/allowed_projectile_typecache = list( + /obj/item/projectile/beam + ) + + var/ini_dir = null + +/obj/structure/destructible/clockwork/reflector/Initialize() + . = ..() + allowed_projectile_typecache = typecacheof(allowed_projectile_typecache) + +/obj/structure/destructible/clockwork/reflector/ComponentInitialize() + . = ..() + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) + +/obj/structure/destructible/clockwork/reflector/bullet_act(obj/item/projectile/P) + if(!anchored || !allowed_projectile_typecache[P.type] || !(P.dir in GLOB.cardinals)) + return ..() + + if(auto_reflect(P, P.dir, get_turf(P), P.Angle) != -1) + return ..() + + return -1 + +/obj/structure/destructible/clockwork/reflector/proc/auto_reflect(obj/item/projectile/P, pdir, turf/ploc, pangle) + + //Yell at me if this exists already. + + var/real_angle = 0 + + switch(dir) + if(NORTH) + real_angle = 0 + if(EAST) + real_angle = 90 + if(SOUTH) + real_angle = 180 + if(WEST) + real_angle = 270 + + var/incidence = GET_ANGLE_OF_INCIDENCE(real_angle, (P.Angle + 180)) + if(abs(incidence) > 90 && abs(incidence) < 270) + return FALSE + var/new_angle = SIMPLIFY_DEGREES(real_angle + incidence) + P.setAngle(new_angle) + P.ignore_source_check = TRUE + P.range = P.decayedRange + P.decayedRange = max(P.decayedRange--, 0) + return -1 + +/obj/structure/destructible/clockwork/reflector/proc/can_be_rotated(mob/user,rotation_type) + if(anchored) + to_chat(user, "[src] cannot be rotated while it is fastened to the floor!") + return FALSE + + return TRUE + +/obj/structure/destructible/clockwork/reflector/Move() + . = ..() + setDir(ini_dir) + +/obj/structure/destructible/clockwork/reflector/proc/after_rotation(mob/user,rotation_type) + ini_dir = dir + add_fingerprint(user) + + +/obj/structure/destructible/clockwork/reflector/wrench_act(mob/living/user, obj/item/I) + + if(!is_servant_of_ratvar(user)) + return ..() + + anchored = !anchored + to_chat(user, "You [anchored ? "secure" : "unsecure"] \the [src].") + I.play_tool_sound(src) + return TRUE \ No newline at end of file diff --git a/icons/obj/clockwork_objects.dmi b/icons/obj/clockwork_objects.dmi index 56cfdf468b39ff34eb63400441094800d05c4946..1948bb605cd5cb455be40fbeb9dfb24fb5618056 100644 GIT binary patch delta 12540 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 ND{DWgcx(v{`5(ou=6L`B delta 8907 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 diff --git a/tgstation.dme b/tgstation.dme index 9219376f29..a1c1b3408b 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1232,6 +1232,7 @@ #include "code\modules\antagonists\clockcult\clock_structures\mania_motor.dm" #include "code\modules\antagonists\clockcult\clock_structures\ocular_warden.dm" #include "code\modules\antagonists\clockcult\clock_structures\ratvar_the_clockwork_justicar.dm" +#include "code\modules\antagonists\clockcult\clock_structures\reflector.dm" #include "code\modules\antagonists\clockcult\clock_structures\stargazer.dm" #include "code\modules\antagonists\clockcult\clock_structures\taunting_trail.dm" #include "code\modules\antagonists\clockcult\clock_structures\wall_gear.dm" @@ -2504,22 +2505,10 @@ #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" #include "code\modules\research\designs\computer_part_designs.dm" #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\designs\mecha_designs.dm" #include "code\modules\research\designs\mechfabricator_designs.dm" #include "code\modules\research\designs\medical_designs.dm" @@ -2537,6 +2526,18 @@ #include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm" From d67b179bff3b3ae36a8785f9a97e195c969d13bc Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Fri, 31 May 2019 20:32:17 -0700 Subject: [PATCH 006/180] RCD Memes --- code/game/turfs/simulated/wall/misc_walls.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index f40f74787a..9aca259b32 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -77,6 +77,15 @@ return ..() + +/turf/closed/wall/clockwork/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if(heated && the_rcd.canRturf) + return ..() + +/turf/closed/wall/clockwork/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + if(heated && the_rcd.canRturf) + return ..() + /turf/closed/wall/clockwork/ReplaceWithLattice() ..() for(var/obj/structure/lattice/L in src) From 44d13818f061760a01cbcacaec16d1e0fffbbf93 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 1 Jun 2019 16:52:58 +0100 Subject: [PATCH 007/180] Inital paralysis. (https://github.com/tgstation/tgstation/pull/41140) --- code/__DEFINES/mobs.dm | 4 + code/__DEFINES/traits.dm | 6 + code/datums/brain_damage/severe.dm | 59 ++++++++-- code/datums/traits/negative.dm | 34 ++++++ code/modules/mob/living/carbon/carbon.dm | 5 + code/modules/surgery/bodyparts/bodyparts.dm | 124 +++++++++++++++----- 6 files changed, 194 insertions(+), 38 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 4b42595b48..1d1dda6d99 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -54,6 +54,10 @@ #define BODYPART_ORGANIC 1 #define BODYPART_ROBOTIC 2 +#define BODYPART_NOT_DISABLED 0 +#define BODYPART_DISABLED_DAMAGE 1 +#define BODYPART_DISABLED_PARALYSIS 2 + #define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/human_parts_greyscale.dmi' #define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi' diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index b2caf614b3..c0e3e141c7 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -50,7 +50,13 @@ #define TRAIT_NOHARDCRIT "nohardcrit" #define TRAIT_NOSOFTCRIT "nosoftcrit" #define TRAIT_MINDSHIELD "mindshield" +#define TRAIT_PARALYSIS_L_ARM "para-l-arm" //These are used for brain-based paralysis, where replacing the limb won't fix it +#define TRAIT_PARALYSIS_R_ARM "para-r-arm" +#define TRAIT_PARALYSIS_L_LEG "para-l-leg" +#define TRAIT_PARALYSIS_R_LEG "para-r-leg" + //non-mob traits +#define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" #define TRAIT_AGEUSIA "ageusia" diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index a8adbfbce8..8e13522a02 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -60,18 +60,63 @@ /datum/brain_trauma/severe/paralysis name = "Paralysis" - desc = "Patient's brain can no longer control its motor functions." + desc = "Patient's brain can no longer control part of its motor functions." scan_desc = "cerebral paralysis" - gain_text = "You can't feel your body anymore!" - lose_text = "You can feel your limbs again!" + gain_text = "" + lose_text = "" + var/paralysis_type + var/list/paralysis_traits = list() + //for descriptions -/datum/brain_trauma/severe/paralysis/on_life() - owner.Knockdown(200, ignore_canknockdown = TRUE) +/datum/brain_trauma/severe/paralysis/New(specific_type) + paralysis_type = specific_type + if(!paralysis_type) + paralysis_type = pick("full","left","right","arms","legs","r_arm","l_arm","r_leg","l_leg") + var/subject + switch(paralysis_type) + if("full") + subject = "your body" + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG) + if("left") + subject = "the left side of your body" + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_L_LEG) + if("right") + subject = "the right side of your body" + paralysis_traits = list(TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_R_LEG) + if("arms") + subject = "your arms" + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM) + if("legs") + subject = "your legs" + paralysis_traits = list(TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG) + if("r_arm") + subject = "your right arm" + paralysis_traits = list(TRAIT_PARALYSIS_R_ARM) + if("l_arm") + subject = "your left arm" + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM) + if("r_leg") + subject = "your right leg" + paralysis_traits = list(TRAIT_PARALYSIS_R_LEG) + if("l_leg") + subject = "your left leg" + paralysis_traits = list(TRAIT_PARALYSIS_L_LEG) + + gain_text = "You can't feel [subject] anymore!" + lose_text = "You can feel [subject] again!" + +/datum/brain_trauma/severe/paralysis/on_gain() ..() + for(var/X in paralysis_traits) + owner.add_trait(X, "trauma_paralysis") + owner.update_disabled_bodyparts() /datum/brain_trauma/severe/paralysis/on_lose() - owner.SetKnockdown(0) ..() + for(var/X in paralysis_traits) + owner.remove_trait(X, "trauma_paralysis") + owner.update_disabled_bodyparts() + /datum/brain_trauma/severe/narcolepsy name = "Narcolepsy" @@ -203,4 +248,4 @@ /datum/brain_trauma/severe/pacifism/on_lose() owner.remove_trait(TRAIT_PACIFISM, TRAUMA_TRAIT) - ..() \ No newline at end of file + ..() diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 614cc65cbb..ed5ac0b49b 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -187,6 +187,40 @@ to_chat(quirk_holder, "Your antagonistic nature has caused you to renounce your pacifism.") qdel(src) +/datum/quirk/paraplegic + name = "Paraplegic" + desc = "Your legs do not function. Nothing will ever fix this. But hey, free wheelchair!" + value = -3 + human_only = TRUE + gain_text = null // Handled by trauma. + lose_text = null + medical_record_text = "Patient has an untreatable impairment in motor function in the lower extremities." + + /datum/quirk/paraplegic/add() + var/datum/brain_trauma/severe/paralysis/paraplegic/T = new() + var/mob/living/carbon/human/H = quirk_holder + H.gain_trauma(T, TRAUMA_RESILIENCE_ABSOLUTE) + + /datum/quirk/paraplegic/on_spawn() + if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. + quirk_holder.buckled.unbuckle_mob(quirk_holder) + + var/turf/T = get_turf(quirk_holder) + var/obj/structure/chair/spawn_chair = locate() in T + + var/obj/vehicle/ridden/wheelchair/wheels = new(T) + if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking + wheels.setDir(spawn_chair.dir) + + wheels.buckle_mob(quirk_holder) + + // During the spawning process, they may have dropped what they were holding, due to the paralysis + // So put the things back in their hands. + + for(var/obj/item/I in T) + if(I.fingerprintslast == quirk_holder.ckey) + quirk_holder.put_in_hands(I) + /datum/quirk/poor_aim name = "Poor Aim" desc = "You're terrible with guns and can't line up a straight shot to save your life. Dual-wielding is right out." diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index ea13255dfe..23267b88c6 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -895,6 +895,11 @@ var/obj/item/organ/I = X I.Insert(src) +/mob/living/carbon/proc/update_disabled_bodyparts() + for(var/B in bodyparts) + var/obj/item/bodypart/BP = B + BP.update_disabled() + /mob/living/carbon/vv_get_dropdown() . = ..() . += "---" diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 71b659b73f..db032aaa4a 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -21,7 +21,7 @@ var/held_index = 0 //are we a hand? if so, which one! var/is_pseudopart = FALSE //For limbs that don't really exist, eg chainsaws - var/disabled = FALSE //If TRUE, limb is as good as missing + var/disabled = BODYPART_NOT_DISABLED //If disabled, limb is as good as missing var/body_damage_coeff = 1 //Multiplier of the limb's damage that gets applied to the mob var/stam_damage_coeff = 0.5 var/brutestate = 0 @@ -189,7 +189,7 @@ if(stamina > DAMAGE_PRECISION) owner.update_stamina() consider_processing() - check_disabled() + update_disabled() return update_bodypart_damage_state() //Heals brute and burn damage for the organ. Returns 1 if the damage-icon states changed at all. @@ -209,7 +209,7 @@ if(owner && updating_health) owner.updatehealth() consider_processing() - check_disabled() + update_disabled() return update_bodypart_damage_state() //Returns total damage. @@ -220,15 +220,23 @@ return total //Checks disabled status thresholds -/obj/item/bodypart/proc/check_disabled() - if(!can_dismember() || owner.has_trait(TRAIT_NODISMEMBER)) - return - if(!disabled && (get_damage(TRUE) >= max_damage)) - set_disabled(TRUE) - else if(disabled && (get_damage(TRUE) <= (max_damage * 0.5))) - set_disabled(FALSE) +//Checks disabled status thresholds +/obj/item/bodypart/proc/update_disabled() + set_disabled(is_disabled()) -/obj/item/bodypart/proc/set_disabled(new_disabled = TRUE) +/obj/item/bodypart/proc/is_disabled() + if(has_trait(TRAIT_PARALYSIS)) + return BODYPART_DISABLED_PARALYSIS + if(can_dismember() && !owner.has_trait(TRAIT_NODISMEMBER)) + . = disabled //inertia, to avoid limbs healing 0.1 damage and being re-enabled + if((get_damage(TRUE) >= max_damage)) + return BODYPART_DISABLED_DAMAGE + if(disabled && (get_damage(TRUE) <= (max_damage * 0.5))) + return BODYPART_NOT_DISABLED + else + return BODYPART_NOT_DISABLED + +/obj/item/bodypart/proc/set_disabled(new_disabled) if(disabled == new_disabled) return disabled = new_disabled @@ -598,13 +606,27 @@ px_y = 0 stam_heal_tick = 2 -/obj/item/bodypart/l_arm/set_disabled(new_disabled = TRUE) - ..() - if(disabled) - to_chat(owner, "Your [name] is too damaged to function!") - owner.emote("scream") +/obj/item/bodypart/l_arm/is_disabled() + if(owner.has_trait(TRAIT_PARALYSIS_L_ARM)) + return BODYPART_DISABLED_PARALYSIS + return ..() + +/obj/item/bodypart/l_arm/set_disabled(new_disabled) + . = ..() + if(disabled == new_disabled) + return + if(disabled == BODYPART_DISABLED_DAMAGE) + if(owner.stat > UNCONSCIOUS) + owner.emote("scream") + if(. && (owner.stat > DEAD)) + to_chat(owner, "Your [name] is too damaged to function!") if(held_index) owner.dropItemToGround(owner.get_item_for_held_index(held_index)) + else if(disabled == BODYPART_DISABLED_PARALYSIS) + if(. && (owner.stat > DEAD)) + to_chat(owner, "You can't feel your [name]!") + if(held_index) + owner.dropItemToGround(owner.get_item_for_held_index(held_index)) if(owner.hud_used) var/obj/screen/inventory/hand/L = owner.hud_used.hand_slots["[held_index]"] if(L) @@ -649,18 +671,33 @@ stam_heal_tick = 2 max_stamina_damage = 50 -/obj/item/bodypart/r_arm/set_disabled(new_disabled = TRUE) - ..() - if(disabled) - to_chat(owner, "Your [name] is too damaged to function!") - owner.emote("scream") +/obj/item/bodypart/r_arm/is_disabled() + if(owner.has_trait(TRAIT_PARALYSIS_R_ARM)) + return BODYPART_DISABLED_PARALYSIS + return ..() + +/obj/item/bodypart/r_arm/set_disabled(new_disabled) + . = ..() + if(disabled == new_disabled) + return + if(disabled == BODYPART_DISABLED_DAMAGE) + if(owner.stat > UNCONSCIOUS) + owner.emote("scream") + if(. && (owner.stat > DEAD)) + to_chat(owner, "Your [name] is too damaged to function!") if(held_index) owner.dropItemToGround(owner.get_item_for_held_index(held_index)) + else if(disabled == BODYPART_DISABLED_PARALYSIS) + if(. && (owner.stat > DEAD)) + to_chat(owner, "You can't feel your [name]!") + if(held_index) + owner.dropItemToGround(owner.get_item_for_held_index(held_index)) if(owner.hud_used) var/obj/screen/inventory/hand/R = owner.hud_used.hand_slots["[held_index]"] if(R) R.update_icon() + /obj/item/bodypart/r_arm/monkey icon = 'icons/mob/animal_parts.dmi' icon_state = "default_monkey_r_arm" @@ -697,11 +734,24 @@ stam_heal_tick = 2 max_stamina_damage = 50 -/obj/item/bodypart/l_leg/set_disabled(new_disabled = TRUE) - ..() - if(disabled) - to_chat(owner, "Your [name] is too damaged to function!") - owner.emote("scream") +/obj/item/bodypart/l_leg/is_disabled() + if(owner.has_trait(TRAIT_PARALYSIS_L_LEG)) + return BODYPART_DISABLED_PARALYSIS + return ..() + +/obj/item/bodypart/l_leg/set_disabled(new_disabled) + . = ..() + if(disabled == new_disabled) + return + if(disabled == BODYPART_DISABLED_DAMAGE) + if(owner.stat > UNCONSCIOUS) + owner.emote("scream") + if(. && (owner.stat > DEAD)) + to_chat(owner, "Your [name] is too damaged to function!") + else if(disabled == BODYPART_DISABLED_PARALYSIS) + if(. && (owner.stat > DEAD)) + to_chat(owner, "You can't feel your [name]!") + /obj/item/bodypart/l_leg/digitigrade name = "left digitigrade leg" @@ -744,11 +794,23 @@ max_stamina_damage = 50 stam_heal_tick = 2 -/obj/item/bodypart/r_leg/set_disabled(new_disabled = TRUE) - ..() - if(disabled) - to_chat(owner, "Your [name] is too damaged to function!") - owner.emote("scream") +/obj/item/bodypart/r_leg/is_disabled() + if(owner.has_trait(TRAIT_PARALYSIS_R_LEG)) + return BODYPART_DISABLED_PARALYSIS + return ..() + +/obj/item/bodypart/r_leg/set_disabled(new_disabled) + . = ..() + if(disabled == new_disabled) + return + if(disabled == BODYPART_DISABLED_DAMAGE) + if(owner.stat > UNCONSCIOUS) + owner.emote("scream") + if(. && (owner.stat > DEAD)) + to_chat(owner, "Your [name] is too damaged to function!") + else if(disabled == BODYPART_DISABLED_PARALYSIS) + if(. && (owner.stat > DEAD)) + to_chat(owner, "You can't feel your [name]!") /obj/item/bodypart/r_leg/digitigrade name = "right digitigrade leg" From 7fe18b5a373accc9e8369089976533f728367ba9 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 1 Jun 2019 16:55:31 +0100 Subject: [PATCH 008/180] Parapalegic trait. --- code/datums/brain_damage/severe.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 8e13522a02..d13e6cce7a 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -69,7 +69,8 @@ //for descriptions /datum/brain_trauma/severe/paralysis/New(specific_type) - paralysis_type = specific_type + if(specific_type) + paralysis_type = specific_type if(!paralysis_type) paralysis_type = pick("full","left","right","arms","legs","r_arm","l_arm","r_leg","l_leg") var/subject @@ -117,6 +118,10 @@ owner.remove_trait(X, "trauma_paralysis") owner.update_disabled_bodyparts() +/datum/brain_trauma/severe/paralysis/paraplegic + random_gain = FALSE + paralysis_type = "legs" + resilience = TRAUMA_RESILIENCE_ABSOLUTE /datum/brain_trauma/severe/narcolepsy name = "Narcolepsy" From 7990a20ea6a2e0fe14c018ec1eaf1895dc52177b Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 1 Jun 2019 17:20:04 +0100 Subject: [PATCH 009/180] We don't have wheelchairs? Heresy. Plus fixes to work on citcode. Csafe --- code/datums/brain_damage/severe.dm | 2 +- code/datums/traits/negative.dm | 14 +-- code/modules/surgery/bodyparts/bodyparts.dm | 2 +- code/modules/vehicles/ridden.dm | 2 +- code/modules/vehicles/wheelchair.dm | 110 ++++++++++++++++++++ tgstation.dme | 25 ++--- 6 files changed, 133 insertions(+), 22 deletions(-) create mode 100644 code/modules/vehicles/wheelchair.dm diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index d13e6cce7a..6ab1d1859e 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -119,7 +119,7 @@ owner.update_disabled_bodyparts() /datum/brain_trauma/severe/paralysis/paraplegic - random_gain = FALSE + can_gain = FALSE paralysis_type = "legs" resilience = TRAUMA_RESILIENCE_ABSOLUTE diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index ed5ac0b49b..b7307b10e4 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -196,28 +196,28 @@ lose_text = null medical_record_text = "Patient has an untreatable impairment in motor function in the lower extremities." - /datum/quirk/paraplegic/add() +/datum/quirk/paraplegic/add() var/datum/brain_trauma/severe/paralysis/paraplegic/T = new() var/mob/living/carbon/human/H = quirk_holder H.gain_trauma(T, TRAUMA_RESILIENCE_ABSOLUTE) - /datum/quirk/paraplegic/on_spawn() +/datum/quirk/paraplegic/on_spawn() if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. quirk_holder.buckled.unbuckle_mob(quirk_holder) - var/turf/T = get_turf(quirk_holder) + var/turf/T = get_turf(quirk_holder) var/obj/structure/chair/spawn_chair = locate() in T - var/obj/vehicle/ridden/wheelchair/wheels = new(T) + var/obj/vehicle/ridden/wheelchair/wheels = new(T) if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking wheels.setDir(spawn_chair.dir) - wheels.buckle_mob(quirk_holder) + wheels.buckle_mob(quirk_holder) - // During the spawning process, they may have dropped what they were holding, due to the paralysis + // During the spawning process, they may have dropped what they were holding, due to the paralysis // So put the things back in their hands. - for(var/obj/item/I in T) + for(var/obj/item/I in T) if(I.fingerprintslast == quirk_holder.ckey) quirk_holder.put_in_hands(I) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index db032aaa4a..b8f4dbd4cc 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -225,7 +225,7 @@ set_disabled(is_disabled()) /obj/item/bodypart/proc/is_disabled() - if(has_trait(TRAIT_PARALYSIS)) + if(owner.has_trait(TRAIT_PARALYSIS)) return BODYPART_DISABLED_PARALYSIS if(can_dismember() && !owner.has_trait(TRAIT_NODISMEMBER)) . = disabled //inertia, to avoid limbs healing 0.1 damage and being re-enabled diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 25a337bc22..ba37f39bb3 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -5,7 +5,7 @@ buckle_lying = FALSE default_driver_move = FALSE var/legs_required = 2 - var/arms_requires = 0 //why not? + var/arms_required = 0 //why not? /obj/vehicle/ridden/Initialize() . = ..() diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm new file mode 100644 index 0000000000..a5ba06e6fb --- /dev/null +++ b/code/modules/vehicles/wheelchair.dm @@ -0,0 +1,110 @@ +/obj/vehicle/ridden/wheelchair //ported from Hippiestation (by Jujumatic) Then ported by Fermis from tg! + name = "wheelchair" + desc = "A chair with big wheels. It looks like you can move in this on your own." + icon = 'icons/obj/vehicles.dmi' + icon_state = "wheelchair" + layer = OBJ_LAYER + max_integrity = 100 + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 30) //Wheelchairs aren't super tough yo + legs_required = 0 //You'll probably be using this if you don't have legs + canmove = TRUE + density = FALSE //Thought I couldn't fix this one easily, phew + arms_required = 1 + +/obj/vehicle/ridden/wheelchair/Initialize() + . = ..() + var/datum/component/riding/D = LoadComponent(/datum/component/riding) + D.vehicle_move_delay = 0 + D.set_vehicle_dir_layer(SOUTH, OBJ_LAYER) + D.set_vehicle_dir_layer(NORTH, ABOVE_MOB_LAYER) + D.set_vehicle_dir_layer(EAST, OBJ_LAYER) + D.set_vehicle_dir_layer(WEST, OBJ_LAYER) + +/obj/vehicle/ridden/wheelchair/ComponentInitialize() //Since it's technically a chair I want it to have chair properties + . = ..() + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) + +/obj/vehicle/ridden/wheelchair/obj_destruction(damage_flag) + new /obj/item/stack/rods(drop_location(), 1) + new /obj/item/stack/sheet/metal(drop_location(), 1) + ..() + +/obj/vehicle/ridden/wheelchair/Destroy() + if(has_buckled_mobs()) + var/mob/living/carbon/H = buckled_mobs[1] + unbuckle_mob(H) + return ..() + +/obj/vehicle/ridden/wheelchair/driver_move(mob/living/user, direction) + if(istype(user)) + if(canmove && (user.get_num_arms() < arms_required)) + to_chat(user, "You don't have enough arms to operate the wheels!") + canmove = FALSE + addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) + return FALSE + var/datum/component/riding/D = GetComponent(/datum/component/riding) + //1.5 (movespeed as of this change) multiplied by 6.7 gets ABOUT 10 (rounded), the old constant for the wheelchair that gets divided by how many arms they have + //if that made no sense this simply makes the wheelchair speed change along with movement speed delay + D.vehicle_move_delay = round(CONFIG_GET(number/movedelay/run_delay) * 6.7) / min(user.get_num_arms(), 2) + return ..() + +/obj/vehicle/ridden/wheelchair/Moved() + . = ..() + cut_overlays() + playsound(src, 'sound/effects/roll.ogg', 75, 1) + if(has_buckled_mobs()) + handle_rotation_overlayed() + + +/obj/vehicle/ridden/wheelchair/post_buckle_mob(mob/living/user) + . = ..() + handle_rotation_overlayed() + +/obj/vehicle/ridden/wheelchair/post_unbuckle_mob() + . = ..() + cut_overlays() + +/obj/vehicle/ridden/wheelchair/setDir(newdir) + ..() + handle_rotation(newdir) + +/obj/vehicle/ridden/wheelchair/wrench_act(mob/living/user, obj/item/I) //Attackby should stop it attacking the wheelchair after moving away during decon + to_chat(user, "You begin to detach the wheels...") + if(I.use_tool(src, user, 40, volume=50)) + to_chat(user, "You detach the wheels and deconstruct the chair.") + new /obj/item/stack/rods(drop_location(), 6) + new /obj/item/stack/sheet/metal(drop_location(), 4) + qdel(src) + return TRUE + +/obj/vehicle/ridden/wheelchair/proc/handle_rotation(direction) + if(has_buckled_mobs()) + handle_rotation_overlayed() + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + buckled_mob.setDir(direction) + +/obj/vehicle/ridden/wheelchair/proc/handle_rotation_overlayed() + cut_overlays() + var/image/V = image(icon = icon, icon_state = "wheelchair_overlay", layer = FLY_LAYER, dir = src.dir) + add_overlay(V) + + + +/obj/vehicle/ridden/wheelchair/proc/can_be_rotated(mob/living/user) + return TRUE + +/obj/vehicle/ridden/wheelchair/proc/can_user_rotate(mob/living/user) + var/mob/living/L = user + if(istype(L)) + if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return FALSE + if(isobserver(user) && CONFIG_GET(flag/ghost_interaction)) + return TRUE + return FALSE + +/obj/vehicle/ridden/wheelchair/the_whip/driver_move(mob/living/user, direction) + if(istype(user)) + var/datum/component/riding/D = GetComponent(/datum/component/riding) + D.vehicle_move_delay = round(CONFIG_GET(number/movedelay/run_delay) * 6.7) / user.get_num_arms() + return ..() diff --git a/tgstation.dme b/tgstation.dme index f2cef76dd9..66d883433a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2505,22 +2505,10 @@ #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" #include "code\modules\research\designs\computer_part_designs.dm" #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\designs\mecha_designs.dm" #include "code\modules\research\designs\mechfabricator_designs.dm" #include "code\modules\research\designs\medical_designs.dm" @@ -2538,6 +2526,18 @@ #include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm" @@ -2766,6 +2766,7 @@ #include "code\modules\vehicles\speedbike.dm" #include "code\modules\vehicles\vehicle_actions.dm" #include "code\modules\vehicles\vehicle_key.dm" +#include "code\modules\vehicles\wheelchair.dm" #include "code\modules\vehicles\cars\car.dm" #include "code\modules\vehicles\cars\clowncar.dm" #include "code\modules\vending\_vending.dm" From bebaf8e7a8915e2ef40080adea89f6ff4a66a813 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 1 Jun 2019 18:17:49 +0100 Subject: [PATCH 010/180] Wheelchairs are apparently banned, we now have HOVERCHAIRS! --- code/datums/brain_damage/severe.dm | 2 +- code/modules/crafting/recipes.dm | 8 ++++++++ code/modules/vehicles/_vehicle.dm | 13 +++++++++++++ icons/obj/vehicles.dmi | Bin 31897 -> 35401 bytes 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 6ab1d1859e..f2d96c9e4d 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -119,7 +119,7 @@ owner.update_disabled_bodyparts() /datum/brain_trauma/severe/paralysis/paraplegic - can_gain = FALSE + //can_gain = FALSE maybe breaks. paralysis_type = "legs" resilience = TRAUMA_RESILIENCE_ABSOLUTE diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index ca10d5092f..27d9cef4ca 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -623,6 +623,14 @@ /obj/item/assembly/igniter = 1) category = CAT_MISC +/datum/crafting_recipe/wheelchair + name = "Wheelchair" + result = /obj/vehicle/ridden/wheelchair + reqs = list(/obj/item/stack/sheet/plasteel = 2, + /obj/item/stack/rods = 8) + time = 100 + category = CAT_MISC + /datum/crafting_recipe/rcl name = "Makeshift Rapid Cable Layer" diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index be59a6df65..54bc03bcf3 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -31,6 +31,19 @@ occupant_actions = list() generate_actions() +/obj/vehicle/examine(mob/user) + ..() + if(resistance_flags & ON_FIRE) + to_chat(user, "It's on fire!") + var/healthpercent = obj_integrity/max_integrity * 100 + switch(healthpercent) + if(50 to 99) + to_chat(user, "It looks slightly damaged.") + if(25 to 50) + to_chat(user, "It appears heavily damaged.") + if(0 to 25) + to_chat(user, "It's falling apart!") + /obj/vehicle/proc/is_key(obj/item/I) return I? (key_type_exact? (I.type == key_type) : istype(I, key_type)) : FALSE diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 5e3757cedd21d848541530d0d216d47afc74ab87..fc8f0755cb9238b2439409c3e09be511db514458 100644 GIT binary patch delta 14666 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μ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 Date: Sat, 1 Jun 2019 18:24:17 +0100 Subject: [PATCH 011/180] Quick fix to prevent parapalegics driving with no legs. --- code/modules/vehicles/ridden.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index ba37f39bb3..8535bf2ba0 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -60,6 +60,11 @@ if(key_type && !is_key(inserted_key)) to_chat(user, "[src] has no key inserted!") return FALSE + if(canmove && (user.get_num_arms() < arms_required)) + to_chat(user, "You don't have enough legs to operate the pedals!") + canmove = FALSE + addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) + return FALSE var/datum/component/riding/R = GetComponent(/datum/component/riding) R.handle_ride(user, direction) return ..() From cd310b37fe0c858b2bfc9a278a24f0a374977733 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 1 Jun 2019 18:33:42 +0100 Subject: [PATCH 012/180] One pixel missing. --- icons/obj/vehicles.dmi | Bin 35401 -> 35254 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index fc8f0755cb9238b2439409c3e09be511db514458..67079de3e2fa6bc83ce63dfe4241e3d210c7367e 100644 GIT binary patch delta 14476 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 Date: Sat, 1 Jun 2019 22:52:03 +0100 Subject: [PATCH 013/180] New non-harmful medicinal darts. --- .../projectiles/ammunition/special/syringe.dm | 7 ++++ .../projectiles/guns/misc/syringe_gun.dm | 12 +++++++ .../reagents/reagent_containers/syringes.dm | 34 +++++++++++++++--- icons/obj/dart.dmi | Bin 0 -> 323 bytes icons/obj/guns/projectile.dmi | Bin 35700 -> 36029 bytes tgstation.dme | 24 ++++++------- 6 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 icons/obj/dart.dmi diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 4a2a354ca6..62a6e2e88e 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -59,3 +59,10 @@ S.forceMove(D) D.injector = S ..() + +/obj/item/ammo_casing/syringegun/dart + name = "syringe gun spring" + desc = "A high-power spring that throws syringes." + projectile_type = /obj/item/projectile/bullet/dart/syringe + firing_effect_type = null + harmful = FALSE diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index cc1b321e3a..2e125f80b1 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -102,3 +102,15 @@ else to_chat(user, "[src] cannot hold more syringes!") return FALSE + +/obj/item/gun/syringe/dart + name = "dart gun" + desc = "A compressed air gun, designed to fit medicinal darts for application of medicine for those patients just out of reach." + icon_state = "dartgun" + item_state = "dartgun" + materials = list(MAT_METAL=2000, MAT_GLASS=500) + suppressed = TRUE //Softer fire sound + +/obj/item/gun/syringe/dart/Initialize() + ..() + chambered = new /obj/item/ammo_casing/syringegun/dart(src) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index b2b7ab88a7..430d7e5d5d 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -14,6 +14,7 @@ var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun materials = list(MAT_METAL=10, MAT_GLASS=20) container_type = TRANSPARENT + var/Sname = "syringe" /obj/item/reagent_containers/syringe/Initialize() . = ..() @@ -72,7 +73,7 @@ if(SYRINGE_DRAW) if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "The syringe is full.") + to_chat(user, "The [Sname] is full.") return if(L) //living mob @@ -137,8 +138,8 @@ return if(L.reagents.total_volume >= L.reagents.maximum_volume) return - L.visible_message("[user] injects [L] with the syringe!", \ - "[user] injects [L] with the syringe!") + L.visible_message("[user] injects [L] with the [Sname]!", \ + "[user] injects [L] with the [Sname]!") if(L != user) log_combat(user, L, "injected", src, addition="which had [contained]") @@ -147,7 +148,7 @@ var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, INJECT, fraction) reagents.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") + to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The [Sname] now contains [reagents.total_volume] units.") if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) mode = SYRINGE_DRAW update_icon() @@ -158,7 +159,7 @@ var/rounded_vol if(reagents && reagents.total_volume) rounded_vol = CLAMP(round((reagents.total_volume / volume * 15),5), 1, 15) - var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]") + var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "[Sname][rounded_vol]") filling_overlay.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling_overlay) else @@ -262,3 +263,26 @@ /obj/item/reagent_containers/syringe/get_belt_overlay() return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "pouch") + +/obj/item/reagent_containers/syringe/dart + name = "medicinal dart" + desc = "A non-harmful dart that can administer medication from a range. Unable to hold any caustic or toxic chemicals without disintegrating" + volume = 20 + amount_per_transfer_from_this = 20 + icon = 'icons/obj/dart.dmi' + Sname = "dart" + //harmful = FALSE + +/obj/item/reagent_containers/syringe/dart/afterattack(atom/target, mob/user , proximity) + ..() + for(var/datum/reagent/R in src.reagents.reagent_list)//(!R == /datum/reagent/fermi) || + if((!R == /datum/reagent/medicine) || (!R == /datum/reagent/consumable)) + qdel(src) + to_chat(user, "The dart dissolves under the caustic nature of the chems!") + +/obj/item/reagent_containers/syringe/dart/bluespace + name = "bluespace dart" + desc = "A non-harmful dart that can administer medication from a range, with extended 60u capacity. Unable to hold any caustic or toxic chemicals without disintegrating" + amount_per_transfer_from_this = 20 + volume = 60 + //harmful = FALSE diff --git a/icons/obj/dart.dmi b/icons/obj/dart.dmi new file mode 100644 index 0000000000000000000000000000000000000000..fd6be8ab14cf7524e410885b383fd496c380e35d GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Ge3`kp<+&O zSV2+g_bqMz%R#PuCoey8o?uLO|*J_e<;{JTt#yE*~w OVDNPHb6Mw<&;$TXka+U| literal 0 HcmV?d00001 diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index e4a39903b338e2d77286bd06b9e3be7cec729306..5ed5a434baecc7aa7deaf309ff31babe08087e2e 100644 GIT binary patch delta 15260 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 diff --git a/tgstation.dme b/tgstation.dme index f2cef76dd9..c9098249b0 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2505,22 +2505,10 @@ #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" #include "code\modules\research\designs\computer_part_designs.dm" #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\designs\mecha_designs.dm" #include "code\modules\research\designs\mechfabricator_designs.dm" #include "code\modules\research\designs\medical_designs.dm" @@ -2538,6 +2526,18 @@ #include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" #include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm" From 0fa445c1534d482d2df2578ae9319217e457a63f Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 2 Jun 2019 03:24:01 +0100 Subject: [PATCH 014/180] Fixes and test. --- .../projectiles/ammunition/special/syringe.dm | 6 +- .../projectiles/guns/misc/syringe_gun.dm | 1 + .../projectile/bullets/dart_syringe.dm | 50 ++++++++++++- .../reagents/reagent_containers/syringes.dm | 70 ++++++++++++++---- icons/obj/dart.dmi | Bin 323 -> 903 bytes icons/obj/guns/projectile.dmi | Bin 36029 -> 36031 bytes 6 files changed, 108 insertions(+), 19 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 62a6e2e88e..331ad67837 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -61,8 +61,8 @@ ..() /obj/item/ammo_casing/syringegun/dart - name = "syringe gun spring" - desc = "A high-power spring that throws syringes." - projectile_type = /obj/item/projectile/bullet/dart/syringe + name = "dart gun air canister" + desc = "A small canister of compressed gas." + projectile_type = /obj/item/projectile/bullet/dart/syringe/dart firing_effect_type = null harmful = FALSE diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 2e125f80b1..be9b2c2410 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -110,6 +110,7 @@ item_state = "dartgun" materials = list(MAT_METAL=2000, MAT_GLASS=500) suppressed = TRUE //Softer fire sound + can_unsuppress = FALSE /obj/item/gun/syringe/dart/Initialize() ..() diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 023c3b9090..a94fa6f227 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -9,12 +9,14 @@ create_reagents(50) reagents.set_reacting(FALSE) -/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE) +/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE, skip = FALSE) if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) // not completely blocked if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..() + if(skip == TRUE) + return reagents.reaction(M, INJECT) reagents.trans_to(M, reagents.total_volume) return TRUE @@ -37,3 +39,49 @@ /obj/item/projectile/bullet/dart/syringe name = "syringe" icon_state = "syringeproj" + +//I am in a mess of my own making +/obj/item/projectile/bullet/dart/syringe/dart + name = "Smartdart" + icon_state = "syringeproj" + damage = 0 + +/obj/item/projectile/bullet/dart/syringe/dart/on_hit(atom/target, blocked = FALSE) + message_admins("Dart landed!") + if(iscarbon(target)) + var/mob/living/carbon/M = target + if(blocked != 100) // not completely blocked + if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. + ..(target, blocked, TRUE) + message_admins("Checking reagents") + for(var/datum/reagent/R in reagents.reagent_list) //OD prevention time! + message_admins("Reagent: [R]") + if(istype(R, /datum/reagent/medicine)) //Is this a medicine? + message_admins("Is a medicine") + if(M.reagents.has_reagent(R.id)) + message_admins("reagent found! with new") + var/datum/reagent/medicine/Rm = locate(R) in M + if(R.overdose_threshold == 0) //Is there a possible OD? + M.reagents.add_reagent(R.id, R.volume) + else + var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - Rm.volume) -1) + M.reagents.add_reagent(R.id, transVol) + target.visible_message("\The [src] beeps!") + return TRUE + else + if(!R.overdose_threshold == 0) + var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1) + M.reagents.add_reagent(R.id, transVol) + else + M.reagents.add_reagent(R.id, R.volume) + target.visible_message("\The [src] beeps!") + to_chat("You feel a tiny prick, and turn around to see a smartdart embedded in your butt.") + return TRUE + + else + blocked = 100 + target.visible_message("\The [src] was deflected!", \ + "You see a [src] bounce off you, booping sadly!") + + target.visible_message("\The [src] fails to land on target!") + return TRUE diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 430d7e5d5d..592d092cc8 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -14,7 +14,6 @@ var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun materials = list(MAT_METAL=10, MAT_GLASS=20) container_type = TRANSPARENT - var/Sname = "syringe" /obj/item/reagent_containers/syringe/Initialize() . = ..() @@ -73,7 +72,7 @@ if(SYRINGE_DRAW) if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "The [Sname] is full.") + to_chat(user, "The syringe is full.") return if(L) //living mob @@ -138,8 +137,8 @@ return if(L.reagents.total_volume >= L.reagents.maximum_volume) return - L.visible_message("[user] injects [L] with the [Sname]!", \ - "[user] injects [L] with the [Sname]!") + L.visible_message("[user] injects [L] with the syringe!", \ + "[user] injects [L] with the syringe!") if(L != user) log_combat(user, L, "injected", src, addition="which had [contained]") @@ -148,7 +147,7 @@ var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, INJECT, fraction) reagents.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The [Sname] now contains [reagents.total_volume] units.") + to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) mode = SYRINGE_DRAW update_icon() @@ -159,7 +158,7 @@ var/rounded_vol if(reagents && reagents.total_volume) rounded_vol = CLAMP(round((reagents.total_volume / volume * 15),5), 1, 15) - var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "[Sname][rounded_vol]") + var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]") filling_overlay.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling_overlay) else @@ -265,23 +264,64 @@ return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "pouch") /obj/item/reagent_containers/syringe/dart - name = "medicinal dart" - desc = "A non-harmful dart that can administer medication from a range. Unable to hold any caustic or toxic chemicals without disintegrating" + name = "medicinal smartdart" + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action." volume = 20 amount_per_transfer_from_this = 20 icon = 'icons/obj/dart.dmi' - Sname = "dart" + item_state = "dart_0" //harmful = FALSE /obj/item/reagent_containers/syringe/dart/afterattack(atom/target, mob/user , proximity) - ..() - for(var/datum/reagent/R in src.reagents.reagent_list)//(!R == /datum/reagent/fermi) || - if((!R == /datum/reagent/medicine) || (!R == /datum/reagent/consumable)) - qdel(src) - to_chat(user, "The dart dissolves under the caustic nature of the chems!") + + if(busy) + return + if(!proximity) + return + if(!target.reagents) + return + + var/mob/living/L + if(isliving(target)) + L = target + if(!L.can_inject(user, 1)) + return + + switch(mode) + if(SYRINGE_DRAW) + + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "The dart is full!") + return + + if(L) //living mob + to_chat(user, "You can't draw blood using a dart!") + return + + else //if not mob + if(!target.reagents.total_volume) + to_chat(user, "[target] is empty!") + return + + if(!target.is_drawable()) + to_chat(user, "You cannot directly remove reagents from [target]!") + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? + + to_chat(user, "You soak the [src] with [trans] units of the solution. It now contains [reagents.total_volume] units.") + if (reagents.total_volume >= reagents.maximum_volume) + mode=!mode + update_icon() + + if(SYRINGE_INJECT) + src.visible_message("The smartdart gives a frustrated boop! It's ready and full; You need to shoot someone with it!") + +/obj/item/reagent_containers/syringe/dart/attack_self(mob/user) + return /obj/item/reagent_containers/syringe/dart/bluespace - name = "bluespace dart" + name = "bluespace smartdart" desc = "A non-harmful dart that can administer medication from a range, with extended 60u capacity. Unable to hold any caustic or toxic chemicals without disintegrating" amount_per_transfer_from_this = 20 volume = 60 diff --git a/icons/obj/dart.dmi b/icons/obj/dart.dmi index fd6be8ab14cf7524e410885b383fd496c380e35d..50ba4fc1ab0b860d29236487f71be333701e4675 100644 GIT binary patch literal 903 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo?NuQWB`&GO$wiq3C7Jno3=9=> zg2M`mO22;zF8KKMiI%sn*10q1gExd4Tr__0Nawtd=E(pc$L!IgGahGs&TBLlba@MT z2Z`p0PT`rd!y?$Iy9>zX*=cdPOQ<+lF=q#tbCZ@2=WNFo(-vP(O)nkw6&l9++NL{M zrW>WQhTDs?ipTrwF=$i+yJ$EUazt*--NNz!Y}{A^(K7Z+G<1S#I-wW$#sI zzw*@2Pe;>h_y5>koUGn`^iX48`YUFO5&;D^#w7ei7VDYt#dr3Vo!!^}e~(_mt!TBf z4?nY}{QprGELmSu_GsDO)J=;Y-~Rn^@~-$J&sGQ8z15w(efs{cW(zy(m3KeRKmR^v z|9$;!?9GkReC>HQa@)Q9W`E50@4s{U_54X7#+>4HUw>?6I^<~a{X_1HPtrTyKQ^~x zK9qe~_I+2a{QirQ4F2q=0}MF?ni+5r4b_`;PM@w1HT3=Uwk-7aPPY9WvO=40=H%Y4 zp1(YER!Zcw+uxn`7ngJLzMuMd@At|Z`8#Fp`WuAq{a%zSoPNJs#YE~pi`N8+a}8oM zf*w1q-1xVjkx_Srmg%FQ@wmNfa1xDqqyZUR{lFV5Z@85nZN&d&N@s4Przs^as zz{qK9*Z$3|zMbwgKlgS8OGhFf#I1)vGbUBoIh?V#l^1x|xxJ*Y{$F=@|J0AW<^HdH z_>;lVMqZ(f+t5(Q`KW>e57QA0qUX=Lj*}^i>{vACfMRKxhU5IY_?p*Q7x@2vU%yN0 zb$xm+-;b()Pw(XI-&a*E`g-%mr*9)-*6^0+_#E2UGHr6$)DUU+O|uWmC@i~Zv?V4l zCth}=5gUIFM~A9)nAfVT`W~~5?Z@0Wl_Kv7={i2$v@zFd+mS~CJLf)H$8ojvz{3C9 oi!7LTSX??_6oSopIK|GySNd|czopr0BOH@$^ZZW delta 261 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 T!-UrkKtC^Es6H=~F%9}3{fex~ From fd22dbfc0db50770d60e16bfcc9035de840ff7a3 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 2 Jun 2019 03:59:52 +0100 Subject: [PATCH 015/180] More fixes. Need to check over merging math. --- .../projectiles/ammunition/special/syringe.dm | 2 +- .../projectile/bullets/dart_syringe.dm | 13 +++--- .../reagents/reagent_containers/syringes.dm | 37 ++++++++++++++---- icons/obj/syringe.dmi | Bin 4379 -> 4730 bytes 4 files changed, 37 insertions(+), 15 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 331ad67837..a4107fa6a2 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -61,7 +61,7 @@ ..() /obj/item/ammo_casing/syringegun/dart - name = "dart gun air canister" + name = "used air canister" desc = "A small canister of compressed gas." projectile_type = /obj/item/projectile/bullet/dart/syringe/dart firing_effect_type = null diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index a94fa6f227..74049fb7c9 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -64,20 +64,21 @@ if(R.overdose_threshold == 0) //Is there a possible OD? M.reagents.add_reagent(R.id, R.volume) else - var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - Rm.volume) -1) + var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - Rm.volume) -1) //Doesn't work + message_admins("Merge: Adding [transVol], OD: [R.overdose_threshold], curvol [Rm.volume]") M.reagents.add_reagent(R.id, transVol) - target.visible_message("\The [src] beeps!") - return TRUE else if(!R.overdose_threshold == 0) var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1) M.reagents.add_reagent(R.id, transVol) else M.reagents.add_reagent(R.id, R.volume) - target.visible_message("\The [src] beeps!") - to_chat("You feel a tiny prick, and turn around to see a smartdart embedded in your butt.") - return TRUE + + + target.visible_message("\The [src] beeps!") + to_chat("You feel a tiny prick, and turn around to see a smartdart embedded in your butt.") + return TRUE else blocked = 100 target.visible_message("\The [src] was deflected!", \ diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 592d092cc8..43f79d1f4c 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -265,12 +265,12 @@ /obj/item/reagent_containers/syringe/dart name = "medicinal smartdart" - desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action." + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD." volume = 20 amount_per_transfer_from_this = 20 - icon = 'icons/obj/dart.dmi' - item_state = "dart_0" - //harmful = FALSE + //icon = 'icons/obj/dart.dmi' + icon_state = "empty" + item_state = "syringe_empty" /obj/item/reagent_containers/syringe/dart/afterattack(atom/target, mob/user , proximity) @@ -320,9 +320,30 @@ /obj/item/reagent_containers/syringe/dart/attack_self(mob/user) return +/obj/item/reagent_containers/syringe/update_icon() + cut_overlays() + var/rounded_vol + + rounded_vol = "empty" + if(reagents && reagents.total_volume) + if(volume/reagents.total_volume == 1) + rounded_vol="full" + + icon_state = "[rounded_vol]" + item_state = "syringe_[rounded_vol]" + if(ismob(loc)) + var/mob/M = loc + var/injoverlay + switch(mode) + if (SYRINGE_DRAW) + injoverlay = "draw" + if (SYRINGE_INJECT) + injoverlay = "ready" + add_overlay(injoverlay) + M.update_inv_hands() + /obj/item/reagent_containers/syringe/dart/bluespace name = "bluespace smartdart" - desc = "A non-harmful dart that can administer medication from a range, with extended 60u capacity. Unable to hold any caustic or toxic chemicals without disintegrating" - amount_per_transfer_from_this = 20 - volume = 60 - //harmful = FALSE + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." + amount_per_transfer_from_this = 50 + volume = 50 diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi index f77735fc3ee6b3efda50efd9ec5b005fb0f63f44..80e681399a6af01fc3a28012975ff7bf1f44a03d 100644 GIT binary patch literal 4730 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 df^?`MoE!l=CP$^P Date: Sun, 2 Jun 2019 18:26:00 +0100 Subject: [PATCH 016/180] Actually check legs. --- code/modules/vehicles/ridden.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 8535bf2ba0..73e08975ba 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -60,7 +60,7 @@ if(key_type && !is_key(inserted_key)) to_chat(user, "[src] has no key inserted!") return FALSE - if(canmove && (user.get_num_arms() < arms_required)) + if(canmove && (user.get_num_lehs() < legs_required)) to_chat(user, "You don't have enough legs to operate the pedals!") canmove = FALSE addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) From 59e5372abd11461fb9d796b8b470bf61ed92ac5c Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 2 Jun 2019 18:40:56 +0100 Subject: [PATCH 017/180] Made it so prosthetics can't replace legs. Compiled and tested. --- code/__DEFINES/traits.dm | 1 + code/datums/traits/negative.dm | 7 ++++++- code/modules/vehicles/ridden.dm | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c0e3e141c7..ff45ac474f 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -78,6 +78,7 @@ #define TRAIT_CROCRIN_IMMUNE "crocin_immune" #define TRAIT_NYMPHO "nymphomania" #define TRAIT_MASO "masochism" +#define TRAIT_PARA "paraplegic" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index b7307b10e4..a1a7c16098 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -191,6 +191,7 @@ name = "Paraplegic" desc = "Your legs do not function. Nothing will ever fix this. But hey, free wheelchair!" value = -3 + mob_trait = TRAIT_PARA human_only = TRUE gain_text = null // Handled by trauma. lose_text = null @@ -242,8 +243,12 @@ var/slot_string = "limb" /datum/quirk/prosthetic_limb/on_spawn() - var/limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/mob/living/carbon/human/H = quirk_holder + var/limb_slot + if(H.has_trait("TRAIT_PARA"))//Prevent paraplegic legs being replaced + limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) + else + limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/old_part = H.get_bodypart(limb_slot) var/obj/item/bodypart/prosthetic switch(limb_slot) diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 73e08975ba..72881e314f 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -60,7 +60,7 @@ if(key_type && !is_key(inserted_key)) to_chat(user, "[src] has no key inserted!") return FALSE - if(canmove && (user.get_num_lehs() < legs_required)) + if(canmove && (user.get_num_legs() < legs_required)) to_chat(user, "You don't have enough legs to operate the pedals!") canmove = FALSE addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) From e607cd3c7d4a32cce49ac892dd3274b03b964ff8 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 2 Jun 2019 19:11:34 +0100 Subject: [PATCH 018/180] Fixes para's abilities to use other vehicles. --- code/datums/traits/negative.dm | 2 +- code/modules/vehicles/ridden.dm | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index a1a7c16098..aba9404d9a 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -245,7 +245,7 @@ /datum/quirk/prosthetic_limb/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/limb_slot - if(H.has_trait("TRAIT_PARA"))//Prevent paraplegic legs being replaced + if(H.has_trait(TRAIT_PARA))//Prevent paraplegic legs being replaced limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) else limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 72881e314f..8fe7322579 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -4,7 +4,7 @@ max_buckled_mobs = 1 buckle_lying = FALSE default_driver_move = FALSE - var/legs_required = 2 + var/legs_required = 1 var/arms_required = 0 //why not? /obj/vehicle/ridden/Initialize() @@ -31,6 +31,9 @@ /obj/vehicle/ridden/post_buckle_mob(mob/living/M) add_occupant(M) + if(M.get_num_legs() < legs_required) + to_chat(M, "You don't have enough legs to operate the pedals!") + unbuckle_mob(M) return ..() /obj/vehicle/ridden/attackby(obj/item/I, mob/user, params) @@ -60,11 +63,6 @@ if(key_type && !is_key(inserted_key)) to_chat(user, "[src] has no key inserted!") return FALSE - if(canmove && (user.get_num_legs() < legs_required)) - to_chat(user, "You don't have enough legs to operate the pedals!") - canmove = FALSE - addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) - return FALSE var/datum/component/riding/R = GetComponent(/datum/component/riding) R.handle_ride(user, direction) return ..() From 1a42c017ac95c0632ba15ffaadb6b8783b5e30d7 Mon Sep 17 00:00:00 2001 From: Fermi Date: Thu, 6 Jun 2019 23:23:53 +0100 Subject: [PATCH 019/180] DEBUG --- code/modules/projectiles/projectile/bullets/dart_syringe.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 74049fb7c9..caac71f947 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -65,6 +65,7 @@ M.reagents.add_reagent(R.id, R.volume) else var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - Rm.volume) -1) //Doesn't work + message_admins("DEBUG: R.vol [R.volume], R.OD [R.overdose_threshold], Rm.vol: [Rm.volume], trans: [transVol]") message_admins("Merge: Adding [transVol], OD: [R.overdose_threshold], curvol [Rm.volume]") M.reagents.add_reagent(R.id, transVol) else From 2888e1b30be02f9b7a0b6af5e87523bb1d69c260 Mon Sep 17 00:00:00 2001 From: Fermi Date: Fri, 7 Jun 2019 00:12:11 +0100 Subject: [PATCH 020/180] Dartgun functions as intended. --- .../projectiles/projectile/bullets/dart_syringe.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index caac71f947..58b76c78a2 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -47,26 +47,18 @@ damage = 0 /obj/item/projectile/bullet/dart/syringe/dart/on_hit(atom/target, blocked = FALSE) - message_admins("Dart landed!") if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) // not completely blocked if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..(target, blocked, TRUE) - message_admins("Checking reagents") for(var/datum/reagent/R in reagents.reagent_list) //OD prevention time! - message_admins("Reagent: [R]") if(istype(R, /datum/reagent/medicine)) //Is this a medicine? - message_admins("Is a medicine") if(M.reagents.has_reagent(R.id)) - message_admins("reagent found! with new") - var/datum/reagent/medicine/Rm = locate(R) in M if(R.overdose_threshold == 0) //Is there a possible OD? M.reagents.add_reagent(R.id, R.volume) else - var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - Rm.volume) -1) //Doesn't work - message_admins("DEBUG: R.vol [R.volume], R.OD [R.overdose_threshold], Rm.vol: [Rm.volume], trans: [transVol]") - message_admins("Merge: Adding [transVol], OD: [R.overdose_threshold], curvol [Rm.volume]") + var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.id)) -1) //Doesn't work M.reagents.add_reagent(R.id, transVol) else if(!R.overdose_threshold == 0) From 000b930811b456e98dd4dd409f29eb9a8dceae02 Mon Sep 17 00:00:00 2001 From: Fermi Date: Fri, 7 Jun 2019 00:19:28 +0100 Subject: [PATCH 021/180] Added Medolier (needs sprite) --- code/game/objects/items/storage/belt.dm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 57c77e5983..a77cd13f23 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -541,6 +541,25 @@ /obj/item/ammo_casing/shotgun )) +/obj/item/storage/belt/medolier + name = "medolier" + desc = "A medical bandolier for holding smartdarts." + icon_state = "medolier" + item_state = "medolier" + +/obj/item/storage/belt/medolier/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 18 + STR.display_numerical_stacking = TRUE + STR.can_hold = typecacheof(list( + /obj/item/projectile/bullet/dart/syringe/dart + )) + +/obj/item/storage/belt/medolier/full/PopulateContents() + for(var/i in 1 to 8) + new /obj/item/projectile/bullet/dart/syringe/dart(src) + /obj/item/storage/belt/holster name = "shoulder holster" desc = "A holster to carry a handgun and ammo. WARNING: Badasses only." From 8475a60a6e54a35f6a8f31a1f5e97c90bb69583c Mon Sep 17 00:00:00 2001 From: Ghommie Date: Fri, 7 Jun 2019 07:38:06 +0200 Subject: [PATCH 022/180] :flushed: --- icons/emoji.dmi | Bin 32621 -> 40772 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/emoji.dmi b/icons/emoji.dmi index f0286dd33c562478a944c69f2bd376781abeb846..7467561bafc045e0c5f0a41447415eb7cb11a25f 100644 GIT binary patch literal 40772 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

kT5M~KgO1MrK8u4-9Qg(m~eGTTy_7mx~1&2sm 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 literal 32621 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 z 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 IKri6`0V)C6OaK4? From 0fff042ea84b1bc5e04b3c7cf0990202c2682cd6 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Fri, 7 Jun 2019 18:50:22 +0200 Subject: [PATCH 023/180] thonking. --- icons/emoji.dmi | Bin 40772 -> 41026 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/emoji.dmi b/icons/emoji.dmi index 7467561bafc045e0c5f0a41447415eb7cb11a25f..128a3b243c3b4b203bb1cc3a276225a25348b009 100644 GIT binary patch delta 22967 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 delta 22711 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¬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 From 79a456a0ac50c0ee5a4a4fdcf24a13fc704b08b3 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 7 Jun 2019 18:29:42 -0400 Subject: [PATCH 024/180] Update carbon_defense.dm --- .../mob/living/carbon/carbon_defense.dm | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index d8bb90460a..6f55f49303 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -48,18 +48,27 @@ if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment)) affecting.dismember(P.damtype) +/mob/living/carbon/proc/can_catch_item(skip_throw_mode_check) + . = FALSE + if(!skip_throw_mode_check && !in_throw_mode) + return + if(get_active_held_item()) + return + if(restrained()) + return + return TRUE + /mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE) if(!skipcatch) //ugly, but easy - if(in_throw_mode && !get_active_held_item()) //empty active hand and we're in throw mode - if(canmove && !restrained()) - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(isturf(I.loc)) - I.attack_hand(src) - if(get_active_held_item() == I) //if our attack_hand() picks up the item... - visible_message("[src] catches [I]!") //catch that sucker! - throw_mode_off() - return 1 + if(can_catch_item()) + if(istype(AM, /obj/item)) + var/obj/item/I = AM + if(isturf(I.loc)) + I.attack_hand(src) + if(get_active_held_item() == I) //if our attack_hand() picks up the item... + visible_message("[src] catches [I]!") //catch that sucker! + throw_mode_off() + return 1 ..() From bc6b967fb25ade37901814164cc72267b38d3f7e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 7 Jun 2019 18:34:30 -0400 Subject: [PATCH 025/180] Update paperplane.dm --- code/modules/paperwork/paperplane.dm | 41 ++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 73eadfbc45..9f7e401643 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -1,3 +1,4 @@ + /obj/item/paperplane name = "paper plane" desc = "Paper, folded in the shape of a plane." @@ -10,8 +11,14 @@ resistance_flags = FLAMMABLE max_integrity = 50 + var/hit_probability = 2//% var/obj/item/paper/internalPaper +/obj/item/paperplane/origami + desc = "Paper, masterfully folded in the shape of a plane." + throwforce = 20 //same as throwing stars, but no chance of embedding. + hit_probability = 100 //guaranteed to cause eye damage when it hits a mob. + /obj/item/paperplane/Initialize(mapload, obj/item/paper/newPaper) . = ..() pixel_y = rand(-8, 8) @@ -22,13 +29,18 @@ color = newPaper.color newPaper.forceMove(src) else - internalPaper = new /obj/item/paper(src) + internalPaper = new(src) update_icon() -/obj/item/paperplane/Destroy() - if(internalPaper) - qdel(internalPaper) +/obj/item/paperplane/handle_atom_del(atom/A) + if(A == internalPaper) internalPaper = null + if(!QDELETED(src)) + qdel(src) + return ..() + +/obj/item/paperplane/Destroy() + QDEL_NULL(internalPaper) return ..() /obj/item/paperplane/suicide_act(mob/living/user) @@ -48,7 +60,7 @@ /obj/item/paperplane/attack_self(mob/user) to_chat(user, "You unfold [src].") - var/atom/movable/internal_paper_tmp = internalPaper + var/obj/item/paper/internal_paper_tmp = internalPaper internal_paper_tmp.forceMove(loc) internalPaper = null qdel(src) @@ -86,11 +98,18 @@ . = ..(target, range, speed, thrower, FALSE, diagonals_first, callback) /obj/item/paperplane/throw_impact(atom/hit_atom) + if(iscarbon(hit_atom)) + var/mob/living/carbon/C = hit_atom + if(C.can_catch_item(TRUE)) + var/datum/action/innate/origami/origami_action = locate() in C.actions + if(origami_action?.active) //if they're a master of origami and have the ability turned on, force throwmode on so they'll automatically catch the plane. + C.throw_mode_on() + if(..() || !ishuman(hit_atom))//if the plane is caught or it hits a nonhuman return var/mob/living/carbon/human/H = hit_atom - if(prob(2)) - if((H.head && H.head.flags_cover & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) + if(prob(hit_probability)) + if(H.is_eyes_covered()) return visible_message("\The [src] hits [H] in the eye!") H.adjust_blurriness(6) @@ -107,5 +126,11 @@ return to_chat(user, "You fold [src] into the shape of a plane!") user.temporarilyRemoveItemFromInventory(src) - I = new /obj/item/paperplane(user, src) + var/obj/item/paperplane/plane_type = /obj/item/paperplane + //Origami Master + var/datum/action/innate/origami/origami_action = locate() in user.actions + if(origami_action?.active) + plane_type = /obj/item/paperplane/origami + + I = new plane_type(user, src) user.put_in_hands(I) From 022b64897956d72173fca7f4ec428c81c3778a70 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 7 Jun 2019 18:35:52 -0400 Subject: [PATCH 026/180] Update granters.dm --- code/game/objects/items/granters.dm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 8d0d8d020e..34ce6bc521 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -87,6 +87,33 @@ active = FALSE UpdateButtonIcon() +/obj/item/book/granter/action/origami + granted_action = /datum/action/innate/origami + name = "The Art of Origami" + desc = "A meticulously in-depth manual explaining the art of paper folding." + icon_state = "origamibook" + actionname = "origami" + oneuse = TRUE + remarks = list("Dead-stick stability...", "Symmetry seems to play a rather large factor...", "Accounting for crosswinds... really?", "Drag coefficients of various paper types...", "Thrust to weight ratios?", "Positive dihedral angle?", "Center of gravity forward of the center of lift...") + +/datum/action/innate/origami + name = "Origami Folding" + desc = "Toggles your ability to fold and catch robust paper airplanes." + button_icon_state = "origami_off" + check_flags = NONE + +/datum/action/innate/origami/Activate() + to_chat(owner, "You will now fold origami planes.") + button_icon_state = "origami_on" + active = TRUE + UpdateButtonIcon() + +/datum/action/innate/origami/Deactivate() + to_chat(owner, "You will no longer fold origami planes.") + button_icon_state = "origami_off" + active = FALSE + UpdateButtonIcon() + ///SPELLS/// /obj/item/book/granter/spell From 91a761460c7e8c8a994d084d9d89b44569a7cbc9 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 7 Jun 2019 18:36:40 -0400 Subject: [PATCH 027/180] Delete library.dmi --- icons/obj/library.dmi | Bin 25325 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/obj/library.dmi diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi deleted file mode 100644 index fbb55434d136ba695fb1cfdbf03fb15867a259a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25325 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 Date: Fri, 7 Jun 2019 18:37:04 -0400 Subject: [PATCH 028/180] Add files via upload --- icons/obj/library.dmi | Bin 0 -> 25587 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/library.dmi diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi new file mode 100644 index 0000000000000000000000000000000000000000..140f6a4d9e7c1f452c18c306ad580fdea02bb699 GIT binary patch literal 25587 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 literal 0 HcmV?d00001 From 572ad788e82dac5845cc2b337542b63d1287ad85 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 7 Jun 2019 18:37:30 -0400 Subject: [PATCH 029/180] Delete actions.dmi --- icons/mob/actions.dmi | Bin 7123 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/mob/actions.dmi diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi deleted file mode 100644 index 0ef4996b07e9e6e4a931eb4f4249332d0fafe664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7123 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 Date: Fri, 7 Jun 2019 18:37:52 -0400 Subject: [PATCH 030/180] Add files via upload --- icons/mob/actions.dmi | Bin 0 -> 9310 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/mob/actions.dmi diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi new file mode 100644 index 0000000000000000000000000000000000000000..65b5733ffe6223ee83d79d4d43cfbb2a9024b675 GIT binary patch literal 9310 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 literal 0 HcmV?d00001 From c0d1ac5bd378c773e9587f70c3290c45a4347b31 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 7 Jun 2019 18:42:23 -0400 Subject: [PATCH 031/180] Update originalcontent.dmm --- _maps/RandomRuins/SpaceRuins/originalcontent.dmm | 1 + 1 file changed, 1 insertion(+) diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm index 624aa03d7c..5f0dd0434a 100644 --- a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -742,6 +742,7 @@ /turf/open/indestructible/paper, /area/ruin/powered) "cc" = ( +/obj/item/book/granter/action/origami, /mob/living/simple_animal/hostile/boss/paper_wizard, /turf/open/indestructible/paper, /area/ruin/powered) From 65b218d4c370de13d6edb4dc167d960db0706ea0 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 00:31:14 +0100 Subject: [PATCH 032/180] Spritework. --- .../projectiles/guns/misc/syringe_gun.dm | 6 ++++++ icons/obj/clothing/belts.dmi | Bin 11301 -> 11695 bytes 2 files changed, 6 insertions(+) diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index be9b2c2410..84dc637df1 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -115,3 +115,9 @@ /obj/item/gun/syringe/dart/Initialize() ..() chambered = new /obj/item/ammo_casing/syringegun/dart(src) + +/obj/item/gun/syringe/dart/attackby(obj/item/A, mob/user, params, show_msg = TRUE) + if(istype(A, /obj/item/reagent_containers/syringe/dart)) + ..() + else + return FALSE diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index dc5dde9cb6fe4134fda496caa108578f221bf5ca..3e56574fbf486ac08cc7cd9958f2d3a59811ebf3 100644 GIT binary patch literal 11695 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 literal 11301 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 From f44b9048af562c8f0a742f964d60b08c4cf4a3e8 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 01:00:51 +0100 Subject: [PATCH 033/180] Added to vendors/tech. --- code/game/objects/items/storage/belt.dm | 4 +-- .../research/designs/medical_designs.dm | 30 +++++++++++++++++++ code/modules/research/techweb/all_nodes.dm | 4 +-- code/modules/vending/medical.dm | 6 ++-- code/modules/vending/medical_wall.dm | 3 +- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index a77cd13f23..00788a2d7c 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -553,12 +553,12 @@ STR.max_items = 18 STR.display_numerical_stacking = TRUE STR.can_hold = typecacheof(list( - /obj/item/projectile/bullet/dart/syringe/dart + /obj/item/reagent_containers/syringe/dart )) /obj/item/storage/belt/medolier/full/PopulateContents() for(var/i in 1 to 8) - new /obj/item/projectile/bullet/dart/syringe/dart(src) + new /obj/item/reagent_containers/syringe/dart/(src) /obj/item/storage/belt/holster name = "shoulder holster" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 7224d0e4e8..a446255260 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -92,6 +92,36 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/medicinalsmartdart + name = "Medicinal Smartdart" + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD." + id = "medicinalsmartdart" + build_type = PROTOLATHE + materials = list(MAT_GLASS = 2000, MAT_PLASTIC = 200, MAT_METAL = 500) + build_path = /obj/item/reagent_containers/syringe/dart + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/bluespacesmartdart + name = "bluespace smartdart" + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." + id = "medicinalsmartdart" + build_type = PROTOLATHE + materials = list(MAT_GLASS = 2000, MAT_PLASTIC = 500, MAT_METAL = 500, MAT_BLUESPACE = 500) + build_path = /obj/item/reagent_containers/syringe/dart/bluespace + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/smartdartgun + name = "dart gun" + desc = "A compressed air gun, designed to fit medicinal darts for application of medicine for those patients just out of reach." + id = "smartdartgun" + build_type = PROTOLATHE + materials = list(MAT_GLASS = 1500, MAT_PLASTIC = 1000, MAT_METAL = 1500) + build_path = /obj/item/gun/syringe/dart + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/bluespacebodybag name = "Bluespace Body Bag" desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index e25dced31c..e7ee01086f 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -69,7 +69,7 @@ display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced","harvester","holobarrier_med") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced","harvester","holobarrier_med","smartdartgun","medicinalsmartdart") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -228,7 +228,7 @@ display_name = "Applied Bluespace Research" description = "Using bluespace to make things faster and better." prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "roastingstick", "ore_silo") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "roastingstick", "ore_silo", "bluespacesmartdart") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) export_price = 5000 diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 5ff07cc842..d546fcbfc3 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -30,7 +30,9 @@ premium = list(/obj/item/storage/box/hug/medical = 1, /obj/item/reagent_containers/hypospray/medipen = 3, /obj/item/storage/belt/medical = 3, - /obj/item/wrench/medical = 1) + /obj/item/wrench/medical = 1, + /obj/item/storage/belt/medolier/full = 2, + /obj/item/gun/syringe/dart = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/medical @@ -41,4 +43,4 @@ /obj/machinery/vending/medical/syndicate_access name = "\improper SyndiMed Plus" - req_access = list(ACCESS_SYNDICATE) \ No newline at end of file + req_access = list(ACCESS_SYNDICATE) diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index 018eb09d86..514bbd8730 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -10,7 +10,8 @@ /obj/item/reagent_containers/medspray/styptic = 2, /obj/item/reagent_containers/medspray/silver_sulf = 2, /obj/item/reagent_containers/pill/charcoal = 2, - /obj/item/reagent_containers/medspray/sterilizine = 1) + /obj/item/reagent_containers/medspray/sterilizine = 1, + /obj/item/reagent_containers/syringe/dart = 10) contraband = list(/obj/item/reagent_containers/pill/tox = 2, /obj/item/reagent_containers/pill/morphine = 2) premium = list(/obj/item/reagent_containers/medspray/synthflesh = 2) From c6c98b539d9d6db90ba81f00e864ddb631d2680d Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 01:22:43 +0100 Subject: [PATCH 034/180] Minor bug fix. --- code/modules/reagents/reagent_containers/syringes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 43f79d1f4c..bfbf135e6f 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -320,7 +320,7 @@ /obj/item/reagent_containers/syringe/dart/attack_self(mob/user) return -/obj/item/reagent_containers/syringe/update_icon() +/obj/item/reagent_containers/syringe/dart/update_icon() cut_overlays() var/rounded_vol From 9fcbac0323563063bb783b2b633fd06a6d353230 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 01:23:57 +0100 Subject: [PATCH 035/180] Lil flavour. --- code/modules/projectiles/guns/misc/syringe_gun.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 84dc637df1..26e66b1987 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -120,4 +120,5 @@ if(istype(A, /obj/item/reagent_containers/syringe/dart)) ..() else + to_chat(user, "You can't put the [A] into \the [src]!") return FALSE From 42d0ab48250b70bd2ceb90b11dcdbd79a51ee8d8 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 01:31:21 +0100 Subject: [PATCH 036/180] Comment cleanup. --- code/modules/projectiles/projectile/bullets/dart_syringe.dm | 6 +++--- code/modules/reagents/reagent_containers/syringes.dm | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 58b76c78a2..23db5c3245 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -49,7 +49,7 @@ /obj/item/projectile/bullet/dart/syringe/dart/on_hit(atom/target, blocked = FALSE) if(iscarbon(target)) var/mob/living/carbon/M = target - if(blocked != 100) // not completely blocked + if(blocked != 100) if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..(target, blocked, TRUE) for(var/datum/reagent/R in reagents.reagent_list) //OD prevention time! @@ -58,7 +58,7 @@ if(R.overdose_threshold == 0) //Is there a possible OD? M.reagents.add_reagent(R.id, R.volume) else - var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.id)) -1) //Doesn't work + var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.id)) -1) M.reagents.add_reagent(R.id, transVol) else if(!R.overdose_threshold == 0) @@ -70,7 +70,7 @@ target.visible_message("\The [src] beeps!") - to_chat("You feel a tiny prick, and turn around to see a smartdart embedded in your butt.") + to_chat("You feel a tiny prick as a smartdart embeds itself in you with a beep.") return TRUE else blocked = 100 diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index bfbf135e6f..39a372c381 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -268,7 +268,6 @@ desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD." volume = 20 amount_per_transfer_from_this = 20 - //icon = 'icons/obj/dart.dmi' icon_state = "empty" item_state = "syringe_empty" @@ -307,7 +306,7 @@ to_chat(user, "You cannot directly remove reagents from [target]!") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) to_chat(user, "You soak the [src] with [trans] units of the solution. It now contains [reagents.total_volume] units.") if (reagents.total_volume >= reagents.maximum_volume) From 26e55a7a4207209f7e89de5a54690a01de949b52 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 01:40:13 +0100 Subject: [PATCH 037/180] Swapped stacking to FALSE --- code/game/objects/items/storage/belt.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 00788a2d7c..298d96c4b7 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -551,7 +551,7 @@ . = ..() GET_COMPONENT(STR, /datum/component/storage) STR.max_items = 18 - STR.display_numerical_stacking = TRUE + STR.display_numerical_stacking = FALSE STR.can_hold = typecacheof(list( /obj/item/reagent_containers/syringe/dart )) From b6788cdd64d5e3d167e537b1ec01a4dfd206e4ba Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 01:45:32 +0100 Subject: [PATCH 038/180] Updated projectile sprite. --- code/game/objects/items/storage/belt.dm | 4 ++-- .../projectile/bullets/dart_syringe.dm | 2 +- icons/obj/projectiles.dmi | Bin 117152 -> 117301 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 298d96c4b7..27c3d76655 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -550,14 +550,14 @@ /obj/item/storage/belt/medolier/ComponentInitialize() . = ..() GET_COMPONENT(STR, /datum/component/storage) - STR.max_items = 18 + STR.max_items = 12 STR.display_numerical_stacking = FALSE STR.can_hold = typecacheof(list( /obj/item/reagent_containers/syringe/dart )) /obj/item/storage/belt/medolier/full/PopulateContents() - for(var/i in 1 to 8) + for(var/i in 1 to 10) new /obj/item/reagent_containers/syringe/dart/(src) /obj/item/storage/belt/holster diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 23db5c3245..92865a3a55 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -43,7 +43,7 @@ //I am in a mess of my own making /obj/item/projectile/bullet/dart/syringe/dart name = "Smartdart" - icon_state = "syringeproj" + icon_state = "dartproj" damage = 0 /obj/item/projectile/bullet/dart/syringe/dart/on_hit(atom/target, blocked = FALSE) diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index d276655ae865826e683ca252490d67ed04f56df3..bff1b631c32526c742238e42a1405e905ce9274e 100644 GIT binary patch delta 1777 zcmVF$xgqetU_Q$6WZ9)``gzU0Jok$(++aw& zbkKumTNQpg+unKB-)>qJemmO#_0F^YcB9Hq_OoXILM?=1Bwma2`jSie-v;OPJedy* zJpJY>_f9&5sZ!)5NnFb0StmpfQF?Qhs(+2})vXYb2hYg<#Sr+1fl8UuhtF7b0dsBc z%B}%WuS5f1Vd$K}3=S~-=Mwo(3*?qIS^4%eR>J`t1{vWMPLSmx1#s=RrI6DUk+KSQHRiQFGKISR0j=a^<&=OwttW3 z*EvguPjCoPrAW0l9-8lC=wY6XpBe%cgL!B$pKY-G)KYb?&0W!XfZ{tx8Nl`S4|MXo z!cX?IZvajV4O-45SpXIe_@QIYl~DWWfg)VvKN1xTQ4Fa(qalg5fM3-6o4Wkax7^KP<$a0 zjWW>R&zH@F**VacvF%x1a_iPDd-m*EjWde)lmbvXUOXOW?t>2w{WD%$UVq;8JYx~@ z0R^CsBoYam9G%|xx%s(wyQ(UAmdi2u)?35}1`hOmCYwEUV7`pUj~{#9hKP7a0q7&i z(P`3)v(5V^dmGF+>BU)+$s`kI+;&?C#s>zPho0`|^y$-{_C-Xxg96ZJlF4KmC&#qs;PCmc=AdOfo#<@4&Y->NBJbBXA_C%z$6o5VxU7Ur{>1OyfUVk1Z zQ&UrWR)Fnt@7}$(wkIO3r2zCZdmE@#fN!+7cZ%ovb{ zX7vZ~Mm_jyV}J|wr+>U*jF}3D!}Rv{QYaL#^+o5d>td}n#&};0bwULwBL1fU^r7VF z^!Au*&H(j3e2g(MfLty|p-{jWgSD1mFi5FX^1OXOK_?q`8BFNYi;v2q~kcAv|B6`_I)P1z7D{H1Fjbok$>Y&n_>G%dU3Wn{+CXt zw~YZVv}pl^<2aN`CCcS8)oK-MEw1ZQEEb7GBA%6?*#j;)xO3+YLy3e}-4Ky3q6*L_ z8rz^XVlJ6XelZ!QZp>O1yk8Pwj4{PrE*Ewj2Wu^rN`+V~))6xyi^bwmcR@saLKUD- ztgWrR5HQWH(SI5fV%oGG&~cndG#WLbP{@SCVbdw$Cn9nfssMdz!HhFzZd{WW4MS7vlHLP0%8E5q}?30Q$)M+`DFCbozzUUXzV$ zeLS$+PJ)2#72rQ_+&I#8fHRqq`tRUw^IkzH;y(&NpXtVMJFKJL3FbolzM094*gu>< zV`eg{0!92v0Vuw6)H}g6_W#^@ZA;@K(lQD_@tsbn0Ke=iBL1QP6yG`O3Q$D4g91=| zM?ohdtv;Xt6yIp<^(i9K3JO5!c<~b_c(Al|=${c0*^2^DI^M;L7d6R5L|X2Df#G>E T;My=P00000NkvXXu0mjfT*G8p delta 1627 zcmV-h2Bi75ln0=b2aqHI!?7i{0u`mF=w3X(J&C8+m+BueSwq&eNfwlY^#Zr`0s)V} zf5gUB-EkcMp1Je59*SQXGf`@25E6ir1%&_r1@K8kK~xgD78_eC5(1m9(`D(>?FP-J ztF9_4Wm&Oc1DiyMg*QABmf27V7&qHk6=W_5DmkJF1j~-cb|&L_-os)ZUN@)?T>BdNPK?6wmM&rzmoh3Z?c<5QYiPY$Zv@w)p;h4CiYD8xZ@p zLTR(gjs=2C`HP3HD*EffKeLvm>yVfpCHrAObIM@Wzv0t8=Xm~(-?PcLe>fy)Ql;6N z4=s<8y;)}a?}k{zU~U@B_uJgQYiS0T^Y7?BK#8138NluS`?~pE;U~TH48Zy9l;t^( z6=0>$51nm)@s-c=+WG@8SeVaFwF2T-^bb7H80NE6mstMvPXOfp_F(;Ac)R^!f4IE7 zw*Kl-#~|Tb_}PWBB66}Ef4B-%0~>DwPfBzy`$Ireh7oL!io$8BGM z(@SM{ms~Dq6@nsim}uNvFCro`U`hKilKxNyI??e0N6*Jd5g=WZX7Js_7add2qcsx!rnFOF#tI=pQ*xBB`udRs4 zK@@-y(+Rjv5JKySe>S&W{q=iXTa;b7a)okv??oEvbefl6dg&33NJOGY0T?lEVF_jy zyW!V){dtm{J9qBT3Q$C(9}2)Iv)6!D1^D8_?fI7DIH%(AxB~>WTCHk~xf=w*^uy>} z6`+U=f&wsND(!_Z-p{K*TCYTX-w(ZiYwd@LMB=w2BO|2Ke`$7hc5q!c)o3(Eo6Tlm zj0yd41yz6|G6)L5h?xa^=vIFKFSdiPH3zuTZWRt=%(-MT$>``Pl}ZKM-gF)W0oGb$ zO!$jWRRM~~ASeJM$eUT*8*|+ipy7v)F(wUADwU{IDi~w1))J4$snu$s_YWxOL}VZo zfDz;umYDUtf7Y|_@7)s^@+OEzqtUJWI@O-Fw)+~=ahy>4tyU^M+Z4C90JzcTenAmA z*>o6og!qM}?);zc`+Md9S02&^2*+`#)oRr1b(+m4)>?ufpjxexN~J<8L5p|p^wsYA z_3LCanXrZ-B11$KU_^9|LF>ev=XpOZhH0C%mX+|ge?%B#Otn-hB^}4XT1%tRAe~Mh zi<4)n)#{@jf`~+fD!_=?*x0x)V7f=6br!@tr2T-7RZH1jiy_ucmDb-uUf1BdM<2xwJ+ z>Gtz~u3ptXKoR-X6o3&kjNx`vItfNZ20;NRk)xAfL}U;YfD$>X07YaF6o3*rssKe~ z5EOtCISM)v83YBOL`LVVPZ5zpPyouYH+kw5EjLzIkNi6#B8O1`%CUF;{P`2V^+QAk Z??-WiHE;{qotgju002ovPDHLkV1k}JB2oYV From 3bb1a8dd00c1befaefc817ce6f2c68bdde0b1ade Mon Sep 17 00:00:00 2001 From: Fermi Date: Sat, 8 Jun 2019 02:19:39 +0100 Subject: [PATCH 039/180] OOPS. --- code/modules/research/designs/medical_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index a446255260..73d8dc3170 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -105,7 +105,7 @@ /datum/design/bluespacesmartdart name = "bluespace smartdart" desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." - id = "medicinalsmartdart" + id = "bluespacesmartdart" build_type = PROTOLATHE materials = list(MAT_GLASS = 2000, MAT_PLASTIC = 500, MAT_METAL = 500, MAT_BLUESPACE = 500) build_path = /obj/item/reagent_containers/syringe/dart/bluespace From 84c3c104cde97d0928210f53ff99ec4c9e3ee260 Mon Sep 17 00:00:00 2001 From: Thalpy <33956696+Thalpy@users.noreply.github.com> Date: Sat, 8 Jun 2019 06:32:12 +0100 Subject: [PATCH 040/180] Pointed out that a message could be misinterpreted as lewd. --- code/modules/reagents/reagent_containers/syringes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 39a372c381..4f8dd2c416 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -314,7 +314,7 @@ update_icon() if(SYRINGE_INJECT) - src.visible_message("The smartdart gives a frustrated boop! It's ready and full; You need to shoot someone with it!") + src.visible_message("The smartdart gives a frustrated boop! It's fully saturated; You need to shoot someone with it!") /obj/item/reagent_containers/syringe/dart/attack_self(mob/user) return From 3f34e3c93dc7ab169a1b6a46f7895e167260de23 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Jun 2019 03:30:25 -0700 Subject: [PATCH 041/180] Update stun.dm --- code/modules/projectiles/ammunition/energy/stun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index 3f033ac904..c9e60ddc1d 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -24,4 +24,4 @@ e_cost = 40 fire_sound = 'sound/weapons/taser2.ogg' harmful = FALSE - click_cooldown_override = 3 + click_cooldown_override = 3.5 From 2cda2380f6c7043895a6ec62d3dde0ccc58ef3fc Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Jun 2019 03:50:22 -0700 Subject: [PATCH 042/180] durasteel toolboxes --- code/game/objects/items/storage/toolbox.dm | 16 ++++++++++++++++ code/modules/uplink/uplink_items.dm | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 9b8d2b4a21..cf220cb415 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -183,6 +183,22 @@ slab_type = /obj/item/clockwork/slab/debug fabricator_type = /obj/item/clockwork/replica_fabricator/scarab/debug +/obj/item/storage/toolbox/durasteel + name = "durasteel toolbox" + desc = "A toolbox made out of durasteel. Probably packs a massive punch." + total_mass = 5 + icon_state = "blue" + item_state = "toolbox_blue" + w_class = WEIGHT_CLASS_HUGE //heyo no bohing this! + force = 18 //spear damage + +/obj/item/storage/toolbox/durasteel/afterattack(atom/A, mob/user, proximity) + . = ..() + if(proximity && isobj(A) && !isitem(A)) + var/obj/O = A + //50 total object damage but split up for stuff like damage deflection. + O.take_damage(22) + O.take_damage(10) /obj/item/storage/toolbox/artistic name = "artistic toolbox" diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index f2f919a717..41541a34a9 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1595,6 +1595,12 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes cost = 20 cant_discount = TRUE +/datum/uplink_item/badass/durasteel_toolbox + name = "Durasteel Toolbox" + desc = "A very high impact toolbox. Excels at destroying stationary structures." + item = /obj/item/storage/toolbox/durasteel + cost = 2 //18 damage on mobs, 50 on objects, 4.5 stam/hit + /datum/uplink_item/badass/costumes surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) From 9464e8f55a9ce73ea39a85e1e4b8046a4056cde8 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sat, 8 Jun 2019 15:24:30 +0200 Subject: [PATCH 043/180] Clears up Extinguisher's slippery instructions. --- code/game/objects/items/extinguisher.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index ddbc668c05..b9deea998a 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -111,7 +111,7 @@ to_chat(user, "The safety is [safety ? "on" : "off"].") if(reagents.total_volume) - to_chat(user, "Alt-click to empty it.") + to_chat(user, "You can loose its screws to empty it.") /obj/item/extinguisher/proc/AttemptRefill(atom/target, mob/user) if(istype(target, tanktype) && target.Adjacent(user)) @@ -245,7 +245,7 @@ var/turf/open/theturf = T theturf.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) - user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] using its release valve.") + user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] by loosing the release valve's screws.") //firebot assembly /obj/item/extinguisher/attackby(obj/O, mob/user, params) From b1439ecdb950feb4431f20e1f9899c7d3a7d4487 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Jun 2019 11:09:18 -0400 Subject: [PATCH 044/180] Update gang_items.dm --- .../code/game/gamemodes/gangs/gang_items.dm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index 0f16b6462b..2e9ca4dcc0 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -83,14 +83,12 @@ return return TRUE - /datum/gang_item/clothing/hat name = "Pimp Hat" id = "hat" cost = 16 item_path = /obj/item/clothing/head/collectable/petehat/gang - /obj/item/clothing/head/collectable/petehat/gang name = "pimpin' hat" desc = "The undisputed king of style." @@ -109,7 +107,7 @@ /datum/gang_item/clothing/shoes name = "Bling Boots" id = "boots" - cost = 22 + cost = 20 item_path = /obj/item/clothing/shoes/gang /obj/item/clothing/shoes/gang @@ -258,7 +256,6 @@ datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang m /datum/gang_item/equipment category = "Purchase Equipment:" - /datum/gang_item/equipment/spraycan name = "Territory Spraycan" id = "spraycan" @@ -275,7 +272,6 @@ datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang m cost = 3 item_path = /obj/item/sharpener - /datum/gang_item/equipment/emp name = "EMP Grenade" id = "EMP" @@ -329,6 +325,12 @@ datum/gang_item/equipment/shield cost = 25 item_path = /obj/item/shield/riot +datum/gang_item/equipment/gangsheild + name = "Tower Shield" + id = "metal" + cost = 45 //High block of melee and even higher for bullets + item_path = /obj/item/shield/riot/tower + /datum/gang_item/equipment/pen name = "Recruitment Pen" id = "pen" @@ -352,7 +354,6 @@ datum/gang_item/equipment/shield return "(GET ONE FREE)" return ..() - /datum/gang_item/equipment/gangtool id = "gangtool" cost = 5 @@ -413,4 +414,4 @@ datum/gang_item/equipment/shield /datum/gang_item/equipment/dominator/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) new item_path(user.loc) - to_chat(user, spawn_msg) \ No newline at end of file + to_chat(user, spawn_msg) From b8ddbb5008691a0eca40e4c78660d46159b5bd13 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Jun 2019 11:21:40 -0400 Subject: [PATCH 045/180] Update shields.dm --- code/game/objects/items/shields.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index b641e15d90..e9f3a602df 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -20,7 +20,6 @@ attack_verb = list("shoved", "bashed") var/cooldown = 0 //shield bash cooldown. based on world.time - /obj/item/shield/riot/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/melee/baton)) if(cooldown < world.time - 25) @@ -166,3 +165,13 @@ block_chance = 25 force = 5 throwforce = 7 + +/obj/item/shield/riot/tower + name = "tower shield" + desc = "A massive shield that can block a lot of attacks, can take a lot of abuse before braking." + armor = list("melee" = 95, "bullet" = 95, "laser" = 75, "energy" = 60, "bomb" = 90, "bio" = 90, "rad" = 0, "fire" = 90, "acid" = 10) //Armor for the item, dosnt transfer to user + icon_state = "metal" + block_chance = 75 //1/4 shots will hit* + force = 10 + throwforce = 15 //Massive pice of metal + w_class = WEIGHT_CLASS_HUGE From a86d6fd9cc57d311de6383715e49b09b131c1af6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Jun 2019 16:06:36 -0400 Subject: [PATCH 046/180] Update firstaid.dm --- code/game/objects/items/storage/firstaid.dm | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 1a666ce921..5d4c651b19 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -320,3 +320,46 @@ /obj/item/storage/pill_bottle/penis_enlargement/PopulateContents() for(var/i in 1 to 7) new /obj/item/reagent_containers/pill/penis_enlargement(src) + +///////////// +//Organ Box// +///////////// + +/obj/item/storage/belt/organbox + name = "Organ Storge" + desc = "A compact box that helps hold massive amounts of implants, organs, and some tools. Has a belt clip for easy carrying" + STR.max_w_class = WEIGHT_CLASS_BULKY + icon = 'icons/obj/mysterybox.dmi' + icon_state = "organbox_open" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + throw_speed = 1 + throw_range = 1 + +/obj/item/storage/belt/organbox/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 16 + STR.max_w_class = WEIGHT_CLASS_BULKY + STR.max_combined_w_class = 20 + STR.can_hold = typecacheof(list( + /obj/item/storage/pill_bottle, + /obj/item/reagent_containers/hypospray, + /obj/item/healthanalyzer, + /obj/item/reagent_containers/syringe, + /obj/item/clothing/glasses/hud/health, + /obj/item/hemostat, + /obj/item/scalpel, + /obj/item/retractor, + /obj/item/cautery, + /obj/item/surgical_drapes, + /obj/item/autosurgeon, + /obj/item/organ, + /obj/item/implant, + /obj/item/implantpad, + /obj/item/implantcase, + /obj/item/implanter, + /obj/item/circuitboard/computer/operating, + /obj/item/stack/sheet/mineral/silver, + /obj/item/organ_storage + )) From 3b941210e53dba2b2182bebe605d7e79565f47aa Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Jun 2019 16:16:17 -0400 Subject: [PATCH 047/180] Update medical_designs.dm --- code/modules/research/designs/medical_designs.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 7224d0e4e8..8a8377601a 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -172,6 +172,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE +/datum/design/organbox + name = "Empty Organ Box" + desc = "A large cool box that can hold large amouts of medical tools or organs." + id = "organbox" + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_SILVER= 3500, MAT_GOLD = 3500, MAT_PLASTIC = 5000) + build_path = /obj/item/storage/belt/organbox + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + //////////////////////////////////////// //////////Defibrillator Tech//////////// //////////////////////////////////////// From b073c29b19ad48b659f34130a70035e50c7b924e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Jun 2019 16:17:49 -0400 Subject: [PATCH 048/180] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index e25dced31c..f39f3bfb7f 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -115,7 +115,7 @@ display_name = "Advanced Surgery" description = "When simple medicine doesn't cut it." prereq_ids = list("adv_biotech") - design_ids = list("surgery_lobotomy", "surgery_reconstruction") + design_ids = list("surgery_lobotomy", "surgery_reconstruction", "organbox") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 From 60e89a6ca43e787ba539daf37f4e4cffbb477bf2 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Jun 2019 16:19:16 -0400 Subject: [PATCH 049/180] wrong w_class --- code/game/objects/items/storage/firstaid.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 5d4c651b19..e9b074d40c 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -328,7 +328,7 @@ /obj/item/storage/belt/organbox name = "Organ Storge" desc = "A compact box that helps hold massive amounts of implants, organs, and some tools. Has a belt clip for easy carrying" - STR.max_w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_BULKY icon = 'icons/obj/mysterybox.dmi' icon_state = "organbox_open" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' From c3db9a3cd9fb12cb3631c3e7772e82b74c21c577 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Jun 2019 18:22:37 -0700 Subject: [PATCH 050/180] stuff --- code/modules/antagonists/changeling/powers/adrenaline.dm | 2 +- code/modules/mob/living/living.dm | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index a9d85d0fed..f69616159d 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -12,5 +12,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(100, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.") + user.do_adrenaline(50, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 50, 0.5, 100) return TRUE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 65ed57a6f1..c10367d24e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1190,7 +1190,10 @@ clamp_immobility_to = 0, reset_misc = TRUE, healing_chems = list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10, "stimulants" = 10), - message = "You feel a surge of energy!" + message = "You feel a surge of energy!", + stamina_buffer_boost = 0, //restores stamina buffer rather than just health + scale_stamina_loss_recovery, //defaults to null. if this is set, restores loss * this stamina. make sure it's a fraction. + stamina_loss_recovery_bypass = 0 //amount of stamina loss to ignore during calculation ) if(AmountSleeping() > clamp_unconscious_to) SetSleeping(clamp_unconscious_to) @@ -1201,6 +1204,9 @@ if(AmountKnockdown() > clamp_immobility_to) SetKnockdown(clamp_immobility_to) adjustStaminaLoss(max(0, -stamina_boost)) + adjustStaminaLossBuffered(max(0, -stamina_buffer_boost)) + if(scale_stamina_loss_recovery) + adjustStaminaLoss(max(-((getStaminaLoss() - stamina_loss_recovery_bypass) * scale_stamina_loss_recovery), 0)) if(put_on_feet) resting = FALSE lying = FALSE From 3b9188d301ad40022bb8faf19afedd97f0e4bb25 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Jun 2019 18:28:04 -0700 Subject: [PATCH 051/180] let's see how badly this goes --- code/modules/antagonists/changeling/powers/adrenaline.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index f69616159d..323fc6fd80 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -12,5 +12,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(50, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 50, 0.5, 100) + user.do_adrenaline(0, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 20, 0.75, 0) return TRUE From 1cf5e24b4d6040589ef065582cce68dd669cc01b Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Jun 2019 23:23:21 -0700 Subject: [PATCH 052/180] Update human.dm --- code/modules/mob/living/carbon/human/human.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0f962d7b0f..62c2d7eb13 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -851,7 +851,7 @@ /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) //If they dragged themselves and we're currently aggressively grabbing them try to piggyback - if(user == target && can_piggyback(target) && pulling == target && grab_state >= GRAB_AGGRESSIVE && stat == CONSCIOUS) + if(user == target && can_piggyback(target) && pulling == target && (HAS_TRAIT(src, TRAIT_PACIFIST) || grab_state >= GRAB_AGGRESSIVE) && stat == CONSCIOUS) buckle_mob(target,TRUE,TRUE) . = ..() @@ -861,9 +861,11 @@ return TRUE return FALSE -/mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) +/mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE, bypass_piggybacking = FALSE) if(!force)//humans are only meant to be ridden through piggybacking and special cases return + if(bypass_piggybacking) + return ..() if(!is_type_in_typecache(M, can_ride_typecache)) M.visible_message("[M] really can't seem to mount [src]...") return @@ -876,7 +878,7 @@ if(can_piggyback(M)) riding_datum.ride_check_ridden_incapacitated = TRUE visible_message("[M] starts to climb onto [src]...") - if(do_after(M, 15, target = src)) + if(force || do_after(M, 15, target = src)) if(can_piggyback(M)) if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) M.visible_message("[M] can't hang onto [src]!") From b534f573741c25647fc22e990a65c09e6793ae96 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Jun 2019 23:44:27 -0700 Subject: [PATCH 053/180] Update human.dm --- code/modules/mob/living/carbon/human/human.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 62c2d7eb13..129e600b00 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -851,7 +851,7 @@ /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) //If they dragged themselves and we're currently aggressively grabbing them try to piggyback - if(user == target && can_piggyback(target) && pulling == target && (HAS_TRAIT(src, TRAIT_PACIFIST) || grab_state >= GRAB_AGGRESSIVE) && stat == CONSCIOUS) + if(user == target && can_piggyback(target) && pulling == target && (HAS_TRAIT(src, TRAIT_PACIFISM) || grab_state >= GRAB_AGGRESSIVE) && stat == CONSCIOUS) buckle_mob(target,TRUE,TRUE) . = ..() From 8ba3609a4d8320030c9191d83527e6c15c86be80 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 10 Jun 2019 00:06:48 -0700 Subject: [PATCH 054/180] god why fuck --- code/game/objects/items/implants/implant_misc.dm | 2 +- code/modules/antagonists/changeling/powers/adrenaline.dm | 2 +- code/modules/mob/living/living.dm | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm index 889f702ee7..3a4295c61e 100644 --- a/code/game/objects/items/implants/implant_misc.dm +++ b/code/game/objects/items/implants/implant_misc.dm @@ -33,7 +33,7 @@ /obj/item/implant/adrenalin/activate() . = ..() uses-- - imp_in.do_adrenaline(150, TRUE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10, "stimulants" = 10), "You feel a sudden surge of energy!") + imp_in.do_adrenaline(150, TRUE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "regen_jelly" = 10, "stimulants" = 10), "You feel a sudden surge of energy!") to_chat(imp_in, "You feel a sudden surge of energy!") if(!uses) qdel(src) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 323fc6fd80..479c25070b 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -12,5 +12,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(0, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 20, 0.75, 0) + user.do_adrenaline(0, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "regen_jelly" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 20, 0.75, 0) return TRUE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index c10367d24e..69168caad1 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1189,12 +1189,13 @@ clamp_unconscious_to = 0, clamp_immobility_to = 0, reset_misc = TRUE, - healing_chems = list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10, "stimulants" = 10), + healing_chems = list("inaprovaline" = 3, "synaptizine" = 10, "regen_jelly" = 10, "stimulants" = 10), message = "You feel a surge of energy!", stamina_buffer_boost = 0, //restores stamina buffer rather than just health scale_stamina_loss_recovery, //defaults to null. if this is set, restores loss * this stamina. make sure it's a fraction. stamina_loss_recovery_bypass = 0 //amount of stamina loss to ignore during calculation ) + to_chat(src, message) if(AmountSleeping() > clamp_unconscious_to) SetSleeping(clamp_unconscious_to) if(AmountUnconscious() > clamp_unconscious_to) @@ -1203,10 +1204,10 @@ SetStun(clamp_immobility_to) if(AmountKnockdown() > clamp_immobility_to) SetKnockdown(clamp_immobility_to) - adjustStaminaLoss(max(0, -stamina_boost)) - adjustStaminaLossBuffered(max(0, -stamina_buffer_boost)) + adjustStaminaLoss(min(0, -stamina_boost)) + adjustStaminaLossBuffered(min(0, -stamina_buffer_boost)) if(scale_stamina_loss_recovery) - adjustStaminaLoss(max(-((getStaminaLoss() - stamina_loss_recovery_bypass) * scale_stamina_loss_recovery), 0)) + adjustStaminaLoss(min(-((getStaminaLoss() - stamina_loss_recovery_bypass) * scale_stamina_loss_recovery), 0)) if(put_on_feet) resting = FALSE lying = FALSE From 49b61b54dbb2da929417b040d0c7427bd6c9f13f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 10 Jun 2019 00:18:41 -0700 Subject: [PATCH 055/180] yeah no stamina buffer I GUESS --- code/modules/antagonists/changeling/powers/adrenaline.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 479c25070b..d1088f0025 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -12,5 +12,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(0, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "regen_jelly" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 20, 0.75, 0) + user.do_adrenaline(0, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "regen_jelly" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 0, 0.75, 0) return TRUE From a7bbfe46ac7daf2f003e33ce48115214cde73eba Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 10 Jun 2019 14:55:17 +0200 Subject: [PATCH 056/180] Fix chem dispensers starting with an extra power cell --- code/modules/reagents/chemistry/machinery/chem_dispenser.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 10282e5e0a..d10e57783d 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -9,7 +9,6 @@ interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_dispenser - var/cell_type = /obj/item/stock_parts/cell/high var/obj/item/stock_parts/cell/cell var/powerefficiency = 0.1 var/amount = 30 @@ -79,7 +78,6 @@ /obj/machinery/chem_dispenser/Initialize() . = ..() - cell = new cell_type dispensable_reagents = sortList(dispensable_reagents) update_icon() From 1bc9c8c491f69989f3a09d647d54bdc72459e1db Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 10 Jun 2019 21:06:32 -0500 Subject: [PATCH 057/180] fix digitigrade states --- modular_citadel/icons/mob/uniform_digi.dmi | Bin 267608 -> 267609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/uniform_digi.dmi b/modular_citadel/icons/mob/uniform_digi.dmi index 9513f82c9cb1039cafaf883c23bc54dc27abbe1f..5ff291f4005abe7665f675ecec1aa69c061e099f 100644 GIT binary patch delta 350 zcmV-k0ipibsu0<#5RfDRl(8jb1b?ag#vv`W+jU4w<+N=6Q2P;^KUA*7<`0$A`U?^7 zNJp1E^d_~vtb_SsV9Ac4)UQ;GL&E*6;5*PkyvKeHv}A$$!VcuNYzKCNFo%kZCTb>Q`eB^^<#R~E6nu=mhg?gm2TEq_|mZy?kx zLY)ZO$_3Jtu%2I20vk_>$n}{dVz(Tr;Yu+@ woBRu<;_K$)m#60G^QYb4PyzX$iSzG(gTMuczy$$^zy$(_zy$-hzy$=D4}Fra3IG5A delta 349 zcmV-j0iyodsu0+!5RfDRld&aa1b^ASf%Drk@B!?@-%oI+zm%mh1>h_e#Y$B*f1OzWp4;d+aAbOBSdX>_BeIaA5ZbbEu$*Vz5pO zbC5htI)Wwg1w}P#6oY~oL#e4SsGy>i23})W(h;?KWf98@dk?+eZXi_BqJMS#20{%Y z)P11sTOdsd>+>}wu-TM|T%SoIc6+=GuE1U3Ee+iv#e|NPgXfEyy@9bZgWw+xT%To3 z3LX8>h9=A*K((%!{%K&A2;EbI2WjRPK-+3}4+Roli3>`zhocpR8w*7t$dP`T$1MM5(N-;&7 v{0pVx>*nK^r{?MNr`_Kj^7P$0a^gFK!3BrG1p$Y_1p Date: Mon, 10 Jun 2019 21:08:54 -0500 Subject: [PATCH 058/180] :thonk: --- .../icons/mob/clothing/trek_item_icon.dmi | Bin 5525 -> 0 bytes .../icons/obj/clothing/trek_item_icon.dmi | Bin 5382 -> 5525 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_citadel/icons/mob/clothing/trek_item_icon.dmi diff --git a/modular_citadel/icons/mob/clothing/trek_item_icon.dmi b/modular_citadel/icons/mob/clothing/trek_item_icon.dmi deleted file mode 100644 index ed3286615b21c172fbdbded726cb860b7d536778..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5525 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 From 3cebb1e807f066b1fe8b32a7a588ad12027c55d5 Mon Sep 17 00:00:00 2001 From: TrilbySpaseClone Date: Mon, 10 Jun 2019 22:59:36 -0400 Subject: [PATCH 059/180] Worked? Yay? --- code/game/objects/items/storage/boxes.dm | 10 ++++----- code/modules/cargo/packs.dm | 26 ++++++++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index ffeef0c8df..43611ee4e1 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -722,7 +722,7 @@ new /obj/item/ammo_casing/shotgun/rubbershot(src) /obj/item/storage/box/lethalshot - name = "box of lethal shotgun shots" + name = "box of buckshot (Lethal)" desc = "A box full of lethal shots, designed for riot shotguns." icon_state = "lethalshot_box" illustration = null @@ -749,7 +749,7 @@ /obj/item/storage/box/lethalslugs/PopulateContents() for(var/i in 1 to 7) - new /obj/item/projectile/bullet/shotgun_slug(src) + new /obj/item/ammo_casing/shotgun(src) /obj/item/storage/box/stunslug name = "box of stun slugs" @@ -759,7 +759,7 @@ /obj/item/storage/box/stunslug/PopulateContents() for(var/i in 1 to 7) - new /obj/item/projectile/bullet/shotgun_stunslug(src) + new /obj/item/ammo_casing/shotgun/stunslug(src) /obj/item/storage/box/techsslug name = "box of tech shotgun shells" @@ -773,11 +773,11 @@ /obj/item/storage/box/fireshot name = "box of incendiary ammo" - desc = "A box full of tech incendiary ammo." + desc = "A box full of incendiary ammo." icon_state = "fireshot_box" illustration = null -/obj/item/storage/box/techsslug/PopulateContents() +/obj/item/storage/box/fireshot/PopulateContents() for(var/i in 1 to 7) new /obj/item/ammo_casing/shotgun/incendiary(src) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 2effbd7ada..7042913b0d 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -516,14 +516,16 @@ /datum/supply_pack/security/armory/ballistic name = "Combat Shotguns Crate" - desc = "For when the enemy absolutely needs to be replaced with lead. Contains three Aussec-designed Combat Shotguns, and three Shotgun Bandoliers. Requires Armory access to open." + desc = "For when the enemy absolutely needs to be replaced with lead. Contains three Aussec-designed Combat Shotguns, with three Shotgun Bandoliers, as well as seven buchshot and 12g shotgun slugs. Requires Armory access to open." cost = 8000 contains = list(/obj/item/gun/ballistic/shotgun/automatic/combat, /obj/item/gun/ballistic/shotgun/automatic/combat, /obj/item/gun/ballistic/shotgun/automatic/combat, /obj/item/storage/belt/bandolier, /obj/item/storage/belt/bandolier, - /obj/item/storage/belt/bandolier) + /obj/item/storage/belt/bandolier, + /obj/item/storage/box/lethalshot, + /obj/item/storage/box/lethalslugs) crate_name = "combat shotguns crate" /datum/supply_pack/security/armory/dragnetgun @@ -567,7 +569,7 @@ /datum/supply_pack/security/armory/fire name = "Incendiary Weapons Crate" - desc = "Burn, baby burn. Contains three incendiary grenades, three plasma canisters, and a flamethrower. Requires Brige access to open." + desc = "Burn, baby burn. Contains three incendiary grenades, seven incendiary slugs, three plasma canisters, and a flamethrower. Requires Brige access to open." cost = 1500 access = ACCESS_HEADS contains = list(/obj/item/flamethrower/full, @@ -576,7 +578,8 @@ /obj/item/tank/internals/plasma, /obj/item/grenade/chem_grenade/incendiary, /obj/item/grenade/chem_grenade/incendiary, - /obj/item/grenade/chem_grenade/incendiary) + /obj/item/grenade/chem_grenade/incendiary, + /obj/item/storage/box/fireshot) crate_name = "incendiary weapons crate" crate_type = /obj/structure/closet/crate/secure/plasma dangerous = TRUE @@ -629,11 +632,13 @@ /datum/supply_pack/security/armory/riotshotguns name = "Riot Shotgun Crate" - desc = "For when the greytide gets really uppity. Contains three riot Shotguns. Requires Armory access to open." + desc = "For when the greytide gets really uppity. Contains three riot shotguns, seven rubber shot and beanbag shells. Requires Armory access to open." cost = 6000 contains = list(/obj/item/gun/ballistic/shotgun/riot, /obj/item/gun/ballistic/shotgun/riot, - /obj/item/gun/ballistic/shotgun/riot) + /obj/item/gun/ballistic/shotgun/riot, + /obj/item/storage/box/rubbershot, + /obj/item/storage/box/beanbag) crate_name = "riot shotgun crate" /datum/supply_pack/security/armory/swat @@ -1540,6 +1545,15 @@ crate_type = /obj/structure/closet/crate/secure/science dangerous = TRUE +/datum/supply_pack/science/tech_slugs + name = "Tech Slug Ammo Shells" + desc = "A new type of shell that is able to be made into a few different dangerous types. Contains two boxes of tech slugs, 14 shells in all." + cost = 1000 + contains = list(/obj/item/storage/box/techsslug, + /obj/item/storage/box/techsslug) + crate_name = "tech slug crate" + + ////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Service ////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// From e2ad96f4c9ae735842c6a14d209fbe18c81c2570 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Wed, 12 Jun 2019 01:21:16 +1200 Subject: [PATCH 060/180] Made a shitty space ruin robotics lab --- .../SpaceRuins/augmentationfacility.dmm | 755 ++++++++++++++++++ code/datums/ruins/space.dm | 6 + config/spaceRuinBlacklist.txt | 1 + 3 files changed, 762 insertions(+) create mode 100644 _maps/RandomRuins/SpaceRuins/augmentationfacility.dmm diff --git a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm new file mode 100644 index 0000000000..60e0c44c74 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm @@ -0,0 +1,755 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/open/floor/plating/asteroid, +/area/ruin/powered) +"c" = ( +/turf/closed/mineral, +/area/ruin/powered) +"d" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/powered) +"e" = ( +/obj/machinery/mecha_part_fabricator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"f" = ( +/turf/closed/wall/rust, +/area/ruin/powered) +"g" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/glass/fifty{ + step_x = 0; + step_y = 0 + }, +/obj/item/stack/sheet/metal/fifty{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"h" = ( +/obj/machinery/mecha_part_fabricator, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"i" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/glass/fifty{ + step_x = 0; + step_y = 0 + }, +/obj/item/stack/sheet/metal/fifty{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"j" = ( +/obj/structure/chair/sofa/right, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"k" = ( +/turf/open/floor/plasteel, +/area/ruin/powered) +"l" = ( +/obj/structure/chair/sofa/left, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"m" = ( +/obj/machinery/computer/rdconsole/production{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"n" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"o" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"p" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"q" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"r" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/organ/cyberimp/chest/reviver{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"s" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/organ/cyberimp/arm/surgery{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"t" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/backpack/duffelbag/med/surgery{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"u" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"v" = ( +/obj/machinery/porta_turret/syndicate/energy{ + mode = 1 + }, +/turf/closed/wall/r_wall/rust, +/area/ruin/powered) +"w" = ( +/obj/machinery/computer/rdconsole{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"x" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"y" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/ruin/powered) +"z" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/belt/utility/full{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"A" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/mmi/posibrain{ + step_x = 0; + step_y = 0; + pixel_y = 9 + }, +/obj/item/mmi{ + step_x = 0; + step_y = 0 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"B" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"C" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"D" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mech_bay_recharge_floor, +/area/ruin/powered) +"E" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"F" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/autosurgeon{ + name = "rusted autosurgeon"; + desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert an organ of implant. But this rusted version looks like it could only manage one implant...."; + step_x = 0; + step_y = 0; + uses = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"G" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"H" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/powered) +"I" = ( +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/plasteel, +/area/ruin/powered) +"J" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer1{ + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/ruin/powered) +"K" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/closed/mineral, +/area/ruin/powered) +"L" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/closed/wall/r_wall/rust, +/area/ruin/powered) +"M" = ( +/obj/structure/mecha_wreckage/ripley, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"N" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"O" = ( +/obj/machinery/turretid{ + lethal = 1; + pixel_y = -25; + req_access = null + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"P" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/ruin/powered) +"Q" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"R" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/ruin/powered) +"S" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"T" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/powered) +"U" = ( +/obj/machinery/door/airlock/external/glass, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +b +b +c +c +c +c +J +b +b +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +b +c +c +c +c +c +c +K +c +b +b +b +a +a +a +a +a +"} +(5,1,1) = {" +a +a +b +c +c +d +d +d +d +d +L +d +c +c +b +a +a +a +a +a +"} +(6,1,1) = {" +a +a +b +c +d +d +m +q +w +C +M +d +d +c +b +a +a +a +a +a +"} +(7,1,1) = {" +a +b +b +c +d +e +n +o +x +D +N +f +d +v +b +a +a +a +a +a +"} +(8,1,1) = {" +a +b +c +c +d +g +o +o +y +Q +S +I +k +U +b +a +a +a +a +a +"} +(9,1,1) = {" +a +b +c +c +d +h +p +r +z +o +G +f +f +d +b +a +a +a +a +a +"} +(10,1,1) = {" +a +b +c +c +d +i +p +s +A +o +H +f +f +d +b +a +a +a +a +a +"} +(11,1,1) = {" +a +b +c +c +d +j +p +t +F +o +p +I +k +U +b +a +a +a +a +a +"} +(12,1,1) = {" +a +b +c +c +d +l +p +p +P +R +O +f +d +v +b +b +a +a +a +a +"} +(13,1,1) = {" +a +b +b +c +d +d +p +u +B +E +T +d +d +c +c +b +a +a +a +a +"} +(14,1,1) = {" +a +a +b +c +c +d +d +d +d +d +d +d +c +c +c +b +a +a +a +a +"} +(15,1,1) = {" +a +a +a +b +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +"} +(16,1,1) = {" +a +a +a +b +b +b +b +c +c +c +c +b +b +b +b +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +b +b +b +b +b +b +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 058c820f7a..216484d1de 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -281,3 +281,9 @@ suffix = "cloning_facility.dmm" name = "Ancient Cloning Lab" description = "An experimental cloning lab snapped off from an ancient ship. The cloner model inside lacks many modern functionalities and security measures." + +/datum/map_template/ruin/space/augmentation + id = "augmentationfacility" + suffix = "augmentationfacility.dmm" + name = "Roboticst Augmentation Facility" + description = "A mysterious lab in the depths of space containing robotics supplies and a one use autosurgeon." diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index 628e08f8f1..932459a23c 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -45,3 +45,4 @@ #_maps/RandomRuins/SpaceRuins/way_home.dmm #_maps/RandomRuins/SpaceRuins/whiteshipdock.dmm #_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm +#_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm From b2c5430f6a0d00c0b3e7149e13d09fd8b77b3ba9 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Wed, 12 Jun 2019 14:46:23 +1200 Subject: [PATCH 061/180] Shit's done --- _maps/RandomRuins/SpaceRuins/augmentationfacility.dmm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm index 60e0c44c74..4c54dbb1a9 100644 --- a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm @@ -95,6 +95,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/aug_manipulator, /turf/open/floor/plasteel, /area/ruin/powered) "r" = ( @@ -138,10 +139,10 @@ /turf/closed/wall/r_wall/rust, /area/ruin/powered) "w" = ( -/obj/machinery/computer/rdconsole{ +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/mech_bay_power_console{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/powered) "x" = ( From 0f8b6f72f8b241f44268692416a4f4a5298206bd Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Wed, 12 Jun 2019 15:08:20 +1200 Subject: [PATCH 062/180] Get the fuck out step_x/y --- .../SpaceRuins/augmentationfacility.dmm | 49 ++++--------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm index 4c54dbb1a9..f19c8cb859 100644 --- a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm @@ -22,14 +22,8 @@ "g" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/glass/fifty{ - step_x = 0; - step_y = 0 - }, -/obj/item/stack/sheet/metal/fifty{ - step_x = 0; - step_y = 0 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel, /area/ruin/powered) "h" = ( @@ -46,14 +40,8 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/glass/fifty{ - step_x = 0; - step_y = 0 - }, -/obj/item/stack/sheet/metal/fifty{ - step_x = 0; - step_y = 0 - }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel, /area/ruin/powered) "j" = ( @@ -101,28 +89,19 @@ "r" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/organ/cyberimp/chest/reviver{ - step_x = 0; - step_y = 0 - }, +/obj/item/organ/cyberimp/chest/reviver, /turf/open/floor/plasteel, /area/ruin/powered) "s" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/organ/cyberimp/arm/surgery{ - step_x = 0; - step_y = 0 - }, +/obj/item/organ/cyberimp/arm/surgery, /turf/open/floor/plasteel, /area/ruin/powered) "t" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/duffelbag/med/surgery{ - step_x = 0; - step_y = 0 - }, +/obj/item/storage/backpack/duffelbag/med/surgery, /turf/open/floor/plasteel, /area/ruin/powered) "u" = ( @@ -159,24 +138,16 @@ "z" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/storage/belt/utility/full{ - step_x = 0; - step_y = 0 - }, +/obj/item/storage/belt/utility/full, /turf/open/floor/plasteel, /area/ruin/powered) "A" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/item/mmi/posibrain{ - step_x = 0; - step_y = 0; pixel_y = 9 }, -/obj/item/mmi{ - step_x = 0; - step_y = 0 - }, +/obj/item/mmi, /turf/open/floor/plasteel, /area/ruin/powered) "B" = ( @@ -206,8 +177,6 @@ /obj/item/autosurgeon{ name = "rusted autosurgeon"; desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert an organ of implant. But this rusted version looks like it could only manage one implant...."; - step_x = 0; - step_y = 0; uses = 1 }, /turf/open/floor/plasteel, From 17403bd0594a63189bcc420c43c596e29ab6819b Mon Sep 17 00:00:00 2001 From: Fermi Date: Thu, 13 Jun 2019 00:58:54 +0100 Subject: [PATCH 063/180] Non-functioning EMP code for review (revert before merging.) --- code/modules/projectiles/ammunition/special/syringe.dm | 8 ++++++++ .../projectiles/projectile/bullets/dart_syringe.dm | 3 ++- code/modules/reagents/reagent_containers/syringes.dm | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index a4107fa6a2..47ae266e45 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -66,3 +66,11 @@ projectile_type = /obj/item/projectile/bullet/dart/syringe/dart firing_effect_type = null harmful = FALSE + +/obj/item/ammo_casing/syringegun/dart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") + ..() + var/obj/item/gun/syringe/SG = loc + var/obj/item/reagent_containers/syringe/dart/S = SG.syringes[1] + if(S.emptrig == TRUE) + var/obj/item/projectile/bullet/dart/syringe/dart/D = BB + D.emptrig = TRUE diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 92865a3a55..6493e0f015 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -45,6 +45,7 @@ name = "Smartdart" icon_state = "dartproj" damage = 0 + var/emptrig = FALSE /obj/item/projectile/bullet/dart/syringe/dart/on_hit(atom/target, blocked = FALSE) if(iscarbon(target)) @@ -55,7 +56,7 @@ for(var/datum/reagent/R in reagents.reagent_list) //OD prevention time! if(istype(R, /datum/reagent/medicine)) //Is this a medicine? if(M.reagents.has_reagent(R.id)) - if(R.overdose_threshold == 0) //Is there a possible OD? + if(R.overdose_threshold == 0 || emptrig == TRUE) //Is there a possible OD? M.reagents.add_reagent(R.id, R.volume) else var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.id)) -1) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 4f8dd2c416..78cf518ec9 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -270,6 +270,7 @@ amount_per_transfer_from_this = 20 icon_state = "empty" item_state = "syringe_empty" + var/emptrig = FALSE /obj/item/reagent_containers/syringe/dart/afterattack(atom/target, mob/user , proximity) @@ -341,6 +342,10 @@ add_overlay(injoverlay) M.update_inv_hands() +/obj/item/reagent_containers/syringe/dart/emp_act(severity) + emptrig = TRUE + ..() + /obj/item/reagent_containers/syringe/dart/bluespace name = "bluespace smartdart" desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." From 9b01830987fbb50b144d58c3d5d90b39b02512b2 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Thu, 13 Jun 2019 21:37:45 +1200 Subject: [PATCH 064/180] Added fuel tank and welding goggles --- _maps/RandomRuins/SpaceRuins/augmentationfacility.dmm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm index f19c8cb859..cf086e871c 100644 --- a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm @@ -139,6 +139,7 @@ /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/item/storage/belt/utility/full, +/obj/item/clothing/glasses/welding, /turf/open/floor/plasteel, /area/ruin/powered) "A" = ( @@ -282,6 +283,11 @@ /obj/structure/fans/tiny, /turf/open/floor/plasteel, /area/ruin/powered) +"V" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/ruin/powered) (1,1,1) = {" a @@ -554,7 +560,7 @@ b c d d -p +V u B E From cf56870b5728a879b83b4ffbeb70141388ea5ef1 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Thu, 13 Jun 2019 23:48:15 +0200 Subject: [PATCH 065/180] Fixes the sacrificial target icon not displaying on the cult objective alert. --- code/modules/antagonists/cult/cult.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 32442ee72c..47cf2abf3f 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -361,6 +361,7 @@ reshape.Shift(EAST, 1) reshape.Crop(7,4,26,31) reshape.Crop(-5,-3,26,30) + return reshape /mob/living/carbon/human/get_sac_image() var/datum/job/sacjob = SSjob.GetJob(mind.assigned_role) @@ -370,6 +371,7 @@ reshape.Shift(EAST, 1) reshape.Crop(7,4,26,31) reshape.Crop(-5,-3,26,30) + return reshape /datum/objective/sacrifice var/sacced = FALSE From 4528384976fdacda4a7091b96f71177fb9ab68cb Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Sat, 15 Jun 2019 19:03:04 +1200 Subject: [PATCH 066/180] Fuck it lets add way more spiciest PR --- .../SpaceRuins/augmentationfacility.dmm | 4 +- _maps/RandomRuins/SpaceRuins/bigape.dmm | 196 ++++++++++++++++++ code/datums/ruins/space.dm | 6 + config/spaceRuinBlacklist.txt | 1 + tgstation.dme | 1 + 5 files changed, 206 insertions(+), 2 deletions(-) create mode 100644 _maps/RandomRuins/SpaceRuins/bigape.dmm diff --git a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm index cf086e871c..c64050ce3a 100644 --- a/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm @@ -6,7 +6,7 @@ /turf/open/floor/plating/asteroid, /area/ruin/powered) "c" = ( -/turf/closed/mineral, +/turf/closed/mineral/random/high_chance, /area/ruin/powered) "d" = ( /turf/closed/wall/r_wall/rust, @@ -211,7 +211,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 4 }, -/turf/closed/mineral, +/turf/closed/mineral/random/high_chance, /area/ruin/powered) "L" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ diff --git a/_maps/RandomRuins/SpaceRuins/bigape.dmm b/_maps/RandomRuins/SpaceRuins/bigape.dmm new file mode 100644 index 0000000000..3c13ca6e46 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/bigape.dmm @@ -0,0 +1,196 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/template_noop) +"c" = ( +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"d" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"e" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"f" = ( +/obj/structure/chair/sofa/left{ + dir = 4 + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"g" = ( +/obj/item/flashlight/lamp/bananalamp{ + brightness_on = 10 + }, +/obj/structure/table/wood, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"h" = ( +/obj/structure/showcase/machinery/tv{ + step_x = 0; + step_y = 0 + }, +/obj/structure/table/wood, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"i" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"j" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"k" = ( +/obj/structure/chair/sofa{ + dir = 4 + }, +/mob/living/simple_animal/hostile/gorilla{ + AIStatus = null; + canmove = 1; + desc = "There is no need to be upset."; + dir = 4; + name = "Familiar Gorilla" + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"l" = ( +/obj/effect/overlay/palmtree_r, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +b +a +"} +(2,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(3,1,1) = {" +a +a +b +b +g +d +d +b +b +a +"} +(4,1,1) = {" +a +a +b +d +f +k +i +d +d +b +"} +(5,1,1) = {" +a +a +b +e +c +c +c +j +d +b +"} +(6,1,1) = {" +a +a +b +d +c +h +c +l +d +b +"} +(7,1,1) = {" +a +b +b +b +d +d +d +b +b +a +"} +(8,1,1) = {" +a +b +a +a +b +b +b +b +b +b +"} +(9,1,1) = {" +a +b +a +a +a +b +a +a +a +b +"} +(10,1,1) = {" +a +a +a +a +a +b +a +a +a +a +"} diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 216484d1de..bd2d463eb3 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -287,3 +287,9 @@ suffix = "augmentationfacility.dmm" name = "Roboticst Augmentation Facility" description = "A mysterious lab in the depths of space containing robotics supplies and a one use autosurgeon." + +/datum/map_template/ruin/space/harambe + id = "bigape" + suffix = "bigape.dmm" + name = "Big Ape" + description = "A gorilla? Out here? But why." diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index 932459a23c..f53ae44a0d 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -46,3 +46,4 @@ #_maps/RandomRuins/SpaceRuins/whiteshipdock.dmm #_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm #_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm +#_maps/RandomRuins/SpaceRuins/bigape.dmm diff --git a/tgstation.dme b/tgstation.dme index 739176a457..7401aaf88e 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -14,6 +14,7 @@ // BEGIN_INCLUDE #include "_maps\_basemap.dm" +#include "_maps\RandomRuins\SpaceRuins\bigape.dmm" #include "code\_compile_options.dm" #include "code\world.dm" #include "code\__DEFINES\_globals.dm" From 9219a2c8136537da681d43b0ee58475840275815 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Sat, 15 Jun 2019 21:17:34 +1200 Subject: [PATCH 067/180] Adding more ruins --- _maps/RandomRuins/SpaceRuins/arcade.dmm | 711 ++++++++++++++++++++++++ _maps/RandomRuins/SpaceRuins/bigape.dmm | 14 +- code/datums/ruins/space.dm | 6 + config/spaceRuinBlacklist.txt | 1 + tgstation.dme | 1 - 5 files changed, 725 insertions(+), 8 deletions(-) create mode 100644 _maps/RandomRuins/SpaceRuins/arcade.dmm diff --git a/_maps/RandomRuins/SpaceRuins/arcade.dmm b/_maps/RandomRuins/SpaceRuins/arcade.dmm new file mode 100644 index 0000000000..771c33c55b --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/arcade.dmm @@ -0,0 +1,711 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/open/floor/plating/asteroid, +/area/ruin/powered) +"c" = ( +/turf/closed/mineral/random/high_chance, +/area/ruin/powered) +"d" = ( +/turf/closed/wall/mineral/titanium/survival/pod, +/area/ruin/powered) +"e" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/engine, +/area/ruin/powered) +"f" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/engine, +/area/ruin/powered) +"g" = ( +/obj/item/coin, +/obj/item/toy/plush/random, +/turf/open/floor/engine, +/area/ruin/powered) +"h" = ( +/obj/effect/mob_spawn/human/corpse/assistant, +/obj/effect/decal/cleanable/blood, +/obj/item/toy/plush/random, +/turf/open/floor/engine, +/area/ruin/powered) +"i" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/item/toy/plush/random, +/turf/open/floor/engine, +/area/ruin/powered) +"j" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"k" = ( +/obj/item/coin/gold, +/turf/open/floor/engine, +/area/ruin/powered) +"l" = ( +/turf/open/floor/engine, +/area/ruin/powered) +"m" = ( +/obj/item/coin/iron, +/turf/open/floor/engine, +/area/ruin/powered) +"n" = ( +/obj/item/toy/plush/random, +/turf/open/floor/engine, +/area/ruin/powered) +"o" = ( +/obj/item/kitchen/knife{ + pixel_x = 5; + pixel_y = 11 + }, +/obj/item/toy/plush/random, +/turf/open/floor/engine, +/area/ruin/powered) +"p" = ( +/turf/closed/wall/mineral/titanium/survival/nodiagonal, +/area/ruin/powered) +"q" = ( +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/ruin/powered) +"r" = ( +/turf/open/floor/light/colour_cycle/dancefloor_a, +/area/ruin/powered) +"s" = ( +/obj/machinery/door/airlock/external/glass, +/obj/structure/fans/tiny, +/turf/open/floor/engine, +/area/ruin/powered) +"t" = ( +/obj/item/trash/chips, +/turf/open/floor/engine, +/area/ruin/powered) +"u" = ( +/obj/item/trash/cheesie, +/turf/open/floor/engine, +/area/ruin/powered) +"v" = ( +/obj/item/coin, +/turf/open/floor/engine, +/area/ruin/powered) +"w" = ( +/obj/item/coin/diamond, +/turf/open/floor/engine, +/area/ruin/powered) +"x" = ( +/obj/machinery/jukebox/disco/indestructible, +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/ruin/powered) +"y" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/ruin/powered) +"z" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"A" = ( +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/engine, +/area/ruin/powered) +"B" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/engine, +/area/ruin/powered) +"C" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/engine, +/area/ruin/powered) +"D" = ( +/obj/item/trash/can, +/turf/open/floor/engine, +/area/ruin/powered) +"E" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/engine, +/area/ruin/powered) +"F" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plating/asteroid, +/area/ruin/powered) +"G" = ( +/obj/structure/chair/sofa/right, +/turf/open/floor/engine, +/area/ruin/powered) +"H" = ( +/obj/structure/chair/sofa/left, +/obj/item/bedsheet/ian, +/turf/open/floor/engine, +/area/ruin/powered) +"I" = ( +/obj/item/aiModule/toyAI, +/turf/open/floor/engine, +/area/ruin/powered) +"J" = ( +/obj/item/twohanded/dualsaber/toy, +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/ruin/powered) +"K" = ( +/obj/item/gun/energy/pumpaction/toy, +/turf/open/floor/engine, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +a +a +a +b +b +b +b +a +a +"} +(4,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +b +a +"} +(5,1,1) = {" +a +a +a +b +b +c +c +c +c +b +b +b +b +b +b +c +c +c +b +b +"} +(6,1,1) = {" +a +a +a +b +c +c +c +c +c +b +b +b +b +c +c +c +c +c +c +b +"} +(7,1,1) = {" +a +a +a +b +c +c +d +d +d +d +d +d +d +d +d +d +c +c +c +b +"} +(8,1,1) = {" +a +a +a +b +c +c +d +e +j +l +l +K +j +G +B +d +c +c +b +b +"} +(9,1,1) = {" +a +a +a +b +c +c +d +e +k +l +v +l +l +H +C +d +c +c +b +a +"} +(10,1,1) = {" +a +a +b +b +c +c +d +e +l +I +l +l +l +k +B +d +c +c +b +a +"} +(11,1,1) = {" +a +a +b +c +c +c +d +e +l +l +w +l +y +d +d +p +c +b +b +a +"} +(12,1,1) = {" +a +a +b +c +c +c +d +e +m +J +r +q +l +A +l +s +b +b +b +a +"} +(13,1,1) = {" +a +b +b +c +c +c +d +f +l +r +x +r +l +d +d +d +b +b +b +a +"} +(14,1,1) = {" +a +b +b +c +c +c +d +e +l +q +r +q +D +A +l +s +b +b +b +a +"} +(15,1,1) = {" +a +b +b +b +c +c +d +e +t +u +l +E +y +d +d +p +b +b +b +a +"} +(16,1,1) = {" +a +b +b +b +c +c +d +e +g +n +t +k +l +l +B +d +c +b +b +a +"} +(17,1,1) = {" +a +b +b +c +c +c +d +e +h +o +D +l +D +l +C +d +c +c +b +b +"} +(18,1,1) = {" +a +a +b +c +c +c +d +e +i +n +E +l +z +m +B +d +c +c +c +b +"} +(19,1,1) = {" +a +a +b +c +c +c +d +d +d +d +d +d +d +d +d +d +c +c +c +b +"} +(20,1,1) = {" +a +a +b +b +c +c +c +c +c +c +b +F +b +c +c +c +c +c +c +b +"} +(21,1,1) = {" +a +a +a +b +c +c +c +c +c +c +b +b +b +c +c +c +c +c +b +b +"} +(22,1,1) = {" +a +a +a +b +b +c +c +c +c +b +b +b +b +b +b +c +c +b +b +a +"} +(23,1,1) = {" +a +a +a +a +b +b +b +b +b +b +a +b +b +b +b +b +b +b +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +a +a +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/bigape.dmm b/_maps/RandomRuins/SpaceRuins/bigape.dmm index 3c13ca6e46..09e85e129d 100644 --- a/_maps/RandomRuins/SpaceRuins/bigape.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigape.dmm @@ -14,13 +14,13 @@ /turf/open/floor/plating/beach/sand, /area/ruin/powered) "e" = ( -/obj/structure/closet/secure_closet/freezer/fridge, /obj/item/reagent_containers/food/snacks/grown/banana, /obj/item/reagent_containers/food/snacks/grown/banana, /obj/item/reagent_containers/food/snacks/grown/banana, /obj/item/reagent_containers/food/snacks/grown/banana, /obj/item/reagent_containers/food/snacks/grown/banana, /obj/structure/fans/tiny/invisible, +/obj/structure/closet/secure_closet/freezer, /turf/open/floor/plating/beach/sand, /area/ruin/powered) "f" = ( @@ -38,11 +38,8 @@ /turf/open/floor/plating/beach/sand, /area/ruin/powered) "h" = ( -/obj/structure/showcase/machinery/tv{ - step_x = 0; - step_y = 0 - }, /obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, /turf/open/floor/plating/beach/sand, /area/ruin/powered) "i" = ( @@ -61,7 +58,6 @@ }, /mob/living/simple_animal/hostile/gorilla{ AIStatus = null; - canmove = 1; desc = "There is no need to be upset."; dir = 4; name = "Familiar Gorilla" @@ -73,6 +69,10 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/plating/beach/sand, /area/ruin/powered) +"m" = ( +/obj/item/grown/bananapeel, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) (1,1,1) = {" a @@ -129,7 +129,7 @@ b e c c -c +m j d b diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index bd2d463eb3..e66673d4f5 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -293,3 +293,9 @@ suffix = "bigape.dmm" name = "Big Ape" description = "A gorilla? Out here? But why." + +/datum/map_template/ruin/space/space_arcade + id = "arcade" + suffix = "arcade.dmm" + name = "Space Arcade" + description = "A lonely arcade in the depths of space." diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index f53ae44a0d..6e74857e66 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -47,3 +47,4 @@ #_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm #_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm #_maps/RandomRuins/SpaceRuins/bigape.dmm +#_maps/RandomRuins/SpaceRuins/arcade.dmm diff --git a/tgstation.dme b/tgstation.dme index 7401aaf88e..739176a457 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -14,7 +14,6 @@ // BEGIN_INCLUDE #include "_maps\_basemap.dm" -#include "_maps\RandomRuins\SpaceRuins\bigape.dmm" #include "code\_compile_options.dm" #include "code\world.dm" #include "code\__DEFINES\_globals.dm" From c0d3ddceebd26d8d6605374d88e7222e5cf1cffb Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 15 Jun 2019 22:59:24 -0400 Subject: [PATCH 068/180] Update uplink_kits.dm --- .../game/objects/items/storage/uplink_kits.dm | 52 ++++++++++++------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 69c8f7aee9..a6a3cea373 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -2,7 +2,7 @@ /obj/item/storage/box/syndicate/PopulateContents() switch (pickweight(list("bloodyspai" = 3, "stealth" = 2, "bond" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "darklord" = 1, "sniper" = 1, "metaops" = 1, "ninja" = 1))) - if("bloodyspai") // 27 tc now this is more right + if("bloodyspai") // 30 tc now this is more right new /obj/item/clothing/under/chameleon(src) // 2 tc since it's not the full set new /obj/item/clothing/mask/chameleon(src) // Goes with above new /obj/item/card/id/syndicate(src) // 2 tc @@ -11,7 +11,7 @@ new /obj/item/multitool/ai_detect(src) // 1 tc new /obj/item/encryptionkey/syndicate(src) // 2 tc new /obj/item/reagent_containers/syringe/mulligan(src) // 4 tc - new /obj/item/switchblade(src) //I'll count this as 2 tc + new /obj/item/switchblade(src) //I'll count this as 5 tc new /obj/item/storage/fancy/cigarettes/cigpack_syndicate (src) // 2 tc this shit heals new /obj/item/flashlight/emp(src) // 2 tc new /obj/item/chameleon(src) // 7 tc @@ -25,13 +25,13 @@ new /obj/item/clothing/glasses/thermal/syndi(src) if("bond") // 29 tc - new /obj/item/gun/ballistic/automatic/pistol(src) - new /obj/item/suppressor(src) + new /obj/item/gun/ballistic/automatic/pistol/suppressed(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/clothing/under/chameleon(src) new /obj/item/card/id/syndicate(src) new /obj/item/reagent_containers/syringe/stimulants(src) + new /obj/item/clothing/neck/tie/red(src) if("screwed") // 29 tc new /obj/item/sbeacondrop/bomb(src) @@ -41,7 +41,7 @@ new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) new /obj/item/encryptionkey/syndicate(src) - if("guns") // 28 tc now + if("guns") // 30 tc now new /obj/item/gun/ballistic/revolver(src) new /obj/item/ammo_box/a357(src) new /obj/item/ammo_box/a357(src) @@ -50,39 +50,53 @@ new /obj/item/clothing/gloves/color/latex/nitrile(src) new /obj/item/clothing/mask/gas/clown_hat(src) new /obj/item/clothing/under/suit_jacket/really_black(src) + new /obj/item/screwdriver/power(src) //2 tc item - if("murder") // 28 tc now + if("murder") // 35 tc now new /obj/item/melee/transforming/energy/sword/saber(src) new /obj/item/clothing/glasses/thermal/syndi(src) new /obj/item/card/emag(src) new /obj/item/clothing/shoes/chameleon/noslip(src) new /obj/item/encryptionkey/syndicate(src) new /obj/item/grenade/syndieminibomb(src) + new /obj/item/clothing/glasses/phantomthief/syndicate(src) + new /obj/item/reagent_containers/syringe/stimulants(src) - if("implant") // 55+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it? + if("implant") // 67+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it? new /obj/item/implanter/freedom(src) new /obj/item/implanter/uplink/precharged(src) new /obj/item/implanter/emp(src) new /obj/item/implanter/adrenalin(src) new /obj/item/implanter/explosive(src) new /obj/item/implanter/storage(src) + new /obj/item/implanter/radio/syndicate(src) + new /obj/item/implanter/stealth(src) - if("hacker") // 26 tc + if("hacker") // 30 tc new /obj/item/aiModule/syndicate(src) new /obj/item/card/emag(src) new /obj/item/encryptionkey/binary(src) new /obj/item/aiModule/toyAI(src) new /obj/item/multitool/ai_detect(src) + new /obj/item/flashlight/emp(src) + new /obj/item/emagrecharge(src) - if("lordsingulo") // 24 tc - new /obj/item/sbeacondrop(src) - new /obj/item/clothing/suit/space/syndicate/black/red(src) - new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) - new /obj/item/card/emag(src) + if("lordsingulo") // "36" tc aka 23 tc + new /obj/item/sbeacondrop(src) // 14 kinda useless + new /obj/item/clothing/suit/space/syndicate/black/red(src) //2 + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) //2 + new /obj/item/card/emag(src) //6 + new /obj/item/emagrecharge(src) //2 + new /obj/item/storage/toolbox/syndicate(src) //1 + new /obj/item/card/id/syndicate(src) //2 + new /obj/item/flashlight/emp(src) //2 + new /obj/item/jammer(src) //5 - if("sabotage") // 26 tc now + if("sabotage") // ~28 tc now new /obj/item/grenade/plastic/c4 (src) new /obj/item/grenade/plastic/c4 (src) + new /obj/item/grenade/plastic/x4 (src) + new /obj/item/grenade/plastic/x4 (src) new /obj/item/doorCharge(src) new /obj/item/doorCharge(src) new /obj/item/camera_bug(src) @@ -117,15 +131,15 @@ new /obj/item/grenade/plastic/c4 (src) // 1 tc new /obj/item/card/emag(src) // 6 tc - if("ninja") // 33 tc worth - new /obj/item/katana(src) // Unique , hard to tell how much tc this is worth. 8 tc? + if("ninja") // 40~ tc worth + new /obj/item/katana(src) // Unique , basicly a better esword. 10 tc? new /obj/item/implanter/adrenalin(src) // 8 tc new /obj/item/throwing_star(src) // ~5 tc for all 6 new /obj/item/throwing_star(src) new /obj/item/throwing_star(src) - new /obj/item/throwing_star(src) - new /obj/item/throwing_star(src) - new /obj/item/throwing_star(src) + new /obj/item/implanter/emp(src) + new /obj/item/grenade/smokebomb(src) + new /obj/item/grenade/smokebomb(src) new /obj/item/storage/belt/chameleon(src) // Unique but worth at least 2 tc new /obj/item/card/id/syndicate(src) // 2 tc new /obj/item/chameleon(src) // 7 tc From b5e3da68bd0f4a76e7054ca7d7f2943ae7375a67 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 16 Jun 2019 08:45:37 +0200 Subject: [PATCH 069/180] Ports "areas_in_z after start population fix" --- code/__HELPERS/areas.dm | 2 ++ code/controllers/subsystem/mapping.dm | 7 ++++++- code/game/area/areas.dm | 13 ++++++++----- code/modules/mapping/map_template.dm | 3 +++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index f05bf6f3e1..1f5b82f7bf 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -86,6 +86,8 @@ newA.contents += thing thing.change_area(old_area, newA) + newA.reg_in_areas_in_z() + var/list/firedoors = oldA.firedoors for(var/door in firedoors) var/obj/machinery/door/firedoor/FD = door diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index a2c60618ac..9eb71c9059 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -495,4 +495,9 @@ GLOBAL_LIST_EMPTY(the_station_areas) clearing |= used_turfs //used turfs is an associative list, BUT, reserve_turfs() can still handle it. If the code above works properly, this won't even be needed as the turfs would be freed already. unused_turfs.Cut() used_turfs.Cut() - reserve_turfs(clearing) \ No newline at end of file + reserve_turfs(clearing) + +/datum/controller/subsystem/mapping/proc/reg_in_areas_in_z(list/areas) + for(var/B in areas) + var/area/A = B + A.reg_in_areas_in_z() diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 10650153d6..099b1b2f9c 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -120,6 +120,14 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(!IS_DYNAMIC_LIGHTING(src)) add_overlay(/obj/effect/fullbright) + reg_in_areas_in_z() + + return INITIALIZE_HINT_LATELOAD + +/area/LateInitialize() + power_change() // all machines set to current power level, also updates icon + +/area/proc/reg_in_areas_in_z() if(contents.len) var/list/areas_in_z = SSmapping.areas_in_z var/z @@ -137,11 +145,6 @@ GLOBAL_LIST_EMPTY(teleportlocs) areas_in_z["[z]"] = list() areas_in_z["[z]"] += src - return INITIALIZE_HINT_LATELOAD - -/area/LateInitialize() - power_change() // all machines set to current power level, also updates icon - /area/Destroy() if(GLOB.areas_by_type[type] == src) GLOB.areas_by_type[type] = null diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index ceba29baec..1f55f18823 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -29,6 +29,7 @@ var/list/obj/machinery/atmospherics/atmos_machines = list() var/list/obj/structure/cable/cables = list() var/list/atom/atoms = list() + var/list/area/areas = list() var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) @@ -37,6 +38,7 @@ for(var/L in turfs) var/turf/B = L atoms += B + areas |= B.loc for(var/A in B) atoms += A if(istype(A, /obj/structure/cable)) @@ -48,6 +50,7 @@ var/turf/T = L T.air_update_turf(TRUE) //calculate adjacent turfs along the border to prevent runtimes + SSmapping.reg_in_areas_in_z(areas) SSatoms.InitializeAtoms(atoms) SSmachines.setup_template_powernets(cables) SSair.setup_template_machinery(atmos_machines) From fcd093f566cd1f3ecebfea6e9dabd027b076e728 Mon Sep 17 00:00:00 2001 From: Jay Date: Sun, 16 Jun 2019 02:11:00 -0500 Subject: [PATCH 070/180] commjacket --- icons/mob/custom_w.dmi | Bin 34404 -> 34662 bytes icons/obj/custom.dmi | Bin 22775 -> 23380 bytes .../code/modules/client/loadout/__donator.dm | 8 +++++++- .../modules/custom_loadout/custom_items.dm | 11 +++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi index e9bbbc4d4576915dd55d4f396469d9131daccc21..22f5e8597718b67b7398ee64b4cf8c6b8fa0596c 100644 GIT binary patch delta 14612 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 ARsaA1 delta 3858 zcmV+t5AE>OwgLCC0gx7d0N@A)0002&LAX!=00Gi^R9JLGWpiV4X>fFDZ*Bkpc$}4$ zF>m8A425U=R|xHz9O`R^Tf7tr4jIy^yFp8|#h8%{N_LR^`Wp;f)5953HyijwQtv&} z&+6^)`}nT*r(-#z1oBSRYWL%%EUsjtRkeEkSr!(lw{dw15hAL8T0LoOr>C+oBtg}x zDvM6wg3I$?NTv`7T*nZGBpf0lV-g!NYR?R^4N+)J9|#e6KuL1FXVcti9Q`-Y#=HO1 zyRtCIa8tFaHr1xuJRHCKOB*yumuy6?TP~YLvWK+H8bo}|V|mgRLU;HRm5Cu?P}BvE9mm5Vb{a7Hg7KTlU@v znwVkAqGZdUhvXRJ)O9x_7(%kF0U0z1jG)sq7?2@YglNBkZVku~pq0$}S>*BKaJrI< zD7_%MypJG6M9y1bBaA2((iV!*9#(@<&iM_MEX049>(?a(&v( zj-l6(u}XQ;!|nVfODp7_W^&kwZ!z6JSdgL7>@yN_@iPiAr>hE@-m^J_9&pu>2dRJk zqx5}Z!n}xlqD|WS1%@#R4s`Ku^=I^~4)1%lKOM_II#EYwfV%j6001BWNklpc(J% zB<<8pCT%yhYv;MaV^1Cvw^@&4Q6~0!-G@8brAZ*u)UF>i@h0i6ov}NabpvImGj*cY zaZ(o?J3Nd53j;D>^OEkje_SLGh=;Hg0oHFubGgrRk?uL)`ObIlcN(s6f42BV63feJ zZEfdbvx(N$b`s0WIa~Z9Z4L8pNIX^-AV!San3x9;BgSn^%mBoQaT^me05M|R#>5Oj zj2O2uF#`}I#%;{Jd>uGO^w|2uQ&RCNNF*Qtb$URF;Ei7$h$^$4W+Af1FzbsyQZkOES z_>uh2S1RQm$B*Po&+Ur1{P9(Wva_?L%jJ^U+1YZc;}!~DKq5&ArWkP}JY=I2-X*PYH1s;f85>bVcO3s6*4B-N^G zA2WVgQ&ST$R>fUp~ZW5g>eCRt5aQ<8!w%iU|EK!_ShYHr163zwxQ&3665q7j zIXO82wFiA(e?eAO7FVuZiI^Ag-P&5ptX6Cehx}e`E!BV>I8s36K8EQwvLelo{LNKkbA!#uPbl=0m=7 zbi318g56#vXKDoI{3yU!<*%=6WYy|i0D3yzba%Mvf9Z4ss^ZtzHFEx39S?oy0l&u( zE`$*D_NtR{UcY{Q!Uv$Y_iBJ=5KbHphb*&N0ktaZk;1}JC+;Yj%a@KB6r@ z+KhMif2UG@fc*SQ^7AWa>@iI10gUh4&(zHiXH4MyxjL#p_`ScC-?jT+CtTOKTmG zO{}-ur7cXO5!bpq$y}7htLq;oxBfgC<|O}IfBny&c$e3T)!K_XsgM$vz%?;Qd}0FD z%tiRd=;yQiso3|!m*w#Auz%gLH~if%ACtBG5V+lUYzZ@CN)N!N#N(s<(~Sa5c3!9) zs5&WaxjEF=H3ImTlQH%y?J>}C1FGtY)i=GfN1gc6)iRjr-* zP#L7qq0^}z^F}^1_5!9f0KuaBQ;h;le|6ri(AM0{&K+AsTXQq#&(#Gz=KQ(3fa4;G z$z%#}|4k-SMC23~7fYY3Uk$9gyO!-6YXgjcPx-fRtYzKZfpLN2;^JF+7`+}31D+uS z0*zjsiCLqM=QlYksJ| z(^)d(QfSk50VXQ(#}pNJ*)id^>vLC&c78l zZ{93Ht=3{PnI2ye}%>HtzNwvfQ$-Y3#?fM`;Qg^swZ%=pa9!Q_hbLj zLbh+LrQUb^(b4l~iv)BUEgGRggG51)Y}9izJ^?g3{&G(N$$$EY0i6zu(ZFfjSJ`&_ zU4HV7Z(+^MKv5(fCAh~lALNgx;0H>FKo6{rP-aHuQbY$n$f6n}P_kX76 z`3N}%pfdd^z?YF1@MV&in8>naUt`gtMPy`TV6|E)Dk`F;rUsYG#nr1V_*tE($4 z^7L-I+`bXg7r_tqtzmEVE27eFmlVSGjkWAQTF99*XZ)@I{-cGwy#-3DtHsV8&&!|e zsHLM_z0Pp*?BW3fgG1=Fe|mHp4GQWd+ylcT-~IQb_zt>%oqxMKZ!H({)?z`@f1{to z#01I3HE8uvP*A}2>(~A3KF)mnS-|S^lg0DL+40;C`(Ee-d;Fd8Htuf&p+NOyP7>;%sd`N8zAT3B;*y=m8$U^gF@WM3pfJk9_S+{MOD7u{sAtv zw_r_9Co?IP>{KhwT^*#xC!*8q`LB15bML*A*RY=t^5+`CTK@55eGu9;=hfSQFFm(Q zW-MRI)rQLxQh|Nj|Ls5aESR{%cq;97`Og*b_7>F`f4rZT#yXb^lUB?6SG^qHre*W# z@ED+tk8F_Z{^5Rv&|oqcxYm0egHA_+!GM&KKmO&XCX1Q=o?coSFOZg+iOFK7 zr_)Vme^=Y|7n#SHv|7>^c~Omkmx6)3*(&5e{-ye&2wie{%ZF8P<8#mS1)MyLK=Cl- zRY)|%sl9M1Fqs0CD&D9Li3(s?QP6umXpo#cdycsJng^q|v7kX{fP7#WJYJTBJK*w(_Z ze=pm8Q1Z}!?wKLI z3LmyxS#RqiHPg(Y8ikaE6mAX;`hxKR=yW;;Jwq6^dWJlM3=V7f_Sc4Sx48NAlRvX` z#Y!x3(+9BTiu}2XuWxU+mrVE;M)%D;e^vl74WJ zdV?7MneDY=1|UXI$}1~GLsJ7^G&S;0T>?vVmk?v7;2e*T3Lei*mTE6?;*uF>eEkJJ zyLgejyVuO>;f%KY+l6^G3>YIiYQBJ2(jjio8TxsXX+mkEle3ZYCiFp7qV%*03KM_|& Uvas6x82|tP07*qoM6N<$g2qsgga7~l diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 1e17736380..d04126914e 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -397,4 +397,10 @@ datum/gear/darksabresheath name = "Kimono" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/kimono - ckeywhitelist = list("sfox63") \ No newline at end of file + ckeywhitelist = list("sfox63") + +/datum/gear/commjacket + name = "TBD Name" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/suit/commjacket + ckeywhitelist = list("TBD") \ No newline at end of file diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index c43b8f3ce1..7032d7da81 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -494,3 +494,14 @@ icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION + +/obj/item/clothing/suit/commjacket + name = "TBD" + desc = "TBD." + icon_state = "commjacket" + item_state = "commjacket" + icon = 'icons/obj/custom.dmi' + alternate_worn_icon = 'icons/mob/custom_w.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + + From 5716ea7a4b79bc8d1966ee9d6b64aed3135ed07d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 16 Jun 2019 10:22:07 -0400 Subject: [PATCH 071/180] Update shields.dm --- code/game/objects/items/shields.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index e9f3a602df..e70e8553ed 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -173,5 +173,6 @@ icon_state = "metal" block_chance = 75 //1/4 shots will hit* force = 10 + slowdown = 2 throwforce = 15 //Massive pice of metal w_class = WEIGHT_CLASS_HUGE From b78222690044f364400d344abc8caa2fb4a57435 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 00:19:57 +0200 Subject: [PATCH 072/180] ports "Componentizes orbiting" --- code/__DEFINES/components.dm | 1 + code/__DEFINES/subsystems.dm | 1 - code/controllers/subsystem/augury.dm | 2 +- code/controllers/subsystem/orbit.dm | 44 ----- code/datums/components/orbiter.dm | 156 ++++++++++++++++++ code/game/atoms.dm | 2 + code/game/atoms_movable.dm | 14 +- code/modules/antagonists/cult/cult_comms.dm | 5 +- .../mining/lavaland/necropolis_chests.dm | 52 +++--- code/modules/mob/dead/observer/observer.dm | 9 +- code/modules/mob/mob.dm | 8 +- code/modules/orbit/orbit.dm | 135 --------------- code/modules/power/tesla/energy_ball.dm | 8 +- tgstation.dme | 3 +- 14 files changed, 205 insertions(+), 235 deletions(-) delete mode 100644 code/controllers/subsystem/orbit.dm create mode 100644 code/datums/components/orbiter.dm delete mode 100644 code/modules/orbit/orbit.dm diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index dbe8cfbb62..210bdf57a6 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -130,6 +130,7 @@ #define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) #define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" //from base of mob/RangedAttack(): (atom/A, params) #define COMSIG_MOB_THROW "mob_throw" //from base of /mob/throw_item(): (atom/target) +#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" //from base of /mob/update_sight(): () // /mob/living signals #define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index f54a0542f4..ecd1ef1e21 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -102,7 +102,6 @@ #define FIRE_PRIORITY_SPACEDRIFT 30 #define FIRE_PRIORITY_FIELDS 30 #define FIRE_PRIOTITY_SMOOTHING 35 -#define FIRE_PRIORITY_ORBIT 35 #define FIRE_PRIORITY_NETWORKS 40 #define FIRE_PRIORITY_OBJ 40 #define FIRE_PRIORITY_ACID 40 diff --git a/code/controllers/subsystem/augury.dm b/code/controllers/subsystem/augury.dm index 875f1ee7d3..1b1c7bc3b7 100644 --- a/code/controllers/subsystem/augury.dm +++ b/code/controllers/subsystem/augury.dm @@ -50,7 +50,7 @@ SUBSYSTEM_DEF(augury) watchers -= w continue var/mob/dead/observer/O = w - if(biggest_doom && (!O.orbiting || O.orbiting.orbiting != biggest_doom)) + if(biggest_doom && (!O.orbiting || O.orbiting.parent != biggest_doom)) O.ManualFollow(biggest_doom) /datum/action/innate/augury diff --git a/code/controllers/subsystem/orbit.dm b/code/controllers/subsystem/orbit.dm deleted file mode 100644 index 45d280b601..0000000000 --- a/code/controllers/subsystem/orbit.dm +++ /dev/null @@ -1,44 +0,0 @@ -SUBSYSTEM_DEF(orbit) - name = "Orbits" - priority = FIRE_PRIORITY_ORBIT - wait = 2 - flags = SS_NO_INIT|SS_TICKER - - var/list/currentrun = list() - var/list/processing = list() - -/datum/controller/subsystem/orbit/stat_entry() - ..("P:[processing.len]") - - -/datum/controller/subsystem/orbit/fire(resumed = 0) - if (!resumed) - src.currentrun = processing.Copy() - - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while (currentrun.len) - var/datum/orbit/O = currentrun[currentrun.len] - currentrun.len-- - if (!O) - processing -= O - if (MC_TICK_CHECK) - return - continue - if (!O.orbiter) - qdel(O) - if (MC_TICK_CHECK) - return - continue - if (O.lastprocess >= world.time) //we already checked recently - if (MC_TICK_CHECK) - return - continue - var/targetloc = get_turf(O.orbiting) - if (targetloc != O.lastloc || O.orbiter.loc != targetloc) - O.Check(targetloc) - if (MC_TICK_CHECK) - return - - diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm new file mode 100644 index 0000000000..301e50dc42 --- /dev/null +++ b/code/datums/components/orbiter.dm @@ -0,0 +1,156 @@ +/datum/component/orbiter + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + var/list/orbiters + var/datum/callback/orbiter_spy + var/datum/callback/orbited_spy + +//radius: range to orbit at, radius of the circle formed by orbiting (in pixels) +//clockwise: whether you orbit clockwise or anti clockwise +//rotation_speed: how fast to rotate (how many ds should it take for a rotation to complete) +//rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default. +//pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts +/datum/component/orbiter/Initialize(atom/movable/orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) + if(!istype(orbiter) || !isatom(parent) || isarea(parent)) + return COMPONENT_INCOMPATIBLE + + orbiters = list() + orbiter_spy = CALLBACK(src, .proc/orbiter_move_react) + orbited_spy = CALLBACK(src, .proc/move_react) + + var/atom/master = parent + master.orbiters = src + + begin_orbit(orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) + +/datum/component/orbiter/RegisterWithParent() + var/atom/target = parent + while(ismovableatom(target)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, orbited_spy) + target = target.loc + +/datum/component/orbiter/UnregisterFromParent() + var/atom/target = parent + while(ismovableatom(target)) + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + target = target.loc + +/datum/component/orbiter/Destroy() + var/atom/master = parent + master.orbiters = null + for(var/i in orbiters) + end_orbit(i) + orbiters = null + QDEL_NULL(orbiter_spy) + QDEL_NULL(orbited_spy) + return ..() + +/datum/component/orbiter/InheritComponent(datum/component/orbiter/newcomp, original, list/arguments) + if(arguments) + begin_orbit(arglist(arguments)) + return + // The following only happens on component transfers + orbiters += newcomp.orbiters + +/datum/component/orbiter/PostTransfer() + if(!isatom(parent) || isarea(parent) || !get_turf(parent)) + return COMPONENT_INCOMPATIBLE + move_react() + +/datum/component/orbiter/proc/begin_orbit(atom/movable/orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) + if(orbiter.orbiting) + if(orbiter.orbiting == src) + orbiter.orbiting.end_orbit(orbiter, TRUE) + else + orbiter.orbiting.end_orbit(orbiter) + orbiters[orbiter] = TRUE + orbiter.orbiting = src + RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, orbiter_spy) + var/matrix/initial_transform = matrix(orbiter.transform) + + // Head first! + if(pre_rotation) + var/matrix/M = matrix(orbiter.transform) + var/pre_rot = 90 + if(!clockwise) + pre_rot = -90 + M.Turn(pre_rot) + orbiter.transform = M + + var/matrix/shift = matrix(orbiter.transform) + shift.Translate(0, radius) + orbiter.transform = shift + + orbiter.SpinAnimation(rotation_speed, -1, clockwise, rotation_segments, parallel = FALSE) + + //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit + orbiter.transform = initial_transform + orbiter.forceMove(get_turf(parent)) + to_chat(orbiter, "Now orbiting [parent].") + +/datum/component/orbiter/proc/end_orbit(atom/movable/orbiter, refreshing=FALSE) + if(!orbiters[orbiter]) + return + UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED) + orbiter.SpinAnimation(0, 0) + orbiters -= orbiter + orbiter.stop_orbit(src) + orbiter.orbiting = null + if(!refreshing && !length(orbiters) && !QDELING(src)) + qdel(src) + +// This proc can receive signals by either the thing being directly orbited or anything holding it +/datum/component/orbiter/proc/move_react(atom/orbited, atom/oldloc, direction) + set waitfor = FALSE // Transfer calls this directly and it doesnt care if the ghosts arent done moving + + var/atom/movable/master = parent + if(master.loc == oldloc) + return + + var/turf/newturf = get_turf(master) + if(!newturf) + qdel(src) + + // Handling the signals of stuff holding us (or not anymore) + // These are prety rarely activated, how often are you following something in a bag? + if(oldloc && !isturf(oldloc)) // We used to be registered to it, probably + var/atom/target = oldloc + while(ismovableatom(target)) + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + target = target.loc + if(orbited?.loc && orbited.loc != newturf) // We want to know when anything holding us moves too + var/atom/target = orbited.loc + while(ismovableatom(target)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, orbited_spy, TRUE) + target = target.loc + + var/atom/curloc = master.loc + for(var/i in orbiters) + var/atom/movable/thing = i + if(QDELETED(thing) || thing.loc == newturf) + continue + thing.forceMove(newturf) + if(CHECK_TICK && master.loc != curloc) + // We moved again during the checktick, cancel current operation + break + + +/datum/component/orbiter/proc/orbiter_move_react(atom/movable/orbiter, atom/oldloc, direction) + if(orbiter.loc == get_turf(parent)) + return + end_orbit(orbiter) + +///////////////////// + +/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE) + if(!istype(A) || !get_turf(A) || A == src) + return + + return A.AddComponent(/datum/component/orbiter, src, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) + +/atom/movable/proc/stop_orbit(datum/component/orbiter/orbits) + return // We're just a simple hook + +/atom/proc/transfer_observers_to(atom/target) + if(!orbiters || !istype(target) || !get_turf(target) || target == src) + return + target.TakeComponent(orbiters) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 81e2371f9a..f2eb23808e 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -31,6 +31,8 @@ var/list/filter_data //For handling persistent filters + var/datum/component/orbiter/orbiters + var/rad_flags = NONE // Will move to flags_1 when i can be arsed to var/rad_insulation = RAD_NO_INSULATION diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index c37c120b93..f88f4f8e41 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -31,6 +31,7 @@ var/atom/movable/pulling var/grab_state = 0 var/throwforce = 0 + var/datum/component/orbiter/orbiting var/can_be_z_moved = TRUE /atom/movable/vv_edit_var(var_name, var_value) @@ -296,14 +297,7 @@ if (length(client_mobs_in_contents)) update_parallax_contents() - if (orbiters) - for (var/thing in orbiters) - var/datum/orbit/O = thing - O.Check() - if (orbiting) - orbiting.Check() - - return 1 + return TRUE /atom/movable/Destroy(force) QDEL_NULL(proximity_monitor) @@ -325,6 +319,10 @@ if(pulledby) pulledby.stop_pulling() + if(orbiting) + orbiting.end_orbit(src) + orbiting = null + // Make sure you know what you're doing if you call this, this is intended to only be called by byond directly. // You probably want CanPass() /atom/movable/Cross(atom/movable/AM) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 8452f78ed3..761412e9f8 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -342,10 +342,7 @@ if(cooldown>world.time) to_chat(owner, "You aren't ready to place another blood mark yet!") return - if(owner.orbiting && owner.orbiting.orbiting) - target = owner.orbiting.orbiting - else - target = get_turf(owner) + target = owner.orbiting?.parent || get_turf(owner) if(!target) return C.cult_team.blood_target = target diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 0990ca961a..eaac1984e3 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -273,23 +273,12 @@ to_chat(user, "You release the wisp. It begins to bob around your head.") icon_state = "lantern" wisp.orbit(user, 20) - user.update_sight() SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Freed") else to_chat(user, "You return the wisp to the lantern.") - - var/mob/target - if(wisp.orbiting) - target = wisp.orbiting.orbiting - wisp.stop_orbit() - wisp.forceMove(src) - - if (istype(target)) - target.update_sight() - to_chat(target, "Your vision returns to normal.") - icon_state = "lantern-blue" + wisp.forceMove(src) SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned") /obj/item/wisp_lantern/Initialize() @@ -302,7 +291,7 @@ qdel(wisp) else wisp.visible_message("[wisp] has a sad feeling for a moment, then it passes.") - ..() + return ..() /obj/effect/wisp name = "friendly wisp" @@ -314,6 +303,25 @@ var/sight_flags = SEE_MOBS var/lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE +/obj/effect/wisp/orbit(atom/thing, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lockinorbit) + . = ..() + if(ismob(thing)) + RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, .proc/update_user_sight) + var/mob/being = thing + being.update_sight() + to_chat(thing, "The wisp enhances your vision.") + +/obj/effect/wisp/stop_orbit(datum/component/orbiter/orbits) + . = ..() + if(ismob(orbits.parent)) + UnregisterSignal(orbits.parent, COMSIG_MOB_UPDATE_SIGHT) + to_chat(orbits.parent, "Your vision returns to normal.") + +/obj/effect/wisp/proc/update_user_sight(mob/user) + user.sight |= sight_flags + if(!isnull(lighting_alpha)) + user.lighting_alpha = min(user.lighting_alpha, lighting_alpha) + //Red/Blue Cubes /obj/item/warp_cube name = "blue cube" @@ -781,19 +789,17 @@ var/turf/T = get_turf(src) var/list/contents = T.GetAllContents() var/mob/dead/observer/current_spirits = list() - var/list/orbiters = list() for(var/thing in contents) var/atom/A = thing - if (A.orbiters) - orbiters += A.orbiters + A.transfer_observers_to(src) - for(var/thing in orbiters) - var/datum/orbit/O = thing - if (isobserver(O.orbiter)) - var/mob/dead/observer/G = O.orbiter - ghost_counter++ - G.invisibility = 0 - current_spirits |= G + for(var/i in orbiters?.orbiters) + if(!isobserver(i)) + continue + var/mob/dead/observer/G = i + ghost_counter++ + G.invisibility = 0 + current_spirits |= G for(var/mob/dead/observer/G in spirits - current_spirits) G.invisibility = GLOB.observer_default_invisibility diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 55b8891534..8bfba07fe4 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -429,9 +429,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/orbitsize = (I.Width()+I.Height())*0.5 orbitsize -= (orbitsize/world.icon_size)*(world.icon_size*0.25) - if(orbiting && orbiting.orbiting != target) - to_chat(src, "Now orbiting [target].") - var/rot_seg switch(ghost_orbit) @@ -450,10 +447,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/orbit() setDir(2)//reset dir so the right directional sprites show up - ..() + return ..() -/mob/dead/observer/stop_orbit() - ..() +/mob/dead/observer/stop_orbit(datum/component/orbiter/orbits) + . = ..() //restart our floating animation after orbit is done. pixel_y = 0 animate(src, pixel_y = 2, time = 10, loop = -1) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7ff8fbc0b1..641c80f188 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -871,13 +871,7 @@ return /mob/proc/update_sight() - for(var/O in orbiters) - var/datum/orbit/orbit = O - var/obj/effect/wisp/wisp = orbit.orbiter - if (istype(wisp)) - sight |= wisp.sight_flags - if(!isnull(wisp.lighting_alpha)) - lighting_alpha = min(lighting_alpha, wisp.lighting_alpha) + SEND_SIGNAL(src, COMSIG_MOB_UPDATE_SIGHT) sync_lighting_plane_alpha() diff --git a/code/modules/orbit/orbit.dm b/code/modules/orbit/orbit.dm deleted file mode 100644 index 79685b9104..0000000000 --- a/code/modules/orbit/orbit.dm +++ /dev/null @@ -1,135 +0,0 @@ -/datum/orbit - var/atom/movable/orbiter - var/atom/orbiting - var/lock = TRUE - var/turf/lastloc - var/lastprocess - -/datum/orbit/New(_orbiter, _orbiting, _lock) - orbiter = _orbiter - orbiting = _orbiting - SSorbit.processing += src - if (!orbiting.orbiters) - orbiting.orbiters = list() - orbiting.orbiters += src - - if (orbiter.orbiting) - orbiter.stop_orbit() - orbiter.orbiting = src - Check() - lock = _lock - -//do not qdel directly, use stop_orbit on the orbiter. (This way the orbiter can bind to the orbit stopping) -/datum/orbit/Destroy(force = FALSE) - SSorbit.processing -= src - if (orbiter) - orbiter.orbiting = null - orbiter = null - if (orbiting) - if (orbiting.orbiters) - orbiting.orbiters -= src - if (!orbiting.orbiters.len)//we are the last orbit, delete the list - orbiting.orbiters = null - orbiting = null - return ..() - -/datum/orbit/proc/Check(turf/targetloc, list/checked_already = list()) - //Avoid infinite loops for people who end up orbiting themself through another orbiter - checked_already[src] = TRUE - if (!orbiter) - qdel(src) - return - if (!orbiting) - orbiter.stop_orbit() - return - if (!orbiter.orbiting) //admin wants to stop the orbit. - orbiter.orbiting = src //set it back to us first - orbiter.stop_orbit() - var/atom/movable/AM = orbiting - if(istype(AM) && AM.orbiting && AM.orbiting.orbiting == orbiter) - orbiter.stop_orbit() - return - lastprocess = world.time - if (!targetloc) - targetloc = get_turf(orbiting) - if (!targetloc || (!lock && orbiter.loc != lastloc && orbiter.loc != targetloc)) - orbiter.stop_orbit() - return - var/turf/old_turf = get_turf(orbiter) - var/turf/new_turf = get_turf(targetloc) - if (old_turf?.z != new_turf?.z) - orbiter.onTransitZ(old_turf?.z, new_turf?.z) - // DO NOT PORT TO FORCEMOVE - MEMECODE WILL KILL MC - orbiter.loc = targetloc - orbiter.update_parallax_contents() - orbiter.update_light() - lastloc = orbiter.loc - for(var/other_orbit in orbiter.orbiters) - var/datum/orbit/OO = other_orbit - //Skip if checked already - if(checked_already[OO]) - continue - OO.Check(targetloc, checked_already) - -/atom/movable/var/datum/orbit/orbiting = null -/atom/var/list/orbiters = null - -//A: atom to orbit -//radius: range to orbit at, radius of the circle formed by orbiting (in pixels) -//clockwise: whether you orbit clockwise or anti clockwise -//rotation_speed: how fast to rotate (how many ds should it take for a rotation to complete) -//rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default. -//pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts -//lockinorbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts) - -/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE) - if (!istype(A)) - return - - new/datum/orbit(src, A, lockinorbit) - if (!orbiting) //something failed, and our orbit datum deleted itself - return - var/matrix/initial_transform = matrix(transform) - - //Head first! - if (pre_rotation) - var/matrix/M = matrix(transform) - var/pre_rot = 90 - if(!clockwise) - pre_rot = -90 - M.Turn(pre_rot) - transform = M - - var/matrix/shift = matrix(transform) - shift.Translate(0,radius) - transform = shift - - SpinAnimation(rotation_speed, -1, clockwise, rotation_segments) - - //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit - transform = initial_transform - -/atom/movable/proc/stop_orbit() - SpinAnimation(0,0) - qdel(orbiting) - -/atom/Destroy(force = FALSE) - . = ..() - if (orbiters) - for (var/thing in orbiters) - var/datum/orbit/O = thing - if (O.orbiter) - O.orbiter.stop_orbit() - -/atom/movable/Destroy(force = FALSE) - . = ..() - if (orbiting) - stop_orbit() - -/atom/movable/proc/transfer_observers_to(atom/movable/target) - if(orbiters) - for(var/thing in orbiters) - var/datum/orbit/O = thing - if(O.orbiter && isobserver(O.orbiter)) - var/mob/dead/observer/D = O.orbiter - D.ManualFollow(target) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 0a54bcab33..a5aa47f365 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -33,8 +33,8 @@ return /obj/singularity/energy_ball/Destroy() - if(orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball)) - var/obj/singularity/energy_ball/EB = orbiting.orbiting + if(orbiting && istype(orbiting.parent, /obj/singularity/energy_ball)) + var/obj/singularity/energy_ball/EB = orbiting.parent EB.orbiting_balls -= src for(var/ball in orbiting_balls) @@ -146,8 +146,8 @@ . = ..() /obj/singularity/energy_ball/stop_orbit() - if (orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball)) - var/obj/singularity/energy_ball/orbitingball = orbiting.orbiting + if (orbiting && istype(orbiting.parent, /obj/singularity/energy_ball)) + var/obj/singularity/energy_ball/orbitingball = orbiting.parent orbitingball.orbiting_balls -= src orbitingball.dissipate_strength = orbitingball.orbiting_balls.len ..() diff --git a/tgstation.dme b/tgstation.dme index e33566290c..aac4356e7d 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -247,7 +247,6 @@ #include "code\controllers\subsystem\moods.dm" #include "code\controllers\subsystem\nightshift.dm" #include "code\controllers\subsystem\npcpool.dm" -#include "code\controllers\subsystem\orbit.dm" #include "code\controllers\subsystem\overlays.dm" #include "code\controllers\subsystem\pai.dm" #include "code\controllers\subsystem\parallax.dm" @@ -360,6 +359,7 @@ #include "code\datums\components\mood.dm" #include "code\datums\components\nanites.dm" #include "code\datums\components\ntnet_interface.dm" +#include "code\datums\components\orbiter.dm" #include "code\datums\components\paintable.dm" #include "code\datums\components\rad_insulation.dm" #include "code\datums\components\radioactive.dm" @@ -2261,7 +2261,6 @@ #include "code\modules\NTNet\network.dm" #include "code\modules\NTNet\relays.dm" #include "code\modules\NTNet\services\_service.dm" -#include "code\modules\orbit\orbit.dm" #include "code\modules\paperwork\clipboard.dm" #include "code\modules\paperwork\contract.dm" #include "code\modules\paperwork\filingcabinet.dm" From b2d82bd1f178e85d08aa65f6eef4a7b2aaaf1942 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 00:27:07 +0200 Subject: [PATCH 073/180] Applying upstream fixes. --- code/game/machinery/dance_machine.dm | 6 +++--- code/modules/mob/camera/camera.dm | 2 ++ code/modules/mob/dead/dead.dm | 2 ++ code/modules/mob/mob_movement.dm | 6 +++--- code/modules/power/tesla/energy_ball.dm | 4 ++-- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 7beb32eebb..1c6d713437 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -214,11 +214,11 @@ sparkles += S switch(i) if(1 to 8) - S.orbit(src, 30, TRUE, 60, 36, TRUE, FALSE) + S.orbit(src, 30, TRUE, 60, 36, TRUE) if(9 to 16) - S.orbit(src, 62, TRUE, 60, 36, TRUE, FALSE) + S.orbit(src, 62, TRUE, 60, 36, TRUE) if(17 to 24) - S.orbit(src, 95, TRUE, 60, 36, TRUE, FALSE) + S.orbit(src, 95, TRUE, 60, 36, TRUE) if(25) S.pixel_y = 7 S.forceMove(get_turf(src)) diff --git a/code/modules/mob/camera/camera.dm b/code/modules/mob/camera/camera.dm index 883f5a034f..c780d57810 100644 --- a/code/modules/mob/camera/camera.dm +++ b/code/modules/mob/camera/camera.dm @@ -26,7 +26,9 @@ return /mob/camera/forceMove(atom/destination) + var/oldloc = loc loc = destination + Moved(oldloc, NONE, TRUE) /mob/camera/emote(act, m_type=1, message = null, intentional = FALSE) return diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index d886a41b0f..381dc131e7 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -34,7 +34,9 @@ INITIALIZE_IMMEDIATE(/mob/dead) var/turf/new_turf = get_turf(destination) if (old_turf?.z != new_turf?.z) onTransitZ(old_turf?.z, new_turf?.z) + var/oldloc = loc loc = destination + Moved(oldloc, NONE, TRUE) /mob/dead/Stat() ..() diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 33f1ec81c1..82e2b11f8e 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -148,7 +148,7 @@ if(INCORPOREAL_MOVE_BASIC) var/T = get_step(L,direct) if(T) - L.loc = T + L.forceMove(T) L.setDir(direct) if(INCORPOREAL_MOVE_SHADOW) if(prob(50)) @@ -190,7 +190,7 @@ new /obj/effect/temp_visual/dir_setting/ninja/shadow(mobloc, L.dir) var/T = get_step(L,direct) if(T) - L.loc = T + L.forceMove(T) L.setDir(direct) if(INCORPOREAL_MOVE_JAUNT) //Incorporeal move, but blocked by holy-watered tiles and salt piles. var/turf/open/floor/stepTurf = get_step(L, direct) @@ -209,7 +209,7 @@ to_chat(L, "Holy energies block your path!") return - L.loc = get_step(L, direct) + L.forceMove(stepTurf) L.setDir(direct) return TRUE diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index a5aa47f365..bbad3e08b0 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -150,8 +150,8 @@ var/obj/singularity/energy_ball/orbitingball = orbiting.parent orbitingball.orbiting_balls -= src orbitingball.dissipate_strength = orbitingball.orbiting_balls.len - ..() - if (!loc && !QDELETED(src)) + . = ..() + if (!QDELETED(src)) qdel(src) From 6f2b316b301e18a93ab70d9672f58926810c2e28 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 00:40:51 +0200 Subject: [PATCH 074/180] Oh yea, ghost seizure fix. --- code/__HELPERS/matrices.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 8b77b170e0..d96ec76a7c 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -2,7 +2,7 @@ . = new_angle - old_angle Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT -/atom/proc/SpinAnimation(speed = 10, loops = -1, clockwise = 1, segments = 3) +/atom/proc/SpinAnimation(speed = 10, loops = -1, clockwise = 1, segments = 3, parallel = TRUE) if(!segments) return var/segment = 360/segments @@ -18,7 +18,11 @@ speed /= segments - animate(src, transform = matrices[1], time = speed, loops) + if(parallel) + animate(src, transform = matrices[1], time = speed, loops , flags = ANIMATION_PARALLEL) + else + animate(src, transform = matrices[1], time = speed, loops) + for(var/i in 2 to segments) //2 because 1 is covered above animate(transform = matrices[i], time = speed) //doesn't have an object argument because this is "Stacking" with the animate call above From 8d07ab33be9d9dde273011c9bbe054120fb23aa5 Mon Sep 17 00:00:00 2001 From: Jay Date: Sun, 16 Jun 2019 18:17:21 -0500 Subject: [PATCH 075/180] DELETEME.txt.txt --- DELETEME.txt.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 DELETEME.txt.txt diff --git a/DELETEME.txt.txt b/DELETEME.txt.txt new file mode 100644 index 0000000000..e69de29bb2 From f1e1eac13accafc4080b6dc0d85b22f6d10371a2 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 16 Jun 2019 18:18:48 -0500 Subject: [PATCH 076/180] Delete DELETEME.txt.txt --- DELETEME.txt.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 DELETEME.txt.txt diff --git a/DELETEME.txt.txt b/DELETEME.txt.txt deleted file mode 100644 index e69de29bb2..0000000000 From 6b903893b27cd42589f5f6c55d54d84baae08fe2 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 16 Jun 2019 20:54:02 -0500 Subject: [PATCH 077/180] Update __donator.dm --- modular_citadel/code/modules/client/loadout/__donator.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index d04126914e..d8168d01a6 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -400,7 +400,7 @@ datum/gear/darksabresheath ckeywhitelist = list("sfox63") /datum/gear/commjacket - name = "TBD Name" + name = "Dusty Commisar's Cloak" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/commjacket - ckeywhitelist = list("TBD") \ No newline at end of file + ckeywhitelist = list("sadisticbatter") From 92e0d7c20b977a4ba3607142d9480f4ab450e4e0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 16 Jun 2019 20:54:27 -0500 Subject: [PATCH 078/180] Update custom_items.dm --- modular_citadel/code/modules/custom_loadout/custom_items.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 7032d7da81..0338a4f48e 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -496,8 +496,8 @@ mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/commjacket - name = "TBD" - desc = "TBD." + name = "Dusty Commisar's Cloak" + desc = "An Imperial Commisar's Coat, straight from the frontline of battle, filled with dirt, bulletholes, and dozens of little pockets. Alongside a curious golden eagle sitting on it's left breast, the marking '200th Venoland' is clearly visible on the inner workings of the coat. It certainly holds an imposing flair, however." icon_state = "commjacket" item_state = "commjacket" icon = 'icons/obj/custom.dmi' From 12c3fb32df6fc85db4aa8d2ac782bdf7bc9e1ee9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:29:06 -0500 Subject: [PATCH 079/180] Automatic changelog generation for PR #8618 [ci skip] --- html/changelogs/AutoChangeLog-pr-8618.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8618.yml diff --git a/html/changelogs/AutoChangeLog-pr-8618.yml b/html/changelogs/AutoChangeLog-pr-8618.yml new file mode 100644 index 0000000000..77ba2439a1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8618.yml @@ -0,0 +1,7 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "New cargo crate for tech-slugs!" + - rscadd: "Ammo to each fitting crate" + - bugfix: "Cat-code" + - spellcheck: "fixed a few typos - Again my bad" From 6b40be0b7b5f58f890b95f1b3ade0ea346b38434 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:31:11 -0500 Subject: [PATCH 080/180] Automatic changelog generation for PR #8614 [ci skip] --- html/changelogs/AutoChangeLog-pr-8614.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8614.yml diff --git a/html/changelogs/AutoChangeLog-pr-8614.yml b/html/changelogs/AutoChangeLog-pr-8614.yml new file mode 100644 index 0000000000..e9473181fb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8614.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by SpaceManiac)" +delete-after: True +changes: + - bugfix: "Disassembling a chem dispenser for the first time will no longer always yield a fully-charged cell." From df436e93c412421b1d0606685a3283207d7f07db Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:32:40 -0500 Subject: [PATCH 081/180] Automatic changelog generation for PR #8579 [ci skip] --- html/changelogs/AutoChangeLog-pr-8579.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8579.yml diff --git a/html/changelogs/AutoChangeLog-pr-8579.yml b/html/changelogs/AutoChangeLog-pr-8579.yml new file mode 100644 index 0000000000..56ecea119f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8579.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "gang tower shield" + - tweak: "costs of boots" From 65ac93a1446b825d8ec6ad3e34526337e466799e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:35:08 -0500 Subject: [PATCH 082/180] Automatic changelog generation for PR #8416 [ci skip] --- html/changelogs/AutoChangeLog-pr-8416.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8416.yml diff --git a/html/changelogs/AutoChangeLog-pr-8416.yml b/html/changelogs/AutoChangeLog-pr-8416.yml new file mode 100644 index 0000000000..34bac362be --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8416.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "adds the sec jetpack to sec hardsuit storge" From aa2723631e1bd3b929f98c93a7e800a57cbc8976 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:35:31 -0500 Subject: [PATCH 083/180] Automatic changelog generation for PR #8643 [ci skip] --- html/changelogs/AutoChangeLog-pr-8643.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8643.yml diff --git a/html/changelogs/AutoChangeLog-pr-8643.yml b/html/changelogs/AutoChangeLog-pr-8643.yml new file mode 100644 index 0000000000..b172071e2e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8643.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "The sacrificial target icon will now display onto the cult objective ui alert once again." From e186b6515d4cf91e6640b14416631fe932a63971 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:35:58 -0500 Subject: [PATCH 084/180] Automatic changelog generation for PR #8652 [ci skip] --- html/changelogs/AutoChangeLog-pr-8652.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8652.yml diff --git a/html/changelogs/AutoChangeLog-pr-8652.yml b/html/changelogs/AutoChangeLog-pr-8652.yml new file mode 100644 index 0000000000..b788c5785c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8652.yml @@ -0,0 +1,4 @@ +author: "Ghommie (Original PR by Dennok)" +delete-after: True +changes: + - bugfix: "Now areas_in_z get areas spawned by templates and blueprints." From 9d014d3bbee7f8b1bc15fece419102a816599559 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:38:25 -0500 Subject: [PATCH 085/180] Automatic changelog generation for PR #8578 [ci skip] --- html/changelogs/AutoChangeLog-pr-8578.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8578.yml diff --git a/html/changelogs/AutoChangeLog-pr-8578.yml b/html/changelogs/AutoChangeLog-pr-8578.yml new file mode 100644 index 0000000000..39ded33f2d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8578.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - spellcheck: "Properly rewords the extinguisher's instructions on how to empty it on the floor since it was changed to be a screwdriver action instead of Alt Click a while ago." From c5a205e06cdedce29f72128b19380517c07fe9d5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:40:03 -0500 Subject: [PATCH 086/180] Automatic changelog generation for PR #8570 [ci skip] --- html/changelogs/AutoChangeLog-pr-8570.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8570.yml diff --git a/html/changelogs/AutoChangeLog-pr-8570.yml b/html/changelogs/AutoChangeLog-pr-8570.yml new file mode 100644 index 0000000000..787b486685 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8570.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "origami" From 1ec01d3a7ff1a95e08067223af4fcfaa4bc99d88 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:40:52 -0500 Subject: [PATCH 087/180] Automatic changelog generation for PR #8561 [ci skip] --- html/changelogs/AutoChangeLog-pr-8561.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8561.yml diff --git a/html/changelogs/AutoChangeLog-pr-8561.yml b/html/changelogs/AutoChangeLog-pr-8561.yml new file mode 100644 index 0000000000..dca2bff2ff --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8561.yml @@ -0,0 +1,4 @@ +author: "Ghommie (Original PR by JJRcop)" +delete-after: True +changes: + - rscadd: "Ports in more emojis, including : flushed :" From 42b5ec31590d6bea35f577724890966aed8e4799 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:41:59 -0500 Subject: [PATCH 088/180] Automatic changelog generation for PR #8497 [ci skip] --- html/changelogs/AutoChangeLog-pr-8497.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8497.yml diff --git a/html/changelogs/AutoChangeLog-pr-8497.yml b/html/changelogs/AutoChangeLog-pr-8497.yml new file mode 100644 index 0000000000..4c42899313 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8497.yml @@ -0,0 +1,5 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "Adds clockwork reflectors, a fragile anti-laser reflection shield object that can be constructed for 10 brass sheets. Upon firing on the object in the direction where it is shielded, it ricochets the bullet off of it relative to the shooting angle." + - tweak: "Renames some windows in the build menu for consistency." From 107e4c40cf1e3bb09a806b95c49325237dea4d9f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:42:17 -0500 Subject: [PATCH 089/180] Automatic changelog generation for PR #8505 [ci skip] --- html/changelogs/AutoChangeLog-pr-8505.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8505.yml diff --git a/html/changelogs/AutoChangeLog-pr-8505.yml b/html/changelogs/AutoChangeLog-pr-8505.yml new file mode 100644 index 0000000000..57d6399680 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8505.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - balance: "Clockwork Cult walls can no longer be deconstructed by RCDs when heated." From d08eeeee4c3c334041caa9caee964d0eb8ec7e05 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:43:12 -0500 Subject: [PATCH 090/180] Automatic changelog generation for PR #8584 [ci skip] --- html/changelogs/AutoChangeLog-pr-8584.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8584.yml diff --git a/html/changelogs/AutoChangeLog-pr-8584.yml b/html/changelogs/AutoChangeLog-pr-8584.yml new file mode 100644 index 0000000000..2621812d64 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8584.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "organ box" From 5ad5279138fa4b74b8903fe794cdecad19a54d9a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 16 Jun 2019 21:47:12 -0500 Subject: [PATCH 091/180] Automatic changelog generation for PR #8648 [ci skip] --- html/changelogs/AutoChangeLog-pr-8648.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8648.yml diff --git a/html/changelogs/AutoChangeLog-pr-8648.yml b/html/changelogs/AutoChangeLog-pr-8648.yml new file mode 100644 index 0000000000..8d0f9d20c8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8648.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "makes uplink kits more usefull for the risk" From 1060bb05b4dc878b6b59addd16550f685455c986 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Mon, 17 Jun 2019 17:41:46 +1200 Subject: [PATCH 092/180] Space hermit ruin --- _maps/RandomRuins/SpaceRuins/spacehermit.dmm | 2941 ++++++++++++++++++ code/datums/ruins/space.dm | 6 + config/spaceRuinBlacklist.txt | 1 + 3 files changed, 2948 insertions(+) create mode 100644 _maps/RandomRuins/SpaceRuins/spacehermit.dmm diff --git a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm new file mode 100644 index 0000000000..341dcf7b99 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm @@ -0,0 +1,2941 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/mineral/random/low_chance, +/area/ruin/unpowered) +"ac" = ( +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ad" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ae" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered) +"af" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"ag" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered) +"ah" = ( +/obj/structure/table/wood, +/obj/item/shovel, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ai" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/template_noop) +"aj" = ( +/obj/machinery/computer/cryopod, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered) +"ak" = ( +/obj/structure/fluff/empty_cryostasis_sleeper, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"al" = ( +/obj/machinery/status_display/shuttle, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered) +"am" = ( +/obj/item/circuitboard/computer/rdconsole, +/obj/item/circuitboard/machine/protolathe/department/science, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"an" = ( +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"ao" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"ap" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"aq" = ( +/obj/machinery/computer{ + desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; + dir = 4; + name = "Broken Computer" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"ar" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"as" = ( +/obj/machinery/light, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"at" = ( +/obj/structure/shuttle/engine/propulsion/left{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered) +"au" = ( +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"av" = ( +/obj/structure/table/wood, +/obj/item/paper/crumpled{ + info = "

    So this is it, I guess.. Always thought I'd go out doing something stupid, but.. not like this.
    Should anyone find this note, tell Jeremy Clarke he can kiss my ass. Launching the pod unprepared like that..
    Well. Now that I'm keeling over here, I guess I should write how I came to be the last one standing here.
    Four of us took this pod.. only three of us woke up though.. fourth pod is locked from the inside, we couldn't figure out how to get it open.
    Me and the clown set up a farm s'we can survive at least a while.. though, he didn't seem to understand that man cannot live on banana alone.
    Had a bunch of circuits on him for some reason when he eventually passed, whispered to me something about a chem dispenser.. I.. don't know what he meant by that. I was never good with machinary. Maybe he wanted space lube?
    The assistant that we gave the space suit to go out and find help never came back.. I'm betting he found salvation and left us behind.. never can trust those grubby greytiders." + }, +/obj/item/pen, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aw" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ax" = ( +/obj/item/twohanded/spear, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"ay" = ( +/obj/item/grown/log, +/obj/item/grown/log, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"az" = ( +/obj/structure/table/wood, +/obj/item/storage/bag/plants/portaseeder, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aA" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"aB" = ( +/obj/item/seeds/banana, +/obj/item/seeds/banana, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aC" = ( +/obj/effect/mob_spawn/human/clown/corpse, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aD" = ( +/obj/item/mining_scanner, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aE" = ( +/obj/machinery/status_display/shuttle, +/turf/closed/wall/mineral/titanium, +/area/ruin/unpowered) +"aF" = ( +/obj/item/pickaxe/emergency, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aG" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aH" = ( +/obj/structure/table/wood, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aI" = ( +/obj/effect/mob_spawn/human/corpse/assistant, +/turf/template_noop, +/area/template_noop) +"aJ" = ( +/obj/structure/table/wood, +/obj/item/storage/bag/ore, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aK" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aL" = ( +/obj/structure/table/wood, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/welding, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aM" = ( +/mob/living/simple_animal/hostile/carp, +/turf/template_noop, +/area/template_noop) +"aN" = ( +/obj/structure/mineral_door/sandstone, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aO" = ( +/mob/living/simple_animal/hostile/carp, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"aP" = ( +/obj/item/stack/ore/gold, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aQ" = ( +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aR" = ( +/obj/item/stack/ore/iron, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aS" = ( +/turf/closed/wall/mineral/iron, +/area/ruin/unpowered) +"aT" = ( +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aU" = ( +/obj/item/flashlight/lamp, +/obj/structure/table/wood, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"aV" = ( +/obj/item/clothing/suit/space/orange, +/turf/template_noop, +/area/template_noop) +"aW" = ( +/obj/item/clothing/head/helmet/space/orange, +/turf/template_noop, +/area/template_noop) +"aX" = ( +/mob/living/simple_animal/hostile/carp/megacarp, +/turf/template_noop, +/area/template_noop) +"aY" = ( +/obj/effect/mob_spawn/human/hermit{ + flavour_text = "You've been late to awaken from your cryo slumber. Blasted machine, you set it to 10 days not 10 weeks! Where have the others gone while we were out? Did they manage to survive? These thoughts are dispelled by yet another recollection of how you got here... "; + job_description = "Space Hermit" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"aZ" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/unpowered) +"ba" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/mineral/titanium, +/area/ruin/unpowered) +"bb" = ( +/obj/structure/shuttle/engine/propulsion/left{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/unpowered) +"bc" = ( +/obj/item/circuitboard/machine/circuit_imprinter, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bd" = ( +/obj/item/grown/bananapeel, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"be" = ( +/obj/effect/mob_spawn/human/corpse/cargo_tech, +/obj/structure/fans/tiny/invisible, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bf" = ( +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bg" = ( +/obj/item/stock_parts/matter_bin, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bh" = ( +/obj/item/circuitboard/machine/autolathe, +/turf/open/floor/mineral/titanium, +/area/ruin/powered) +"bi" = ( +/obj/item/stock_parts/manipulator, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bj" = ( +/obj/item/holosign_creator/atmos, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bk" = ( +/obj/structure/holosign/barrier/atmos, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bl" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bn" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bp" = ( +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bq" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman{ + active = 1; + anchored = 1; + sheets = 10 + }, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"br" = ( +/obj/item/stack/ore/iron, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) +"bs" = ( +/obj/item/flashlight/lamp/bananalamp, +/turf/open/floor/plating/asteroid, +/area/ruin/unpowered) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aM +aa +aa +aa +aa +aa +aa +aa +ac +aO +aA +aA +aA +aA +aA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aM +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +aA +aA +aA +aa +aa +aa +aa +aM +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aA +aa +aa +aa +aa +aW +aa +aM +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +aV +aI +aX +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aM +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aM +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +af +ae +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aA +ab +ab +aA +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +aq +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +aA +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ao +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aA +ab +ab +ab +ab +aA +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +an +an +an +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(12,1,1) = {" +aa +aa +aa +aA +ab +ab +ab +ab +aA +aa +aa +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +bh +an +an +ae +aZ +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(13,1,1) = {" +aa +aa +aa +aA +ab +ab +ab +ab +aA +aa +aa +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +aY +ao +ao +ao +ak +ba +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +aA +aa +aa +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +aj +ap +an +as +aj +aE +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aA +ab +ab +aA +aa +aa +aa +aA +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ak +ao +ao +ao +ak +ba +ac +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ah +az +ab +ab +ab +ab +ab +ab +ab +ab +aR +ae +ae +an +an +an +ae +aZ +ac +ab +ab +ab +ab +ab +ab +ab +aA +aM +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +aR +ag +ag +af +ar +af +at +bb +ac +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ad +ac +ac +ac +ac +ab +aH +aJ +aL +ab +ab +aT +ac +ac +ac +ac +ac +ac +ac +aR +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +au +ac +aB +am +ac +ac +ac +ac +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +bg +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +aw +bs +aC +ac +ac +ac +ac +ac +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aM +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +ax +ac +aD +aF +ac +ac +ac +ab +ab +ab +aU +bd +ac +ac +bl +bm +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +ay +ac +ac +ac +aG +ac +ac +ab +ab +ab +av +be +ac +ac +ac +bn +bo +bo +bq +ab +ab +ab +ab +ab +ab +ab +aA +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +bc +bf +ac +ac +ac +ac +ac +ac +br +ab +ab +ab +ab +ab +ab +aA +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ab +ac +ac +ac +ac +ac +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +aA +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +aN +ac +ac +ac +ac +aR +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +aA +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aK +ab +ab +ac +ac +ac +ac +ac +ac +ac +bp +ac +ac +aR +ab +ab +ab +aA +aa +aa +aa +aM +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aP +ac +ac +ac +ac +ac +ac +ac +ac +ac +aR +ab +ab +ab +aA +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aQ +aP +ac +ac +aR +ac +ac +ac +ac +ab +ac +ab +ab +ab +aA +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +aP +ac +bg +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +aS +ab +ab +ab +ab +aA +aa +aa +aa +ab +aA +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bg +ac +ac +ac +ac +ac +aS +ab +ab +ab +ab +aA +aa +aa +aO +ab +ab +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +bj +ac +ac +ac +aS +ab +ab +ab +ab +aA +aa +aA +ab +ab +ab +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aS +bi +ac +ac +ac +aS +aS +ab +ab +ab +ab +aA +aa +aA +ab +ab +aA +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aA +aA +aa +aa +aa +aa +aM +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aS +ac +ac +ac +ac +aS +aS +ab +ab +ab +aA +aa +aa +aA +ab +ab +ab +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +aA +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aS +aS +aS +bk +bk +aS +aS +aS +aS +ab +ab +aA +aa +aa +aa +ab +ab +ab +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aA +aA +aS +aS +aS +bk +aS +aS +aS +aA +aA +ab +aA +aa +aa +aa +aa +aA +aA +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aA +ai +ai +ai +ai +ai +ai +ai +ai +aA +aA +ab +aA +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aA +aa +aa +aa +ai +ai +ai +aa +ai +aa +aa +aA +ab +aA +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aA +ab +ab +aA +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +ai +aa +aa +ab +ab +aA +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aA +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aA +aA +aA +aA +aA +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aM +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aA +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aa +aa +aa +aa +aM +aa +aa +aa +aa +aa +aa +aa +aM +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aM +aa +aa +aa +aa +ac +ab +ac +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aM +ab +ab +aA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +ab +ab +ab +aa +aa +aa +aM +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +ab +aA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ab +ac +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aa +aa +aa +aa +aM +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +"} diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index e66673d4f5..22fca23902 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -299,3 +299,9 @@ suffix = "arcade.dmm" name = "Space Arcade" description = "A lonely arcade in the depths of space." + +/datum/map_template/ruin/space/hermit + id = "spacehermit" + suffix = "spacehermit.dmm" + name = "Space Hermit" + description = "A late awakening cryo pod in a crashed escape pod wakes up to find what befell of his fellow survivors. Contains all the necessary resources to actually make it out alive. Good luck." diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index 6e74857e66..cba9a01e73 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -48,3 +48,4 @@ #_maps/RandomRuins/SpaceRuins/augmentationfacility.dmm #_maps/RandomRuins/SpaceRuins/bigape.dmm #_maps/RandomRuins/SpaceRuins/arcade.dmm +#_maps/RandomRuins/SpaceRuins/spacehermit.dmm From 8b5bab29b2000f9a76ca3c77ddf81b9bb87589de Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 08:06:14 +0200 Subject: [PATCH 093/180] Buffs out certain stun spells. --- code/modules/spells/spell_types/construct_spells.dm | 7 ++++++- code/modules/spells/spell_types/inflict_handler.dm | 7 ++++++- code/modules/spells/spell_types/wizard.dm | 9 +++++---- modular_citadel/code/datums/status_effects/debuffs.dm | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 39066ae4a9..475b40b6f0 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -146,11 +146,15 @@ clothes_req = 0 invocation = "none" invocation_type = "none" + proj_type = /obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile/lesser proj_lifespan = 10 max_targets = 6 action_icon_state = "magicm" action_background_icon_state = "bg_demon" +/obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile/lesser + amt_hardstun = 5 + amt_knockdown = 80 /obj/effect/proc_holder/spell/targeted/smoke/disable name = "Paralysing Smoke" @@ -304,7 +308,8 @@ name = "Gauntlet Echo" alpha = 180 amt_dam_brute = 30 - amt_knockdown = 50 + amt_knockdown = 80 + amt_dam_stam = 30 sound = 'sound/weapons/punch3.ogg' /obj/effect/proc_holder/spell/targeted/inflict_handler/juggernaut/cast(list/targets,mob/user = usr) diff --git a/code/modules/spells/spell_types/inflict_handler.dm b/code/modules/spells/spell_types/inflict_handler.dm index da0af7a601..25bdc7c9d2 100644 --- a/code/modules/spells/spell_types/inflict_handler.dm +++ b/code/modules/spells/spell_types/inflict_handler.dm @@ -3,10 +3,12 @@ desc = "This spell blinds and/or destroys/damages/heals and/or knockdowns/stuns the target." var/amt_knockdown = 0 + var/amt_hardstun var/amt_unconscious = 0 var/amt_stun = 0 //set to negatives for healing + var/amt_dam_stam var/amt_dam_fire = 0 var/amt_dam_brute = 0 var/amt_dam_oxy = 0 @@ -41,7 +43,10 @@ target.adjustToxLoss(amt_dam_tox) target.adjustOxyLoss(amt_dam_oxy) //disabling - target.Knockdown(amt_knockdown) + if(!amt_knockdown && amt_dam_stam) + target.adjustStaminaLoss(amt_dam_stam) + else + target.Knockdown(amt_knockdown, override_hardstun = amt_hardstun, amt_dam_stam) target.Unconscious(amt_unconscious) target.Stun(amt_stun) diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index aec0e7806b..e39faad963 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -28,7 +28,8 @@ sound = 'sound/magic/magic_missile.ogg' /obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile - amt_knockdown = 60 + amt_knockdown = 120 + amt_hardstun = 10 sound = 'sound/magic/mm_hit.ogg' /obj/effect/proc_holder/spell/targeted/genetic/mutate @@ -262,7 +263,7 @@ action_icon_state = "repulse" -/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr, var/stun_amt = 40) +/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr, stun_amt = 50) var/list/thrownatoms = list() var/atom/throwtarget var/distfromcaster @@ -286,14 +287,14 @@ if(distfromcaster == 0) if(isliving(AM)) var/mob/living/M = AM - M.Knockdown(100) + M.Knockdown(100, override_hardstun = 25) M.adjustBruteLoss(5) to_chat(M, "You're slammed into the floor by [user]!") else new sparkle_path(get_turf(AM), get_dir(user, AM)) //created sparkles will disappear on their own if(isliving(AM)) var/mob/living/M = AM - M.Knockdown(stun_amt) + M.Knockdown(stun_amt, override_hardstun = stun_amt * 0.2) to_chat(M, "You're thrown back by [user]!") AM.throw_at(throwtarget, ((CLAMP((maxthrow - (CLAMP(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user)//So stuff gets tossed around at the same time. diff --git a/modular_citadel/code/datums/status_effects/debuffs.dm b/modular_citadel/code/datums/status_effects/debuffs.dm index 6dcfc84a87..ab7109da70 100644 --- a/modular_citadel/code/datums/status_effects/debuffs.dm +++ b/modular_citadel/code/datums/status_effects/debuffs.dm @@ -5,7 +5,7 @@ buckl.unbuckle_mob(new_owner) new_owner.resting = TRUE new_owner.adjustStaminaLoss(isnull(override_stam)? set_duration*0.25 : override_stam) - if(isnull(override_duration) && (set_duration > 80)) + if(isnull(override_duration) && (set_duration >= 80)) set_duration = set_duration*0.01 return ..() else if(!isnull(override_duration)) From 1c93c43e20f273539db0467c267fdf02c3a45099 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 09:16:45 +0200 Subject: [PATCH 094/180] Fixes roffle waffle, mushroom halluginogen and some invalid reagent. --- .../food_and_drinks/recipes/tablecraft/recipes_pastry.dm | 4 ++-- code/modules/reagents/chemistry/reagents/food_reagents.dm | 2 +- .../modules/reagents/chemistry/reagents/other_reagents.dm | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 4b76ca120b..b32097fff9 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -22,7 +22,7 @@ ) result = /obj/item/reagent_containers/food/snacks/donut subcategory = CAT_PASTRY - + /datum/crafting_recipe/food/donut time = 15 name = "Semen donut" @@ -104,7 +104,7 @@ datum/crafting_recipe/food/donut/meat /datum/crafting_recipe/food/rofflewaffles name = "Roffle waffles" reqs = list( - /datum/reagent/mushroomhallucinogen = 5, + /datum/reagent/drug/mushroomhallucinogen = 5, /obj/item/reagent_containers/food/snacks/pastrybase = 2 ) result = /obj/item/reagent_containers/food/snacks/rofflewaffles diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index afa469706a..c5b1a3fd84 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -401,7 +401,7 @@ metabolization_rate = 0.2 * REAGENTS_METABOLISM taste_description = "mushroom" -/datum/reagent/mushroomhallucinogen/on_mob_life(mob/living/carbon/M) +/datum/reagent/drug/mushroomhallucinogen/on_mob_life(mob/living/carbon/M) M.slurring = max(M.slurring,50) switch(current_cycle) if(1 to 5) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 40242909de..19df228965 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1814,14 +1814,14 @@ description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax." metabolization_rate = 1.5 * REAGENTS_METABOLISM -/datum/reagent/peaceborg/confuse +/datum/reagent/peaceborg_confuse name = "Dizzying Solution" id = "dizzysolution" description = "Makes the target off balance and dizzy" metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "dizziness" -/datum/reagent/peaceborg/confuse/on_mob_life(mob/living/carbon/M) +/datum/reagent/peaceborg_confuse/on_mob_life(mob/living/carbon/M) if(M.confused < 6) M.confused = CLAMP(M.confused + 3, 0, 5) if(M.dizziness < 6) @@ -1830,14 +1830,14 @@ to_chat(M, "You feel confused and disorientated.") ..() -/datum/reagent/peaceborg/tire +/datum/reagent/peaceborg_tire name = "Tiring Solution" id = "tiresolution" description = "An extremely weak stamina-toxin that tires out the target. Completely harmless." metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "tiredness" -/datum/reagent/peaceborg/tire/on_mob_life(mob/living/carbon/M) +/datum/reagent/peaceborg_tire/on_mob_life(mob/living/carbon/M) var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS. if(M.getStaminaLoss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.) M.adjustStaminaLoss(10) From 50dd512be71838b88a2762eeff83069f86b497f7 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 10:50:40 +0200 Subject: [PATCH 095/180] Ports system for randomized semi-persistent chem reactions. --- .../SpaceRuins/originalcontent.dmm | 6 +- code/__DEFINES/food.dm | 1 + code/__HELPERS/reagents.dm | 75 +++++++ code/__HELPERS/time.dm | 3 + code/controllers/subsystem/persistence.dm | 42 ++++ code/datums/mood_events/drink_events.dm | 5 + code/modules/reagents/chemistry/holder.dm | 7 +- .../chemistry/reagents/food_reagents.dm | 13 ++ .../reagents/chemistry/recipes/special.dm | 212 ++++++++++++++++++ .../unit_tests/reagent_recipe_collisions.dm | 52 ----- tgstation.dme | 2 + 11 files changed, 364 insertions(+), 54 deletions(-) create mode 100644 code/__HELPERS/reagents.dm create mode 100644 code/modules/reagents/chemistry/recipes/special.dm diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm index 624aa03d7c..7d718d6904 100644 --- a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -912,6 +912,10 @@ }, /turf/open/indestructible/paper, /area/ruin/powered) +"Ns" = ( +/obj/item/paper/secretrecipe, +/turf/open/indestructible/paper, +/area/ruin/powered) (1,1,1) = {" aa @@ -2246,7 +2250,7 @@ ap az af al -aA +Ns bW ca af diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 2c7a66ce40..15c7af5749 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -16,3 +16,4 @@ #define DRINK_GOOD 2 #define DRINK_VERYGOOD 3 #define DRINK_FANTASTIC 4 +#define FOOD_AMAZING 5 diff --git a/code/__HELPERS/reagents.dm b/code/__HELPERS/reagents.dm new file mode 100644 index 0000000000..39431f90d9 --- /dev/null +++ b/code/__HELPERS/reagents.dm @@ -0,0 +1,75 @@ +/proc/chem_recipes_do_conflict(datum/chemical_reaction/r1, datum/chemical_reaction/r2) + //do the non-list tests first, because they are cheaper + if(r1.required_container != r2.required_container) + return FALSE + if(r1.is_cold_recipe == r2.is_cold_recipe) + if(r1.required_temp != r2.required_temp) + //one reaction requires a more extreme temperature than the other, so there is no conflict + return FALSE + else + var/datum/chemical_reaction/cold_one = r1.is_cold_recipe ? r1 : r2 + var/datum/chemical_reaction/warm_one = r1.is_cold_recipe ? r2 : r1 + if(cold_one.required_temp < warm_one.required_temp) + //the range of temperatures does not overlap, so there is no conflict + return FALSE + + //find the reactions with the shorter and longer required_reagents list + var/datum/chemical_reaction/long_req + var/datum/chemical_reaction/short_req + if(r1.required_reagents.len > r2.required_reagents.len) + long_req = r1 + short_req = r2 + else if(r1.required_reagents.len < r2.required_reagents.len) + long_req = r2 + short_req = r1 + else + //if they are the same length, sort instead by the length of the catalyst list + //this is important if the required_reagents lists are the same + if(r1.required_catalysts.len > r2.required_catalysts.len) + long_req = r1 + short_req = r2 + else + long_req = r2 + short_req = r1 + + + //check if the shorter reaction list is a subset of the longer one + var/list/overlap = r1.required_reagents & r2.required_reagents + if(overlap.len != short_req.required_reagents.len) + //there is at least one reagent in the short list that is not in the long list, so there is no conflict + return FALSE + + //check to see if the shorter reaction's catalyst list is also a subset of the longer reaction's catalyst list + //if the longer reaction's catalyst list is a subset of the shorter ones, that is fine + //if the reaction lists are the same, the short reaction will have the shorter required_catalysts list, so it will register as a conflict + var/list/short_minus_long_catalysts = short_req.required_catalysts - long_req.required_catalysts + if(short_minus_long_catalysts.len) + //there is at least one unique catalyst for the short reaction, so there is no conflict + return FALSE + + //if we got this far, the longer reaction will be impossible to create if the shorter one is earlier in GLOB.chemical_reactions_list, and will require the reagents to be added in a particular order otherwise + return TRUE + +/proc/get_chemical_reaction(id) + if(!GLOB.chemical_reactions_list) + return + for(var/reagent in GLOB.chemical_reactions_list) + for(var/datum/chemical_reaction/R in GLOB.chemical_reactions_list[reagent]) + if(R.id == id) + return R + +/proc/remove_chemical_reaction(datum/chemical_reaction/R) + if(!GLOB.chemical_reactions_list || !R) + return + for(var/rid in R.required_reagents) + var/datum/reagent/C = rid + GLOB.chemical_reactions_list[C.id] -= R + +//see build_chemical_reactions_list in holder.dm for explanations +/proc/add_chemical_reaction(datum/chemical_reaction/R) + if(!GLOB.chemical_reactions_list || !R.id || !R.required_reagents || !R.required_reagents.len) + return + var/primary_reagent = R.required_reagents[1] + if(!GLOB.chemical_reactions_list[primary_reagent]) + GLOB.chemical_reactions_list[primary_reagent] = list() + GLOB.chemical_reactions_list[primary_reagent] += R diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 200e1f907f..b28e7b5807 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -70,3 +70,6 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) if(hour) hourT = " and [hour] hour[(hour != 1)? "s":""]" return "[day] day[(day != 1)? "s":""][hourT][minuteT][secondT]" + +/proc/daysSince(realtimev) + return round((world.realtime - realtimev) / (24 HOURS)) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 978eedb62f..455b53b1df 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -28,6 +28,7 @@ SUBSYSTEM_DEF(persistence) LoadPhotoPersistence() if(CONFIG_GET(flag/use_antag_rep)) LoadAntagReputation() + LoadRandomizedRecipes() return ..() /datum/controller/subsystem/persistence/proc/LoadSatchels() @@ -206,6 +207,7 @@ SUBSYSTEM_DEF(persistence) SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. if(CONFIG_GET(flag/use_antag_rep)) CollectAntagReputation() + SaveRandomizedRecipes() /datum/controller/subsystem/persistence/proc/GetPhotoAlbums() var/album_path = file("data/photo_albums.json") @@ -371,3 +373,43 @@ SUBSYSTEM_DEF(persistence) fdel(FILE_ANTAG_REP) text2file(json_encode(antag_rep), FILE_ANTAG_REP) +/datum/controller/subsystem/persistence/proc/LoadRandomizedRecipes() + var/json_file = file("data/RandomizedChemRecipes.json") + var/json + if(fexists(json_file)) + json = json_decode(file2text(json_file)) + + for(var/randomized_type in subtypesof(/datum/chemical_reaction/randomized)) + var/datum/chemical_reaction/randomized/R = new randomized_type + var/loaded = FALSE + if(R.persistent && json) + var/list/recipe_data = json[R.id] + if(recipe_data && R.LoadOldRecipe(recipe_data) && (daysSince(R.created) <= R.persistence_period)) + loaded = TRUE + if(!loaded) //We do not have information for whatever reason, just generate new one + R.GenerateRecipe() + + if(!R.HasConflicts()) //Might want to try again if conflicts happened in the future. + add_chemical_reaction(R) + +/datum/controller/subsystem/persistence/proc/SaveRandomizedRecipes() + var/json_file = file("data/RandomizedChemRecipes.json") + var/list/file_data = list() + + //asert globchems done + for(var/randomized_type in subtypesof(/datum/chemical_reaction/randomized)) + var/datum/chemical_reaction/randomized/R = randomized_type + R = get_chemical_reaction(initial(R.id)) //ew, would be nice to add some simple tracking + if(R && R.persistent && R.id) + var/recipe_data = list() + recipe_data["timestamp"] = R.created + recipe_data["required_reagents"] = R.required_reagents + recipe_data["required_catalysts"] = R.required_catalysts + recipe_data["required_temp"] = R.required_temp + recipe_data["is_cold_recipe"] = R.is_cold_recipe + recipe_data["results"] = R.results + recipe_data["required_container"] = "[R.required_container]" + file_data["[R.id]"] = recipe_data + + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) diff --git a/code/datums/mood_events/drink_events.dm b/code/datums/mood_events/drink_events.dm index db5a91009e..5d0eb0e0cb 100644 --- a/code/datums/mood_events/drink_events.dm +++ b/code/datums/mood_events/drink_events.dm @@ -22,3 +22,8 @@ description = "That drink was amazing!\n" mood_change = 4 timeout = 1200 + +/datum/mood_event/amazingtaste + description = "Amazing taste!\n" + mood_change = 50 + timeout = 10 MINUTES diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 58c29f351b..ed57d427bd 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -21,7 +21,9 @@ if(GLOB.chemical_reactions_list) return - var/paths = subtypesof(/datum/chemical_reaction) + + //Randomized need to go last since they need to check against conflicts with normal recipes + var/paths = subtypesof(/datum/chemical_reaction) - typesof(/datum/chemical_reaction/randomized) + subtypesof(/datum/chemical_reaction/randomized) GLOB.chemical_reactions_list = list() for(var/path in paths) @@ -29,6 +31,9 @@ var/datum/chemical_reaction/D = new path() var/list/reaction_ids = list() + if(!D.id) + continue + if(D.required_reagents && D.required_reagents.len) for(var/reaction in D.required_reagents) reaction_ids += reaction diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index afa469706a..a2c25dd637 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -32,6 +32,8 @@ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_verygood) if (DRINK_FANTASTIC) SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_fantastic) + if (FOOD_AMAZING) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_food", /datum/mood_event/amazingtaste) return ..() /datum/reagent/consumable/nutriment @@ -711,3 +713,14 @@ nutriment_factor = 5 * REAGENTS_METABOLISM color = "#eef442" // rgb: 238, 244, 66 taste_description = "mournful honking" + +/datum/reagent/consumable/secretsauce + name = "secret sauce" + id = "secret_sauce" + description = "What could it be." + nutriment_factor = 2 * REAGENTS_METABOLISM + color = "#792300" + taste_description = "indescribable" + quality = FOOD_AMAZING + taste_mult = 100 + can_synth = FALSE diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm new file mode 100644 index 0000000000..153372101e --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -0,0 +1,212 @@ +GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related food types + +/proc/build_reagents_to_food() + . = list() + for (var/type in subtypesof(/obj/item/reagent_containers/food)) + var/obj/item/reagent_containers/food/item = new type() + for(var/r in item.list_reagents) + if (!.[r]) + .[r] = list() + .[r] += type + qdel(item) + //dang plant snowflake + for (var/type in subtypesof(/obj/item/seeds)) + var/obj/item/seeds/item = new type() + for(var/r in item.reagents_add) + if (!.[r]) + .[r] = list() + .[r] += type + qdel(item) + + +#define RNGCHEM_INPUT "input" +#define RNGCHEM_CATALYSTS "catalysts" +#define RNGCHEM_OUTPUT "output" + +/datum/chemical_reaction/randomized + name = "semi randomized reaction" + + var/persistent = FALSE + var/persistence_period = 7 //Will reset every x days + var/created //creation timestamp + + var/randomize_container = FALSE + var/list/possible_containers = list() + + var/randomize_req_temperature = TRUE + var/min_temp = 1 + var/max_temp = 600 + + var/randomize_inputs = TRUE + var/min_input_reagent_amount = 1 + var/max_input_reagent_amount = 10 + var/min_input_reagents = 2 + var/max_input_reagents = 5 + var/list/possible_reagents = list() + var/min_catalysts = 0 + var/max_catalysts = 2 + var/list/possible_catalysts = list() + + var/randomize_results = FALSE + var/min_output_reagent_amount = 1 + var/max_output_reagent_amount = 5 + var/min_result_reagents = 1 + var/max_result_reagents = 1 + var/list/possible_results = list() + +/datum/chemical_reaction/randomized/proc/GenerateRecipe() + created = world.time + if(randomize_container) + required_container = pick(possible_containers) + if(randomize_req_temperature) + required_temp = rand(min_temp,max_temp) + is_cold_recipe = pick(TRUE,FALSE) + + if(randomize_results) + results = list() + var/list/remaining_possible_results = GetPossibleReagents(RNGCHEM_OUTPUT) + var/out_reagent_count = min(rand(min_result_reagents,max_result_reagents),remaining_possible_results.len) + for(var/i in 1 to out_reagent_count) + var/r_id = pick_n_take(remaining_possible_results) + results[r_id] = rand(min_output_reagent_amount,max_output_reagent_amount) + + if(randomize_inputs) + var/list/remaining_possible_reagents = GetPossibleReagents(RNGCHEM_INPUT) + var/list/remaining_possible_catalysts = GetPossibleReagents(RNGCHEM_CATALYSTS) + + //We're going to assume we're not doing any weird partial reactions for now. + for(var/reagent_type in results) + remaining_possible_catalysts -= reagent_type + remaining_possible_reagents -= reagent_type + + var/in_reagent_count = min(rand(min_input_reagents,max_input_reagents),remaining_possible_reagents.len) + if(in_reagent_count <= 0) + return FALSE + + required_reagents = list() + for(var/i in 1 to in_reagent_count) + var/r_id = pick_n_take(remaining_possible_reagents) + required_reagents[r_id] = rand(min_input_reagent_amount,max_input_reagent_amount) + remaining_possible_catalysts -= r_id //Can't have same reagents both as catalyst and reagent. Or can we ? + + required_catalysts = list() + var/in_catalyst_count = min(rand(min_catalysts,max_catalysts),remaining_possible_catalysts.len) + for(var/i in 1 to in_catalyst_count) + var/r_id = pick_n_take(remaining_possible_catalysts) + required_catalysts[r_id] = rand(min_input_reagent_amount,max_input_reagent_amount) + + return TRUE + +/datum/chemical_reaction/randomized/proc/GetPossibleReagents(kind) + switch(kind) + if(RNGCHEM_INPUT) + return possible_reagents.Copy() + if(RNGCHEM_CATALYSTS) + return possible_catalysts.Copy() + if(RNGCHEM_OUTPUT) + return possible_results.Copy() + +/datum/chemical_reaction/randomized/proc/HasConflicts() + for(var/x in required_reagents) + for(var/datum/chemical_reaction/R in GLOB.chemical_reactions_list[x]) + if(chem_recipes_do_conflict(R,src)) + return TRUE + return FALSE + +/datum/chemical_reaction/randomized/proc/unwrap_reagent_list(list/textreagents) + . = list() + for(var/R in textreagents) + var/pathR = text2path(R) + if(!pathR) + return null + .[pathR] = textreagents[R] + +/datum/chemical_reaction/randomized/proc/LoadOldRecipe(recipe_data) + created = text2num(recipe_data["timestamp"]) + + var/req_reag = unwrap_reagent_list(recipe_data["required_reagents"]) + if(!req_reag) + return FALSE + required_reagents = req_reag + + var/req_catalysts = unwrap_reagent_list(recipe_data["required_catalysts"]) + if(!req_catalysts) + return FALSE + required_catalysts = req_catalysts + + required_temp = recipe_data["required_temp"] + is_cold_recipe = recipe_data["is_cold_recipe"] + + var/temp_results = unwrap_reagent_list(recipe_data["results"]) + if(!temp_results) + return FALSE + results = temp_results + var/containerpath = text2path(recipe_data["required_container"]) + if(!containerpath) + return FALSE + required_container = containerpath + return TRUE + +/datum/chemical_reaction/randomized/secret_sauce + name = "secret sauce creation" + id = "secretsauce" + persistent = TRUE + persistence_period = 7 //Reset every week + randomize_container = TRUE + possible_containers = list(/obj/item/reagent_containers/glass/bucket) //easy way to ensure no common conflicts + randomize_req_temperature = TRUE + results = list("secret_sauce" =1) + +/datum/chemical_reaction/randomized/secret_sauce/GetPossibleReagents(kind) + switch(kind) + if(RNGCHEM_INPUT,RNGCHEM_CATALYSTS) + var/food_reagent_ids = list() + for(var/key in GLOB.food_reagents) + food_reagent_ids += key + return food_reagent_ids + return ..() + + +/obj/item/paper/secretrecipe + name = "old recipe" + var/recipe_id = "secretsauce" + +/obj/item/paper/secretrecipe/examine(mob/user) //Extra secret + if(isobserver(user)) + return + . = ..() + +/obj/item/paper/secretrecipe/Initialize() + . = ..() + if(SSpersistence.initialized) + UpdateInfo() + else + SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) + +/obj/item/paper/secretrecipe/proc/UpdateInfo() + var/datum/chemical_reaction/recipe = get_chemical_reaction(recipe_id) + if(!recipe) + info = "This recipe is illegible." + var/list/dat = list("
      ") + for(var/rid in recipe.required_reagents) + var/datum/reagent/R = GLOB.chemical_reagents_list[rid] + dat += "
    • [recipe.required_reagents[rid]]u of [R.name]
    • " + dat += "
    " + if(recipe.required_catalysts.len) + dat += "With following present:
      " + for(var/rid in recipe.required_catalysts) + var/datum/reagent/R = GLOB.chemical_reagents_list[rid] + dat += "
    • [recipe.required_catalysts[rid]]u of [R.name]
    • " + dat += "
    " + dat += "Mix slowly" + if(recipe.required_container) + var/obj/item/I = recipe.required_container + dat += " in [initial(I.name)]" + if(recipe.required_temp != 0) + if(recipe.is_cold_recipe) + dat += " below [recipe.required_temp] degrees" + else + dat += " above [recipe.required_temp] degrees" + dat += "." + info = dat.Join("") + update_icon() \ No newline at end of file diff --git a/code/modules/unit_tests/reagent_recipe_collisions.dm b/code/modules/unit_tests/reagent_recipe_collisions.dm index 31027c2cd3..7799a659dd 100644 --- a/code/modules/unit_tests/reagent_recipe_collisions.dm +++ b/code/modules/unit_tests/reagent_recipe_collisions.dm @@ -13,55 +13,3 @@ var/datum/chemical_reaction/r2 = reactions[i2] if(recipes_do_conflict(r1, r2)) Fail("Chemical recipe conflict between [r1.type] and [r2.type]") - -/datum/unit_test/reagent_recipe_collisions/proc/recipes_do_conflict(datum/chemical_reaction/r1, datum/chemical_reaction/r2) - //do the non-list tests first, because they are cheaper - if(r1.required_container != r2.required_container) - return FALSE - if(r1.is_cold_recipe == r2.is_cold_recipe) - if(r1.required_temp != r2.required_temp) - //one reaction requires a more extreme temperature than the other, so there is no conflict - return FALSE - else - var/datum/chemical_reaction/cold_one = r1.is_cold_recipe ? r1 : r2 - var/datum/chemical_reaction/warm_one = r1.is_cold_recipe ? r2 : r1 - if(cold_one.required_temp < warm_one.required_temp) - //the range of temperatures does not overlap, so there is no conflict - return FALSE - - //find the reactions with the shorter and longer required_reagents list - var/datum/chemical_reaction/long_req - var/datum/chemical_reaction/short_req - if(r1.required_reagents.len > r2.required_reagents.len) - long_req = r1 - short_req = r2 - else if(r1.required_reagents.len < r2.required_reagents.len) - long_req = r2 - short_req = r1 - else - //if they are the same length, sort instead by the length of the catalyst list - //this is important if the required_reagents lists are the same - if(r1.required_catalysts.len > r2.required_catalysts.len) - long_req = r1 - short_req = r2 - else - long_req = r2 - short_req = r1 - - - //check if the shorter reaction list is a subset of the longer one - var/list/overlap = r1.required_reagents & r2.required_reagents - if(overlap.len != short_req.required_reagents.len) - //there is at least one reagent in the short list that is not in the long list, so there is no conflict - return FALSE - - //check to see if the shorter reaction's catalyst list is also a subset of the longer reaction's catalyst list - //if the longer reaction's catalyst list is a subset of the shorter ones, that is fine - //if the reaction lists are the same, the short reaction will have the shorter required_catalysts list, so it will register as a conflict - var/list/short_minus_long_catalysts = short_req.required_catalysts - long_req.required_catalysts - if(short_minus_long_catalysts.len) - //there is at least one unique catalyst for the short reaction, so there is no conflict - return FALSE - - //if we got this far, the longer reaction will be impossible to create if the shorter one is earlier in GLOB.chemical_reactions_list, and will require the reagents to be added in a particular order otherwise - return TRUE \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index e33566290c..5ce3263c0a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -130,6 +130,7 @@ #include "code\__HELPERS\qdel.dm" #include "code\__HELPERS\radiation.dm" #include "code\__HELPERS\radio.dm" +#include "code\__HELPERS\reagents.dm" #include "code\__HELPERS\roundend.dm" #include "code\__HELPERS\sanitize_values.dm" #include "code\__HELPERS\shell.dm" @@ -2477,6 +2478,7 @@ #include "code\modules\reagents\chemistry\recipes\others.dm" #include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" #include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" +#include "code\modules\reagents\chemistry\recipes\special.dm" #include "code\modules\reagents\chemistry\recipes\toxins.dm" #include "code\modules\reagents\reagent_containers\blood_pack.dm" #include "code\modules\reagents\reagent_containers\borghydro.dm" From 6f03ac192b3d460fe0d9e9a62386cbf8850d0c32 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 10:57:59 +0200 Subject: [PATCH 096/180] I read it wrong. --- code/__HELPERS/reagents.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/__HELPERS/reagents.dm b/code/__HELPERS/reagents.dm index 39431f90d9..f1208abdd3 100644 --- a/code/__HELPERS/reagents.dm +++ b/code/__HELPERS/reagents.dm @@ -62,8 +62,7 @@ if(!GLOB.chemical_reactions_list || !R) return for(var/rid in R.required_reagents) - var/datum/reagent/C = rid - GLOB.chemical_reactions_list[C.id] -= R + GLOB.chemical_reactions_list[rid] -= R //see build_chemical_reactions_list in holder.dm for explanations /proc/add_chemical_reaction(datum/chemical_reaction/R) From 9e122a520bd0c6432a030034692cfbd96ffcbf5f Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 11:18:30 +0200 Subject: [PATCH 097/180] :eyes: --- code/modules/unit_tests/reagent_recipe_collisions.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/unit_tests/reagent_recipe_collisions.dm b/code/modules/unit_tests/reagent_recipe_collisions.dm index 7799a659dd..20e875422f 100644 --- a/code/modules/unit_tests/reagent_recipe_collisions.dm +++ b/code/modules/unit_tests/reagent_recipe_collisions.dm @@ -11,5 +11,5 @@ for(var/i2 in (i+1) to reactions.len) var/datum/chemical_reaction/r1 = reactions[i] var/datum/chemical_reaction/r2 = reactions[i2] - if(recipes_do_conflict(r1, r2)) + if(chem_recipes_do_conflict(r1, r2)) Fail("Chemical recipe conflict between [r1.type] and [r2.type]") From 2681a8f7a9ccf858e0acb1bea6fcf12068ad2994 Mon Sep 17 00:00:00 2001 From: Fermi Date: Mon, 17 Jun 2019 12:02:39 +0100 Subject: [PATCH 098/180] Updates has_trait to HAS_TRAIT --- code/modules/surgery/bodyparts/bodyparts.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index b8f4dbd4cc..2a49c37590 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -88,7 +88,7 @@ /obj/item/bodypart/attack(mob/living/carbon/C, mob/user) if(ishuman(C)) var/mob/living/carbon/human/H = C - if(C.has_trait(TRAIT_LIMBATTACHMENT)) + if(HAS_TRAIT(C, TRAIT_LIMBATTACHMENT)) if(!H.get_bodypart(body_zone) && !animal_origin) if(H == user) H.visible_message("[H] jams [src] into [H.p_their()] empty socket!",\ @@ -225,9 +225,9 @@ set_disabled(is_disabled()) /obj/item/bodypart/proc/is_disabled() - if(owner.has_trait(TRAIT_PARALYSIS)) + if(HAS_TRAIT(owner, TRAIT_PARALYSIS)) return BODYPART_DISABLED_PARALYSIS - if(can_dismember() && !owner.has_trait(TRAIT_NODISMEMBER)) + if(can_dismember() && !HAS_TRAIT(owner, TRAIT_NODISMEMBER)) . = disabled //inertia, to avoid limbs healing 0.1 damage and being re-enabled if((get_damage(TRUE) >= max_damage)) return BODYPART_DISABLED_DAMAGE @@ -293,7 +293,7 @@ C = owner no_update = FALSE - if(C.has_trait(TRAIT_HUSK) && is_organic_limb()) + if(HAS_TRAIT(C, TRAIT_HUSK) && is_organic_limb()) species_id = "husk" //overrides species_id dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE @@ -607,7 +607,7 @@ stam_heal_tick = 2 /obj/item/bodypart/l_arm/is_disabled() - if(owner.has_trait(TRAIT_PARALYSIS_L_ARM)) + if(HAS_TRAIT(owner, TRAIT_PARALYSIS_L_ARM)) return BODYPART_DISABLED_PARALYSIS return ..() @@ -672,7 +672,7 @@ max_stamina_damage = 50 /obj/item/bodypart/r_arm/is_disabled() - if(owner.has_trait(TRAIT_PARALYSIS_R_ARM)) + if(HAS_TRAIT(owner, TRAIT_PARALYSIS_R_ARM)) return BODYPART_DISABLED_PARALYSIS return ..() @@ -735,7 +735,7 @@ max_stamina_damage = 50 /obj/item/bodypart/l_leg/is_disabled() - if(owner.has_trait(TRAIT_PARALYSIS_L_LEG)) + if(HAS_TRAIT(owner, TRAIT_PARALYSIS_L_LEG)) return BODYPART_DISABLED_PARALYSIS return ..() @@ -795,7 +795,7 @@ stam_heal_tick = 2 /obj/item/bodypart/r_leg/is_disabled() - if(owner.has_trait(TRAIT_PARALYSIS_R_LEG)) + if(HAS_TRAIT(owner, TRAIT_PARALYSIS_R_LEG)) return BODYPART_DISABLED_PARALYSIS return ..() From dd7421f130500a914913a8a53d612d9785072c5a Mon Sep 17 00:00:00 2001 From: Fermi Date: Mon, 17 Jun 2019 12:05:21 +0100 Subject: [PATCH 099/180] Missed one. --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 7c13310af8..bbf38c822a 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -245,7 +245,7 @@ /datum/quirk/prosthetic_limb/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/limb_slot - if(H.has_trait(TRAIT_PARA))//Prevent paraplegic legs being replaced + if(HAS_TRAIT(H, TRAIT_PARA))//Prevent paraplegic legs being replaced limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) else limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) From 0457026c0fbd1264e30f57257096eb9dea5cb800 Mon Sep 17 00:00:00 2001 From: Fermi Date: Mon, 17 Jun 2019 12:15:54 +0100 Subject: [PATCH 100/180] Missed another. --- code/datums/brain_damage/severe.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 852b6b93c2..d094c162d7 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -109,13 +109,13 @@ /datum/brain_trauma/severe/paralysis/on_gain() ..() for(var/X in paralysis_traits) - owner.add_trait(X, "trauma_paralysis") + ADD_TRAIT(owner, X, "trauma_paralysis") owner.update_disabled_bodyparts() /datum/brain_trauma/severe/paralysis/on_lose() ..() for(var/X in paralysis_traits) - owner.remove_trait(X, "trauma_paralysis") + REMOVE_TRAIT(owner, X, "trauma_paralysis") owner.update_disabled_bodyparts() /datum/brain_trauma/severe/paralysis/paraplegic From d60a360e90518788671dc2acfece426f16e739e9 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 17 Jun 2019 20:17:38 +0200 Subject: [PATCH 101/180] Ports "Removes firebug from goonchat" (#8650) * Ports "Removes firebug from goonchat" * fucking acient goonchat pre-sync stuff. --- .../browserassets/js/browserOutput.js | 9 - goon/browserassets/css/browserOutput.css | 362 ------- goon/browserassets/css/font-awesome.css | 788 --------------- goon/browserassets/html/browserOutput.html | 44 - goon/browserassets/js/browserOutput.js | 908 ------------------ goon/browserassets/js/json2.min.js | 1 - goon/code/datums/browserOutput.dm | 289 ------ 7 files changed, 2401 deletions(-) delete mode 100644 goon/browserassets/css/browserOutput.css delete mode 100644 goon/browserassets/css/font-awesome.css delete mode 100644 goon/browserassets/html/browserOutput.html delete mode 100644 goon/browserassets/js/browserOutput.js delete mode 100644 goon/browserassets/js/json2.min.js delete mode 100644 goon/code/datums/browserOutput.dm diff --git a/code/modules/goonchat/browserassets/js/browserOutput.js b/code/modules/goonchat/browserassets/js/browserOutput.js index 64b41a5921..33553d765e 100644 --- a/code/modules/goonchat/browserassets/js/browserOutput.js +++ b/code/modules/goonchat/browserassets/js/browserOutput.js @@ -471,15 +471,6 @@ function ehjaxCallback(data) { handleClientData(data.clientData.ckey, data.clientData.ip, data.clientData.compid); } sendVolumeUpdate(); - } else if (data.firebug) { - if (data.trigger) { - internalOutput('Loading firebug console, triggered by '+data.trigger+'...', 'internal'); - } else { - internalOutput('Loading firebug console...', 'internal'); - } - var firebugEl = document.createElement('script'); - firebugEl.src = 'https://getfirebug.com/firebug-lite-debug.js'; - document.body.appendChild(firebugEl); } else if (data.adminMusic) { if (typeof data.adminMusic === 'string') { var adminMusic = byondDecode(data.adminMusic); diff --git a/goon/browserassets/css/browserOutput.css b/goon/browserassets/css/browserOutput.css deleted file mode 100644 index 820537e32b..0000000000 --- a/goon/browserassets/css/browserOutput.css +++ /dev/null @@ -1,362 +0,0 @@ -/***************************************** -* -* GLOBAL STYLES -* -******************************************/ -html, body { - padding: 0; - margin: 0; - height: 100%; - color: #000000; -} -body { - background: #fff; - font-family: Verdana, sans-serif; - font-size: 9pt; - line-height: 1.4; - overflow-x: hidden; - overflow-y: scroll; - word-wrap: break-word; -} - -em { - font-style: normal; - font-weight: bold; -} - -img { - margin: 0; - padding: 0; - line-height: 1; -} -img.icon { - width: 16px; - height: 16px; -} - -a {color: #0000ff;} -a.visited {color: #ff00ff;} -a:visited {color: #ff00ff;} -a.popt {text-decoration: none;} - -/***************************************** -* -* OUTPUT NOT RELATED TO ACTUAL MESSAGES -* -******************************************/ -#loading { - position: fixed; - width: 300px; - height: 150px; - text-align: center; - left: 50%; - top: 50%; - margin: -75px 0 0 -150px; -} -#loading i {display: block; padding-bottom: 3px;} - -#messages { - font-size: 14px; - padding: 3px; - margin: 0; - word-wrap: break-word; -} -#newMessages { - position: fixed; - display: block; - bottom: 0; - right: 0; - padding: 8px; - background: #ddd; - text-decoration: none; - font-variant: small-caps; - font-size: 1.1em; - font-weight: bold; - color: #333; -} -#newMessages:hover {background: #ccc;} -#newMessages i {vertical-align: middle; padding-left: 3px;} -#ping { - position: fixed; - top: 0; - right: 40px; - width: 45px; - background: #ddd; - height: 30px; - padding: 8px 0 2px 0; -} -#ping i {display: block; text-align: center;} -#ping .ms { - display: block; - text-align: center; - font-size: 8pt; - padding-top: 2px; -} -#options { - position: fixed; - top: 0; - right: 0; -} -#options a { - background: #ddd; - height: 30px; - padding: 5px 0; - display: block; - color: #333; - text-decoration: none; - line-height: 28px; - border-top: 1px solid #b4b4b4; -} -#options a:hover {background: #ccc;} -#options .toggle { - width: 40px; - background: #ccc; - border-top: 0; - float: right; - text-align: center; -} -#options .sub {clear: both; display: none; width: 160px;} -#options .sub.scroll {overflow-y: scroll;} -#options .sub a {padding: 3px 0 3px 8px; line-height: 30px; font-size: 0.9em; clear: both;} -#options .sub span { - display: block; - line-height: 30px; - float: left; -} -#options .sub i { - display: block; - padding: 0 5px; - font-size: 1.1em; - width: 22px; - text-align: center; - line-height: 30px; - float: right; -} -#options .decreaseFont {border-top: 0;} - -/* POPUPS */ -.popup { - position: fixed; - top: 50%; - left: 50%; - background: #ddd; -} -.popup .close { - position: absolute; - background: #aaa; - top: 0; - right: 0; - color: #333; - text-decoration: none; - z-index: 2; - padding: 0 10px; - height: 30px; - line-height: 30px; -} -.popup .close:hover {background: #999;} -.popup .head { - background: #999; - color: #ddd; - padding: 0 10px; - height: 30px; - line-height: 30px; - text-transform: uppercase; - font-size: 0.9em; - font-weight: bold; - border-bottom: 2px solid green; -} -.popup input {border: 1px solid #999; background: #fff; margin: 0; padding: 5px; outline: none; color: #333;} -.popup input[type=text]:hover, .popup input[type=text]:active, .popup input[type=text]:focus {border-color: green;} -.popup input[type=submit] {padding: 5px 10px; background: #999; color: #ddd; text-transform: uppercase; font-size: 0.9em; font-weight: bold;} -.popup input[type=submit]:hover, .popup input[type=submit]:focus, .popup input[type=submit]:active {background: #aaa; cursor: pointer;} - -.changeFont {padding: 10px;} -.changeFont a {display: block; text-decoration: none; padding: 3px; color: #333;} -.changeFont a:hover {background: #ccc;} - -.highlightPopup {padding: 10px; text-align: center;} -.highlightPopup input[type=text] {display: block; width: 215px; text-align: left; margin-top: 5px;} -.highlightPopup input.highlightColor {background-color: #FFFF00;} -.highlightPopup input.highlightTermSubmit {margin-top: 5px;} - -/* ADMIN CONTEXT MENU */ -.contextMenu { - background-color: #ddd; - position: fixed; - margin: 2px; - width: 150px; -} -.contextMenu a { - display: block; - padding: 2px 5px; - text-decoration: none; - color: #333; -} - -.contextMenu a:hover { - background-color: #ccc; -} - -/* ADMIN FILTER MESSAGES MENU */ -.filterMessages {padding: 5px;} -.filterMessages div {padding: 2px 0;} -.filterMessages input {} -.filterMessages label {} - -.icon-stack {height: 1em; line-height: 1em; width: 1em; vertical-align: middle; margin-top: -2px;} - - -/***************************************** -* -* OUTPUT ACTUALLY RELATED TO MESSAGES -* -******************************************/ - -/* MOTD */ -.motd {color: #638500; font-family: Verdana, sans-serif;} -.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #638500; text-decoration: underline;} -.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;} - -/* ADD HERE FOR BOLD */ -.bold, .name, .prefix, .ooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;} - -/* ADD HERE FOR ITALIC */ -.italic, .italics, .emote {font-style: italic;} - -/* OUTPUT COLORS */ -.highlight {background: yellow;} - -h1, h2, h3, h4, h5, h6 {color: #0000ff;font-family: Georgia, Verdana, sans-serif;} -h1.alert, h2.alert {color: #000000;} - -em {font-style: normal; font-weight: bold;} - -.adminobserverooc {color: #0099cc; font-weight: bold;} -.adminooc {color: #b82e00; font-weight: bold;} -.adminobserver {color: #996600; font-weight: bold;} -.admin {color: #386aff; font-weight: bold;} -/* SAY CLASSES */ -.say {} -.deadsay {color: #5c00e6;} -.siliconsay {font-family: 'Courier New', Courier, monospace;} -/* RADIO CLASSES */ -.radio {color: #008000;} - -.syndradio {color: #6d3f40;} -.centradio {color: #686868;} - -.aiprivradio {color: #ff00ff;} -.comradio {color: #948f02;} - -.secradio {color: #a30000;} -.engradio {color: #fb5613;} -.medradio {color: #337296;} -.sciradio {color: #993399;} -.supradio {color: #a8732b;} -.servadio {color: #6eaa2c;} - -.attack {color: #ff0000;} -.disarm {color: #990000;} -.passive {color: #660000;} - -.selecteddna {color: #ffffff; background-color: #001B1B} -.alert {color: #ff0000;} -.userdanger {color: #ff0000; font-weight: bold; font-size: 3;} -.danger {color: #ff0000;} -.warning {color: #ff0000; font-style: italic;} -.boldwarning {color: #ff0000; font-style: italic; font-weight: bold} -.announce {color: #228b22; font-weight: bold;} -.boldannounce {color: #ff0000; font-weight: bold;} -.greenannounce {color: #00ff00; font-weight: bold;} -.rose {color: #ff5050;} -.info {color: #0000CC;} -.notice {color: #000099;} -.boldnotice {color: #000099; font-weight: bold;} -.adminnotice {color: #0000ff;} -.unconscious {color: #0000ff; font-weight: bold;} -.suicide {color: #ff5050; font-style: italic;} -.green {color: #03ff39;} -.shadowling {color: #3b2769;} -.cult {color: #960000;} -.cultitalic {color: #960000; font-style: italic;} -.cultlarge {color: #960000; font-weight: bold; font-size: 3;} -.narsie {color: #960000; font-weight: bold; font-size: 125px;} -.narsiesmall {color: #960000; font-weight: bold; font-size: 6;} -.colossus {color: #7F282A; font-size: 5;} -.hierophant {color: #660099; font-weight: bold; font-style: italic;} -.hierophant_warning {color: #660099; font-style: italic;} -.purple {color: #5e2d79;} -.holoparasite {color: #35333a;} -.holoparasitebold {color: #35333a; font-weight: bold;} - -.revennotice {color: #1d2953;} -.revenboldnotice {color: #1d2953; font-weight: bold;} -.revenbignotice {color: #1d2953; font-weight: bold; font-size: 3;} -.revenminor {color: #823abb} -.revenwarning {color: #760fbb; font-style: italic;} -.revendanger {color: #760fbb; font-weight: bold; font-size: 3;} -.umbra {color: #5000A0;} -.umbra_bold {color: #5000A0; font-weight: bold;} -.umbra_italics {color: #5000A0; font-style: italic;} -.umbra_emphasis {color: #5000A0; font-weight: bold; font-style: italic;} -.umbra_large {color: #5000A0; font-size: 3;} - -.brass {color: #BE8700;} -.heavy_brass {color: #BE8700; font-weight: bold; font-style: italic;} -.large_brass {color: #BE8700; font-size: 3;} -.big_brass {color: #BE8700; font-size: 3; font-weight: bold; font-style: italic;} -.ratvar {color: #BE8700; font-size: 6; font-weight: bold; font-style: italic;} -.alloy {color: #42474D;} -.heavy_alloy {color: #42474D; font-weight: bold; font-style: italic;} -.large_alloy {color: #42474D; font-size: 3;} -.nezbere_large {color: #42474D; font-size: 3; font-weight: bold; font-style: italic;} -.nezbere {color: #42474D; font-weight: bold; font-style: italic;} -.nezbere_small {color: #42474D;} -.sevtug_large {color: #AF0AAF; font-size: 3; font-weight: bold; font-style: italic;} -.sevtug {color: #AF0AAF; font-weight: bold; font-style: italic;} -.sevtug_small {color: #AF0AAF;} -.inathneq_large {color: #1E8CE1; font-size: 3; font-weight: bold; font-style: italic;} -.inathneq {color: #1E8CE1; font-weight: bold; font-style: italic;} -.inathneq_small {color: #1E8CE1;} -.nzcrentr_large {color: #DAAA18; font-size: 3; font-weight: bold; font-style: italic;} -.nzcrentr {color: #DAAA18; font-weight: bold; font-style: italic;} -.nzcrentr_small {color: #DAAA18;} -.neovgre_large {color: #6E001A; font-size: 3; font-weight: bold; font-style: italic;} -.neovgre {color: #6E001A; font-weight: bold; font-style: italic;} -.neovgre_small {color: #6E001A;} - -.newscaster {color: #800000;} -.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;} - -.alien {color: #543354;} -.noticealien {color: #00c000;} -.alertalien {color: #00c000; font-weight: bold;} -.borer {color: #543354; font-style: italic;} -.changeling {color: #800080; font-style: italic;} - -.interface {color: #330033;} - -.sans {font-family: "Comic Sans MS", cursive, sans-serif;} -.papyrus {font-family: "Papyrus", cursive, sans-serif;} -.robot {font-family: "Courier New", cursive, sans-serif;} - -.command_headset {font-weight: bold; font-size: 3;} -.big {font-size: 3;} -.reallybig {font-size: 4;} -.greentext {color: #00FF00; font-size: 3;} -.redtext {color: #FF0000; font-size: 3;} -.clown {color: #FF69Bf; font-size: 3; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} - -big img.icon {width: 32px; height: 32px;} - -.memo {color: #638500; text-align: center;} -.memoedit {text-align: center; font-size: 2;} -.abductor {color: #800080; font-style: italic;} - -.connectionClosed, .fatalError {background: red; color: white; padding: 5px;} -.connectionClosed.restored {background: green;} -.internal.boldnshit {color: blue; font-weight: bold;} - -/* HELPER CLASSES */ -.text-normal {font-weight: normal; font-style: normal;} -.hidden {display: none; visibility: hidden;} \ No newline at end of file diff --git a/goon/browserassets/css/font-awesome.css b/goon/browserassets/css/font-awesome.css deleted file mode 100644 index cc99d7b337..0000000000 --- a/goon/browserassets/css/font-awesome.css +++ /dev/null @@ -1,788 +0,0 @@ -@font-face{font-family:'FontAwesome';src:url('fontawesome-webfont.eot');src:url('fontawesome-webfont.eot') format('embedded-opentype'),url('fontawesome-webfont.woff') format('woff'),url('fontawesome-webfont.ttf') format('truetype'),url('fontawesome-webfont.svg') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;} -[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} -.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} -a [class^="icon-"],a [class*=" icon-"]{display:inline;} -[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;} -.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;} -.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;} -[class^="icon-"].hide,[class*=" icon-"].hide{display:none;} -.icon-muted{color:#eeeeee;} -.icon-light{color:#ffffff;} -.icon-dark{color:#333333;} -.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} -.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;} -.pull-right{float:right;} -.pull-left{float:left;} -[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} -[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;} -[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;} -.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} -.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} -.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} -.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} -.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} -.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} -.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} -.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} -.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} -.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} -.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;} -.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;} -.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;} -.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} -a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;} -@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} -.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);} -.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);} -.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} -.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);} -a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;} -.icon-glass:before{content:"\f000";} -.icon-music:before{content:"\f001";} -.icon-search:before{content:"\f002";} -.icon-envelope-alt:before{content:"\f003";} -.icon-heart:before{content:"\f004";} -.icon-star:before{content:"\f005";} -.icon-star-empty:before{content:"\f006";} -.icon-user:before{content:"\f007";} -.icon-film:before{content:"\f008";} -.icon-th-large:before{content:"\f009";} -.icon-th:before{content:"\f00a";} -.icon-th-list:before{content:"\f00b";} -.icon-ok:before{content:"\f00c";} -.icon-remove:before{content:"\f00d";} -.icon-zoom-in:before{content:"\f00e";} -.icon-zoom-out:before{content:"\f010";} -.icon-power-off:before,.icon-off:before{content:"\f011";} -.icon-signal:before{content:"\f012";} -.icon-gear:before,.icon-cog:before{content:"\f013";} -.icon-trash:before{content:"\f014";} -.icon-home:before{content:"\f015";} -.icon-file-alt:before{content:"\f016";} -.icon-time:before{content:"\f017";} -.icon-road:before{content:"\f018";} -.icon-download-alt:before{content:"\f019";} -.icon-download:before{content:"\f01a";} -.icon-upload:before{content:"\f01b";} -.icon-inbox:before{content:"\f01c";} -.icon-play-circle:before{content:"\f01d";} -.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";} -.icon-refresh:before{content:"\f021";} -.icon-list-alt:before{content:"\f022";} -.icon-lock:before{content:"\f023";} -.icon-flag:before{content:"\f024";} -.icon-headphones:before{content:"\f025";} -.icon-volume-off:before{content:"\f026";} -.icon-volume-down:before{content:"\f027";} -.icon-volume-up:before{content:"\f028";} -.icon-qrcode:before{content:"\f029";} -.icon-barcode:before{content:"\f02a";} -.icon-tag:before{content:"\f02b";} -.icon-tags:before{content:"\f02c";} -.icon-book:before{content:"\f02d";} -.icon-bookmark:before{content:"\f02e";} -.icon-print:before{content:"\f02f";} -.icon-camera:before{content:"\f030";} -.icon-font:before{content:"\f031";} -.icon-bold:before{content:"\f032";} -.icon-italic:before{content:"\f033";} -.icon-text-height:before{content:"\f034";} -.icon-text-width:before{content:"\f035";} -.icon-align-left:before{content:"\f036";} -.icon-align-center:before{content:"\f037";} -.icon-align-right:before{content:"\f038";} -.icon-align-justify:before{content:"\f039";} -.icon-list:before{content:"\f03a";} -.icon-indent-left:before{content:"\f03b";} -.icon-indent-right:before{content:"\f03c";} -.icon-facetime-video:before{content:"\f03d";} -.icon-picture:before{content:"\f03e";} -.icon-pencil:before{content:"\f040";} -.icon-map-marker:before{content:"\f041";} -.icon-adjust:before{content:"\f042";} -.icon-tint:before{content:"\f043";} -.icon-edit:before{content:"\f044";} -.icon-share:before{content:"\f045";} -.icon-check:before{content:"\f046";} -.icon-move:before{content:"\f047";} -.icon-step-backward:before{content:"\f048";} -.icon-fast-backward:before{content:"\f049";} -.icon-backward:before{content:"\f04a";} -.icon-play:before{content:"\f04b";} -.icon-pause:before{content:"\f04c";} -.icon-stop:before{content:"\f04d";} -.icon-forward:before{content:"\f04e";} -.icon-fast-forward:before{content:"\f050";} -.icon-step-forward:before{content:"\f051";} -.icon-eject:before{content:"\f052";} -.icon-chevron-left:before{content:"\f053";} -.icon-chevron-right:before{content:"\f054";} -.icon-plus-sign:before{content:"\f055";} -.icon-minus-sign:before{content:"\f056";} -.icon-remove-sign:before{content:"\f057";} -.icon-ok-sign:before{content:"\f058";} -.icon-question-sign:before{content:"\f059";} -.icon-info-sign:before{content:"\f05a";} -.icon-screenshot:before{content:"\f05b";} -.icon-remove-circle:before{content:"\f05c";} -.icon-ok-circle:before{content:"\f05d";} -.icon-ban-circle:before{content:"\f05e";} -.icon-arrow-left:before{content:"\f060";} -.icon-arrow-right:before{content:"\f061";} -.icon-arrow-up:before{content:"\f062";} -.icon-arrow-down:before{content:"\f063";} -.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";} -.icon-resize-full:before{content:"\f065";} -.icon-resize-small:before{content:"\f066";} -.icon-plus:before{content:"\f067";} -.icon-minus:before{content:"\f068";} -.icon-asterisk:before{content:"\f069";} -.icon-exclamation-sign:before{content:"\f06a";} -.icon-gift:before{content:"\f06b";} -.icon-leaf:before{content:"\f06c";} -.icon-fire:before{content:"\f06d";} -.icon-eye-open:before{content:"\f06e";} -.icon-eye-close:before{content:"\f070";} -.icon-warning-sign:before{content:"\f071";} -.icon-plane:before{content:"\f072";} -.icon-calendar:before{content:"\f073";} -.icon-random:before{content:"\f074";} -.icon-comment:before{content:"\f075";} -.icon-magnet:before{content:"\f076";} -.icon-chevron-up:before{content:"\f077";} -.icon-chevron-down:before{content:"\f078";} -.icon-retweet:before{content:"\f079";} -.icon-shopping-cart:before{content:"\f07a";} -.icon-folder-close:before{content:"\f07b";} -.icon-folder-open:before{content:"\f07c";} -.icon-resize-vertical:before{content:"\f07d";} -.icon-resize-horizontal:before{content:"\f07e";} -.icon-bar-chart:before{content:"\f080";} -.icon-twitter-sign:before{content:"\f081";} -.icon-facebook-sign:before{content:"\f082";} -.icon-camera-retro:before{content:"\f083";} -.icon-key:before{content:"\f084";} -.icon-gears:before,.icon-cogs:before{content:"\f085";} -.icon-comments:before{content:"\f086";} -.icon-thumbs-up-alt:before{content:"\f087";} -.icon-thumbs-down-alt:before{content:"\f088";} -.icon-star-half:before{content:"\f089";} -.icon-heart-empty:before{content:"\f08a";} -.icon-signout:before{content:"\f08b";} -.icon-linkedin-sign:before{content:"\f08c";} -.icon-pushpin:before{content:"\f08d";} -.icon-external-link:before{content:"\f08e";} -.icon-signin:before{content:"\f090";} -.icon-trophy:before{content:"\f091";} -.icon-github-sign:before{content:"\f092";} -.icon-upload-alt:before{content:"\f093";} -.icon-lemon:before{content:"\f094";} -.icon-phone:before{content:"\f095";} -.icon-unchecked:before,.icon-check-empty:before{content:"\f096";} -.icon-bookmark-empty:before{content:"\f097";} -.icon-phone-sign:before{content:"\f098";} -.icon-twitter:before{content:"\f099";} -.icon-facebook:before{content:"\f09a";} -.icon-github:before{content:"\f09b";} -.icon-unlock:before{content:"\f09c";} -.icon-credit-card:before{content:"\f09d";} -.icon-rss:before{content:"\f09e";} -.icon-hdd:before{content:"\f0a0";} -.icon-bullhorn:before{content:"\f0a1";} -.icon-bell:before{content:"\f0a2";} -.icon-certificate:before{content:"\f0a3";} -.icon-hand-right:before{content:"\f0a4";} -.icon-hand-left:before{content:"\f0a5";} -.icon-hand-up:before{content:"\f0a6";} -.icon-hand-down:before{content:"\f0a7";} -.icon-circle-arrow-left:before{content:"\f0a8";} -.icon-circle-arrow-right:before{content:"\f0a9";} -.icon-circle-arrow-up:before{content:"\f0aa";} -.icon-circle-arrow-down:before{content:"\f0ab";} -.icon-globe:before{content:"\f0ac";} -.icon-wrench:before{content:"\f0ad";} -.icon-tasks:before{content:"\f0ae";} -.icon-filter:before{content:"\f0b0";} -.icon-briefcase:before{content:"\f0b1";} -.icon-fullscreen:before{content:"\f0b2";} -.icon-group:before{content:"\f0c0";} -.icon-link:before{content:"\f0c1";} -.icon-cloud:before{content:"\f0c2";} -.icon-beaker:before{content:"\f0c3";} -.icon-cut:before{content:"\f0c4";} -.icon-copy:before{content:"\f0c5";} -.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";} -.icon-save:before{content:"\f0c7";} -.icon-sign-blank:before{content:"\f0c8";} -.icon-reorder:before{content:"\f0c9";} -.icon-list-ul:before{content:"\f0ca";} -.icon-list-ol:before{content:"\f0cb";} -.icon-strikethrough:before{content:"\f0cc";} -.icon-underline:before{content:"\f0cd";} -.icon-table:before{content:"\f0ce";} -.icon-magic:before{content:"\f0d0";} -.icon-truck:before{content:"\f0d1";} -.icon-pinterest:before{content:"\f0d2";} -.icon-pinterest-sign:before{content:"\f0d3";} -.icon-google-plus-sign:before{content:"\f0d4";} -.icon-google-plus:before{content:"\f0d5";} -.icon-money:before{content:"\f0d6";} -.icon-caret-down:before{content:"\f0d7";} -.icon-caret-up:before{content:"\f0d8";} -.icon-caret-left:before{content:"\f0d9";} -.icon-caret-right:before{content:"\f0da";} -.icon-columns:before{content:"\f0db";} -.icon-sort:before{content:"\f0dc";} -.icon-sort-down:before{content:"\f0dd";} -.icon-sort-up:before{content:"\f0de";} -.icon-envelope:before{content:"\f0e0";} -.icon-linkedin:before{content:"\f0e1";} -.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";} -.icon-legal:before{content:"\f0e3";} -.icon-dashboard:before{content:"\f0e4";} -.icon-comment-alt:before{content:"\f0e5";} -.icon-comments-alt:before{content:"\f0e6";} -.icon-bolt:before{content:"\f0e7";} -.icon-sitemap:before{content:"\f0e8";} -.icon-umbrella:before{content:"\f0e9";} -.icon-paste:before{content:"\f0ea";} -.icon-lightbulb:before{content:"\f0eb";} -.icon-exchange:before{content:"\f0ec";} -.icon-cloud-download:before{content:"\f0ed";} -.icon-cloud-upload:before{content:"\f0ee";} -.icon-user-md:before{content:"\f0f0";} -.icon-stethoscope:before{content:"\f0f1";} -.icon-suitcase:before{content:"\f0f2";} -.icon-bell-alt:before{content:"\f0f3";} -.icon-coffee:before{content:"\f0f4";} -.icon-food:before{content:"\f0f5";} -.icon-file-text-alt:before{content:"\f0f6";} -.icon-building:before{content:"\f0f7";} -.icon-hospital:before{content:"\f0f8";} -.icon-ambulance:before{content:"\f0f9";} -.icon-medkit:before{content:"\f0fa";} -.icon-fighter-jet:before{content:"\f0fb";} -.icon-beer:before{content:"\f0fc";} -.icon-h-sign:before{content:"\f0fd";} -.icon-plus-sign-alt:before{content:"\f0fe";} -.icon-double-angle-left:before{content:"\f100";} -.icon-double-angle-right:before{content:"\f101";} -.icon-double-angle-up:before{content:"\f102";} -.icon-double-angle-down:before{content:"\f103";} -.icon-angle-left:before{content:"\f104";} -.icon-angle-right:before{content:"\f105";} -.icon-angle-up:before{content:"\f106";} -.icon-angle-down:before{content:"\f107";} -.icon-desktop:before{content:"\f108";} -.icon-laptop:before{content:"\f109";} -.icon-tablet:before{content:"\f10a";} -.icon-mobile-phone:before{content:"\f10b";} -.icon-circle-blank:before{content:"\f10c";} -.icon-quote-left:before{content:"\f10d";} -.icon-quote-right:before{content:"\f10e";} -.icon-spinner:before{content:"\f110";} -.icon-circle:before{content:"\f111";} -.icon-mail-reply:before,.icon-reply:before{content:"\f112";} -.icon-github-alt:before{content:"\f113";} -.icon-folder-close-alt:before{content:"\f114";} -.icon-folder-open-alt:before{content:"\f115";} -.icon-expand-alt:before{content:"\f116";} -.icon-collapse-alt:before{content:"\f117";} -.icon-smile:before{content:"\f118";} -.icon-frown:before{content:"\f119";} -.icon-meh:before{content:"\f11a";} -.icon-gamepad:before{content:"\f11b";} -.icon-keyboard:before{content:"\f11c";} -.icon-flag-alt:before{content:"\f11d";} -.icon-flag-checkered:before{content:"\f11e";} -.icon-terminal:before{content:"\f120";} -.icon-code:before{content:"\f121";} -.icon-reply-all:before{content:"\f122";} -.icon-mail-reply-all:before{content:"\f122";} -.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";} -.icon-location-arrow:before{content:"\f124";} -.icon-crop:before{content:"\f125";} -.icon-code-fork:before{content:"\f126";} -.icon-unlink:before{content:"\f127";} -.icon-question:before{content:"\f128";} -.icon-info:before{content:"\f129";} -.icon-exclamation:before{content:"\f12a";} -.icon-superscript:before{content:"\f12b";} -.icon-subscript:before{content:"\f12c";} -.icon-eraser:before{content:"\f12d";} -.icon-puzzle-piece:before{content:"\f12e";} -.icon-microphone:before{content:"\f130";} -.icon-microphone-off:before{content:"\f131";} -.icon-shield:before{content:"\f132";} -.icon-calendar-empty:before{content:"\f133";} -.icon-fire-extinguisher:before{content:"\f134";} -.icon-rocket:before{content:"\f135";} -.icon-maxcdn:before{content:"\f136";} -.icon-chevron-sign-left:before{content:"\f137";} -.icon-chevron-sign-right:before{content:"\f138";} -.icon-chevron-sign-up:before{content:"\f139";} -.icon-chevron-sign-down:before{content:"\f13a";} -.icon-html5:before{content:"\f13b";} -.icon-css3:before{content:"\f13c";} -.icon-anchor:before{content:"\f13d";} -.icon-unlock-alt:before{content:"\f13e";} -.icon-bullseye:before{content:"\f140";} -.icon-ellipsis-horizontal:before{content:"\f141";} -.icon-ellipsis-vertical:before{content:"\f142";} -.icon-rss-sign:before{content:"\f143";} -.icon-play-sign:before{content:"\f144";} -.icon-ticket:before{content:"\f145";} -.icon-minus-sign-alt:before{content:"\f146";} -.icon-check-minus:before{content:"\f147";} -.icon-level-up:before{content:"\f148";} -.icon-level-down:before{content:"\f149";} -.icon-check-sign:before{content:"\f14a";} -.icon-edit-sign:before{content:"\f14b";} -.icon-external-link-sign:before{content:"\f14c";} -.icon-share-sign:before{content:"\f14d";} -.icon-compass:before{content:"\f14e";} -.icon-collapse:before{content:"\f150";} -.icon-collapse-top:before{content:"\f151";} -.icon-expand:before{content:"\f152";} -.icon-euro:before,.icon-eur:before{content:"\f153";} -.icon-gbp:before{content:"\f154";} -.icon-dollar:before,.icon-usd:before{content:"\f155";} -.icon-rupee:before,.icon-inr:before{content:"\f156";} -.icon-yen:before,.icon-jpy:before{content:"\f157";} -.icon-renminbi:before,.icon-cny:before{content:"\f158";} -.icon-won:before,.icon-krw:before{content:"\f159";} -.icon-bitcoin:before,.icon-btc:before{content:"\f15a";} -.icon-file:before{content:"\f15b";} -.icon-file-text:before{content:"\f15c";} -.icon-sort-by-alphabet:before{content:"\f15d";} -.icon-sort-by-alphabet-alt:before{content:"\f15e";} -.icon-sort-by-attributes:before{content:"\f160";} -.icon-sort-by-attributes-alt:before{content:"\f161";} -.icon-sort-by-order:before{content:"\f162";} -.icon-sort-by-order-alt:before{content:"\f163";} -.icon-thumbs-up:before{content:"\f164";} -.icon-thumbs-down:before{content:"\f165";} -.icon-youtube-sign:before{content:"\f166";} -.icon-youtube:before{content:"\f167";} -.icon-xing:before{content:"\f168";} -.icon-xing-sign:before{content:"\f169";} -.icon-youtube-play:before{content:"\f16a";} -.icon-dropbox:before{content:"\f16b";} -.icon-stackexchange:before{content:"\f16c";} -.icon-instagram:before{content:"\f16d";} -.icon-flickr:before{content:"\f16e";} -.icon-adn:before{content:"\f170";} -.icon-bitbucket:before{content:"\f171";} -.icon-bitbucket-sign:before{content:"\f172";} -.icon-tumblr:before{content:"\f173";} -.icon-tumblr-sign:before{content:"\f174";} -.icon-long-arrow-down:before{content:"\f175";} -.icon-long-arrow-up:before{content:"\f176";} -.icon-long-arrow-left:before{content:"\f177";} -.icon-long-arrow-right:before{content:"\f178";} -.icon-apple:before{content:"\f179";} -.icon-windows:before{content:"\f17a";} -.icon-android:before{content:"\f17b";} -.icon-linux:before{content:"\f17c";} -.icon-dribbble:before{content:"\f17d";} -.icon-skype:before{content:"\f17e";} -.icon-foursquare:before{content:"\f180";} -.icon-trello:before{content:"\f181";} -.icon-female:before{content:"\f182";} -.icon-male:before{content:"\f183";} -.icon-gittip:before{content:"\f184";} -.icon-sun:before{content:"\f185";} -.icon-moon:before{content:"\f186";} -.icon-archive:before{content:"\f187";} -.icon-bug:before{content:"\f188";} -.icon-vk:before{content:"\f189";} -.icon-weibo:before{content:"\f18a";} -.icon-renren:before{content:"\f18b";} - -.icon-large{font-size:1.3333333333333333em;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;vertical-align:middle;} -.nav [class^="icon-"],.nav [class*=" icon-"]{vertical-align:inherit;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;}.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{vertical-align:-25%;} -.nav-pills [class^="icon-"].icon-large,.nav-tabs [class^="icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large{line-height:.75em;margin-top:-7px;padding-top:5px;margin-bottom:-5px;padding-bottom:4px;} -.btn [class^="icon-"].pull-left,.btn [class*=" icon-"].pull-left,.btn [class^="icon-"].pull-right,.btn [class*=" icon-"].pull-right{vertical-align:inherit;} -.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large{margin-top:-0.5em;} -a [class^="icon-"],a [class*=" icon-"]{cursor:pointer;} -.icon-glass{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-music{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-search{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-envelope-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-heart{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-star{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-star-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-user{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-film{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-th-large{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-th{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-th-list{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ok{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-remove{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-zoom-in{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-zoom-out{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-power-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-signal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cog{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-gear{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-trash{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-home{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-file-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-time{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-road{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-download-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-download{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-upload{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-inbox{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-play-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-repeat{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-rotate-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-refresh{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-list-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-lock{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-flag{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-headphones{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-volume-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-volume-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-volume-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-qrcode{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-barcode{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tag{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tags{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-book{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bookmark{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-print{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-camera{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-font{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bold{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-italic{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-text-height{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-text-width{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-align-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-align-center{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-align-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-align-justify{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-list{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-indent-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-indent-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-facetime-video{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-picture{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-pencil{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-map-marker{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-adjust{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tint{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-edit{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-share{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-check{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-move{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-step-backward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-fast-backward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-backward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-play{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-pause{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-stop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-fast-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-step-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-eject{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-plus-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-minus-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-remove-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ok-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-question-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-info-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-screenshot{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-remove-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ok-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ban-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-arrow-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-arrow-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-arrow-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-arrow-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-share-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-mail-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-resize-full{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-resize-small{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-plus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-minus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-asterisk{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-exclamation-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-gift{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-leaf{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-fire{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-eye-open{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-eye-close{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-warning-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-plane{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-calendar{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-random{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-comment{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-magnet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-retweet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-shopping-cart{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-folder-close{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-folder-open{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-resize-vertical{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-resize-horizontal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bar-chart{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-twitter-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-facebook-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-camera-retro{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-key{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cogs{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-gears{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-comments{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-thumbs-up-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-thumbs-down-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-star-half{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-heart-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-signout{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-linkedin-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-pushpin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-external-link{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-signin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-trophy{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-github-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-upload-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-lemon{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-phone{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-check-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-unchecked{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bookmark-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-phone-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-twitter{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-facebook{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-github{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-unlock{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-credit-card{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-rss{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-hdd{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bullhorn{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bell{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-certificate{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-hand-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-hand-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-hand-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-hand-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-circle-arrow-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-circle-arrow-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-circle-arrow-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-circle-arrow-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-globe{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-wrench{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tasks{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-filter{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-briefcase{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-fullscreen{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-group{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-link{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cloud{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-beaker{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cut{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-copy{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-paper-clip{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-paperclip{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-save{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sign-blank{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-reorder{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-list-ul{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-list-ol{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-strikethrough{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-underline{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-table{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-magic{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-truck{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-pinterest{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-pinterest-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-google-plus-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-google-plus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-money{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-caret-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-caret-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-caret-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-caret-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-columns{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-envelope{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-linkedin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-undo{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-rotate-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-legal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-dashboard{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-comment-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-comments-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bolt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sitemap{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-umbrella{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-paste{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-lightbulb{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-exchange{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cloud-download{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cloud-upload{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-user-md{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-stethoscope{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-suitcase{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bell-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-coffee{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-food{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-file-text-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-building{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-hospital{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ambulance{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-medkit{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-fighter-jet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-beer{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-h-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-plus-sign-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-double-angle-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-double-angle-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-double-angle-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-double-angle-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-angle-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-angle-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-angle-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-angle-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-desktop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-laptop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tablet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-mobile-phone{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-circle-blank{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-quote-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-quote-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-spinner{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-reply{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-mail-reply{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-github-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-folder-close-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-folder-open-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-expand-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-collapse-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-smile{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-frown{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-meh{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-gamepad{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-keyboard{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-flag-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-flag-checkered{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-terminal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-code{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-reply-all{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-mail-reply-all{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-star-half-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-star-half-full{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-location-arrow{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-crop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-code-fork{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-unlink{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-question{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-info{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-exclamation{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-superscript{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-subscript{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-eraser{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-puzzle-piece{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-microphone{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-microphone-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-shield{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-calendar-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-fire-extinguisher{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-rocket{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-maxcdn{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-sign-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-sign-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-sign-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-chevron-sign-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-html5{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-css3{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-anchor{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-unlock-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bullseye{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ellipsis-horizontal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ellipsis-vertical{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-rss-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-play-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-ticket{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-minus-sign-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-check-minus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-level-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-level-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-check-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-edit-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-external-link-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-share-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-compass{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-collapse{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-collapse-top{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-expand{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-eur{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-euro{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-gbp{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-usd{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-dollar{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-inr{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-rupee{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-jpy{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-yen{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-cny{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-renminbi{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-krw{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-won{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-btc{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bitcoin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-file{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-file-text{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-by-alphabet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-by-alphabet-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-by-attributes{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-by-attributes-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-by-order{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sort-by-order-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-thumbs-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-thumbs-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-youtube-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-youtube{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-xing{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-xing-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-youtube-play{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-dropbox{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-stackexchange{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-instagram{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-flickr{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-adn{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bitbucket{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bitbucket-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tumblr{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-tumblr-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-long-arrow-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-long-arrow-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-long-arrow-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-long-arrow-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-apple{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-windows{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-android{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-linux{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-dribbble{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-skype{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-foursquare{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-trello{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-female{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-male{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-gittip{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-sun{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-moon{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-archive{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-bug{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-vk{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-weibo{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} -.icon-renren{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} \ No newline at end of file diff --git a/goon/browserassets/html/browserOutput.html b/goon/browserassets/html/browserOutput.html deleted file mode 100644 index 74212fd815..0000000000 --- a/goon/browserassets/html/browserOutput.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - Chat - - - - - - - - -
    - -
    - Loading...

    - If this takes longer than 30 seconds, it will automatically reload a maximum of 5 times.
    - If it still doesn't work, use the bug report button at the top right of the window. -
    -
    -
    - -
    -
    - - - \ No newline at end of file diff --git a/goon/browserassets/js/browserOutput.js b/goon/browserassets/js/browserOutput.js deleted file mode 100644 index 0fb7386dd8..0000000000 --- a/goon/browserassets/js/browserOutput.js +++ /dev/null @@ -1,908 +0,0 @@ -/***************************************** -* -* FUNCTION AND VAR DECLARATIONS -* -******************************************/ - -//DEBUG STUFF -var escaper = encodeURIComponent || escape; -var decoder = decodeURIComponent || unescape; -window.onerror = function(msg, url, line, col, error) { - if (document.location.href.indexOf("proc=debug") <= 0) { - var extra = !col ? '' : ' | column: ' + col; - extra += !error ? '' : ' | error: ' + error; - extra += !navigator.userAgent ? '' : ' | user agent: ' + navigator.userAgent; - var debugLine = 'Error: ' + msg + ' | url: ' + url + ' | line: ' + line + extra; - window.location = '?_src_=chat&proc=debug¶m[error]='+escaper(debugLine); - } - return true; -}; - -//Globals -window.status = 'Output'; -var $messages, $subOptions, $contextMenu, $filterMessages; -var opts = { - //General - 'messageCount': 0, //A count...of messages... - 'messageLimit': 2053, //A limit...for the messages... - 'scrollSnapTolerance': 5, //If within x pixels of bottom - 'clickTolerance': 10, //Keep focus if outside x pixels of mousedown position on mouseup - 'popups': 0, //Amount of popups opened ever - 'wasd': false, //Is the user in wasd mode? - 'chatMode': 'default', //The mode the chat is in - 'priorChatHeight': 0, //Thing for height-resizing detection - 'restarting': false, //Is the round restarting? - - //Options menu - 'subOptionsLoop': null, //Contains the interval loop for closing the options menu - 'suppressOptionsClose': false, //Whether or not we should be hiding the suboptions menu - 'highlightTerms': [], - 'highlightLimit': 5, - 'highlightColor': '#FFFF00', //The color of the highlighted message - 'pingDisabled': false, //Has the user disabled the ping counter - - //Ping display - 'lastPang': 0, //Timestamp of the last response from the server. - 'pangLimit': 35000, - 'pingTime': 0, //Timestamp of when ping sent - 'pongTime': 0, //Timestamp of when ping received - 'noResponse': false, //Tracks the state of the previous ping request - 'noResponseCount': 0, //How many failed pings? - - //Clicks - 'mouseDownX': null, - 'mouseDownY': null, - 'preventFocus': false, //Prevents switching focus to the game window - - //Client Connection Data - 'clientDataLimit': 5, - 'clientData': [], - -}; - -function outerHTML(el) { - var wrap = document.createElement('div'); - wrap.appendChild(el.cloneNode(true)); - return wrap.innerHTML; -} - -//Polyfill for fucking date now because of course IE8 and below don't support it -if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; -} -//Polyfill for trim() (IE8 and below) -if (typeof String.prototype.trim !== 'function') { - String.prototype.trim = function () { - return this.replace(/^\s+|\s+$/g, ''); - }; -} - -//Shit fucking piece of crap that doesn't work god fuckin damn it -function linkify(text) { - var rex = /((?:'+$0+''; - } - else { - return $1 ? $0: ''+$0+''; - } - }); -} - -//Actually turns the highlight term match into appropriate html -function addHighlightMarkup(match) { - var extra = ''; - if (opts.highlightColor) { - extra += ' style="background-color: '+opts.highlightColor+'"'; - } - return ''+match+''; -} - -//Highlights words based on user settings -function highlightTerms(el) { - if (el.children.length > 0) { - for(var h = 0; h < el.children.length; h++){ - highlightTerms(el.children[h]); - } - } - - var hasTextNode = false; - for (var node = 0; node < el.childNodes.length; node++) - { - if (el.childNodes[node].nodeType === 3) - { - hasTextNode = true; - break; - } - } - - if (hasTextNode) { //If element actually has text - var newText = ''; - for (var c = 0; c < el.childNodes.length; c++) { //Each child element - if (el.childNodes[c].nodeType === 3) { //Is it text only? - var words = el.childNodes[c].data.split(' '); - for (var w = 0; w < words.length; w++) { //Each word in the text - var newWord = null; - for (var i = 0; i < opts.highlightTerms.length; i++) { //Each highlight term - if (opts.highlightTerms[i] && words[w].toLowerCase().indexOf(opts.highlightTerms[i].toLowerCase()) > -1) { //If a match is found - newWord = words[w].replace("<", "<").replace(new RegExp(opts.highlightTerms[i], 'gi'), addHighlightMarkup); - break; - } - console.log(newWord) - } - newText += newWord || words[w].replace("<", "<"); - newText += w >= words.length ? '' : ' '; - } - } else { //Every other type of element - newText += outerHTML(el.childNodes[c]); - } - } - el.innerHTML = newText; - } -} -//Send a message to the client -function output(message, flag) { - if (typeof message === 'undefined') { - return; - } - if (typeof flag === 'undefined') { - flag = ''; - } - - if (flag !== 'internal') - opts.lastPang = Date.now(); - - // Basically we url_encode twice server side so we can manually read the encoded version and actually do UTF-8. - // The replace for + is because FOR SOME REASON, BYOND replaces spaces with a + instead of %20, and a plus with %2b. - // Marvelous. - message = message.replace(/\+/g, "%20") - message = decoder(message) - - //The behemoth of filter-code (for Admin message filters) - //Note: This is proooobably hella inefficient - var filteredOut = false; - if (opts.hasOwnProperty('showMessagesFilters') && !opts.showMessagesFilters['All'].show) { - //Get this filter type (defined by class on message) - var messageHtml = $.parseHTML(message), - messageClasses; - if (opts.hasOwnProperty('filterHideAll') && opts.filterHideAll) { - var internal = false; - messageClasses = (!!$(messageHtml).attr('class') ? $(messageHtml).attr('class').split(/\s+/) : false); - if (messageClasses) { - for (var i = 0; i < messageClasses.length; i++) { //Every class - if (messageClasses[i] == 'internal') { - internal = true; - break; - } - } - } - if (!internal) { - filteredOut = 'All'; - } - } else { - //If the element or it's child have any classes - if (!!$(messageHtml).attr('class') || !!$(messageHtml).children().attr('class')) { - messageClasses = $(messageHtml).attr('class').split(/\s+/); - if (!!$(messageHtml).children().attr('class')) { - messageClasses = messageClasses.concat($(messageHtml).children().attr('class').split(/\s+/)); - } - var tempCount = 0; - for (var i = 0; i < messageClasses.length; i++) { //Every class - var thisClass = messageClasses[i]; - $.each(opts.showMessagesFilters, function(key, val) { //Every filter - if (key !== 'All' && val.show === false && typeof val.match != 'undefined') { - for (var i = 0; i < val.match.length; i++) { - var matchClass = val.match[i]; - if (matchClass == thisClass) { - filteredOut = key; - break; - } - } - } - if (filteredOut) return false; - }); - if (filteredOut) break; - tempCount++; - } - } else { - if (!opts.showMessagesFilters['Misc'].show) { - filteredOut = 'Misc'; - } - } - } - } - - //Stuff we do along with appending a message - var atBottom = false; - if (!filteredOut) { - var bodyHeight = $('body').height(); - var messagesHeight = $messages.outerHeight(); - var scrollPos = $('body,html').scrollTop(); - - //Should we snap the output to the bottom? - if (bodyHeight + scrollPos >= messagesHeight - opts.scrollSnapTolerance) { - atBottom = true; - if ($('#newMessages').length) { - $('#newMessages').remove(); - } - //If not, put the new messages box in - } else { - if ($('#newMessages').length) { - var messages = $('#newMessages .number').text(); - messages = parseInt(messages); - messages++; - $('#newMessages .number').text(messages); - if (messages == 2) { - $('#newMessages .messageWord').append('s'); - } - } else { - $messages.after('1 new message '); - } - } - } - - //Url stuff - if (message.length && flag != 'preventLink') { - message = linkify(message); - } - - opts.messageCount++; - - //Pop the top message off if history limit reached - if (opts.messageCount >= opts.messageLimit) { - $messages.children('div.entry:first-child').remove(); - opts.messageCount--; //I guess the count should only ever equal the limit - } - - //Actually append the message - var entry = document.createElement('div'); - entry.className = 'entry'; - - if (filteredOut) { - entry.className += ' hidden'; - entry.setAttribute('data-filter', filteredOut); - } - - entry.innerHTML = message.trim(); - $messages[0].appendChild(entry); - - //Actually do the snap - if (!filteredOut && atBottom) { - $('body,html').scrollTop($messages.outerHeight()); - } - - //Stuff we can do after the message shows can go here, in the interests of responsiveness - if (opts.highlightTerms && opts.highlightTerms.length > 0) { - highlightTerms(entry); - } -} - -function internalOutput(message, flag) -{ - output(escaper(message), flag) -} - -//Runs a route within byond, client or server side. Consider this "ehjax" for byond. -function runByond(uri) { - window.location = uri; -} - -function setCookie(cname, cvalue, exdays) { - cvalue = escaper(cvalue); - var d = new Date(); - d.setTime(d.getTime() + (exdays*24*60*60*1000)); - var expires = 'expires='+d.toUTCString(); - document.cookie = cname + '=' + cvalue + '; ' + expires; -} - -function getCookie(cname) { - var name = cname + '='; - var ca = document.cookie.split(';'); - for(var i=0; i < ca.length; i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1); - if (c.indexOf(name) === 0) { - return decoder(c.substring(name.length,c.length)); - } - } - return ''; -} - -function rgbToHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B);} -function toHex(n) { - n = parseInt(n,10); - if (isNaN(n)) return "00"; - n = Math.max(0,Math.min(n,255)); - return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); -} - -function changeMode(mode) { - switch (mode) { - case 'geocities': - //switch in stylesheet - opts.chatMode = mode; - break; - case 'console': - - opts.chatMode = mode; - break; - case 'default': - default: - //remove loaded stylesheet/s - opts.chatMode = 'default'; - } -} - -function handleClientData(ckey, ip, compid) { - //byond sends player info to here - var currentData = {'ckey': ckey, 'ip': ip, 'compid': compid}; - if (opts.clientData && !$.isEmptyObject(opts.clientData)) { - runByond('?_src_=chat&proc=analyzeClientData¶m[cookie]='+JSON.stringify({'connData': opts.clientData})); - - for (var i = 0; i < opts.clientData.length; i++) { - var saved = opts.clientData[i]; - if (currentData.ckey == saved.ckey && currentData.ip == saved.ip && currentData.compid == saved.compid) { - return; //Record already exists - } - } - - if (opts.clientData.length >= opts.clientDataLimit) { - opts.clientData.shift(); - } - } else { - runByond('?_src_=chat&proc=analyzeClientData¶m[cookie]=none'); - } - - //Update the cookie with current details - opts.clientData.push(currentData); - setCookie('connData', JSON.stringify(opts.clientData), 365); -} - -//Server calls this on ehjax response -//Or, y'know, whenever really -function ehjaxCallback(data) { - opts.lastPang = Date.now(); - if (data == 'softPang') { - return; - } else if (data == 'pang') { - opts.pingCounter = 0; //reset - opts.pingTime = Date.now(); - runByond('?_src_=chat&proc=ping'); - - } else if (data == 'pong') { - if (opts.pingDisabled) {return;} - opts.pongTime = Date.now(); - var pingDuration = Math.ceil((opts.pongTime - opts.pingTime) / 2); - $('#pingMs').text(pingDuration+'ms'); - pingDuration = Math.min(pingDuration, 255); - var red = pingDuration; - var green = 255 - pingDuration; - var blue = 0; - var hex = rgbToHex(red, green, blue); - $('#pingDot').css('color', '#'+hex); - - } else if (data == 'roundrestart') { - opts.restarting = true; - internalOutput('
    The connection has been closed because the server is restarting. Please wait while you automatically reconnect.
    ', 'internal'); - } else if (data == 'stopaudio') { - $('.dectalk').remove(); - } else { - //Oh we're actually being sent data instead of an instruction - var dataJ; - try { - dataJ = $.parseJSON(data); - } catch (e) { - //But...incorrect :sadtrombone: - window.onerror('JSON: '+e+'. '+data, 'browserOutput.html', 327); - return; - } - data = dataJ; - - if (data.clientData) { - if (opts.restarting) { - opts.restarting = false; - $('.connectionClosed.restarting:not(.restored)').addClass('restored').text('The round restarted and you successfully reconnected!'); - } - if (!data.clientData.ckey && !data.clientData.ip && !data.clientData.compid) { - //TODO: Call shutdown perhaps - return; - } else { - handleClientData(data.clientData.ckey, data.clientData.ip, data.clientData.compid); - } - } else if (data.modeChange) { - changeMode(data.modeChange); - } else if (data.firebug) { - if (data.trigger) { - internalOutput('Loading firebug console, triggered by '+data.trigger+'...', 'internal'); - } else { - internalOutput('Loading firebug console...', 'internal'); - } - var firebugEl = document.createElement('script'); - firebugEl.src = 'https://getfirebug.com/firebug-lite-debug.js'; - document.body.appendChild(firebugEl); - } else if (data.dectalk) { - var message = ''; - if (data.decTalkTrigger) { - message = ' '+ - 'You hear a strange robotic voice...' + message; - } - internalOutput(message, 'preventLink'); - } - } -} - -function createPopup(contents, width) { - opts.popups++; - $('body').append(''); - - //Attach close popup event - var $popup = $('#popup'+opts.popups); - var height = $popup.outerHeight(); - $popup.css({'height': height+'px', 'margin': '-'+(height/2)+'px 0 0 -'+(width/2)+'px'}); - - $popup.on('click', '.close', function(e) { - e.preventDefault(); - $popup.remove(); - }); -} - -function toggleWasd(state) { - opts.wasd = (state == 'on' ? true : false); -} - -/***************************************** -* -* DOM READY -* -******************************************/ - -if (typeof $ === 'undefined') { - var div = document.getElementById('loading').childNodes[1]; - div += '

    ERROR: Jquery did not load.'; -} - -$(function() { - $messages = $('#messages'); - $subOptions = $('#subOptions'); - - //Hey look it's a controller loop! - setInterval(function() { - if (opts.lastPang + opts.pangLimit < Date.now() && !opts.restarting) { //Every pingLimit - if (!opts.noResponse) { //Only actually append a message if the previous ping didn't also fail (to prevent spam) - opts.noResponse = true; - opts.noResponseCount++; - internalOutput('
    You are either AFK, experiencing lag or the connection has closed.
    ', 'internal'); - } - } else if (opts.noResponse) { //Previous ping attempt failed ohno - $('.connectionClosed[data-count="'+opts.noResponseCount+'"]:not(.restored)').addClass('restored').text('Your connection has been restored (probably)!'); - opts.noResponse = false; - } - }, 2000); //2 seconds - - - /***************************************** - * - * LOAD SAVED CONFIG - * - ******************************************/ - var savedConfig = { - 'sfontSize': getCookie('fontsize'), - 'sfontType': getCookie('fonttype'), - 'spingDisabled': getCookie('pingdisabled'), - 'shighlightTerms': getCookie('highlightterms'), - 'shighlightColor': getCookie('highlightcolor'), - }; - - if (savedConfig.sfontSize) { - $messages.css('font-size', savedConfig.sfontSize); - internalOutput('Loaded font size setting of: '+savedConfig.sfontSize+'', 'internal'); - } - if (savedConfig.sfontType) { - $messages.css('font-family', savedConfig.sfontType); - internalOutput('Loaded font type setting of: '+savedConfig.sfontType+'', 'internal'); - } - if (savedConfig.spingDisabled) { - if (savedConfig.spingDisabled == 'true') { - opts.pingDisabled = true; - $('#ping').hide(); - } - internalOutput('Loaded ping display of: '+(opts.pingDisabled ? 'hidden' : 'visible')+'', 'internal'); - } - if (savedConfig.shighlightTerms) { - var savedTerms = $.parseJSON(savedConfig.shighlightTerms); - var actualTerms = ''; - for (var i = 0; i < savedTerms.length; i++) { - if (savedTerms[i]) { - actualTerms += savedTerms[i] + ', '; - } - } - if (actualTerms) { - actualTerms = actualTerms.substring(0, actualTerms.length - 2); - internalOutput('Loaded highlight strings of: ' + actualTerms+'', 'internal'); - opts.highlightTerms = savedTerms; - } - } - if (savedConfig.shighlightColor) { - opts.highlightColor = savedConfig.shighlightColor; - internalOutput('Loaded highlight color of: '+savedConfig.shighlightColor+'', 'internal'); - } - - (function() { - var dataCookie = getCookie('connData'); - if (dataCookie) { - var dataJ; - try { - dataJ = $.parseJSON(dataCookie); - } catch (e) { - window.onerror('JSON '+e+'. '+dataCookie, 'browserOutput.html', 434); - return; - } - opts.clientData = dataJ; - } - })(); - - - /***************************************** - * - * BASE CHAT OUTPUT EVENTS - * - ******************************************/ - - $('body').on('click', 'a', function(e) { - e.preventDefault(); - }); - - $('body').on('mousedown', function(e) { - var $target = $(e.target); - - if ($contextMenu && opts.hasOwnProperty('contextMenuTarget') && opts.contextMenuTarget) { - hideContextMenu(); - return false; - } - - if ($target.is('a') || $target.parent('a').length || $target.is('input') || $target.is('textarea')) { - opts.preventFocus = true; - } else { - opts.preventFocus = false; - opts.mouseDownX = e.pageX; - opts.mouseDownY = e.pageY; - } - }); - - $messages.on('mousedown', function(e) { - if ($subOptions && $subOptions.is(':visible')) { - $subOptions.slideUp('fast', function() { - $(this).removeClass('scroll'); - $(this).css('height', ''); - }); - clearInterval(opts.subOptionsLoop); - } - }); - - $('body').on('mouseup', function(e) { - if (!opts.preventFocus && - (e.pageX >= opts.mouseDownX - opts.clickTolerance && e.pageX <= opts.mouseDownX + opts.clickTolerance) && - (e.pageY >= opts.mouseDownY - opts.clickTolerance && e.pageY <= opts.mouseDownY + opts.clickTolerance) - ) { - opts.mouseDownX = null; - opts.mouseDownY = null; - runByond('byond://winset?mapwindow.map.focus=true'); - } - }); - - $messages.on('click', 'a', function(e) { - var href = $(this).attr('href'); - $(this).addClass('visited'); - if (href[0] == '?' || (href.length >= 8 && href.substring(0,8) == 'byond://')) { - runByond(href); - } else { - href = escaper(href); - runByond('?action=openLink&link='+href); - } - }); - - //Fuck everything about this event. Will look into alternatives. - $('body').on('keydown', function(e) { - if (e.target.nodeName == 'INPUT' || e.target.nodeName == 'TEXTAREA') { - return; - } - - if (e.ctrlKey || e.altKey || e.shiftKey) { //Band-aid "fix" for allowing ctrl+c copy paste etc. Needs a proper fix. - return; - } - - e.preventDefault() - - var k = e.which; - var command; // Command to execute through winset. - - // Hardcoded because else there would be no feedback message. - if (k == 113) { // F2 - runByond('byond://winset?screenshot=auto'); - internalOutput('Screenshot taken', 'internal'); - } - - var c = ""; - switch (k) { - case 8: - c = 'BACK'; - case 9: - c = 'TAB'; - case 13: - c = 'ENTER'; - case 19: - c = 'PAUSE'; - case 27: - c = 'ESCAPE'; - case 33: // Page up - c = 'NORTHEAST'; - case 34: // Page down - c = 'SOUTHEAST'; - case 35: // End - c = 'SOUTHWEST'; - case 36: // Home - c = 'NORTHWEST'; - case 37: - c = 'WEST'; - case 38: - c = 'NORTH'; - case 39: - c = 'EAST'; - case 40: - c = 'SOUTH'; - case 45: - c = 'INSERT'; - case 46: - c = 'DELETE'; - case 93: // That weird thing to the right of alt gr. - c = 'APPS'; - - default: - c = String.fromCharCode(k); - } - -// if(opts.macros.hasOwnProperty(c.toUpperCase())) - // command = opts.macros[c]; - - if (command) { - runByond('byond://winset?mapwindow.map.focus=true;command='+command); - return false; - } - else if (c.length == 0) { - if (!e.shiftKey) { - c = c.toLowerCase(); - } - runByond('byond://winset?mapwindow.map.focus=true;mainwindow.input.text='+c); - return false; - } else { - runByond('byond://winset?mapwindow.map.focus=true'); - return false; - } - }); - - //Mildly hacky fix for scroll issues on mob change (interface gets resized sometimes, messing up snap-scroll) - $(window).on('resize', function(e) { - if ($(this).height() !== opts.priorChatHeight) { - $('body,html').scrollTop($messages.outerHeight()); - opts.priorChatHeight = $(this).height(); - } - }); - - //Audio sound prevention - $messages.on('click', '.stopAudio', function() { - var $audio = $(this).parent().children('audio'); - if ($audio) { - $audio.remove(); - } - }); - - - /***************************************** - * - * OPTIONS INTERFACE EVENTS - * - ******************************************/ - - $('body').on('click', '#newMessages', function(e) { - var messagesHeight = $messages.outerHeight(); - $('body,html').scrollTop(messagesHeight); - $('#newMessages').remove(); - runByond('byond://winset?mapwindow.map.focus=true'); - }); - - $('#toggleOptions').click(function(e) { - if ($subOptions.is(':visible')) { - $subOptions.slideUp('fast', function() { - $(this).removeClass('scroll'); - $(this).css('height', ''); - }); - clearInterval(opts.subOptionsLoop); - } else { - $subOptions.slideDown('fast', function() { - var windowHeight = $(window).height(); - var toggleHeight = $('#toggleOptions').outerHeight(); - var priorSubHeight = $subOptions.outerHeight(); - var newSubHeight = windowHeight - toggleHeight; - $(this).height(newSubHeight); - if (priorSubHeight > (windowHeight - toggleHeight)) { - $(this).addClass('scroll'); - } - }); - opts.subOptionsLoop = setInterval(function() { - if (!opts.suppressOptionsClose && $('#subOptions').is(':visible')) { - $subOptions.slideUp('fast', function() { - $(this).removeClass('scroll'); - $(this).css('height', ''); - }); - clearInterval(opts.subOptionsLoop); - } - }, 5000); //Every 5 seconds - } - }); - - $('#subOptions, #toggleOptions').mouseenter(function() { - opts.suppressOptionsClose = true; - }); - - $('#subOptions, #toggleOptions').mouseleave(function() { - opts.suppressOptionsClose = false; - }); - - $('#decreaseFont').click(function(e) { - var fontSize = parseInt($messages.css('font-size')); - fontSize = fontSize - 1 + 'px'; - $messages.css({'font-size': fontSize}); - setCookie('fontsize', fontSize, 365); - internalOutput('Font size set to '+fontSize+'', 'internal'); - }); - - $('#increaseFont').click(function(e) { - var fontSize = parseInt($messages.css('font-size')); - fontSize = fontSize + 1 + 'px'; - $messages.css({'font-size': fontSize}); - setCookie('fontsize', fontSize, 365); - internalOutput('Font size set to '+fontSize+'', 'internal'); - }); - - $('#chooseFont').click(function(e) { - if ($('.popup .changeFont').is(':visible')) {return;} - var popupContent = '
    Change Font
    ' + - ''; - createPopup(popupContent, 200); - }); - - $('body').on('click', '#changeFont a', function(e) { - var font = $(this).attr('data-font'); - $messages.css('font-family', font); - setCookie('fonttype', font, 365); - }); - - $('#togglePing').click(function(e) { - if (opts.pingDisabled) { - $('#ping').slideDown('fast'); - opts.pingDisabled = false; - } else { - $('#ping').slideUp('fast'); - opts.pingDisabled = true; - } - setCookie('pingdisabled', (opts.pingDisabled ? 'true' : 'false'), 365); - }); - - $('#saveLog').click(function(e) { - var saved = ''; - - if (window.XMLHtpRequest) { - xmlHttp = new XMLHttpRequest(); - } else { - xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); - } - xmlHttp.open('GET', 'browserOutput.css', false); - xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); - xmlHttp.send(); - saved += ''; - - saved += $messages.html(); - saved = saved.replace(/&/g, '&'); - saved = saved.replace(/'; - } - var popupContent = '
    String Highlighting
    ' + - '
    ' + - '
    Choose up to '+opts.highlightLimit+' strings that will highlight the line when they appear in chat.
    ' + - '
    ' + - termInputs + - '
    ' + - '
    ' + - '
    ' + - '
    '; - createPopup(popupContent, 250); - }); - - $('body').on('keyup', '#highlightColor', function() { - var color = $('#highlightColor').val(); - color = color.trim(); - if (!color || color.charAt(0) != '#') return; - $('#highlightColor').css('background-color', color); - }); - - $('body').on('submit', '#highlightTermForm', function(e) { - e.preventDefault(); - - var count = 0; - while (count < opts.highlightLimit) { - var term = $('#highlightTermInput'+count).val(); - if (term) { - term = term.trim(); - if (term === '') { - opts.highlightTerms[count] = null; - } else { - opts.highlightTerms[count] = term.toLowerCase(); - } - } else { - opts.highlightTerms[count] = null; - } - count++; - } - - var color = $('#highlightColor').val(); - color = color.trim(); - if (color == '' || color.charAt(0) != '#') { - opts.highlightColor = '#FFFF00'; - } else { - opts.highlightColor = color; - } - var $popup = $('#highlightPopup').closest('.popup'); - $popup.remove(); - - setCookie('highlightterms', JSON.stringify(opts.highlightTerms), 365); - setCookie('highlightcolor', opts.highlightColor, 365); - }); - - $('#clearMessages').click(function() { - $messages.empty(); - opts.messageCount = 0; - }); - - - /***************************************** - * - * KICK EVERYTHING OFF - * - ******************************************/ - - runByond('?_src_=chat&proc=doneLoading'); - if ($('#loading').is(':visible')) { - $('#loading').remove(); - } - $('#userBar').show(); - opts.priorChatHeight = $(window).height(); -}); \ No newline at end of file diff --git a/goon/browserassets/js/json2.min.js b/goon/browserassets/js/json2.min.js deleted file mode 100644 index d867407f26..0000000000 --- a/goon/browserassets/js/json2.min.js +++ /dev/null @@ -1 +0,0 @@ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return 10>t?"0"+t:t}function this_value(){return this.valueOf()}function quote(t){return rx_escapable.lastIndex=0,rx_escapable.test(t)?'"'+t.replace(rx_escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var r,n,o,u,f,a=gap,i=e[t];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(t)),"function"==typeof rep&&(i=rep.call(e,t,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,f=[],"[object Array]"===Object.prototype.toString.apply(i)){for(u=i.length,r=0;u>r;r+=1)f[r]=str(r,i)||"null";return o=0===f.length?"[]":gap?"[\n"+gap+f.join(",\n"+gap)+"\n"+a+"]":"["+f.join(",")+"]",gap=a,o}if(rep&&"object"==typeof rep)for(u=rep.length,r=0;u>r;r+=1)"string"==typeof rep[r]&&(n=rep[r],o=str(n,i),o&&f.push(quote(n)+(gap?": ":":")+o));else for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(o=str(n,i),o&&f.push(quote(n)+(gap?": ":":")+o));return o=0===f.length?"{}":gap?"{\n"+gap+f.join(",\n"+gap)+"\n"+a+"}":"{"+f.join(",")+"}",gap=a,o}}var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value);var gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(t,e,r){var n;if(gap="",indent="","number"==typeof r)for(n=0;r>n;n+=1)indent+=" ";else"string"==typeof r&&(indent=r);if(rep=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return str("",{"":t})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(t,e){var r,n,o=t[e];if(o&&"object"==typeof o)for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n=walk(o,r),void 0!==n?o[r]=n:delete o[r]);return reviver.call(t,e,o)}var j;if(text=String(text),rx_dangerous.lastIndex=0,rx_dangerous.test(text)&&(text=text.replace(rx_dangerous,function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})),rx_one.test(text.replace(rx_two,"@").replace(rx_three,"]").replace(rx_four,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(); \ No newline at end of file diff --git a/goon/code/datums/browserOutput.dm b/goon/code/datums/browserOutput.dm deleted file mode 100644 index d928397728..0000000000 --- a/goon/code/datums/browserOutput.dm +++ /dev/null @@ -1,289 +0,0 @@ -/********************************* -For the main html chat area -*********************************/ - -//Precaching a bunch of shit -GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of icons for the browser output - -//On client, created on login -/datum/chatOutput - var/client/owner //client ref - var/loaded = FALSE // Has the client loaded the browser output area? - var/list/messageQueue //If they haven't loaded chat, this is where messages will go until they do - var/cookieSent = FALSE // Has the client sent a cookie for analysis - var/list/connectionHistory //Contains the connection history passed from chat cookie - var/broken = FALSE - -/datum/chatOutput/New(client/C) - owner = C - messageQueue = list() - connectionHistory = list() - // log_world("chatOutput: New()") - -/datum/chatOutput/proc/start() - //Check for existing chat - if(!owner) - return FALSE - - if(!winexists(owner, "browseroutput")) // Oh goddamnit. - alert(owner.mob, "Updated chat window does not exist. If you are using a custom skin file please allow the game to update.") - broken = TRUE - return FALSE - - if(winget(owner, "browseroutput", "is-disabled") == "false") //Already setup - doneLoading() - - else //Not setup - load() - - return TRUE - -/datum/chatOutput/proc/load() - set waitfor = FALSE - if(!owner) - return - - var/static/list/chatResources = list( - "code/modules/html_interface/js/jquery.min.js", - "goon/browserassets/js/json2.min.js", - "goon/browserassets/js/browserOutput.js", - "tgui/assets/fonts/fontawesome-webfont.eot", - "tgui/assets/fonts/fontawesome-webfont.svg", - "tgui/assets/fonts/fontawesome-webfont.ttf", - "tgui/assets/fonts/fontawesome-webfont.woff", - "goon/browserassets/css/font-awesome.css", - "goon/browserassets/css/browserOutput.css" - ) - - // to_chat(world.log, "chatOutput: load()") - for(var/attempts in 1 to 5) - for(var/asset in chatResources) - owner << browse_rsc(file(asset)) - - //log_world("Sending main chat window to client [owner.ckey]") - owner << browse(file("goon/browserassets/html/browserOutput.html"), "window=browseroutput") - sleep(14 + (chatResources.len * 7)) - if(!owner || loaded) - break - - if(owner && !loaded) - doneLoading() // try doing this manually - CRASH("[owner] failed to load chat. Attempting doneLoading() manually") - // log_world("chatOutput: [owner.ckey] load() completed") - -/datum/chatOutput/Topic(href, list/href_list) - if(usr.client != owner) - return TRUE - - // Build arguments. - // Arguments are in the form "param[paramname]=thing" - var/list/params = list() - for(var/key in href_list) - if(length(key) > 7 && findtext(key, "param")) // 7 is the amount of characters in the basic param key template. - var/param_name = copytext(key, 7, -1) - var/item = href_list[key] - - params[param_name] = item - - var/data // Data to be sent back to the chat. - switch(href_list["proc"]) - if("doneLoading") - data = doneLoading(arglist(params)) - - if("debug") - data = debug(arglist(params)) - - if("ping") - data = ping(arglist(params)) - - if("analyzeClientData") - data = analyzeClientData(arglist(params)) - - if(data) - ehjax_send(data = data) - -//Called on chat output done-loading by JS. -/datum/chatOutput/proc/doneLoading() - if(loaded) - return - - loaded = TRUE - winset(owner, "browseroutput", "is-disabled=false") - for(var/message in messageQueue) - to_chat(owner, message) - - messageQueue = null - sendClientData() - - pingLoop() - -/datum/chatOutput/proc/pingLoop() - set waitfor = FALSE - - while (owner) - ehjax_send(data = owner.is_afk(29) ? "softPang" : "pang") // SoftPang isn't handled anywhere but it'll always reset the opts.lastPang. - sleep(30) - -/datum/chatOutput/proc/ehjax_send(client/C = owner, window = "browseroutput", data) - if(islist(data)) - data = json_encode(data) - C << output("[data]", "[window]:ehjaxCallback") - -//Sends client connection details to the chat to handle and save -/datum/chatOutput/proc/sendClientData() - //Get dem deets - var/list/deets = list("clientData" = list()) - deets["clientData"]["ckey"] = owner.ckey - deets["clientData"]["ip"] = owner.address - deets["clientData"]["compid"] = owner.computer_id - var/data = json_encode(deets) - ehjax_send(data = data) - -//Called by client, sent data to investigate (cookie history so far) -/datum/chatOutput/proc/analyzeClientData(cookie = "") - if(!cookie) - return - - if(cookie != "none") - var/list/connData = json_decode(cookie) - if (connData && islist(connData) && connData.len > 0 && connData["connData"]) - connectionHistory = connData["connData"] //lol fuck - var/list/found = new() - for(var/i in connectionHistory.len to 1 step -1) - var/list/row = src.connectionHistory[i] - if (!row || row.len < 3 || (!row["ckey"] && !row["compid"] && !row["ip"])) //Passed malformed history object - return - if (world.IsBanned(row["ckey"], row["compid"], row["ip"])) - found = row - break - - //Uh oh this fucker has a history of playing on a banned account!! - if (found.len > 0) - //TODO: add a new evasion ban for the CURRENT client details, using the matched row details - message_admins("[key_name(src.owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])") - log_admin("[key_name(src.owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])") - - cookieSent = TRUE - -//Called by js client every 60 seconds -/datum/chatOutput/proc/ping() - return "pong" - -//Called by js client on js error -/datum/chatOutput/proc/debug(error) - log_world("\[[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]\] Client: [(src.owner.key ? src.owner.key : src.owner)] triggered JS error: [error]") - -#ifdef TESTING -/client/verb/debug_chat() - set hidden = TRUE - chatOutput.ehjax_send(data = list("firebug" = TRUE)) -#endif -//Global chat procs - -GLOBAL_LIST_EMPTY(bicon_cache) - -//Converts an icon to base64. Operates by putting the icon in the iconCache savefile, -// exporting it as text, and then parsing the base64 from that. -// (This relies on byond automatically storing icons in savefiles as base64) -/proc/icon2base64(icon/icon, iconKey = "misc") - if (!isicon(icon)) - return FALSE - GLOB.iconCache[iconKey] << icon - var/iconData = GLOB.iconCache.ExportText(iconKey) - var/list/partial = splittext(iconData, "{") - return replacetext(copytext(partial[2], 3, -5), "\n", "") - -/proc/bicon(obj) - if (!obj) - return - - if (isicon(obj)) - //Icons get pooled constantly, references are no good here. - /*if (!bicon_cache["\ref[obj]"]) // Doesn't exist yet, make it. - bicon_cache["\ref[obj]"] = icon2base64(obj) - return ""*/ - return "" - - // Either an atom or somebody fucked up and is gonna get a runtime, which I'm fine with. - var/atom/A = obj - var/key = "[istype(A.icon, /icon) ? "\ref[A.icon]" : A.icon]:[A.icon_state]" - if (!GLOB.bicon_cache[key]) // Doesn't exist, make it. - var/icon/I = icon(A.icon, A.icon_state, SOUTH, 1) - if (ishuman(obj)) // Shitty workaround for a BYOND issue. - var/icon/temp = I - I = icon() - I.Insert(temp, dir = SOUTH) - GLOB.bicon_cache[key] = icon2base64(I, key) - - return "" - -//Costlier version of bicon() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs. -/proc/costly_bicon(obj) - if (!obj) - return - - if (isicon(obj)) - return bicon(obj) - - var/icon/I = getFlatIcon(obj) - return bicon(I) - -/proc/to_chat(target, message) - if(isnull(target)) - return - //Ok so I did my best but I accept that some calls to this will be for shit like sound and images - //It stands that we PROBABLY don't want to output those to the browser output so just handle them here - if (istype(message, /image) || istype(message, /sound) || istype(target, /savefile) || !(ismob(target) || islist(target) || istype(target, /client) || istype(target, /datum/log) || target == world)) - target << message - if (!istype(target, /atom)) // Really easy to mix these up, and not having to make sure things are mobs makes the code cleaner. - CRASH("DEBUG: Boutput called with invalid message") - return - - //Otherwise, we're good to throw it at the user - else if (istext(message)) - if (istext(target)) - return - - //Some macros remain in the string even after parsing and fuck up the eventual output - if (findtext(message, "\improper")) - message = replacetext(message, "\improper", "") - if (findtext(message, "\proper")) - message = replacetext(message, "\proper", "") - - //Grab us a client if possible - var/client/C = grab_client(target) - - if (C && C.chatOutput) - if(C.chatOutput.broken) // A player who hasn't updated his skin file. - to_chat(C, message) - return TRUE - if(!C.chatOutput.loaded && C.chatOutput.messageQueue && islist(C.chatOutput.messageQueue)) - //Client sucks at loading things, put their messages in a queue - C.chatOutput.messageQueue.Add(message) - return - - if(istype(target, /datum/log)) - var/datum/log/L = target - L.log += (message + "\n") - return - - message = replacetext(message, "\n", "
    ") - message = replacetext(message, "\t", "    ") - - // url_encode it TWICE, this way any UTF-8 characters are able to be decoded by the Javascript. - target << output(url_encode(url_encode(message)), "browseroutput:output") - -/proc/grab_client(target) - if(istype(target, /client)) - return target - else if(istype(target, /mob)) - var/mob/M = target - if(M.client) - return M.client - else if(istype(target, /datum/mind)) - var/datum/mind/M = target - if(M.current && M.current.client) - return M.current.client - -/datum/log //exists purely to capture to_chat() output - var/log = "" \ No newline at end of file From 2845428c03a093a2e4d051ea50c7017333d76f4d Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 17 Jun 2019 20:18:28 +0200 Subject: [PATCH 102/180] ports "Improve efficiency of SSmapping init" (#8651) --- code/controllers/subsystem/mapping.dm | 11 +++++++---- code/game/area/areas.dm | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 9eb71c9059..a365405ce6 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -256,10 +256,13 @@ GLOBAL_LIST_EMPTY(the_station_areas) /datum/controller/subsystem/mapping/proc/generate_station_area_list() var/list/station_areas_blacklist = typecacheof(list(/area/space, /area/mine, /area/ruin, /area/asteroid/nearstation)) for(var/area/A in world) - var/turf/picked = safepick(get_area_turfs(A.type)) - if(picked && is_station_level(picked.z)) - if(!(A.type in GLOB.the_station_areas) && !is_type_in_typecache(A, station_areas_blacklist)) - GLOB.the_station_areas.Add(A.type) + if (is_type_in_typecache(A, station_areas_blacklist)) + continue + if (!A.contents.len || !A.unique) + continue + var/turf/picked = A.contents[1] + if (is_station_level(picked.z)) + GLOB.the_station_areas += A.type if(!GLOB.the_station_areas.len) log_world("ERROR: Station areas list failed to generate!") diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 099b1b2f9c..dfbb59811b 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -76,7 +76,9 @@ GLOBAL_LIST_EMPTY(teleportlocs) continue if(GLOB.teleportlocs[AR.name]) continue - var/turf/picked = safepick(get_area_turfs(AR.type)) + if (!AR.contents.len) + continue + var/turf/picked = AR.contents[1] if (picked && is_station_level(picked.z)) GLOB.teleportlocs[AR.name] = AR From 95dc8084f1c3ce67309a772ab998b95461cda744 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 17 Jun 2019 20:18:49 +0200 Subject: [PATCH 103/180] Moving some tablecrafting recipes to the appropriate categories (#8658) * Moving some recipes to the appropriate categories * Fixes the not-a-sandwich recipe being M.I.A. --- code/__DEFINES/construction.dm | 2 +- code/modules/crafting/craft.dm | 2 +- code/modules/crafting/recipes.dm | 44 ++++++++--------- .../recipes/tablecraft/recipes_meat.dm | 31 ------------ .../recipes/tablecraft/recipes_pastry.dm | 12 +---- .../recipes/tablecraft/recipes_sandwich.dm | 12 ++++- .../recipes/tablecraft/recipes_sushi.dm | 49 +++++++++++++++---- 7 files changed, 76 insertions(+), 76 deletions(-) diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index aa9c5cf34e..ee51fb6909 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -102,7 +102,7 @@ #define CAT_SANDWICH "Sandwiches" #define CAT_SOUP "Soups" #define CAT_SPAGHETTI "Spaghettis" -#define CAT_SUSHI "Fish" +#define CAT_FISH "Fish" #define CAT_ICE "Frozen" #define RCD_FLOORWALL 1 diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index ba2a27af77..3e96512bb8 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -21,7 +21,7 @@ CAT_BURGER, CAT_CAKE, CAT_EGG, - CAT_SUSHI, //Called Fish + CAT_FISH, CAT_ICE, //Called Frozen CAT_MEAT, CAT_MISCFOOD, diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 2f26c1e200..c1cc6d856e 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -365,28 +365,6 @@ parts = list(/obj/item/camera = 1) category = CAT_MISC -/datum/crafting_recipe/lizardhat - name = "Lizard Cloche Hat" - result = /obj/item/clothing/head/lizard - time = 10 - reqs = list(/obj/item/organ/tail/lizard = 1) - category = CAT_MISC - -/datum/crafting_recipe/lizardhat_alternate - name = "Lizard Cloche Hat" - result = /obj/item/clothing/head/lizard - time = 10 - reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1) - category = CAT_MISC - -/datum/crafting_recipe/kittyears - name = "Kitty Ears" - result = /obj/item/clothing/head/kitty/genuine - time = 10 - reqs = list(/obj/item/organ/tail/cat = 1, - /obj/item/organ/ears/cat = 1) - category = CAT_MISC - /datum/crafting_recipe/skateboard name = "Skateboard" result = /obj/vehicle/ridden/scooter/skateboard @@ -681,6 +659,28 @@ tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) category = CAT_MISC +/datum/crafting_recipe/lizardhat + name = "Lizard Cloche Hat" + result = /obj/item/clothing/head/lizard + time = 10 + reqs = list(/obj/item/organ/tail/lizard = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/lizardhat_alternate + name = "Lizard Cloche Hat" + result = /obj/item/clothing/head/lizard + time = 10 + reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/kittyears + name = "Kitty Ears" + result = /obj/item/clothing/head/kitty/genuine + time = 10 + reqs = list(/obj/item/organ/tail/cat = 1, + /obj/item/organ/ears/cat = 1) + category = CAT_CLOTHING + /datum/crafting_recipe/hudsunsec name = "Security HUDsunglasses" result = /obj/item/clothing/glasses/hud/security/sunglasses diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index c16c7268b9..7eff2820c5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -38,37 +38,6 @@ // see code/module/crafting/table.dm -////////////////////////////////////////////////FISH//////////////////////////////////////////////// - -/datum/crafting_recipe/food/cubancarp - name = "Cuban carp" - reqs = list( - /datum/reagent/consumable/flour = 5, - /obj/item/reagent_containers/food/snacks/grown/chili = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cubancarp - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/fishandchips - name = "Fish and chips" - reqs = list( - /obj/item/reagent_containers/food/snacks/fries = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/fishandchips - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/fishfingers - name = "Fish fingers" - reqs = list( - /datum/reagent/consumable/flour = 5, - /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/fishfingers - subcategory = CAT_MEAT - ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// /datum/crafting_recipe/food/spidereggsham diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 4b76ca120b..ba6c0120e1 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -22,7 +22,7 @@ ) result = /obj/item/reagent_containers/food/snacks/donut subcategory = CAT_PASTRY - + /datum/crafting_recipe/food/donut time = 15 name = "Semen donut" @@ -205,16 +205,6 @@ datum/crafting_recipe/food/donut/meat ////////////////////////////////////////////OTHER//////////////////////////////////////////// -/datum/crafting_recipe/food/hotdog - name = "Hot dog" - reqs = list( - /datum/reagent/consumable/ketchup = 5, - /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/sausage = 1 - ) - result = /obj/item/reagent_containers/food/snacks/hotdog - subcategory = CAT_PASTRY - /datum/crafting_recipe/food/meatbun name = "Meat bun" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 0f1c40da3f..133713ac75 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -52,7 +52,7 @@ result = /obj/item/reagent_containers/food/snacks/notasandwich subcategory = CAT_SANDWICH -/datum/crafting_recipe/food/notasandwich +/datum/crafting_recipe/food/tunasandwich name = "Tuna sandwich" reqs = list( /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, @@ -62,3 +62,13 @@ ) result = /obj/item/reagent_containers/food/snacks/tuna_sandwich subcategory = CAT_SANDWICH + +/datum/crafting_recipe/food/hotdog + name = "Hot dog" + reqs = list( + /datum/reagent/consumable/ketchup = 5, + /obj/item/reagent_containers/food/snacks/bun = 1, + /obj/item/reagent_containers/food/snacks/sausage = 1 + ) + result = /obj/item/reagent_containers/food/snacks/hotdog + subcategory = CAT_SANDWICH diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm index 99d48cf69d..9dbf1d684b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm @@ -7,7 +7,7 @@ /datum/reagent/consumable/rice = 10 ) result = /obj/item/reagent_containers/food/snacks/sushi_rice - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/sea_weed name = "Sea Weed Sheet" @@ -17,7 +17,7 @@ /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, ) result = /obj/item/reagent_containers/food/snacks/sea_weed - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/tuna_can name = "Can of Tuna" @@ -27,7 +27,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1, ) result = /obj/item/reagent_containers/food/snacks/tuna - subcategory = CAT_SUSHI + subcategory = CAT_FISH //////////////////////////Sushi///////////////////////////////// @@ -39,7 +39,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/sashimi - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/riceball name = "Onigiri" @@ -49,7 +49,7 @@ /obj/item/reagent_containers/food/snacks/sushi_rice = 1 ) result = /obj/item/reagent_containers/food/snacks/riceball - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/sushie_egg name = "Tobiko" @@ -59,7 +59,7 @@ /obj/item/reagent_containers/food/snacks/sea_weed = 2, ) result = /obj/item/reagent_containers/food/snacks/tobiko - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/sushie_basic name = "Funa Hosomaki" @@ -70,7 +70,7 @@ /obj/item/reagent_containers/food/snacks/sea_weed = 3, ) result = /obj/item/reagent_containers/food/snacks/sushie_basic - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/sushie_adv name = "Funa Nigiri" @@ -80,7 +80,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/sushie_adv - subcategory = CAT_SUSHI + subcategory = CAT_FISH /datum/crafting_recipe/food/sushie_pro name = "Well made Funa Nigiri" @@ -91,4 +91,35 @@ /obj/item/reagent_containers/food/snacks/sea_weed = 1 ) result = /obj/item/reagent_containers/food/snacks/sushie_pro - subcategory = CAT_SUSHI + subcategory = CAT_FISH + +///////////////Gaijin junk///////////////////////////////////// + +/datum/crafting_recipe/food/fishfingers + name = "Fish fingers" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/reagent_containers/food/snacks/bun = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fishfingers + subcategory = CAT_FISH + +/datum/crafting_recipe/food/cubancarp + name = "Cuban carp" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/cubancarp + subcategory = CAT_FISH + +/datum/crafting_recipe/food/fishandchips + name = "Fish and chips" + reqs = list( + /obj/item/reagent_containers/food/snacks/fries = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fishandchips + subcategory = CAT_FISH \ No newline at end of file From 27c4288e5de61b13923e2dc46e1213d65128562d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 17 Jun 2019 13:18:52 -0500 Subject: [PATCH 104/180] Automatic changelog generation for PR #8658 [ci skip] --- html/changelogs/AutoChangeLog-pr-8658.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8658.yml diff --git a/html/changelogs/AutoChangeLog-pr-8658.yml b/html/changelogs/AutoChangeLog-pr-8658.yml new file mode 100644 index 0000000000..ad35118c3f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8658.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "Moving some tablecrafting recipes to the appropriate categories: Kitty ears and lizard cloche hats to \"clothing\"; Hot dogs to \"Sandwichs\"; Cuban carb, fish and chips and fish fingers to \"Fish\"." + - bugfix: "Fixes the not-a-sandwich recipe being M.I.A." From bf991cd2da28a034e036b2dd16a76aa93625a7b7 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 17 Jun 2019 13:20:25 -0500 Subject: [PATCH 105/180] Underwear overlays Gentials, can toggle each seperately (#8602) * Gentials layered under underclothes * screm --- code/modules/client/preferences.dm | 3 ++ code/modules/mob/living/carbon/human/human.dm | 1 + .../mob/living/carbon/human/species.dm | 12 +++++++ .../code/modules/arousal/arousal.dm | 31 ++++++++++++++++++ .../code/modules/arousal/organs/genitals.dm | 4 ++- .../icons/obj/genitals/breasts_onmob.dmi | Bin 4932 -> 4864 bytes .../icons/obj/genitals/penis_onmob.dmi | Bin 3880 -> 3885 bytes .../icons/obj/genitals/testicles_onmob.dmi | Bin 762 -> 759 bytes .../icons/obj/genitals/vagina_onmob.dmi | Bin 1076 -> 1070 bytes 9 files changed, 50 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a0eea344a3..501e9fc7cc 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2236,8 +2236,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.hair_style = hair_style character.facial_hair_style = facial_hair_style character.underwear = underwear + character.saved_underwear = underwear character.undershirt = undershirt + character.saved_undershirt = undershirt character.socks = socks + character.saved_socks = socks character.backbag = backbag diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 129e600b00..c03c0fc0a9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -8,6 +8,7 @@ /mob/living/carbon/human/Initialize() verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down + verbs += /mob/living/carbon/human/proc/underwear_toggle //fwee //initialize limbs first create_bodyparts() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 62a4d42672..0a00bab3f4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -490,11 +490,19 @@ GLOBAL_LIST_EMPTY(roundstart_races) //Underwear, Undershirts & Socks if(!(NO_UNDERWEAR in species_traits)) if(H.underwear) + if(H.hidden_underwear) + H.underwear = "Nude" + else + H.underwear = H.saved_underwear var/datum/sprite_accessory/underwear/underwear = GLOB.underwear_list[H.underwear] if(underwear) standing += mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER) if(H.undershirt) + if(H.hidden_undershirt) + H.undershirt = "Nude" + else + H.undershirt = H.saved_undershirt var/datum/sprite_accessory/undershirt/undershirt = GLOB.undershirt_list[H.undershirt] if(undershirt) if(H.dna.species.sexes && H.gender == FEMALE) @@ -503,6 +511,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) standing += mutable_appearance(undershirt.icon, undershirt.icon_state, -BODY_LAYER) if(H.socks && H.get_num_legs(FALSE) >= 2) + if(H.hidden_socks) + H.socks = "Nude" + else + H.socks = H.saved_socks var/datum/sprite_accessory/socks/socks = GLOB.socks_list[H.socks] if(socks) if(DIGITIGRADE in species_traits) diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 846a8cff62..27f7576e7f 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -14,6 +14,10 @@ var/saved_underwear = ""//saves their underwear so it can be toggled later var/saved_undershirt = "" + var/saved_socks = "" + var/hidden_underwear = FALSE + var/hidden_undershirt = FALSE + var/hidden_socks = FALSE /mob/living/carbon/human/New() ..() @@ -29,6 +33,33 @@ var/list/femcum_fluids = list("femcum") //Mob procs +/mob/living/carbon/human/proc/underwear_toggle() + set name = "Toggle undergarments" + set category = "Object" + if(ishuman(src)) + var/mob/living/carbon/human/humz = src + var/confirm = input(src, "Select what part of your form to alter", "Undergarment Toggling", "Cancel") in list("Top", "Bottom", "Socks", "All", "Cancel") + if(confirm == "Top") + humz.hidden_undershirt = !humz.hidden_undershirt + + if(confirm == "Bottom") + humz.hidden_underwear = !humz.hidden_underwear + + if(confirm == "Socks") + humz.hidden_socks = !humz.hidden_socks + + if(confirm == "All") + humz.hidden_undershirt = !humz.hidden_undershirt + humz.hidden_underwear = !humz.hidden_underwear + humz.hidden_socks = !humz.hidden_socks + + if(confirm == "Cancel") + return + src.update_body() + + else + to_chat(src, "Humans only. How the fuck did you get this verb anyway.") + /mob/living/proc/handle_arousal() diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 52508d7803..63d6834409 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -73,7 +73,7 @@ owner.exposed_genitals += src if("Hidden by clothes") through_clothes = FALSE - hidden = FALSE + hidden = TRUE if(src in owner.exposed_genitals) owner.exposed_genitals -= src if("Always hidden") @@ -303,6 +303,8 @@ for(var/obj/item/organ/O in H.internal_organs) if(isgenital(O)) var/obj/item/organ/genital/G = O + if(G.hidden) + return //we're gunna just hijack this for updates. if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes genitals_to_add += H.getorganslot(G.slot) //Now we added all genitals that aren't internal and should be rendered diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi index 69a531bd11511356b8a89b4057a1fc243f3e078e..c4b75b1172d112edf090c7b56d8b02a7745e7be4 100644 GIT binary patch delta 347 zcmV-h0i^!KCV(c8ZGS|1R9JLGWpiV4X>fFDZ*Bkpc%0SPy-ve090c$=ehRCdK`pQ{ zfKs6%(N~C^_z$tfN3mVt@kxo*x&y=AQfG^Y%Wt`yrOfsH>S4Xn_0w8?i4X4MUEk`P z%Y~}GosIo)xV}iHBN7Y8k0xq>hm+BiXVgVI(PAG8cjB`4D58&S@>Db)435n&mV*1x+|j3fDe& z#=<+FLWG3wd^ t9LvtD_`PwgAFtwzer6S4_mgOW>Rhij_1}-BU%erw-nXyUwX^;KMiKNiwb%dv delta 416 zcmV;R0bl-rCd4L?ZGVV*R9JLGWpiV4X>fFDZ*Bkpc$}q}%}#?r7)96c6r^2iT6OED zDJlywG49F0d=(OZDl=6dUkZc{CMM3A9V{*aHtaOiyvK3{lDfX&q3stO&n}5fL{Am$Kx@pbvD{-`I z)vFwz*MG*=Bvvw7$!Ha$Rg9(?O>^2Nz02~gKaS*twG-A(U^{{B)R}=h=z?qslvq+? zMTr$9YD&~$M6`<@iOw8tDYT{FmO@&79Fzv07-PN-`fFDZ*Bkpc$}@6!A`lXf6MgGlS)gi>dV1S6?v6p`;9D;Nq;gVUx0L0wfx$E# zj1yvcIv6L!5_K?0sO3(T@b}ZEC>@rkO;I{5O`C#rtF^?lv>--?C22v749n4iuun}D zTE4DTcaWlfRe!DJSABUksvjp$=}c()>y**yYWhM0j_S-2Jm+sE9f$RVn7TM4AjV8V zhQjJIGYO%r$wFaRjaHXOFw?9V3MGtvU_d|WI0gFgljq3I zZr@y|$?fw~{DR%qUsTL8aG;oVfYODmPEb05>)O@^3V&UWTMbAh5o+61NhJ}i>Byk- z7f7xNtdt1XOaoR*#M{mi(CKpA%0McKXxk}9Dv4l^BM>w?7_~ldLL$`T=;egWceNec z-OBR^clSBSD$)CHko$mtE2}@`vloi`Bx0qYC;?LT45bzel0)lsCK9(^upnBh-QKAs mgXGXUtr&L6tQs8FTjVg9$I;fFDZ*Bkpc$}@7K~KU!5QWd}uV~+zqiG(-6etLJ&BiM^369q$&3^F(PZ{GPonAbJp58sU2Mwe zJ{sQ+!{EEfbl$uWaTw&P_{jC&i&{&qn#bN&l|`NAyR|ISQGYs2A6{RQw_X@zMOC*& z!eCj+wQ8S7r>V*8X`W0WET&{JCli!Rpt8?$qqWN5AZ?BkqG8$`B}4P7Mu+BUVT=w<)55U7 zo+`C`UnyUlqJR0VTFIa0@ov!koUG%?X?#>?aJnO3bU-OjnqZ~>HFa3$BWf=*lmMx2 zPjVdEWw*63&e}aBh<0l20SxTMIme-mcEc6p%#frov`aIzz&F>;tg|36v(DCm#sghR zuD84PIb)84o0>Z+_8fCokiwW13Q{O=p&5U$(j~bQgMXG1(VD?aONn^9sSR6?Q1aa1 zwM4|-#^AL?$Y$TbR+r>X4_ZnDY&IP&CE`7-N!aOt)EUAmiD(b&nN>2MTeI4I(#w~- zuM%>Sc;6B7zrqz8^GAL0VbWBhP7{(7FlTRB@<5?Uyjy2yv1ba8;tksifIL=c67SX; hsNBiIf)f|C+K*<*bpLh1FA9)H{*n*@$FqI{uMFYc5Y7Mq diff --git a/modular_citadel/icons/obj/genitals/testicles_onmob.dmi b/modular_citadel/icons/obj/genitals/testicles_onmob.dmi index 581bcb0583434fd91c3ba9b8adec45d8bbe9c3f5..33659cf13cb42239e1fc3a2e8ccf3c02ff42ea26 100644 GIT binary patch delta 249 zcmVqL|1P8X}c8K}=|)*B3Cd zH0IB)UA#`;^k>pk6y>q1g}zk$X~*CngV>ARHskE&+vui^lAJl~I~PBj5SwVHWfEc zRj8>#O%=gZ5lr(n!H&!HLg&8~FwsycK z5ANDoZ@lZ9&KhA-vpb*kC1z3W20xv|qT5j2?X(s@Q9(yjlNEyjqP!UBE9UWt~FZ@*v~=r>gRpKK?*(E0pvc>~Slv6bxDibwze0h38Y WK~#90?b*R?!axuOP#d#g0ha+bkcN!_ diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi index f5daa3fea1ba98eefe5f6bc9512d66a61ab9186a..c4cf891eacb33ec4b217986d85e5f9bf16ed0483 100644 GIT binary patch delta 286 zcmV+(0pb3%2(Ac_YJUfMR9JLGWpiV4X>fFDZ*Bkpc$~eIT?>LR6o#+euNZY(p)0%V zqA;SM{=zu4r2}2Dt)hS5>{F41O$cw!gy%dj?!`V{ELZCtPPS`w;Yy36#4|h@g($cR zW-@yi6BJ}zq?vghv;o8I*t*cN9Z5Kd9}gKc{VAM;OkD#QE)DE+-hpe$KKW*U29FzySh>i6tN)9&=t)iA{P-Z$ z&H2V&P>Z$+9nMN|=BoNoPA+`{=6s!R$i+0&UY)OC-CJ*$dG+3Mp3Se5-Mas`0@~1C k6|8cOKA##^uo6~VA1`;w<6nIT*!r)1O#Gu|vw#7#0@~ delta 292 zcmV+<0o(qr2($>0YJUxSR9JLGWpiV4X>fFDZ*Bkpc$~eI%L>9U5JlI`SA=$}($>e$ zjrhQY6~uiROl$)hC5cM^-qdF$SVp?0|RG0n{GR7gz4_n}Al!obeF;A90@_z^uvh0GqwSX-x>*y^O z)nPq-OE*yHG7cNv%NI9H4;kzk&+JVo$`!0O^eeLV1)b*$uJ*e|D^j*nVDI4x)>?>P zESQ4;CJKl7-LP6|6I&mIpu}G8!CC6bJrIZS-Z4A1rgTh01^h)GbUVjHXwo?ouk5#} q`0H9~>yC?AB^a$W-IlWgeozeXC>dV Date: Mon, 17 Jun 2019 13:20:28 -0500 Subject: [PATCH 106/180] Automatic changelog generation for PR #8602 [ci skip] --- html/changelogs/AutoChangeLog-pr-8602.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8602.yml diff --git a/html/changelogs/AutoChangeLog-pr-8602.yml b/html/changelogs/AutoChangeLog-pr-8602.yml new file mode 100644 index 0000000000..4974c1ae79 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8602.yml @@ -0,0 +1,5 @@ +author: "Poojawa" +delete-after: True +changes: + - rscadd: "Added an underwear toggle button under 'Object' tab" + - tweak: "Genitals now layer under underwear. Hide these if they're too obnoxious." From 96f0f0bd24b88922a625e505e17a842d4f111014 Mon Sep 17 00:00:00 2001 From: Sishen Date: Mon, 17 Jun 2019 14:31:24 -0400 Subject: [PATCH 107/180] Update arcade.dm --- code/game/machinery/computer/arcade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index efbbe36228..e57f802695 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,7 +1,7 @@ #define ARCADE_WEIGHT_TRICK 4 #define ARCADE_WEIGHT_USELESS 2 #define ARCADE_WEIGHT_RARE 1 -#define ARCADE_WEIGHT_PLUSH 3 +#define ARCADE_WEIGHT_PLUSH 45 /obj/machinery/computer/arcade From 95a6b5d7a908a3f3da54cb635f118f2741fa81a8 Mon Sep 17 00:00:00 2001 From: Sishen Date: Mon, 17 Jun 2019 14:35:24 -0400 Subject: [PATCH 108/180] Update arcade.dm --- code/game/machinery/computer/arcade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index e57f802695..d8abff49c1 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,7 +1,7 @@ #define ARCADE_WEIGHT_TRICK 4 #define ARCADE_WEIGHT_USELESS 2 #define ARCADE_WEIGHT_RARE 1 -#define ARCADE_WEIGHT_PLUSH 45 +#define ARCADE_WEIGHT_PLUSH 65 /obj/machinery/computer/arcade From 4e1ac41393c5cb3d2dc8ccd9a5c1d60dc72488a2 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 17 Jun 2019 14:41:06 -0400 Subject: [PATCH 109/180] Update species.dm --- code/modules/mob/living/carbon/human/species.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 0a00bab3f4..4fb3fb0243 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1300,7 +1300,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) . += H.physiology.speed_mod if (H.m_intent == MOVE_INTENT_WALK && HAS_TRAIT(H, TRAIT_SPEEDY_STEP)) - . -= 1 + . -= 1.5 if(HAS_TRAIT(H, TRAIT_IGNORESLOWDOWN)) ignoreslow = 1 From 4797a306ccadbeefe099d31a2f38770188624344 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Mon, 17 Jun 2019 22:04:34 +0200 Subject: [PATCH 110/180] applying suggestions. --- code/modules/spells/spell_types/construct_spells.dm | 5 ++--- code/modules/spells/spell_types/wizard.dm | 4 ++-- modular_citadel/code/datums/status_effects/debuffs.dm | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 475b40b6f0..bb3cc1f7e3 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -153,8 +153,7 @@ action_background_icon_state = "bg_demon" /obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile/lesser - amt_hardstun = 5 - amt_knockdown = 80 + amt_knockdown = 84 /obj/effect/proc_holder/spell/targeted/smoke/disable name = "Paralysing Smoke" @@ -308,7 +307,7 @@ name = "Gauntlet Echo" alpha = 180 amt_dam_brute = 30 - amt_knockdown = 80 + amt_knockdown = 84 amt_dam_stam = 30 sound = 'sound/weapons/punch3.ogg' diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index e39faad963..c4d2c34a71 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -29,7 +29,7 @@ /obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile amt_knockdown = 120 - amt_hardstun = 10 + amt_hardstun = 5 sound = 'sound/magic/mm_hit.ogg' /obj/effect/proc_holder/spell/targeted/genetic/mutate @@ -287,7 +287,7 @@ if(distfromcaster == 0) if(isliving(AM)) var/mob/living/M = AM - M.Knockdown(100, override_hardstun = 25) + M.Knockdown(100, override_hardstun = 20) M.adjustBruteLoss(5) to_chat(M, "You're slammed into the floor by [user]!") else diff --git a/modular_citadel/code/datums/status_effects/debuffs.dm b/modular_citadel/code/datums/status_effects/debuffs.dm index ab7109da70..6dcfc84a87 100644 --- a/modular_citadel/code/datums/status_effects/debuffs.dm +++ b/modular_citadel/code/datums/status_effects/debuffs.dm @@ -5,7 +5,7 @@ buckl.unbuckle_mob(new_owner) new_owner.resting = TRUE new_owner.adjustStaminaLoss(isnull(override_stam)? set_duration*0.25 : override_stam) - if(isnull(override_duration) && (set_duration >= 80)) + if(isnull(override_duration) && (set_duration > 80)) set_duration = set_duration*0.01 return ..() else if(!isnull(override_duration)) From 634f11d60dee51e1afa2196612b4475c64abf2e3 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 18 Jun 2019 02:34:05 -0700 Subject: [PATCH 111/180] Update human.dm --- code/modules/mob/living/carbon/human/human.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c03c0fc0a9..bef312d04b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -856,13 +856,16 @@ buckle_mob(target,TRUE,TRUE) . = ..() +/mob/living/carbon/human/proc/piggyback_instant(mob/living/M) + return buckle_mob(M, TRUE, TRUE, FALSE, TRUE) + //Can C try to piggyback at all. /mob/living/carbon/human/proc/can_piggyback(mob/living/carbon/C) if(istype(C) && C.stat == CONSCIOUS) return TRUE return FALSE -/mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE, bypass_piggybacking = FALSE) +/mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE, bypass_piggybacking = FALSE, no_delay = FALSE) if(!force)//humans are only meant to be ridden through piggybacking and special cases return if(bypass_piggybacking) @@ -879,7 +882,7 @@ if(can_piggyback(M)) riding_datum.ride_check_ridden_incapacitated = TRUE visible_message("[M] starts to climb onto [src]...") - if(force || do_after(M, 15, target = src)) + if(no_delay || do_after(M, 15, target = src)) if(can_piggyback(M)) if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) M.visible_message("[M] can't hang onto [src]!") From 75a6068a864c8f7ebd2d618d16eb077f8ba589ce Mon Sep 17 00:00:00 2001 From: Ghommie Date: Tue, 18 Jun 2019 22:51:48 +0200 Subject: [PATCH 112/180] Ports "Fixes advanced proc calls not working + various code cleaning" --- code/modules/admin/verbs/debug.dm | 100 ++++++++++++++---------------- 1 file changed, 45 insertions(+), 55 deletions(-) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 57dc357859..e15613c43d 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -29,69 +29,62 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that /client/proc/callproc() set category = "Debug" set name = "Advanced ProcCall" - set waitfor = 0 + set waitfor = FALSE if(!check_rights(R_DEBUG)) return var/datum/target = null - var/targetselected = 0 + var/targetselected = FALSE var/returnval = null - switch(alert("Proc owned by something?",,"Yes","No")) - if("Yes") - targetselected = 1 - var/list/value = vv_get_value(default_class = VV_ATOM_REFERENCE, classes = list(VV_ATOM_REFERENCE, VV_DATUM_REFERENCE, VV_MOB_REFERENCE, VV_CLIENT)) - if (!value["class"] || !value["value"]) - return - target = value["value"] - if("No") - target = null - targetselected = 0 - - var/procname = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null - if(!procname) - return - - //hascall() doesn't support proc paths (eg: /proc/gib(), it only supports "gib") - var/testname = procname - if(targetselected) - //Find one of the 3 possible ways they could have written /proc/PROCNAME - if(findtext(procname, "/proc/")) - testname = replacetext(procname, "/proc/", "") - else if(findtext(procname, "/proc")) - testname = replacetext(procname, "/proc", "") - else if(findtext(procname, "proc/")) - testname = replacetext(procname, "proc/", "") - //Clear out any parenthesis if they're a dummy - testname = replacetext(testname, "()", "") - - if(targetselected && !hascall(target,testname)) - to_chat(usr, "Error: callproc(): type [target.type] has no proc named [procname].") - return - else - var/procpath = text2path(procname) - if (!procpath) - to_chat(usr, "Error: callproc(): proc [procname] does not exist. (Did you forget the /proc/ part?)") + if(alert("Proc owned by something?",,"Yes","No") == "Yes") + targetselected = TRUE + var/list/value = vv_get_value(default_class = VV_ATOM_REFERENCE, classes = list(VV_ATOM_REFERENCE, VV_DATUM_REFERENCE, VV_MOB_REFERENCE, VV_CLIENT)) + if (!value["class"] || !value["value"]) return + target = value["value"] + + var/procpath = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null + if(!procpath) + return + + //strip away everything but the proc name + var/list/proclist = splittext(procpath, "/") + if (!length(proclist)) + return + + var/procname = proclist[proclist.len] + var/proctype = ("verb" in proclist) ? "verb" :"proc" + + if(targetselected) + if(!hascall(target, procname)) + to_chat(usr, "Error: callproc(): type [target.type] has no [proctype] named [procpath].") + return + else + procpath = "/[proctype]/[procname]" + if(!text2path(procpath)) + to_chat(usr, "Error: callproc(): [procpath] does not exist.") + return + var/list/lst = get_callproc_args() if(!lst) return if(targetselected) if(!target) - to_chat(usr, "Error: callproc(): owner of proc no longer exists.") + to_chat(usr, "Error: callproc(): owner of proc no longer exists.") return - var/msg = "[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." + var/msg = "[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no argument"]." log_admin(msg) message_admins(msg) admin_ticket_log(target, msg) - returnval = WrapAdminProcCall(target, procname, lst) // Pass the lst as an argument list to the proc + returnval = WrapAdminProcCall(target, procname, lst) else - //this currently has no hascall protection. wasn't able to get it working. - log_admin("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") - message_admins("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") - returnval = WrapAdminProcCall(GLOBAL_PROC, procname, lst) // Pass the lst as an argument list to the proc + var/msg = "[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no argument"]." + log_admin(msg) + message_admins(msg) + returnval = WrapAdminProcCall(GLOBAL_PROC, procpath, lst) //calling globals needs full qualified name (e.g /proc/foo) . = get_callproc_returnval(returnval, procname) if(.) to_chat(usr, .) @@ -111,8 +104,8 @@ GLOBAL_LIST_EMPTY(AdminProcCallSpamPrevention) GLOBAL_PROTECT(AdminProcCallSpamPrevention) /proc/WrapAdminProcCall(datum/target, procname, list/arguments) - if(target && procname == "Del") - to_chat(usr, "Calling Del() is not allowed") + if(target != GLOBAL_PROC && procname == "Del") + to_chat(usr, "Calling Del() is not allowed") return if(target != GLOBAL_PROC && !target.CanProcCall(procname)) @@ -159,7 +152,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) /client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) set category = "Debug" set name = "Atom ProcCall" - set waitfor = 0 + set waitfor = FALSE if(!check_rights(R_DEBUG)) return @@ -168,7 +161,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(!procname) return if(!hascall(A,procname)) - to_chat(usr, "Error: callproc_datum(): type [A.type] has no proc named [procname].") + to_chat(usr, "Error: callproc_datum(): type [A.type] has no proc named [procname].") return var/list/lst = get_callproc_args() if(!lst) @@ -177,8 +170,8 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(!A || !IsValidSrc(A)) to_chat(usr, "Error: callproc_datum(): owner of proc no longer exists.") return - log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") var/msg = "[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." + log_admin(msg) message_admins(msg) admin_ticket_log(A, msg) SSblackbox.record_feedback("tally", "admin_verb", 1, "Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -188,8 +181,6 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(.) to_chat(usr, .) - - /client/proc/get_callproc_args() var/argnum = input("Number of arguments","Number:",0) as num|null if(isnull(argnum)) @@ -213,7 +204,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) . = "" if(islist(returnval)) var/list/returnedlist = returnval - . = "" + . = "" if(returnedlist.len) var/assoc_check = returnedlist[1] if(istext(assoc_check) && (returnedlist[assoc_check] != null)) @@ -227,11 +218,10 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) . += "\n[elem]" else . = "[procname] returned an empty list" - . += "" + . += "" else - . = "[procname] returned: [!isnull(returnval) ? returnval : "null"]" - + . = "[procname] returned: [!isnull(returnval) ? returnval : "null"]" /client/proc/Cell() set category = "Debug" From 3e834004ec74bc29906f269e8f21650ffe768deb Mon Sep 17 00:00:00 2001 From: Ghommie Date: Tue, 18 Jun 2019 23:31:09 +0200 Subject: [PATCH 113/180] Ports in bee plushes. --- code/game/objects/items/plushes.dm | 18 ++++++++++++++---- icons/obj/plushes.dmi | Bin 40011 -> 40531 bytes 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 9528bf94ba..12de29c76e 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -613,6 +613,20 @@ icon_state = "plushie_awake" item_state = "plushie_awake" +/obj/item/toy/plush/awakenedplushie/ComponentInitialize() + . = ..() + AddComponent(/datum/component/edit_complainer) + + +/obj/item/toy/plush/beeplushie + name = "bee plushie" + desc = "A cute toy that resembles an even cuter bee." + icon_state = "plushie_h" + item_state = "plushie_h" + attack_verb = list("stung") + gender = FEMALE + squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1) + /obj/item/toy/plush/mothplushie name = "insect plushie" desc = "An adorable stuffed toy that resembles some kind of insect" @@ -904,7 +918,3 @@ item_state = "fermis" attack_verb = list("cuddled", "petpatted", "wigglepurred") squeak_override = list('modular_citadel/sound/voice/merowr.ogg' = 1) - -/obj/item/toy/plush/awakenedplushie/ComponentInitialize() - . = ..() - AddComponent(/datum/component/edit_complainer) diff --git a/icons/obj/plushes.dmi b/icons/obj/plushes.dmi index 8e845d97105a11a05b88d0b3a93732fc20ff9a29..586bca61aa64da0c0047211da61086d325e42406 100644 GIT binary patch literal 40531 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 P0DP$_Ybli}TEYGYrhSei literal 40011 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 From f963ca050b50876b54976ea9301a0790db429403 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Tue, 18 Jun 2019 23:49:20 +0200 Subject: [PATCH 114/180] thanks, badcoder trilby --- code/datums/traits/negative.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 43be1fa2a7..9d160aa5cd 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -38,13 +38,13 @@ var/obj/item/heirloom_type switch(quirk_holder.mind.assigned_role) if("Clown") - heirloom_type = /obj/item/paint/anycolor - heirloom_type = /obj/item/bikehorn/golden + heirloom_type = pick(/obj/item/paint/anycolor, /obj/item/bikehorn/golden) if("Mime") - heirloom_type = /obj/item/paint/anycolor - heirloom_type = /obj/item/toy/dummy + heirloom_type = pick(/obj/item/paint/anycolor, /obj/item/toy/dummy) if("Cook") heirloom_type = /obj/item/kitchen/knife/scimitar + if("Botanist") + heirloom_type = pick(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/storage/bag/plants, /obj/item/toy/plush/beeplushie) if("Medical Doctor") heirloom_type = /obj/item/healthanalyzer/advanced if("Station Engineer") From 699b78dd802c1c1a50060db5568addec108deaef Mon Sep 17 00:00:00 2001 From: Fermi Date: Tue, 18 Jun 2019 23:00:54 +0100 Subject: [PATCH 115/180] Red pandas! --- .../living/simple_animal/friendly/panda.dm | 20 ++++++++++++++++++ icons/mob/pets.dmi | Bin 64294 -> 64331 bytes tgstation.dme | 1 + 3 files changed, 21 insertions(+) create mode 100644 code/modules/mob/living/simple_animal/friendly/panda.dm diff --git a/code/modules/mob/living/simple_animal/friendly/panda.dm b/code/modules/mob/living/simple_animal/friendly/panda.dm new file mode 100644 index 0000000000..ef3f0c6c23 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/panda.dm @@ -0,0 +1,20 @@ +/mob/living/simple_animal/pet/redpanda + name = "Red panda" + desc = "It's a red panda." + icon = 'icons/mob/pets.dmi' + icon_state = "red_panda" + icon_living = "red_panda" + icon_dead = "dead_panda" + speak = list("Churip","Chuuriip","Cheep-cheep","Chiteurp","squueeaacipt") + speak_emote = list("chirps", "huff-quacks") + emote_hear = list("squeak-chrips.", "huff-squacks.") + emote_see = list("shakes its head.", "rolls about.") + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + gold_core_spawnable = FRIENDLY_SPAWN + do_footstep = TRUE diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi index 45b0ab1f046a7fed25c576da8f4d4d9fe37ef3d9..fe0146ccc40c5702185e936d99a164cebbe5eaf7 100644 GIT binary patch literal 64331 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

    bM`*IOmDcN7#4oYBq&#DJ} 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 literal 64294 zcmdqJbyQrz(>6G`yF-xRZoxws9D+LpPtf4*7TjHe1P@MdcTa-5dvJFd2KMrM-|y`C z{@UH|?4Gl`f6VEbp4+$kR#jKk^Hk47s3^%`ppv43Kp>2dvXW{b5X{Ew3mFmU@tx^R z0fAu2yfk!NB+Z;noW44^e6_a&fjqJ*Q%7T$sqjPQcbO(e<|?iDPsTEt3z(zQwX0Q{ z2O0aRsIu=*+8q3Z|MZKL)Ybir>)Uh^JRf;!e_Cz7xH$^F`4`kkUUh#6!AkA0Cebsz z$e|n7ohpmjRt~4et-4PtXl@upe(C2f_1z%g(3$h7DZYSYKbd=9N~1^7G|sV*hqMNk zlbp{DzR{D%y$rg{3eioB-)F`e!w9!0qY4GN)2@TQl-IqkZGCcVJQH0qHh!d;!*zIlpT^dJRJRm_J# zLo)B+j_gnMX_eYSZ>ziOQ7iX92DZ{f{~;sq&##yi+i)sbM2U(3W|R=G4lG4o`q5h= z?9$CyGf1)7DXoT&=_8N`M$%?YGVSkXG5lv{_>XQ_xZ_A^tsEXI`j1ANdQE=8=YjWB ze&QL^p-W=)%)EU)AiV8@;$zFR+OMJ)mWz+bpQP;@Dr)MR^B0@~@$@nTMLt=ZIPhIY zzKlf~Jupa2(?16OH7JZ<`b1-WjH^dAT-p|B=Dj?f-FhzyAM@Ep^zh$A>WUIZ?4|C3 z()XQ|AEGvyW1KF}96WPggM)69cAR{T`(%R|r0N~{-(47dCcX&PD(UxT%6sa@#-T-k zKp!Q=G(577JG_1HXQ3}I z8Ky}FwI3Jsf7{g-idKY1F-8)#=ZcA3M7b9RhEwUH4g?yP=g3u3CZsa^`OS)_5FUh; z%}@`>mqy;uP+C>z)(27}qvYdYWSXYIJ1v{?lR5eMk7O?{j-Hykxtm)Ao$YNW$hg_< zL9-X@_IS_k1f8Wz%F1BHu;In9|IjJgBOwP;A#W`sqj0`?z}A`W+wtn zB)Hsk#}L(j$!rHaKrh`WO2&o_JOO^0#FCPU++0o zJ9I@9J|;>+{xr&9>*9D*a#CUV3EfZff&yxYUL;oDihJp>iJxer1cJiBzfBhyI#)F~ z2Op2tRBDyQZ@+~butII;N!d;qAS=JdDvaN^m6wpe<)Nd8L4>9DnBXGYGh}+E7g?q= zu7J{kmZB(|C`+*f7BQ52x)^G9<<|-*t?;*6q)UAaBnCw7H|3>fn(4g^=QT?FHLAvZ zz7QHK0T*($fQ}44-2@l~*&jWy&}CZ&Qey`q=bD*^OvE)K5Mv`CcQ@(!sBJ2xQ-#|j z(e_&qqWqVZurI{aRdE5~aXGu1BeV(C1xgo$i5$* z>FMIaMYRjzkg_u7hQHLWk8Mz5tk4Sh;LyGv;F4Jz6?g@}Y|uT*;Ke4mQLBsD@gfaz8&M~RQZms<{?%$>Z7$YRBEj$eo4 zXD{*3E~juGi+m5BG&}L4CChmI`nxyk3=TDwd56`4n8mQgr3BKu{%FWV9p!3T>8Vnl z&!!XDSh#Ec^=To9=9-z8ClYdbSdP}37q7C`KR^3e@sN1u0yX?O$UbnW^J+)VRi^hg zX`qfO95L*g0@(odJRI6^4XRnY+x@1G*lBIw%3%;AMY~WRI60iB5bdq^yq62v64{|mhN^VX?yVX*0SGoaN|B(K%Q?d zJ~=L2O~-o^1Y(eiQB@PtWB$bh(UUjs>y9LN@}3GPznAij)3~S!W}~Xvq|4Bx}j_-hy%fDY8eSI?cjBM z+5y4{Knbu?-SCcxuLHUB&rt_uebmDP{gw0W0$|Wl&Po0P+p7%9Im;R~fyp+#c{$Uz zWMosz*Yl75AsbE-bJnzs_wYVtE;&V z=uZnLI)nqfZ8#pT5jD;X!N#MPW)ux_psbm!PlTk3X21iZ0`D*_aB=uMoLTh=7a3VV zmDo@T-&cPIp9l9JzxKb@;vku|v3#oEdABN($KmDw;ERTluo!;Yd)38HtUVMZep=eB@Ki8UYRy?YfX)6NmW(YL5h=3pQb)?B%n6E3~Zp5u@$*Funp^N=4<7 z#t$ZRIJ^FNkgOXqggV_Q)kbezg{oxhEu>knS)muSK*TsO9PVt8>si`9ygti^L9KWa zEmFkPgWmvMG@7E_?Y)z;v#No?XqJ+Nic!X_m05vwjJTd2S@g5heT^98V1npPveGTz zxAdsb4Uu11vxJd@!>ea?S$)lSzkD}jk|6=r)qV5z^h{y)Q-`XDF5M{GGQ!e_3)~+j z&QHwE(L;S*|5*QdN0IS-Wbez3Vw(&VxzPBkr>EC1@xaGaN$Mpc#B;Cjqga(3lpYk4 z66L767*eeZOh!nFbf9UN;qEj^Y%-U#lku^F&eD@haas{w0XYv zd49hkOyrnI;ssbB2caKHy`2C^E`Y~xN>w=&=LyFpkT#P-NYb5j?(Rk4_t;Y*ibu9LIk z3Ot00Y9CRf!izCU+bZVv+;BfxG(>8D4l^Tq~mYN$m){`72L9myQ z{3&hOTtNX#Rm&!qr8YX4Z~^-AOisEl$loO%7s#y%Ql{4%fRqq9(AAq5#A9@sU0tUK zh6rEo^ky=P+pLJdji%X(xqW945fTar#8T%_i$Y>=mxBi*H!W=R#M4zqYWh5IO@(Vp zXyxjsW3yb2`cqsWJNo*5ko#2?co7o?b5-4q*tNmEXwfN>p-ao$3Fw#@l`!uo3tEww zpl_ph>yo2ek80M*r{Nj=9xBLWKN09SiW8?Cw~+(I-v3tIkrMaC0y9BtfVuODn7#M+ z8(hXTv>Nd)dU4@6+4-QyfC#E!g``}ICH_Px5aM4U1$+M=X$s#^JfjCMK=vupT~-Tw zjmb-R|LUkhB+J~|$R{bF;laSJb8GwH@w384Y;#2ZNjTXMOJs*OM;sT_&hI~C0oJ~0 z>)9GcX&US5(xu7mi?FZ1fy4N?pAu;=uesrDSy)DYS-ZnmunCTnP4F3k)$buLH)gf@ z3}m9y<=+$#s11lTZGEDuICA~reTwij_xoeeh`o`c32hiSMM z=jYtIrm#R+ivCFwL$sdcPmaR^QAnjfS8;ARyqE&Y<3JIR^Jsj;I#dLL>g7?s`JzjV zI%rW=U-XTy6%Q#)_`#lRLXFlfP49FAms(?6;wPEtsAhwGmxt+J2#H|vViu~ns2zN;d+073wg`WubmbCdB~P??UB8`N*{6i8fz1J)Ubv5 z_Q0$oUzfd6-v@>ZdVKX@ELY1RhuAxSP9*eD3voDiD%>^|Xy4vCeA$`tTV*$15HROI zjkA02Vj!R5p^oi^`8ij_IA+5)6(tP_=}VJ537|D|d<_I})Z!}JbF@>FQB}wNt+rp_ zZHSV#14-W29LY-jzTk^}$%)Fk_;|s%8%az|jJTpA#^KS?W|<$+T9+XiYp0)!G6O`v z`o0l~&{xEzK58$0`ljeM4))LACJqnsTkkmpnJ$zi_qk*2fz&iST?(Qv&+EcMI$22w zaqWE%{Rufi5Ql|Kg8x7PTv@R@#QgO_V$7sdjCU|%6*Go42HmG}=5^GTJRC&7PHz!S zckz*?#&EEO49-Uch~2M;6J&ad*i0Y|By%#KT3aVSQM&TfU*C`IXfjro7_X8=CU_pT z`AQ0Co7P!wj zBFFfc;3@+}sV>fJlVXuqV0!K6)R zm?W7PhW8{Bf7Z{{u`(OrfwX{X2koXmjV9teI!KI~)uokoIc99533JhjIwwf2tgH-v z4~d}S)baWRG8^IF$cjh*g+OA`<@=JMjEOeF;o%`X$mTwm*^yzMrA#D@?2ic1dakS0 z(jHEc(eWdTGxbw`W&XXBBu@6gv0WE3%MH>#zc>Scp%KpaRY(hGrkQRKygLlGG~%B- zwfD3knmOS#S-!-z8&6hU0?o2?kOplVqLpWv00li*Jh|W)3U_Vp`+;%uo35nB>7N<* zPR+qX;}>o)4w6 z$F$s$Aj_=SF_pO;>ecTcOAa4o+fbq0pB>|VK!%nVFB;hhuQ*RBX9KG+j!kUy&yEK5co( ze%t3qzWZFSlL~7q@-?OSJdBgKLZQr;zZ_n7X_NSg1s^}P)DE2C5F&L@*AjspgyBbn zgOL%LNQM8UL3eSZ$L+w8=HcH7;8e-UxAx|=Txq&3Zy%ynt(Mc2gY$U2l9gvm&GA|9 zqz-s;F77EK>O@LZPIv<&RCIO!vbK;+ZA-_DC6$zyPWqb@32_?W^kaq@~4ujClF3_Ak{Hku4$*XBiQ%&X%+0c@76&Oj4o-l!h_<`7*4sK}Z_K zi$9r!Q74AcGn)_@P{MUxwy z1Kx`NhC=yn;ZQP12W|K=Tc7>65J12TsE_0G)+n=G|B~cRC>_o7WCN_b?1+|h5BrhB)kJ_K`qZi+xuvI zK(3rmh%dmY0!YyPOJVJw0@tv}#$6LAw{7PdaFWqV*Bn#@r!MKF6?_#Q-%nlsq$U0n zc$kA(C=QXy;_81E63?kk(^Iam_`(?nGg6Q+eNF4M5~dPm#+8XCWdnLa0TFZEaD9a) zRK~%aU4$EZ_qsg>brI`#z8R0|Y6vx|8uX+XNDAj4yFy-Y`2JIzhahr_f7)SkF0i)T zo@m{d#iV~`=&9=ObiXNO$@4+**ndlFICO{8dz`*oSXciu1>AG(X81iz&b=qkhDdUJ zfs?ex7~IHKd3Jk>p7Dx^1ipzod6sKgdIa(?GZ655SYi;cIb=I-F(pMKMV_8@WRwV{ zU~1Nr&ozqmEdfcuwXvjYowdbCnwS)T0#Z)0;gcGORj7J*=VkK!bYtjM-wltXid;Ps zwHnHoJkvEj|I`JfA$ZNwZPw@XeYKgAGZwQVS(_E)KzXZO+vj`thY|OTbkszpQBmP- z=>;6O-x;}wQ6_BFJQ|JBngIRemy~T=Ogs1;rY3yqDn$P)fJQ8HYD(fFXzy15@z z7+9k8?%mqAy9U)ww^@u-FrgOcK3CidBr$LgptA3?y6DH*@St-AaDFSL#!E8S#F0^1 zBVe#%$4r)(RSvt8Z{59W<-V)p-`f+O8UNsYkL$o6;J!^v+;xW;@OH{+>SLZX2jgS> z=Bf)9=wiwH#O>eiZhmWPMhIV^R(VPcDKDz6tu5!{@a7QWNwEaJ(;O1Ph%OI0HpnBh zdt{(mSBi^Ji2@zh1O#B0pW`F?=+i7ajBv(od?mMET+96bsFp$UDAx0&eUp7 zR&;*ndvkn*swR!=RgM)$l=E4-s=Ufd#YYH$oHW?L%y|c0&vOh(6Vi)kNli{@pxnwz zwyiuLvh}9%hy96-902gKFt=f2xAu(m^!^=aE;$wlKqWALLK+?X84aY0UgL$@0dclV z!}g^YLt1_p#M^O_^Rb@~Ro71jDcs%XGBQOKznKg@sLnjB?0~3hp6nX@^*pp&2mAi$ zV1|tv<-{B9M#5?WB=9D-nn|>Hn(6h;P&f-L)3|AjY)U^7G>UOOJKY3rZCwYM7!9iG z%r%A@k!mvVe;!&9fTPNVm?oYtEIN0(x*U$`#qA+b)y6ipq`kog=B9Og7f5bq{PYd| zgfDe-Z3|WyWg_K)(s+&5hYQ}cFa3Fti`nn9Q)M_|r*~K*kNO07P+Tu}J9fn%$yE06 z-a;@EgrJ&DIO@BuKaE_V>gAIjvqEtfg1`;CeLMoR)6j0r!QR~Qtty%SL-?h(iEO~e zrQd-3;jHR}Cih|n>`5|s^3J%~DuIw)hK_C-44T8)26a*C$V9^>3d63Mvn3o4=g80F zQG{Ej?9S&y*cwHQ@7_APQ06{)3JmFjx&eGdckE&b-V2wwyIYhQ7WwM{tr*K7M<#zr z4~Kf3*7k}ZG2^YLTA*%d>|@zejaKChRnQDZm|eTv;u!m7*F2V8xBf0zr-}{268+ zyF>CC0;V`E(31*9yP_WV;{@<3h(aZ~@DcGw1JuYCgPSJHDiE6ilEBY=kIF z(kNQG#xb^=Q8P}PYq|2r&w_QTm@WJwC4tMJlsv@g;UzuFD8TdR3gpT;>eqaI=4@gG z3c=eg@>@{GeV4q8awr!{l|z}(d3#|C4^?XTi|%#HTKlmBUqSbHkP%0AYvezy9B!xc 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%0D{oLvH$5-#?%zReLmA#R5!Tw!*Zzwg>U; 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 diff --git a/tgstation.dme b/tgstation.dme index 8e33f39524..de95e5c5b2 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2103,6 +2103,7 @@ #include "code\modules\mob\living\simple_animal\friendly\gondola.dm" #include "code\modules\mob\living\simple_animal\friendly\lizard.dm" #include "code\modules\mob\living\simple_animal\friendly\mouse.dm" +#include "code\modules\mob\living\simple_animal\friendly\panda.dm" #include "code\modules\mob\living\simple_animal\friendly\penguin.dm" #include "code\modules\mob\living\simple_animal\friendly\pet.dm" #include "code\modules\mob\living\simple_animal\friendly\sloth.dm" From fe6296b58acd441f9ce6ee05ccfc13f8d37ec5c0 Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 19 Jun 2019 00:17:18 +0100 Subject: [PATCH 116/180] Added crafting recipies as per Bhijin's request. --- code/game/objects/items/storage/belt.dm | 4 +-- code/modules/crafting/recipes.dm | 33 +++++++++++++++++++ .../research/designs/medical_designs.dm | 6 ++-- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 27c3d76655..4e496826a9 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -550,14 +550,14 @@ /obj/item/storage/belt/medolier/ComponentInitialize() . = ..() GET_COMPONENT(STR, /datum/component/storage) - STR.max_items = 12 + STR.max_items = 16 STR.display_numerical_stacking = FALSE STR.can_hold = typecacheof(list( /obj/item/reagent_containers/syringe/dart )) /obj/item/storage/belt/medolier/full/PopulateContents() - for(var/i in 1 to 10) + for(var/i in 1 to 16) new /obj/item/reagent_containers/syringe/dart/(src) /obj/item/storage/belt/holster diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index ca10d5092f..3691002e0b 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -761,3 +761,36 @@ /datum/reagent/water = 15) time = 40 category = CAT_MISC + +/datum/crafting_recipe/smartdart + name = "Medical smartdart" + result = /obj/item/reagent_containers/syringe/dart + reqs = list(/obj/item/stack/sheet/metal = 1, + /obj/item/stack/sheet/glass = 1, + /obj/item/stack/sheet/plastic = 1) + time = 10 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/medolier + name = "Medolier" + result = /obj/item/storage/belt/medolier + reqs = list(/obj/item/stack/sheet/metal = 2, + /obj/item/stack/sheet/cloth = 3, + /obj/item/stack/sheet/plastic = 4) + time = 30 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/smartdartgun + name = "Smart dartgun" + result = /obj/item/storage/belt/medolier + reqs = list(/obj/item/stack/sheet/metal = 15, + /obj/item/stack/sheet/glass = 10, + /obj/item/tank/internals = 1, + /obj/item/reagent_containers/glass/beaker = 1, + /obj/item/stack/sheet/plastic = 10, + /obj/item/stack/cable_coil = 2) + time = 150 //It's a gun + category = CAT_WEAPONRY + subcategory = CAT_WEAPON diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 73d8dc3170..48cc2826b9 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -97,7 +97,7 @@ desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD." id = "medicinalsmartdart" build_type = PROTOLATHE - materials = list(MAT_GLASS = 2000, MAT_PLASTIC = 200, MAT_METAL = 500) + materials = list(MAT_GLASS = 100, MAT_PLASTIC = 100, MAT_METAL = 100) build_path = /obj/item/reagent_containers/syringe/dart category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -107,7 +107,7 @@ desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." id = "bluespacesmartdart" build_type = PROTOLATHE - materials = list(MAT_GLASS = 2000, MAT_PLASTIC = 500, MAT_METAL = 500, MAT_BLUESPACE = 500) + materials = list(MAT_GLASS = 250, MAT_PLASTIC = 250, MAT_METAL = 250, MAT_BLUESPACE = 250) build_path = /obj/item/reagent_containers/syringe/dart/bluespace category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -117,7 +117,7 @@ desc = "A compressed air gun, designed to fit medicinal darts for application of medicine for those patients just out of reach." id = "smartdartgun" build_type = PROTOLATHE - materials = list(MAT_GLASS = 1500, MAT_PLASTIC = 1000, MAT_METAL = 1500) + materials = list(MAT_GLASS = 500, MAT_PLASTIC = 1000, MAT_METAL = 500) build_path = /obj/item/gun/syringe/dart category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL From 724ec93166de75264b65be6fc97a8122b5e5b43d Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 19 Jun 2019 00:24:02 +0100 Subject: [PATCH 117/180] oops --- code/modules/crafting/recipes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index c1026ed871..655f42e5d7 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -804,7 +804,7 @@ /datum/crafting_recipe/smartdartgun name = "Smart dartgun" - result = /obj/item/storage/belt/medolier + result = /obj/item/gun/syringe/dart reqs = list(/obj/item/stack/sheet/metal = 15, /obj/item/stack/sheet/glass = 10, /obj/item/tank/internals = 1, From db3d5848c2d829a06411d49816fb43fb8fc5147f Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 01:28:47 +0200 Subject: [PATCH 118/180] Ports in beekini and bee socks. --- .../new_player/sprite_accessories/socks.dm | 10 +++++++++- .../sprite_accessories/undershirt.dm | 6 +++++- .../sprite_accessories/underwear.dm | 3 +++ icons/mob/underwear.dmi | Bin 60008 -> 62935 bytes 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm index 5a5d37d4e7..01a83dcc9f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm @@ -11,6 +11,10 @@ // please make sure they're sorted alphabetically and categorized +/datum/sprite_accessory/socks/bee_knee + name = "Knee-high (Bee)" + icon_state = "bee_knee" + /datum/sprite_accessory/socks/black_knee name = "Knee-high (Black)" icon_state = "black_knee" @@ -63,6 +67,10 @@ name = "Short (White)" icon_state = "white_short" +/datum/sprite_accessory/socks/bee_thigh + name = "Thigh-high (Bee)" + icon_state = "bee_thigh" + /datum/sprite_accessory/socks/black_thigh name = "Thigh-high (Black)" icon_state = "black_thigh" @@ -93,4 +101,4 @@ /datum/sprite_accessory/socks/white_thigh name = "Thigh-high (White)" - icon_state = "white_thigh" \ No newline at end of file + icon_state = "white_thigh" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm index 7c66ef51e3..f5af9a3849 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -248,9 +248,13 @@ icon_state = "bra_commie" /datum/sprite_accessory/undershirt/female_babyblue - name = "Bra, Baby Blue" + name = "Bra - Baby Blue" icon_state = "bra_babyblue" +/datum/sprite_accessory/undershirt/female_beekini + name = "Bra - Bee-kini" + icon_state = "bra_bee-kini" + /datum/sprite_accessory/undershirt/female_black name = "Bra - Black" icon_state = "bra_black" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm index 6beed231aa..e7179eeb87 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm @@ -90,6 +90,9 @@ name = "Boxer Briefs - Yellow" icon_state = "boxer_briefs_yellow" +/datum/sprite_accessory/underwear/female_beekini + name = "Panties - Bee-kini" + icon_state = "panties_bee-kini" /datum/sprite_accessory/underwear/female_black name = "Panties - Black" diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index cf16eb9e32579b04728d92dad5ffca995f901efc..25e7d2c6d0ecc7b69a7e9e0c58072c3526e2a9be 100644 GIT binary patch literal 62935 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 literal 60008 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 From 095ea1243b3557fa625bfdf40cf7948e4fcbc101 Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 19 Jun 2019 00:39:38 +0100 Subject: [PATCH 119/180] Fits better. --- code/game/objects/items/storage/belt.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 4e496826a9..beb62d0ed1 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -550,7 +550,7 @@ /obj/item/storage/belt/medolier/ComponentInitialize() . = ..() GET_COMPONENT(STR, /datum/component/storage) - STR.max_items = 16 + STR.max_items = 15 STR.display_numerical_stacking = FALSE STR.can_hold = typecacheof(list( /obj/item/reagent_containers/syringe/dart From fec1df2098ee0be98e794e5e9115c56605a1ac0d Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 19 Jun 2019 00:52:45 +0100 Subject: [PATCH 120/180] Rephrasal for understanding. --- code/modules/reagents/reagent_containers/syringes.dm | 4 ++-- code/modules/research/designs/medical_designs.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index ef4fb9edae..cc83eb28f6 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -262,7 +262,7 @@ /obj/item/reagent_containers/syringe/dart name = "medicinal smartdart" - desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD." + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient using it's smart nanofilter technology only medicines contained within the dart are administered to the patient. Additonally, due to capillary action, injection of chemicals past the overdose limit is prevented." volume = 20 amount_per_transfer_from_this = 20 icon_state = "empty" @@ -345,6 +345,6 @@ /obj/item/reagent_containers/syringe/dart/bluespace name = "bluespace smartdart" - desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient using it's smart nanofilter technology only medicines contained within the dart are administered to the patient. Additonally, due to capillary action, injection of chemicals past the overdose limit is prevented. Has an extended volume capacity thanks to bluespace foam." amount_per_transfer_from_this = 50 volume = 50 diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index c962a86a30..3a7ef68903 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -94,7 +94,7 @@ /datum/design/medicinalsmartdart name = "Medicinal Smartdart" - desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD." + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient using it's smart nanofilter technology only medicines contained within the dart are administered to the patient. Additonally, due to capillary action, injection of chemicals past the overdose limit is prevented." id = "medicinalsmartdart" build_type = PROTOLATHE materials = list(MAT_GLASS = 100, MAT_PLASTIC = 100, MAT_METAL = 100) @@ -104,7 +104,7 @@ /datum/design/bluespacesmartdart name = "bluespace smartdart" - desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action with a built in safety for OD. Has an extended volume capacity thanks to bluespace foam." + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient using it's smart nanofilter technology only medicines contained within the dart are administered to the patient. Additonally, due to capillary action, injection of chemicals past the overdose limit is prevented. Has an extended volume capacity thanks to bluespace foam." id = "bluespacesmartdart" build_type = PROTOLATHE materials = list(MAT_GLASS = 250, MAT_PLASTIC = 250, MAT_METAL = 250, MAT_BLUESPACE = 250) From e0cada79659bbde02f57dac07dede68ec6d294c3 Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 19 Jun 2019 01:08:23 +0100 Subject: [PATCH 121/180] Quick fix for a runtime --- code/modules/projectiles/ammunition/special/syringe.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 47ae266e45..4d4dd7bcc1 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -69,6 +69,8 @@ /obj/item/ammo_casing/syringegun/dart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() + if(!SG.syringes.len) + return var/obj/item/gun/syringe/SG = loc var/obj/item/reagent_containers/syringe/dart/S = SG.syringes[1] if(S.emptrig == TRUE) From df9c4fd1f4171d5a08d63f20efed8cbfe92fccec Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 03:08:44 +0200 Subject: [PATCH 122/180] [s] Ports "Fixes PDA TK exploits" --- code/game/objects/items/devices/PDA/PDA.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 48b21d58bd..eac33c4c91 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -173,10 +173,14 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr - if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) + if((M == over) && usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return attack_self(M) return ..() +/obj/item/pda/attack_self_tk(mob/user) + to_chat(user, "The PDA's capacitive touch screen doesn't seem to respond!") + return + /obj/item/pda/interact(mob/user) if(!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") @@ -382,7 +386,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/mob/living/U = usr //Looking for master was kind of pointless since PDAs don't appear to have one. - if(usr.canUseTopic(src) && !href_list["close"]) + if(usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) && !href_list["close"]) add_fingerprint(U) U.set_machine(src) @@ -636,7 +640,7 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/proc/remove_id() - if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE)) + if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if (id) @@ -802,7 +806,7 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/proc/remove_pen() - if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE)) + if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if(inserted_item) From 55795355fd58636e9e1df430b62f717c36ee4630 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 03:31:36 +0200 Subject: [PATCH 123/180] Ports "[s] Fixes pride mirror exploit" --- code/__DEFINES/misc.dm | 5 +++-- code/game/objects/items/devices/PDA/PDA.dm | 2 +- code/game/objects/structures/mirror.dm | 22 +++++++++---------- .../devil/true_devil/_true_devil.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 4 ++-- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 2 +- code/modules/mob/living/silicon/pai/pai.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 2 +- .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/mob/mob.dm | 2 +- .../computers/item/processor.dm | 2 +- 13 files changed, 25 insertions(+), 26 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 19710a89fe..175f3d45ab 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -114,8 +114,9 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define TRANSITIONEDGE 7 //Distance from edge to move to another z-level -#define BE_CLOSE 1 //in the case of a silicon, to select if they need to be next to the atom -#define NO_DEXTERY 1 //if other mobs (monkeys, aliens, etc) can use this +#define BE_CLOSE TRUE //in the case of a silicon, to select if they need to be next to the atom +#define NO_DEXTERY TRUE //if other mobs (monkeys, aliens, etc) can use this +#define NO_TK TRUE //used by canUseTopic() //singularity defines diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index eac33c4c91..5d4984b321 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -171,7 +171,7 @@ GLOBAL_LIST_EMPTY(PDAs) overlay.icon_state = "pai_off_overlay" add_overlay(new /mutable_appearance(overlay)) -/obj/item/pda/MouseDrop(obj/over_object, src_location, over_location) +/obj/item/pda/MouseDrop(mob/over, src_location, over_location) var/mob/M = usr if((M == over) && usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return attack_self(M) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index ea2e99d371..b15d686b7b 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -24,15 +24,13 @@ if(ishuman(user)) var/mob/living/carbon/human/H = user - var/userloc = H.loc - //see code/modules/mob/dead/new_player/preferences.dm at approx line 545 for comments! //this is largely copypasted from there. //handle facial hair (if necessary) if(H.gender == MALE) var/new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in GLOB.facial_hair_styles_list - if(userloc != H.loc) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return //no tele-grooming if(new_style) H.facial_hair_style = new_style @@ -41,7 +39,7 @@ //handle normal hair var/new_style = input(user, "Select a hair style", "Grooming") as null|anything in GLOB.hair_styles_list - if(userloc != H.loc) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return //no tele-grooming if(new_style) H.hair_style = new_style @@ -90,9 +88,9 @@ /obj/structure/mirror/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) if(BURN) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) /obj/structure/mirror/magic @@ -131,7 +129,7 @@ var/choice = input(user, "Something to change?", "Magical Grooming") as null|anything in list("name", "race", "gender", "hair", "eyes") - if(!Adjacent(user)) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return switch(choice) @@ -140,7 +138,7 @@ if(!newname) return - if(!Adjacent(user)) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return H.real_name = newname H.name = newname @@ -156,7 +154,7 @@ if(!newrace) return - if(!Adjacent(user)) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return H.set_species(newrace, icon_update=0) @@ -186,7 +184,7 @@ if("gender") if(!(H.gender in list("male", "female"))) //blame the patriarchy return - if(!Adjacent(user)) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if(H.gender == "male") if(alert(H, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") @@ -207,7 +205,7 @@ if("hair") var/hairchoice = alert(H, "Hair style or hair color?", "Change Hair", "Style", "Color") - if(!Adjacent(user)) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if(hairchoice == "Style") //So you just want to use a mirror then? ..() @@ -225,7 +223,7 @@ if(BODY_ZONE_PRECISE_EYES) var/new_eye_color = input(H, "Choose your eye color", "Eye Color","#"+H.eye_color) as color|null - if(!Adjacent(user)) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if(new_eye_color) H.eye_color = sanitize_hexcolor(new_eye_color) diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 923a224b81..1df81a797b 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -94,7 +94,7 @@ visible_message("[src] easily breaks out of [p_their()] handcuffs!", \ "With just a thought your handcuffs fall off.") -/mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(incapacitated()) to_chat(src, "You can't do that right now!") return FALSE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 55b8891534..96de3b299a 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -753,7 +753,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp update_icon() -/mob/dead/observer/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/dead/observer/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) return IsAdminGhost(usr) /mob/dead/observer/is_literate() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 129e600b00..2206b13460 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -724,12 +724,12 @@ remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#000000") cut_overlay(MA) -/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(incapacitated() || lying ) to_chat(src, "You can't do that right now!") return FALSE if(!Adjacent(M) && (M.loc != src)) - if((be_close == 0) || (dna.check_mutation(TK) && tkMaxRangeCheck(src, M))) + if((be_close == 0) || (!no_tk && (dna.check_mutation(TK) && tkMaxRangeCheck(src, M)))) return TRUE to_chat(src, "You are too far away!") return FALSE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 69168caad1..b253e27e8d 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -814,7 +814,7 @@ /mob/living/proc/harvest(mob/living/user) //used for extra objects etc. in butchering return -/mob/living/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(incapacitated()) to_chat(src, "You can't do that right now!") return FALSE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 46576a357f..6d225d3913 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -779,7 +779,7 @@ return TRUE return ..() -/mob/living/silicon/ai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/silicon/ai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(control_disabled || incapacitated()) to_chat(src, "You can't do that right now!") return FALSE diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 896d8674be..7fd861bfeb 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -183,7 +183,7 @@ // See software.dm for Topic() -/mob/living/silicon/pai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/silicon/pai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(be_close && !in_range(M, src)) to_chat(src, "You are too far away!") return FALSE diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 335645b17e..e71e269222 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -910,7 +910,7 @@ if(DISCONNECT) //Tampering with the wires to_chat(connected_ai, "

    NOTICE - Remote telemetry lost with [name].
    ") -/mob/living/silicon/robot/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/silicon/robot/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(stat || lockcharge || low_power_mode) to_chat(src, "You can't do that right now!") return FALSE diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 2517d2438d..1f81899d8a 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -392,7 +392,7 @@ if(target) return new childspawn(target) -/mob/living/simple_animal/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/living/simple_animal/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) if(incapacitated()) to_chat(src, "You can't do that right now!") return FALSE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7ff8fbc0b1..d8177af2ee 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -784,7 +784,7 @@ return 0 //Can the mob use Topic to interact with machines -/mob/proc/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +/mob/proc/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) return /mob/proc/faction_check_mob(mob/target, exact_match) diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index 20ad2214cf..99d648d02b 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -44,7 +44,7 @@ return machinery_computer.update_icon() // This thing is not meant to be used on it's own, get topic data from our machinery owner. -//obj/item/modular_computer/processor/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE) +//obj/item/modular_computer/processor/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) // if(!machinery_computer) // return 0 From 8764d781a33ac372a85fa6e37e216c508763fc8c Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 04:28:36 +0200 Subject: [PATCH 124/180] Porting smartfridge improvements. --- .../kitchen_machinery/smartfridge.dm | 113 +++++++++++------- icons/obj/vending.dmi | Bin 99896 -> 100587 bytes 2 files changed, 69 insertions(+), 44 deletions(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index deba080ca2..ee33f16d61 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -15,6 +15,7 @@ var/max_n_of_items = 1500 var/allow_ai_retrieve = FALSE var/list/initial_contents + var/visible_contents = TRUE /obj/machinery/smartfridge/Initialize() . = ..() @@ -37,11 +38,21 @@ update_icon() /obj/machinery/smartfridge/update_icon() - var/startstate = initial(icon_state) if(!stat) - icon_state = startstate + if(visible_contents) + switch(contents.len) + if(0) + icon_state = "[initial(icon_state)]" + if(1 to 25) + icon_state = "[initial(icon_state)]1" + if(26 to 75) + icon_state = "[initial(icon_state)]2" + if(76 to INFINITY) + icon_state = "[initial(icon_state)]3" + else + icon_state = "[initial(icon_state)]" else - icon_state = "[startstate]-off" + icon_state = "[initial(icon_state)]-off" @@ -50,7 +61,11 @@ ********************/ /obj/machinery/smartfridge/attackby(obj/item/O, mob/user, params) - if(default_deconstruction_screwdriver(user, "smartfridge_open", "smartfridge", O)) + if(default_deconstruction_screwdriver(user, icon_state, icon_state, O)) + cut_overlays() + if(panel_open) + add_overlay("[initial(icon_state)]-panel") + updateUsrDialog() return if(default_pry_open(O)) @@ -64,49 +79,53 @@ updateUsrDialog() return - if(!stat) + if(user.a_intent == INTENT_HARM) + return ..() - if(contents.len >= max_n_of_items) - to_chat(user, "\The [src] is full!") - return FALSE - - if(accept_check(O)) - load(O) - user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") - updateUsrDialog() - return TRUE - - if(istype(O, /obj/item/storage/bag)) - var/obj/item/storage/P = O - var/loaded = 0 - for(var/obj/G in P.contents) - if(contents.len >= max_n_of_items) - break - if(accept_check(G)) - load(G) - loaded++ - updateUsrDialog() - - if(loaded) - if(contents.len >= max_n_of_items) - user.visible_message("[user] loads \the [src] with \the [O].", \ - "You fill \the [src] with \the [O].") - else - user.visible_message("[user] loads \the [src] with \the [O].", \ - "You load \the [src] with \the [O].") - if(O.contents.len > 0) - to_chat(user, "Some items are refused.") - return TRUE - else - to_chat(user, "There is nothing in [O] to put in [src]!") - return FALSE - - if(user.a_intent != INTENT_HARM) - to_chat(user, "\The [src] smartly refuses [O].") + if(stat) updateUsrDialog() return FALSE - else - return ..() + + if(contents.len >= max_n_of_items) + to_chat(user, "\The [src] is full!") + return FALSE + + if(accept_check(O)) + load(O) + user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") + updateUsrDialog() + if (visible_contents) + update_icon() + return TRUE + + if(istype(O, /obj/item/storage/bag)) + var/obj/item/storage/P = O + var/loaded = 0 + for(var/obj/G in P.contents) + if(contents.len >= max_n_of_items) + break + if(accept_check(G)) + load(G) + loaded++ + updateUsrDialog() + + if(loaded) + if(contents.len >= max_n_of_items) + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You fill \the [src] with \the [O].") + else + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You load \the [src] with \the [O].") + if(O.contents.len > 0) + to_chat(user, "Some items are refused.") + return TRUE + else + to_chat(user, "There is nothing in [O] to put in [src]!") + return FALSE + + to_chat(user, "\The [src] smartly refuses [O].") + updateUsrDialog() + return FALSE @@ -186,6 +205,8 @@ O.forceMove(drop_location()) adjust_item_drop_location(O) break + if (visible_contents) + update_icon() return TRUE for(var/obj/item/O in src) @@ -195,6 +216,8 @@ O.forceMove(drop_location()) adjust_item_drop_location(O) desired-- + if (visible_contents) + update_icon() return TRUE return FALSE @@ -210,6 +233,7 @@ use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 200 + visible_contents = FALSE var/drying = FALSE /obj/machinery/smartfridge/drying_rack/Initialize() @@ -414,6 +438,7 @@ name = "disk compartmentalizer" desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)." icon_state = "disktoaster" + visible_contents = FALSE pass_flags = PASSTABLE /obj/machinery/smartfridge/disks/accept_check(obj/item/O) diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index e5d474f01dd15734314aa8a53233ef1b8c02fd3c..553336115b62cd46057c5774338849a48d275f44 100644 GIT binary patch literal 100587 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

    {CZ>+EvQ%bQFeTX^yl1r?#F^B; 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 aMuxxSur%n_Ov#17AAOyh+C`VF0{;&{88Pqx literal 99896 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�>%>&IBci#7`G;K+6u?w;@>_n*0>8L(@ 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μwO1$2a7@%f|*)d;KKbC|7>nt@|NqJn3oL=TJZ;! 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 AM*si- From 98367a8b004cc5a1e00f28d484701f816fb19912 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 04:44:59 +0200 Subject: [PATCH 125/180] more. --- .../kitchen_machinery/smartfridge.dm | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index ee33f16d61..23bff72c62 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -61,6 +61,9 @@ ********************/ /obj/machinery/smartfridge/attackby(obj/item/O, mob/user, params) + if(user.a_intent == INTENT_HARM) + return ..() + if(default_deconstruction_screwdriver(user, icon_state, icon_state, O)) cut_overlays() if(panel_open) @@ -79,9 +82,6 @@ updateUsrDialog() return - if(user.a_intent == INTENT_HARM) - return ..() - if(stat) updateUsrDialog() return FALSE @@ -110,12 +110,8 @@ updateUsrDialog() if(loaded) - if(contents.len >= max_n_of_items) - user.visible_message("[user] loads \the [src] with \the [O].", \ - "You fill \the [src] with \the [O].") - else - user.visible_message("[user] loads \the [src] with \the [O].", \ - "You load \the [src] with \the [O].") + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You [contents.len >= max_n_of_items ? "fill", "load"] \the [src] with \the [O].") if(O.contents.len > 0) to_chat(user, "Some items are refused.") return TRUE From 8a302552f21c9f1e54e66e3e44ddd653af120f1a Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 06:22:19 +0200 Subject: [PATCH 126/180] Ouch really. --- code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 23bff72c62..483055cb0d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -111,7 +111,7 @@ if(loaded) user.visible_message("[user] loads \the [src] with \the [O].", \ - "You [contents.len >= max_n_of_items ? "fill", "load"] \the [src] with \the [O].") + "You [contents.len >= max_n_of_items ? "fill" : "load"] \the [src] with \the [O].") if(O.contents.len > 0) to_chat(user, "Some items are refused.") return TRUE From 44a9fe95211aff30b997a72cce363d4ac1be5d2c Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 19 Jun 2019 13:38:59 +0200 Subject: [PATCH 127/180] Fixes "Penlights Cannot Give Eye Exams" --- code/game/objects/items/devices/flashlight.dm | 18 +++++++++-- .../game/objects/items/devices/flashlight.dm | 31 ------------------- tgstation.dme | 1 - 3 files changed, 15 insertions(+), 35 deletions(-) delete mode 100644 modular_citadel/code/game/objects/items/devices/flashlight.dm diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 40f2059d25..d8b539ac27 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -13,7 +13,8 @@ actions_types = list(/datum/action/item_action/toggle_light) var/on = FALSE var/brightness_on = 4 //range of light when on - var/flashlight_power = 1 //strength of the light when on + var/flashlight_power = 0.8 //strength of the light when on + light_color = "#FFCC66" /obj/item/flashlight/Initialize() . = ..() @@ -63,7 +64,7 @@ to_chat(user, "[M] doesn't have a head!") return - if(flashlight_power < 1) + if(flashlight_power < 0.3) to_chat(user, "\The [src] isn't bright enough to see anything! ") return @@ -168,6 +169,8 @@ item_state = "" flags_1 = CONDUCT_1 brightness_on = 2 + light_color = "#FFDDCC" + flashlight_power = 0.3 var/holo_cooldown = 0 /obj/item/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) @@ -204,6 +207,8 @@ righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' force = 9 // Not as good as a stun baton. brightness_on = 5 // A little better than the standard flashlight. + light_color = "#CDDDFF" + flashlight_power = 0.9 hitsound = 'sound/weapons/genhit1.ogg' // the desk lamps are a bit special @@ -216,6 +221,7 @@ righthand_file = 'icons/mob/inhands/items_righthand.dmi' force = 10 brightness_on = 5 + light_color = "#FFDDBB" w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 materials = list() @@ -252,6 +258,7 @@ desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." w_class = WEIGHT_CLASS_SMALL brightness_on = 7 // Pretty bright. + light_color = "#FA421A" icon_state = "flare" item_state = "flare" actions_types = list() @@ -325,6 +332,7 @@ desc = "A torch fashioned from some leaves and a log." w_class = WEIGHT_CLASS_BULKY brightness_on = 4 + light_color = "#FAA44B" icon_state = "torch" item_state = "torch" lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' @@ -341,6 +349,8 @@ righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' desc = "A mining lantern." brightness_on = 6 // luminosity when on + light_color = "#FFAA44" + flashlight_power = 0.75 /obj/item/flashlight/slime @@ -354,6 +364,8 @@ slot_flags = ITEM_SLOT_BELT materials = list() brightness_on = 6 //luminosity when on + light_color = "#FFEEAA" + flashlight_power = 0.6 /obj/item/flashlight/emp var/emp_max_charges = 4 @@ -517,6 +529,7 @@ icon_state = null light_color = null brightness_on = 0 + flashlight_power = 1 light_range = 0 light_power = 10 alpha = 0 @@ -538,7 +551,6 @@ name = "eyelight" desc = "This shouldn't exist outside of someone's head, how are you seeing this?" brightness_on = 15 - flashlight_power = 1 flags_1 = CONDUCT_1 item_flags = DROPDEL actions_types = list() diff --git a/modular_citadel/code/game/objects/items/devices/flashlight.dm b/modular_citadel/code/game/objects/items/devices/flashlight.dm deleted file mode 100644 index 3a373c9277..0000000000 --- a/modular_citadel/code/game/objects/items/devices/flashlight.dm +++ /dev/null @@ -1,31 +0,0 @@ -/obj/item/flashlight - light_color = "#FFCC66" - flashlight_power = 0.8 - -/obj/item/flashlight/pen - light_color = "#FFDDCC" - flashlight_power = 0.3 - -/obj/item/flashlight/seclite - light_color = "#CDDDFF" - flashlight_power = 0.9 - -/obj/item/flashlight/lamp - light_color = "#FFDDBB" - flashlight_power = 0.8 - -/obj/item/flashlight/flare - light_color = "#FA421A" - flashlight_power = 0.8 - -/obj/item/flashlight/flare/torch - light_color = "#FAA44B" - flashlight_power = 0.8 - -/obj/item/flashlight/lantern - light_color = "#FFAA44" - flashlight_power = 0.75 - -/obj/item/flashlight/slime - light_color = "#FFEEAA" - flashlight_power = 0.6 diff --git a/tgstation.dme b/tgstation.dme index 37df11d40c..65295c3773 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2879,7 +2879,6 @@ #include "modular_citadel\code\game\objects\items\vending_items.dm" #include "modular_citadel\code\game\objects\items\circuitboards\machine_circuitboards.dm" #include "modular_citadel\code\game\objects\items\devices\aicard.dm" -#include "modular_citadel\code\game\objects\items\devices\flashlight.dm" #include "modular_citadel\code\game\objects\items\devices\PDA\PDA.dm" #include "modular_citadel\code\game\objects\items\devices\radio\encryptionkey.dm" #include "modular_citadel\code\game\objects\items\devices\radio\headset.dm" From e8fde8e6fce6205a439c3d07ca35c4e0a8c94bb6 Mon Sep 17 00:00:00 2001 From: Sishen Date: Wed, 19 Jun 2019 12:08:47 -0400 Subject: [PATCH 128/180] Update neck.dmi --- icons/mob/neck.dmi | Bin 39323 -> 39382 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi index 3c126daba69325c2a95c9542ccc9cf64ee3a96b6..3463065bc71a576d3f42ae0adcde615f1a6bf57f 100644 GIT binary patch literal 39382 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�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 Uw>{Xti-AG!#%&#(mP6=&0QP2o5C8xG literal 39323 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 MYi(y$Y2g+Bzg_b_*Z=?k From 3f10ad390b9782a541b9da720f660e086d9711ca Mon Sep 17 00:00:00 2001 From: Thalpy <33956696+Thalpy@users.noreply.github.com> Date: Thu, 20 Jun 2019 02:15:55 +0100 Subject: [PATCH 129/180] Update code/modules/mob/living/simple_animal/friendly/panda.dm Wah Co-Authored-By: deathride58 --- code/modules/mob/living/simple_animal/friendly/panda.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/friendly/panda.dm b/code/modules/mob/living/simple_animal/friendly/panda.dm index ef3f0c6c23..a7b6143ef5 100644 --- a/code/modules/mob/living/simple_animal/friendly/panda.dm +++ b/code/modules/mob/living/simple_animal/friendly/panda.dm @@ -1,6 +1,6 @@ /mob/living/simple_animal/pet/redpanda name = "Red panda" - desc = "It's a red panda." + desc = "Wah't a dork." icon = 'icons/mob/pets.dmi' icon_state = "red_panda" icon_living = "red_panda" From 88ec4e336ef6e8d496960a7921927052db9c36e6 Mon Sep 17 00:00:00 2001 From: Fermi Date: Thu, 20 Jun 2019 03:34:49 +0100 Subject: [PATCH 130/180] Small oops. --- code/modules/projectiles/ammunition/special/syringe.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 4d4dd7bcc1..d5cba6936f 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -69,9 +69,9 @@ /obj/item/ammo_casing/syringegun/dart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() + var/obj/item/gun/syringe/SG = loc if(!SG.syringes.len) return - var/obj/item/gun/syringe/SG = loc var/obj/item/reagent_containers/syringe/dart/S = SG.syringes[1] if(S.emptrig == TRUE) var/obj/item/projectile/bullet/dart/syringe/dart/D = BB From f35eb975220da0802b05ca9da74a494d9915b2f7 Mon Sep 17 00:00:00 2001 From: Jay Date: Thu, 20 Jun 2019 02:19:34 -0500 Subject: [PATCH 131/180] Fixes jacket dir --- icons/mob/custom_w.dmi | Bin 34662 -> 35179 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi index 22f5e8597718b67b7398ee64b4cf8c6b8fa0596c..5f6cfe52349e6fcb06b6bf1a4c8878fea55e658c 100644 GIT binary patch delta 15045 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 From 8be06ddcd0bf92d964329254a9efe956ee1c66ac Mon Sep 17 00:00:00 2001 From: Arturlang Date: Fri, 21 Jun 2019 17:27:57 +0300 Subject: [PATCH 132/180] Fixes --- code/modules/research/nanites/nanite_programs.dm | 8 +++++++- code/modules/research/nanites/nanite_programs/utility.dm | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index f691c828c9..a06311f26f 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -57,6 +57,7 @@ deactivate() if(passive_enabled) disable_passive_effect() + on_mob_remove() if(nanites) nanites.programs -= src return ..() @@ -107,6 +108,9 @@ if(activated) //apply activation effects if it starts active activate() +datum/nanite_program/proc/on_mob_remove() + return + /datum/nanite_program/proc/toggle() if(!activated) activate() @@ -115,6 +119,7 @@ /datum/nanite_program/proc/activate() activated = TRUE + timer_counter = activation_delay /datum/nanite_program/proc/deactivate() if(passive_enabled) @@ -135,8 +140,10 @@ if(timer && timer_counter > timer) if(timer_type == NANITE_TIMER_DEACTIVATE) deactivate() + return else if(timer_type == NANITE_TIMER_SELFDELETE) qdel(src) + return else if(can_trigger && timer_type == NANITE_TIMER_TRIGGER) trigger() timer_counter = activation_delay @@ -251,4 +258,3 @@ return "Trigger" if(NANITE_TIMER_RESET) return "Reset Activation Timer" - diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index 4405401cec..77fb4e1005 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -237,7 +237,11 @@ if(prob(10)) var/list/mob/living/target_hosts = list() for(var/mob/living/L in oview(5, host_mob)) + if(!(MOB_ORGANIC in L.mob_biotypes) && !(MOB_UNDEAD in L.mob_biotypes)) + continue target_hosts += L + if(!target_hosts.len) + return var/mob/living/infectee = pick(target_hosts) if(prob(100 - (infectee.get_permeability_protection() * 100))) //this will potentially take over existing nanites! From 69a302d4f4f40932fa1c5defb0739c320f0644e9 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sat, 22 Jun 2019 00:03:28 +0200 Subject: [PATCH 133/180] Greytide Stationwide! --- modular_citadel/code/modules/client/loadout/_service.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modular_citadel/code/modules/client/loadout/_service.dm b/modular_citadel/code/modules/client/loadout/_service.dm index 9b508bb93f..062e22f966 100644 --- a/modular_citadel/code/modules/client/loadout/_service.dm +++ b/modular_citadel/code/modules/client/loadout/_service.dm @@ -1,3 +1,9 @@ +/datum/gear/greytidestationwide + name = "Grey jumpsuit" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/color/grey + restricted_roles = list("Assistant") + /datum/gear/plushvar name = "Ratvar Plushie" category = SLOT_IN_BACKPACK From 0a43036eae95c4cff630eac68ba183bb95a00710 Mon Sep 17 00:00:00 2001 From: Sishen Date: Fri, 21 Jun 2019 20:01:19 -0400 Subject: [PATCH 134/180] hugboxing slimepeople one thing at a time --- .../antagonists/changeling/powers/panacea.dm | 2 +- code/modules/projectiles/guns/misc/medbeam.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 17 +++++++++++++++++ .../chemistry/reagents/toxin_reagents.dm | 2 +- .../reagents/chemistry/recipes/medicine.dm | 6 ++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index 9f7a36f214..8d571d21e3 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -29,7 +29,7 @@ O.forceMove(get_turf(user)) user.reagents.add_reagent("mutadone", 10) - user.reagents.add_reagent("pen_acid", 20) + user.reagents.add_reagent("pen_jelly", 20) user.reagents.add_reagent("antihol", 10) user.reagents.add_reagent("mannitol", 25) diff --git a/code/modules/projectiles/guns/misc/medbeam.dm b/code/modules/projectiles/guns/misc/medbeam.dm index 17c0f63955..7bdefe5e91 100644 --- a/code/modules/projectiles/guns/misc/medbeam.dm +++ b/code/modules/projectiles/guns/misc/medbeam.dm @@ -116,7 +116,7 @@ new /obj/effect/temp_visual/heal(get_turf(target), "#80F5FF") target.adjustBruteLoss(-4) target.adjustFireLoss(-4) - target.adjustToxLoss(-1) + target.adjustToxLoss(-1, forced = TRUE) target.adjustOxyLoss(-1) return diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 07a2a9c02a..458d2cd752 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -493,6 +493,23 @@ ..() . = 1 +/datum/reagent/medicine/pen_jelly + name = "Pentetic Jelly" + id = "pen_jelly" + description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Slimepeople friendly!" + reagent_state = LIQUID + color = "#E6FFF0" + metabolization_rate = 0.5 * REAGENTS_METABOLISM + +/datum/reagent/medicine/pen_jelly/on_mob_life(mob/living/carbon/M) + M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50 + M.adjustToxLoss(-2*REM, 0, TRUE) //HEALS TOXINOVERS + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) + M.reagents.remove_reagent(R.id,2) + ..() + . = 1 + /datum/reagent/medicine/sal_acid name = "Salicyclic Acid" id = "sal_acid" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 8be95efb83..11b12c7942 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -798,7 +798,7 @@ /datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M) var/remove_amt = 5 - if(holder.has_reagent("calomel") || holder.has_reagent("pen_acid")) + if(holder.has_reagent("calomel") || holder.has_reagent("pen_acid") || holder.has_reagent("pen_jelly")) remove_amt = 0.5 for(var/datum/reagent/medicine/R in M.reagents.reagent_list) M.reagents.remove_reagent(R.id,remove_amt) diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index dc7c32d925..9cfb761e32 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -94,6 +94,12 @@ results = list("pen_acid" = 6) required_reagents = list("welding_fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1) +/datum/chemical_reaction/pen_jelly + name = "Pentetic Jelly" + id = "pen_jelly" + results = list("pen_acid" = 2) + required_reagents = list("pen_acid" = 1, "slimejelly" = 1) + /datum/chemical_reaction/sal_acid name = "Salicyclic Acid" id = "sal_acid" From 054ec6e710cbe4833b91258d3ca58250eafaa87f Mon Sep 17 00:00:00 2001 From: Sishen Date: Fri, 21 Jun 2019 21:38:53 -0400 Subject: [PATCH 135/180] Update PubbyStation.dmm --- _maps/map_files/PubbyStation/PubbyStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index f9792a736e..0dc0afcd0c 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -35713,13 +35713,13 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/machinery/rnd/production/protolathe/department/medical, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/rnd/production/techfab/department/medical, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bEw" = ( From 88dd4bdc99a777f5d020a78e9615592a6b9538d7 Mon Sep 17 00:00:00 2001 From: poptar4551 <33611085+poptar4551@users.noreply.github.com> Date: Fri, 21 Jun 2019 21:32:21 -0500 Subject: [PATCH 136/180] Brings back Big Wolf ears for humans (#8668) * Brings back Big Wolf ears for humans This use to be here, and I'm no furry, but it needed to come back. * Update modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm Co-Authored-By: Poojawa * Update modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm Co-Authored-By: Poojawa * Update modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm Co-Authored-By: Poojawa * Update modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm Co-Authored-By: Poojawa --- .../mob/dead/new_player/sprite_accessories.dm | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm index e552c2cbdd..bf811b777c 100644 --- a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -191,6 +191,32 @@ icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MATRIXED +/datum/sprite_accessory/ears/human/bigwolf + name = "Big Wolf" + icon_state = "bigwolf" + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + color_src = MATRIXED + +/datum/sprite_accessory/ears/human/bigwolfinner + name = "Big Wolf (ALT)" + icon_state = "bigwolfinner" + hasinner = 1 + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + color_src = MATRIXED + +/datum/sprite_accessory/ears/human/bigwolfdark + name = "Dark Big Wolf" + icon_state = "bigwolfdark" + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + color_src = MATRIXED + +/datum/sprite_accessory/ears/human/bigwolfinnerdark + name = "Dark Big Wolf (ALT)" + icon_state = "bigwolfinnerdark" + hasinner = 1 + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + color_src = MATRIXED + /datum/sprite_accessory/ears/human/cow name = "Cow" icon_state = "cow" From 498c35b73308539cc4eb848a63b6ec8d80847da1 Mon Sep 17 00:00:00 2001 From: Thalpy <33956696+Thalpy@users.noreply.github.com> Date: Sat, 22 Jun 2019 03:33:34 +0100 Subject: [PATCH 137/180] Fixes empathy antag check exploit. (#8690) * Fixes exploit * Wrong way round..! * Should be okay for antags now. * Fixed githuba being dumb --- code/modules/mob/living/carbon/human/examine.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index d814893053..8550a0887f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -294,7 +294,7 @@ if(mood.sanity <= SANITY_DISTURBED) msg += "[t_He] seem[p_s()] distressed.\n" SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "empath", /datum/mood_event/sad_empath, src) - if(mood.mood >= 5) //So roundstart people aren't all "happy" + if(mood.shown_mood >= 6) //So roundstart people aren't all "happy" and that antags don't show their true happiness. msg += "[t_He] seem[p_s()] to have had something nice happen to them recently.\n" SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "empathH", /datum/mood_event/happy_empath, src) if (HAS_TRAIT(src, TRAIT_BLIND)) From 2f96e4012095823e85afad6a2e1fbb00089a054d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 21 Jun 2019 21:33:37 -0500 Subject: [PATCH 138/180] Automatic changelog generation for PR #8690 [ci skip] --- html/changelogs/AutoChangeLog-pr-8690.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8690.yml diff --git a/html/changelogs/AutoChangeLog-pr-8690.yml b/html/changelogs/AutoChangeLog-pr-8690.yml new file mode 100644 index 0000000000..3ac76333a2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8690.yml @@ -0,0 +1,4 @@ +author: "Fermis" +delete-after: True +changes: + - bugfix: "fixes empathy exploit." From 6709483aecf5fb9b29076fc53819933bb9e01e60 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Fri, 21 Jun 2019 23:06:53 -0500 Subject: [PATCH 139/180] allows quick maxing of suit sensors --- code/modules/clothing/clothing.dm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 746d5da60d..caaca3958a 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -216,6 +216,34 @@ BLIND // can't see anything ..() +/obj/item/clothing/under/CtrlClick(mob/user) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + + var/mob/M = user + if (istype(M, /mob/dead/)) + return + if (!can_use(M)) + return + if(src.has_sensor == LOCKED_SENSORS) + to_chat(usr, "The controls are locked.") + return 0 + if(src.has_sensor == BROKEN_SENSORS) + to_chat(usr, "The sensors have shorted out!") + return 0 + if(src.has_sensor <= NO_SENSORS) + to_chat(usr, "This suit does not have any sensors.") + return 0 + + sensor_mode = 3 + + to_chat(usr, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(H.w_uniform == src) + H.update_suit_sensors() + /obj/item/clothing/under/AltClick(mob/user) if(..()) return 1 From 94b8b33efac6d71293161013e29b5625c773baca Mon Sep 17 00:00:00 2001 From: Sishen Date: Sat, 22 Jun 2019 00:41:52 -0400 Subject: [PATCH 140/180] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 458d2cd752..7f116d0049 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1119,7 +1119,7 @@ M.adjustBruteLoss(-3 * REM, 0) M.adjustFireLoss(-3 * REM, 0) M.adjustOxyLoss(-15 * REM, 0) - M.adjustToxLoss(-3 * REM, 0) + M.adjustToxLoss(-3 * REM, 0, TRUE) //Heals TOXINLOVERS M.adjustBrainLoss(2 * REM, 150) //This does, after all, come from ambrosia, and the most powerful ambrosia in existence, at that! M.adjustCloneLoss(-1 * REM, 0) M.adjustStaminaLoss(-30 * REM, 0) @@ -1130,7 +1130,7 @@ /datum/reagent/medicine/earthsblood/overdose_process(mob/living/M) M.hallucination = min(max(0, M.hallucination + 5), 60) - M.adjustToxLoss(5 * REM, 0) + M.adjustToxLoss(8 * REM, 0, TRUE) //Hurts TOXINLOVERS ..() . = 1 From 45109776e19f5ae7347ed88e25e8ded9d27370a3 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sat, 22 Jun 2019 17:05:08 +0200 Subject: [PATCH 141/180] Ports in "Liver removal/failure now also stops passive reagent effects" --- code/modules/mob/living/carbon/life.dm | 1 + code/modules/reagents/chemistry/holder.dm | 21 +++++++++++++++ code/modules/reagents/chemistry/reagents.dm | 12 +++++++++ .../chemistry/reagents/alcohol_reagents.dm | 26 +++++++++---------- .../chemistry/reagents/blob_reagents.dm | 2 +- .../chemistry/reagents/drink_reagents.dm | 4 +-- .../chemistry/reagents/drug_reagents.dm | 14 +++++----- .../chemistry/reagents/food_reagents.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 22 ++++++++-------- .../chemistry/reagents/other_reagents.dm | 22 ++++++++-------- .../chemistry/reagents/toxin_reagents.dm | 18 ++++++------- .../chemistry/reagents/other_reagents.dm | 4 +-- 12 files changed, 91 insertions(+), 57 deletions(-) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 571775d541..b2eb83d668 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -654,6 +654,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put L.damage += d /mob/living/carbon/proc/liver_failure() + reagents.end_metabolization(src, keep_liverless = TRUE) //Stops trait-based effects on reagents, to prevent permanent buffs reagents.metabolize(src, can_overdose=FALSE, liverless = TRUE) if(HAS_TRAIT(src, TRAIT_STABLEHEART)) return diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 58c29f351b..cc93a28ed8 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -267,6 +267,9 @@ continue if(!C) C = R.holder.my_atom + if(!R.metabolizing) + R.metabolizing = TRUE + R.on_mob_metabolize(C) if(C && R) if(C.reagent_check(R) != 1) if(can_overdose) @@ -313,6 +316,21 @@ C.update_stamina() update_total() +//Signals that metabolization has stopped, triggering the end of trait-based effects +/datum/reagents/proc/end_metabolization(mob/living/carbon/C, keep_liverless = TRUE) + var/list/cached_reagents = reagent_list + for(var/reagent in cached_reagents) + var/datum/reagent/R = reagent + if(QDELETED(R.holder)) + continue + if(keep_liverless && R.self_consuming) //Will keep working without a liver + continue + if(!C) + C = R.holder.my_atom + if(R.metabolizing) + R.metabolizing = FALSE + R.on_mob_end_metabolize(C) + /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) @@ -466,6 +484,9 @@ if(R.id == reagent) if(my_atom && isliving(my_atom)) var/mob/living/M = my_atom + if(R.metabolizing) + R.metabolizing = FALSE + R.on_mob_end_metabolize(M) R.on_mob_delete(M) qdel(R) reagent_list -= R diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index a52bb1ecfe..9bfbffd330 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -33,6 +33,10 @@ var/addiction_stage4_end = 40 var/overdosed = 0 // You fucked up and this is now triggering its overdose effects, purge that shit quick. var/self_consuming = FALSE + var/metabolizing = FALSE + + + /datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references . = ..() @@ -68,6 +72,14 @@ /datum/reagent/proc/on_mob_delete(mob/living/L) return +// Called when this reagent first starts being metabolized by a liver +/datum/reagent/proc/on_mob_metabolize(mob/living/L) + return + +// Called when this reagent stops being metabolized by a liver +/datum/reagent/proc/on_mob_end_metabolize(mob/living/L) + return + /datum/reagent/proc/on_move(mob/M) return diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 14963a6689..80e195d5ac 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -111,7 +111,7 @@ All effects don't start immediately, but rather get worse over time; the rate is M.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) return ..() -/datum/reagent/consumable/ethanol/beer/green/on_mob_delete(mob/living/M) +/datum/reagent/consumable/ethanol/beer/green/on_mob_end_metabolize(mob/living/M) M.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, color) /datum/reagent/consumable/ethanol/kahlua @@ -569,13 +569,13 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up." var/tough_text -/datum/reagent/consumable/ethanol/brave_bull/on_mob_add(mob/living/M) +/datum/reagent/consumable/ethanol/brave_bull/on_mob_metabolize(mob/living/M) tough_text = pick("brawny", "tenacious", "tough", "hardy", "sturdy") //Tuff stuff to_chat(M, "You feel [tough_text]!") M.maxHealth += 10 //Brave Bull makes you sturdier, and thus capable of withstanding a tiny bit more punishment. M.health += 10 -/datum/reagent/consumable/ethanol/brave_bull/on_mob_delete(mob/living/M) +/datum/reagent/consumable/ethanol/brave_bull/on_mob_end_metabolize(mob/living/M) to_chat(M, "You no longer feel [tough_text].") M.maxHealth -= 10 M.health = min(M.health - 10, M.maxHealth) //This can indeed crit you if you're alive solely based on alchol ingestion @@ -593,7 +593,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..." var/obj/effect/light_holder -/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_add(mob/living/M) +/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_metabolize(mob/living/M) to_chat(M, "You feel gentle warmth spread through your body!") light_holder = new(M) light_holder.set_light(3, 0.7, "#FFCC00") //Tequila Sunrise makes you radiate dim light, like a sunrise! @@ -605,7 +605,7 @@ All effects don't start immediately, but rather get worse over time; the rate is light_holder.forceMove(M) return ..() -/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_delete(mob/living/M) +/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_end_metabolize(mob/living/M) to_chat(M, "The warmth in your body fades.") QDEL_NULL(light_holder) @@ -671,7 +671,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A manly concoction made from Ale and Beer. Intended for true men only." var/dorf_mode -/datum/reagent/consumable/ethanol/manly_dorf/on_mob_add(mob/living/M) +/datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/M) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE)) @@ -722,7 +722,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Kahlua, Irish Cream, and cognac. You will get bombed." shot_glass_icon_state = "b52glass" -/datum/reagent/consumable/ethanol/b52/on_mob_add(mob/living/M) +/datum/reagent/consumable/ethanol/b52/on_mob_metabolize(mob/living/M) playsound(M, 'sound/effects/explosion_distant.ogg', 100, FALSE) /datum/reagent/consumable/ethanol/irishcoffee @@ -1534,7 +1534,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "If you're feeling low, count on the buttery flavor of our own bastion bourbon." shot_glass_icon_state = "shotglassgreen" -/datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_add(mob/living/L) +/datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_metabolize(mob/living/L) var/heal_points = 10 if(L.health <= 0) heal_points = 20 //heal more if we're in softcrit @@ -1618,7 +1618,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Crevice Spike" glass_desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably." -/datum/reagent/consumable/ethanol/crevice_spike/on_mob_add(mob/living/L) //damage only applies when drink first enters system and won't again until drink metabolizes out +/datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/L) //damage only applies when drink first enters system and won't again until drink metabolizes out L.adjustBruteLoss(3 * min(5,volume)) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15 /datum/reagent/consumable/ethanol/sake @@ -1661,7 +1661,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A creamy, indulgent delight that is stronger than it seems." var/obj/item/shield/mighty_shield -/datum/reagent/consumable/ethanol/alexander/on_mob_add(mob/living/L) +/datum/reagent/consumable/ethanol/alexander/on_mob_metabolize(mob/living/L) if(ishuman(L)) var/mob/living/carbon/human/thehuman = L for(var/obj/item/shield/theshield in thehuman.contents) @@ -1675,7 +1675,7 @@ All effects don't start immediately, but rather get worse over time; the rate is if(mighty_shield && !(mighty_shield in L.contents)) //If you had a shield and lose it, you lose the reagent as well. Otherwise this is just a normal drink. L.reagents.del_reagent("alexander") -/datum/reagent/consumable/ethanol/alexander/on_mob_delete(mob/living/L) +/datum/reagent/consumable/ethanol/alexander/on_mob_end_metabolize(mob/living/L) if(mighty_shield) mighty_shield.block_chance -= 10 to_chat(L,"You notice [mighty_shield] looks worn again. Weird.") @@ -1796,7 +1796,7 @@ All effects don't start immediately, but rather get worse over time; the rate is M.overeatduration = 0 return ..() -/datum/reagent/consumable/ethanol/fanciulli/on_mob_add(mob/living/M) +/datum/reagent/consumable/ethanol/fanciulli/on_mob_metabolize(mob/living/M) if(M.health > 0) M.adjustStaminaLoss(20) . = TRUE @@ -1820,7 +1820,7 @@ All effects don't start immediately, but rather get worse over time; the rate is M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) return ..() -/datum/reagent/consumable/ethanol/branca_menta/on_mob_add(mob/living/M) +/datum/reagent/consumable/ethanol/branca_menta/on_mob_metabolize(mob/living/M) if(M.health > 0) M.adjustStaminaLoss(35) . = TRUE diff --git a/code/modules/reagents/chemistry/reagents/blob_reagents.dm b/code/modules/reagents/chemistry/reagents/blob_reagents.dm index 8ee9449468..af85b6b35f 100644 --- a/code/modules/reagents/chemistry/reagents/blob_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/blob_reagents.dm @@ -204,7 +204,7 @@ C.hal_screwyhud = SCREWYHUD_HEALTHY //fully healed, honest ..() -/datum/reagent/blob/regenerative_materia/on_mob_delete(mob/living/M) +/datum/reagent/blob/regenerative_materia/on_mob_end_metabolize(mob/living/M) if(iscarbon(M)) var/mob/living/carbon/N = M N.hal_screwyhud = 0 diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index ac15eb6b01..6d0d1e13c6 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -390,11 +390,11 @@ glass_name = "glass of Nuka Cola" glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." -/datum/reagent/consumable/nuka_cola/on_mob_add(mob/living/L) +/datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_GOTTAGOFAST, id) -/datum/reagent/consumable/nuka_cola/on_mob_delete(mob/living/L) +/datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_GOTTAGOFAST, id) ..() diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 04dad3a065..a4586dd997 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -5,7 +5,7 @@ taste_description = "bitterness" var/trippy = TRUE //Does this drug make you trip? -/datum/reagent/drug/on_mob_delete(mob/living/M) +/datum/reagent/drug/on_mob_end_metabolize(mob/living/M) if(trippy) SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[id]_high") @@ -168,11 +168,11 @@ var/jitter = TRUE var/confusion = TRUE -/datum/reagent/drug/methamphetamine/on_mob_add(mob/living/L) +/datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() L.ignore_slowdown(id) -/datum/reagent/drug/methamphetamine/on_mob_delete(mob/living/L) +/datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) L.unignore_slowdown(id) ..() @@ -262,7 +262,7 @@ taste_description = "salt" // because they're bathsalts? var/datum/brain_trauma/special/psychotic_brawling/bath_salts/rage -/datum/reagent/drug/bath_salts/on_mob_add(mob/living/L) +/datum/reagent/drug/bath_salts/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_STUNIMMUNE, id) ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, id) @@ -271,7 +271,7 @@ rage = new() C.gain_trauma(rage, TRAUMA_RESILIENCE_ABSOLUTE) -/datum/reagent/drug/bath_salts/on_mob_delete(mob/living/L) +/datum/reagent/drug/bath_salts/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, id) REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, id) if(rage) @@ -381,7 +381,7 @@ addiction_stage3_end = 40 addiction_stage4_end = 240 -/datum/reagent/drug/skooma/on_mob_add(mob/living/L) +/datum/reagent/drug/skooma/on_mob_metabolize(mob/living/L) . = ..() ADD_TRAIT(L, TRAIT_GOTTAGOFAST, id) L.next_move_modifier *= 2 @@ -392,7 +392,7 @@ if(H.dna && H.dna.species) H.dna.species.punchdamagehigh *= 5 -/datum/reagent/drug/skooma/on_mob_delete(mob/living/L) +/datum/reagent/drug/skooma/on_mob_end_metabolize(mob/living/L) . = ..() REMOVE_TRAIT(L, TRAIT_GOTTAGOFAST, id) L.next_move_modifier *= 0.5 diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index afa469706a..05c75493b4 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -686,7 +686,7 @@ /datum/reagent/consumable/tinlux/reaction_mob(mob/living/M) M.set_light(2) -/datum/reagent/consumable/tinlux/on_mob_delete(mob/living/M) +/datum/reagent/consumable/tinlux/on_mob_end_metabolize(mob/living/M) M.set_light(-2) /datum/reagent/consumable/vitfro diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 07a2a9c02a..0a70316495 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -366,7 +366,7 @@ to_chat(M, "You feel your wounds fade away to nothing!" ) ..() -/datum/reagent/medicine/mine_salve/on_mob_delete(mob/living/M) +/datum/reagent/medicine/mine_salve/on_mob_end_metabolize(mob/living/M) if(iscarbon(M)) var/mob/living/carbon/N = M N.hal_screwyhud = SCREWYHUD_NONE @@ -630,11 +630,11 @@ overdose_threshold = 30 addiction_threshold = 25 -/datum/reagent/medicine/morphine/on_mob_add(mob/living/L) +/datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L) ..() L.ignore_slowdown(id) -/datum/reagent/medicine/morphine/on_mob_delete(mob/living/L) +/datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L) L.unignore_slowdown(id) ..() @@ -875,11 +875,11 @@ metabolization_rate = 0.5 * REAGENTS_METABOLISM overdose_threshold = 60 -/datum/reagent/medicine/stimulants/on_mob_add(mob/living/L) +/datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_GOTTAGOFAST, id) -/datum/reagent/medicine/stimulants/on_mob_delete(mob/living/L) +/datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_GOTTAGOFAST, id) ..() @@ -1188,11 +1188,11 @@ color = "#C8A5DC" metabolization_rate = 1 -/datum/reagent/medicine/changelinghaste/on_mob_add(mob/living/L) +/datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_GOTTAGOREALLYFAST, id) -/datum/reagent/medicine/changelinghaste/on_mob_delete(mob/living/L) +/datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_GOTTAGOREALLYFAST, id) ..() @@ -1223,11 +1223,11 @@ id = "muscle_stimulant" description = "A potent chemical that allows someone under its influence to be at full physical ability even when under massive amounts of pain." -/datum/reagent/medicine/muscle_stimulant/on_mob_add(mob/living/M) +/datum/reagent/medicine/muscle_stimulant/on_mob_metabolize(mob/living/M) . = ..() M.ignore_slowdown(id) -/datum/reagent/medicine/muscle_stimulant/on_mob_delete(mob/living/M) +/datum/reagent/medicine/muscle_stimulant/on_mob_end_metabolize(mob/living/M) . = ..() M.unignore_slowdown(id) @@ -1242,11 +1242,11 @@ taste_description = "salt" // it actually does taste salty var/overdose_progress = 0 // to track overdose progress -/datum/reagent/medicine/modafinil/on_mob_add(mob/living/M) +/datum/reagent/medicine/modafinil/on_mob_metabolize(mob/living/M) ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, id) ..() -/datum/reagent/medicine/modafinil/on_mob_delete(mob/living/M) +/datum/reagent/medicine/modafinil/on_mob_end_metabolize(mob/living/M) REMOVE_TRAIT(M, TRAIT_SLEEPIMMUNE, id) ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 40242909de..5f2592670d 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -196,11 +196,11 @@ glass_name = "glass of holy water" glass_desc = "A glass of holy water." -/datum/reagent/water/holywater/on_mob_add(mob/living/L) +/datum/reagent/water/holywater/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_HOLY, id) -/datum/reagent/water/holywater/on_mob_delete(mob/living/L) +/datum/reagent/water/holywater/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_HOLY, id) ..() @@ -1241,12 +1241,12 @@ color = "E1A116" taste_description = "sourness" -/datum/reagent/stimulum/on_mob_add(mob/living/L) +/datum/reagent/stimulum/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_STUNIMMUNE, id) ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, id) -/datum/reagent/stimulum/on_mob_delete(mob/living/L) +/datum/reagent/stimulum/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, id) REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, id) ..() @@ -1266,11 +1266,11 @@ color = "90560B" taste_description = "burning" -/datum/reagent/nitryl/on_mob_add(mob/living/L) +/datum/reagent/nitryl/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_GOTTAGOFAST, id) -/datum/reagent/nitryl/on_mob_delete(mob/living/L) +/datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_GOTTAGOFAST, id) ..() @@ -1723,7 +1723,7 @@ H.update_transform() ..() -/datum/reagent/growthserum/on_mob_delete(mob/living/M) +/datum/reagent/growthserum/on_mob_end_metabolize(mob/living/M) M.resize = 1/current_size M.update_transform() ..() @@ -1777,11 +1777,11 @@ taste_description = "water" metabolization_rate = 0.25 * REAGENTS_METABOLISM -/datum/reagent/pax/on_mob_add(mob/living/L) +/datum/reagent/pax/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_PACIFISM, id) -/datum/reagent/pax/on_mob_delete(mob/living/L) +/datum/reagent/pax/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_PACIFISM, id) ..() @@ -1793,11 +1793,11 @@ taste_description = "acrid cinnamon" metabolization_rate = 0.2 * REAGENTS_METABOLISM -/datum/reagent/bz_metabolites/on_mob_add(mob/living/L) +/datum/reagent/bz_metabolites/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, CHANGELING_HIVEMIND_MUTE, id) -/datum/reagent/bz_metabolites/on_mob_delete(mob/living/L) +/datum/reagent/bz_metabolites/on_mob_end_metabolize(mob/living/L) ..() REMOVE_TRAIT(L, CHANGELING_HIVEMIND_MUTE, id) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 8be95efb83..2fe06b6b6d 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -156,11 +156,11 @@ toxpwr = 0.5 taste_description = "death" -/datum/reagent/toxin/zombiepowder/on_mob_add(mob/living/L) +/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L) ..() L.fakedeath(id) -/datum/reagent/toxin/zombiepowder/on_mob_delete(mob/living/L) +/datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/L) L.cure_fakedeath(id) ..() @@ -178,11 +178,11 @@ toxpwr = 0.8 taste_description = "death" -/datum/reagent/toxin/ghoulpowder/on_mob_add(mob/living/L) +/datum/reagent/toxin/ghoulpowder/on_mob_metabolize(mob/living/L) ..() ADD_TRAIT(L, TRAIT_FAKEDEATH, id) -/datum/reagent/toxin/ghoulpowder/on_mob_delete(mob/living/L) +/datum/reagent/toxin/ghoulpowder/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_FAKEDEATH, id) ..() @@ -626,7 +626,7 @@ toxpwr = 0 metabolization_rate = 0.5 * REAGENTS_METABOLISM -/datum/reagent/toxin/amanitin/on_mob_delete(mob/living/M) +/datum/reagent/toxin/amanitin/on_mob_end_metabolize(mob/living/M) var/toxdamage = current_cycle*3*REM M.log_message("has taken [toxdamage] toxin damage from amanitin toxin", LOG_ATTACK) M.adjustToxLoss(toxdamage) @@ -742,7 +742,7 @@ animate(transform = matrix(-rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING) return ..() -/datum/reagent/toxin/rotatium/on_mob_delete(mob/living/M) +/datum/reagent/toxin/rotatium/on_mob_end_metabolize(mob/living/M) if(M && M.hud_used) var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) for(var/whole_screen in screens) @@ -779,7 +779,7 @@ */ return ..() -/datum/reagent/toxin/skewium/on_mob_delete(mob/living/M) +/datum/reagent/toxin/skewium/on_mob_end_metabolize(mob/living/M) if(M && M.hud_used) var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) for(var/whole_screen in screens) @@ -882,8 +882,8 @@ toxpwr = 0 taste_description = "stillness" -/datum/reagent/toxin/mimesbane/on_mob_add(mob/living/L) +/datum/reagent/toxin/mimesbane/on_mob_metabolize(mob/living/L) ADD_TRAIT(L, TRAIT_EMOTEMUTE, id) -/datum/reagent/toxin/mimesbane/on_mob_delete(mob/living/L) +/datum/reagent/toxin/mimesbane/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_EMOTEMUTE, id) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm index 0f71a71add..00063c22d4 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -17,13 +17,13 @@ M.adjustStaminaLoss(-5*REM) . = ..() -/datum/reagent/syndicateadrenals/on_mob_add(mob/living/M) +/datum/reagent/syndicateadrenals/on_mob_metabolize(mob/living/M) . = ..() if(istype(M)) M.next_move_modifier *= 0.5 to_chat(M, "You feel an intense surge of energy rushing through your veins.") -/datum/reagent/syndicateadrenals/on_mob_delete(mob/living/M) +/datum/reagent/syndicateadrenals/on_mob_end_metabolize(mob/living/M) . = ..() if(istype(M)) M.next_move_modifier *= 2 From d50afb92757dc405483267644fad262f61c21327 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sat, 22 Jun 2019 17:58:42 +0200 Subject: [PATCH 142/180] frickkkkeroni pepperoni garlic. --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 0a70316495..ce4dffb69a 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1210,11 +1210,11 @@ color = "#F5F5F5" self_consuming = TRUE -/datum/reagent/medicine/corazone/on_mob_add(mob/living/M) +/datum/reagent/medicine/corazone/on_mob_metabolize(mob/living/M) ..() ADD_TRAIT(M, TRAIT_STABLEHEART, id) -/datum/reagent/medicine/corazone/on_mob_delete(mob/living/M) +/datum/reagent/medicine/corazone/on_mob_end_metabolize(mob/living/M) REMOVE_TRAIT(M, TRAIT_STABLEHEART, id) ..() From 846f6789da54d00011c1afbdc3e62cbe18f05cd9 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Sat, 22 Jun 2019 11:05:34 -0500 Subject: [PATCH 143/180] suggested changes --- code/modules/clothing/clothing.dm | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index caaca3958a..767b700051 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -217,30 +217,30 @@ BLIND // can't see anything ..() /obj/item/clothing/under/CtrlClick(mob/user) - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + . = ..() + + if (!(item_flags & IN_INVENTORY)) return - var/mob/M = user - if (istype(M, /mob/dead/)) + if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return - if (!can_use(M)) + + if(has_sensor == LOCKED_SENSORS) + to_chat(user, "The controls are locked.") + return + if(has_sensor == BROKEN_SENSORS) + to_chat(user, "The sensors have shorted out!") + return + if(has_sensor <= NO_SENSORS) + to_chat(user, "This suit does not have any sensors.") return - if(src.has_sensor == LOCKED_SENSORS) - to_chat(usr, "The controls are locked.") - return 0 - if(src.has_sensor == BROKEN_SENSORS) - to_chat(usr, "The sensors have shorted out!") - return 0 - if(src.has_sensor <= NO_SENSORS) - to_chat(usr, "This suit does not have any sensors.") - return 0 - sensor_mode = 3 + sensor_mode = SENSOR_COORDS - to_chat(usr, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") + to_chat(user, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc + if(ishuman(user)) + var/mob/living/carbon/human/H = user if(H.w_uniform == src) H.update_suit_sensors() From 1d4f55cab2e6b7326dba07281554970b54d39d03 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 22 Jun 2019 13:34:08 -0400 Subject: [PATCH 144/180] makes tower shield be seeable --- code/game/objects/items/shields.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index e70e8553ed..a9f0e038df 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -170,7 +170,7 @@ name = "tower shield" desc = "A massive shield that can block a lot of attacks, can take a lot of abuse before braking." armor = list("melee" = 95, "bullet" = 95, "laser" = 75, "energy" = 60, "bomb" = 90, "bio" = 90, "rad" = 0, "fire" = 90, "acid" = 10) //Armor for the item, dosnt transfer to user - icon_state = "metal" + item_state = "metal" block_chance = 75 //1/4 shots will hit* force = 10 slowdown = 2 From 2276f65c029107468509fed7d6f617dae64860c8 Mon Sep 17 00:00:00 2001 From: Sishen Date: Sat, 22 Jun 2019 14:27:08 -0400 Subject: [PATCH 145/180] holy shit it actually works --- .../chemistry/reagents/medicine_reagents.dm | 19 +++++-------------- .../reagents/chemistry/recipes/medicine.dm | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 7f116d0049..cbdeeeced1 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -483,32 +483,23 @@ reagent_state = LIQUID color = "#E6FFF0" metabolization_rate = 0.5 * REAGENTS_METABOLISM + var/healtoxinlover = FALSE /datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M) M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50 - M.adjustToxLoss(-2*REM, 0) + M.adjustToxLoss(-2*REM, 0, healtoxinlover) for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) M.reagents.remove_reagent(R.id,2) ..() . = 1 -/datum/reagent/medicine/pen_jelly +/datum/reagent/medicine/pen_acid/pen_jelly name = "Pentetic Jelly" id = "pen_jelly" description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Slimepeople friendly!" - reagent_state = LIQUID - color = "#E6FFF0" - metabolization_rate = 0.5 * REAGENTS_METABOLISM - -/datum/reagent/medicine/pen_jelly/on_mob_life(mob/living/carbon/M) - M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50 - M.adjustToxLoss(-2*REM, 0, TRUE) //HEALS TOXINOVERS - for(var/datum/reagent/R in M.reagents.reagent_list) - if(R != src) - M.reagents.remove_reagent(R.id,2) - ..() - . = 1 + color = "#91D865" + healtoxinlover = TRUE /datum/reagent/medicine/sal_acid name = "Salicyclic Acid" diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index 9cfb761e32..727048a12c 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -97,7 +97,7 @@ /datum/chemical_reaction/pen_jelly name = "Pentetic Jelly" id = "pen_jelly" - results = list("pen_acid" = 2) + results = list("pen_jelly" = 2) required_reagents = list("pen_acid" = 1, "slimejelly" = 1) /datum/chemical_reaction/sal_acid From 41c05861540439947299d5aa9d553645ff9e072b Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 23 Jun 2019 06:28:37 +0200 Subject: [PATCH 146/180] Ports in "makes the abductor console use radials" --- .../antagonists/abductor/machinery/console.dm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index a14b667069..3e4984b554 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -126,8 +126,20 @@ if(vest) vest.flip_mode() -/obj/machinery/abductor/console/proc/SelectDisguise(remote = 0) - var/entry_name = input( "Choose Disguise", "Disguise") as null|anything in disguises +/obj/machinery/abductor/console/proc/SelectDisguise(remote = FALSE) +var/list/disguises2 = list() + for(var/name in disguises) + var/datum/icon_snapshot/snap = disguises[name] + var/image/dummy = image(snap.icon, src, snap.icon_state) + dummy.overlays = snap.overlays + disguises2[name] = dummy + + var/entry_name + if(remote) + entry_name = show_radial_menu(usr, camera.eyeobj, disguises2) + else + entry_name = show_radial_menu(usr, src, disguises2) + var/datum/icon_snapshot/chosen = disguises[entry_name] if(chosen && vest && (remote || in_range(usr,src))) vest.SetDisguise(chosen) From d1008122daccf80dcbe1dddd28e6ea2989586b29 Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 23 Jun 2019 06:33:27 +0200 Subject: [PATCH 147/180] indention bested me. --- code/modules/antagonists/abductor/machinery/console.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index 3e4984b554..52bda50b86 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -127,7 +127,7 @@ vest.flip_mode() /obj/machinery/abductor/console/proc/SelectDisguise(remote = FALSE) -var/list/disguises2 = list() + var/list/disguises2 = list() for(var/name in disguises) var/datum/icon_snapshot/snap = disguises[name] var/image/dummy = image(snap.icon, src, snap.icon_state) From 7f4d60ae25abc60591d6febe46f8581ea6fdbb98 Mon Sep 17 00:00:00 2001 From: TrilbySpaseClone Date: Sun, 23 Jun 2019 01:49:45 -0400 Subject: [PATCH 148/180] Poojawa this would been easyer with webedits --- code/modules/clothing/under/miscellaneous.dm | 8 ++++++++ .../code/modules/client/loadout/uniform.dm | 6 ++++++ .../icons/obj/clothing/cit_clothes.dmi | Bin 2077 -> 2493 bytes 3 files changed, 14 insertions(+) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index bcd9642662..7d338063a5 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -749,3 +749,11 @@ fitted = NO_FEMALE_UNIFORM can_adjust = FALSE resistance_flags = NONE + +/obj/item/clothing/under/gear_harness + name = "gear harness" + desc = "A simple, inconspicuous harness replacement for a jumpsuit." + icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi' + icon_state = "gear_harness" + item_state = "golem" //This allows us to have no clothing on us well also hiding the cit lewd bits unless we show them. + body_parts_covered = CHEST|GROIN \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 07309ffd0d..997b25313d 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -303,3 +303,9 @@ path = /obj/item/clothing/under/rank/trek/engsec/ent restricted_desc = "Engineering and Security" restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") + +//memes +/datum/gear/gear_harnesses + name = "Gear Harness" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/gear_harness \ No newline at end of file diff --git a/modular_citadel/icons/obj/clothing/cit_clothes.dmi b/modular_citadel/icons/obj/clothing/cit_clothes.dmi index 8cc6ca2950316e64c19c81363327f03c30303fff..b88e1bd786ff3873521e7932b5be595e3b67d2a7 100644 GIT binary patch literal 2493 zcmV;u2}1UXP)V=-0C=2@$~_LkFbqK9IX;Ee?ufrN3rdADv{yh;V;T!+k!|Sp87i@%vb`sL zHJ+Mt>@c(u-XzM?h#rrdEx4Jp74&%6gDb>Cv1Qbf5qhkYdcCn&1unBFdfb7#N_x=J zUsxvn51Q(W*V&!s+^6TN8z{-8BpFHd7p}4C0){ri2ht`>;Pol)MF0Q@=Sf6CRCt{2 zn{P}T*8#wPCcq3B9O6F&^2a8WD4CW z#@AENEic312EZD)vtbcm#p!HybsP>&JiQ5G`6QxhYy6|HJP! z3*BR>7_L={-zmta>8%bvU;hFgkB2>b_GnsKT11P*!kYh`X8*ooKJ4mcB(Fx6GW6^_ zA$Iwud2;&%A9?lC^{v?f{&F>q0&^l;-ug{Uc}FeaQrS^)XHp^neRpPfW8`zTjZe|7 zOXi?q4VzYlJ5&4ZX;~!H*Vl`Mg@t%L9^7s>j{bfcb91Gm&1S=5v2f+e6%HIY5cm9h z_MH%mcO^6O!7v|r^%U<)mf|`tPO&vRfZ<^i9T%r!k`R@E@@JnHe2NjJt$ZyIssVc1#Kn4i3(fV6)lSuwjD~|JkWi>~3z3TmC)!PKaBx0|49z zqyjJ+N|NF;Q*Q&XRv!Z3Bd*(_D|`oTe|@&^aMh%bF* zBY(Er#dt|LwNC;gxl@LZnv}NLNNpH zS!ix<24Hx2m`5Ldlm>R-+vST}8B7~DAOwPF_35m$=1AACUHvbbon1Jx-5ffx0pIEM zvppk~tSIljU`<^rJ1V|xHu7Y0GDAZ*04T{^%|XMOdFc)s)=-kU8UWYmO=&2)RCaV( ztCPsMAE|tRyu3VYHX8sfdpiKI*=*$HFM5duN3 z4}2zlf`OZ4{nLVFJyPX&`KIR$Pm8f=Q*FOJjcfEK&2KhI-TCeoJ~v$bW}_w|VYzH; zZN+-}G`9A3>gwvG{4EyCymWKJb#-+bTYEd!)2G?i+PdsA0KD|-iyG6$4Gej&BLspB ze>#Y#r-x8z0)Xu!HmUM|Xcc3cgclrwB1_Jt;2I5&k&iFw+hKAJXtCsHG1fZ-fXQUS zY&L&sTC>@V$z%c`;}?nZz84REee9Q-veLt1FmRJlXoBa2wX>6NXkNOkKm9hQd1pZZ zht9vgq)BY<9$`7;>^`p<0dn#l%=cm;GxfH#>RAp;nl1b8%q$pwPz=2Af+G3ek9Riu z7f*B-i>`w1rhig^6fJ!-GyE86pL<r3U?Q~q z7I{C)N)JmDdRF#2Ui4mvQAkZqBQ!Gt;ngWkCC9}5u2b=u1MViYK8s1K6<5dm_r#ft zzei|bAeP(3Oj>Fxx2C3;2!%*YOyno0rm6nvG%sDyO7U`$mA#H3?{xsQ`gBqQX{75{ zqt&M)1cCqzd9U;2_KB$X01$(Kii!%+YPAC4%KkE}Rx1@16=H2|tt`)CGW2?EHXClY zTRLvbpQ5KJpEK{-r2T;0czSvO2!$p{4Wvn{A(-6-$8fKh=790>@nyv?hpMV7(Qda( z;mFeSoyk%@?CRynW8uwNRaKQNPexyQ^+ioq_BsISGE;a?Sj&!2jU4_wT?#)Ztd03$ zTvR=vqM|}H8ja|5Iv`xpI-TyGVU`7CHZwi6`(Mx0EJNnC``=Hg1&B)l$0o%zuE&7MirnissM#i1t^RvKw(q?3Zn{8 z7*&A6r~(vb#RzCbm=-!%+CP1D}Ei>R)y7X5xduf6u#eeYdfUM?DqMvfmp9(DdJ>Tz_|$wx@f&BXh` z7@ME4P`UqtxcLbS-Veq|&&?$3>C^y`qv&ur#Egs#S@V{Im;^Ll zJH(kb6Y0H~)aIY#*~tUc=AWam<}ktjQS{e_sgbLsz}VOrb1OeWL_%k0CkBH-#uCJz zm;~H1z5Di&v5$YSJ^vxTZ3*)4y?@33uOPLY z?EzLQ-}oQruBeTeO8ij;D2ysVVN?MMqY6+MRe-{%0u<)|(&eCK;^XW_00000NkvXX Hu0mjf{Gzeu literal 2077 zcmV+&2;%pNP)V=-0C=2@$~z9iFc3x2+OvwMq(}T(H^>okk?g^W2Rz~vBdWc zV43tkXsS>7&8|G>F+IMy7TpjK`bckLeLhe#r%qD<00&V?L_t(|ob8!yOk39($A3-@ zGsfT$Y!gVxHD#bNDUA?iizlRHYt&Slv@9Q%nv{hSp_D37y2>h*Dw>z2trQ}@E!v=2 z5mi*ks)$4r*D9;UTQz4kY{+_K_ScFB(mxg-Ix9s%5G1ENIyyu_5P0aU z6c40-EN1rCDzZT%cPo6W=8SkKNejTh<1n90{ENLa3;e~9%*o6hJpWuo%g)6mUi#H9 zG)jz+LvwSpSXx@j(9jSrmy3$QL9XZJN&hyR4M7m-?d_$is!DeKvU!_#_kp-~)?E%2VeXm!1bwbdo5s zzGsPxnYn|58QTHqnw*N+P>7EEsPh2%`T5vvHUK(~b^~Cu z*~rh&2cV~?2cOSJX=y3V&CTo9ziv}?E-ukEIYrxzR%v2+x`mgAFWtDViHfjU_Bx$d zuUx^_*-2w#qg1~j2rKd}4>vY8YHXdISg%}RuhY419cvDO!MPAaPrAHPx+bRpcxgj# zN64wtArxdW{a_RTv)PQrVtHm>i^YQ3Yz83xr`i?ot;L!GRJUB)&~kR^#`TyigE_CX zXeNN1{P?}Mq1h_B5`10wzlG-BQe=|rc~ zp-V~OYGsJiEjmJTbA&=6W`jY+WhxRNxI2qEtCg43KU#Vzb$B zxm?o!-hu_(tp!}YZIku`N>DTh%*@PeDt$B5)zyi1yIl%Lm%cCOPVm>h2b}(1WOGzk zSEp$2Axi*Ol8C=LraThz31-vd0u$^8|1vwvaU@V65xM{EqNpsOA-R8ZGhS&1W?-m zwMht|wgGCB5I}7M)FvT-+6JgiLIAZ5P@4@2(0cGaajo!HLeb~2``9_L&$qSP%>|0G{basi zru*i?mJ&gh0PbVw#G-6J0FV5Uqvy$Bl9ZmIUj$&MF>)?{-)r15BFH)xZ`u)n`N(vU zmK8aJ5BMW@fA5BL92@u!Uln%&5rK-b{cM#Am9{8NPd0Y*FzrC-25Mb;k# zgxyHa_xYAq43Ah*Ti!0#mbZ%lg+~O*={M@T#lj=PsyuR$CBVhY=QZX%xr};82>Any z{d1Thx0_&a7Jz*dHp%%PSjD)F|Evoyl9rc&_ue#xM+9oi+r`2o0^WPmq~&Fhb>T(D zWhz<*YfhXJ_4-tT!C8J5+DV3fk)6gMkNkQ`fby=7;x_r!mbZ)kVl%p(kqes8qnQ=Y z#=bG?TaPNLU-9j5l&JG+kdzV`Vo7-!Qrt%GrenGl{&LUw`k6LCMgBFKUjCfk+Q=nn zU~m$E-r6>rUjCel{A-HKl-&brPMne^m#pkvocE5vB$SsiIT_?{TAVQ{^_ znybGvllCBkhJq%}&Q;M+&_rqdDFTC&82iVlS6HTO0kX1pG3p%wKxa%t?@uMoxE-A_ zjgUV8z^HeGA!z}U%@x|wh-XYM}N!sp8_<{#NE69;MeBDFW{)6 zGB-2_47uF^1cS5a{i)Jw08e&-8!1#Km)xlr@-82|5S4*%YhGGMXJafp%exU1tu;>)iywF5(21gfZ8MkP}=~tNeG~}0c!JayHyt=X%sTC00000NkvXX Hu0mjfw!#4_ From 0ea7ce373140a0eaf6d54ae20771d73b42329bc1 Mon Sep 17 00:00:00 2001 From: TrilbySpaseClone Date: Sun, 23 Jun 2019 02:51:01 -0400 Subject: [PATCH 149/180] No... --- code/modules/clothing/under/miscellaneous.dm | 1 - icons/obj/clothing/uniforms.dmi | Bin 65458 -> 65739 bytes .../icons/obj/clothing/cit_clothes.dmi | Bin 2493 -> 2077 bytes 3 files changed, 1 deletion(-) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 7d338063a5..aeccae5de2 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -753,7 +753,6 @@ /obj/item/clothing/under/gear_harness name = "gear harness" desc = "A simple, inconspicuous harness replacement for a jumpsuit." - icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi' icon_state = "gear_harness" item_state = "golem" //This allows us to have no clothing on us well also hiding the cit lewd bits unless we show them. body_parts_covered = CHEST|GROIN \ No newline at end of file diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 84155bfe43ad134e6795fb23a894476757d19a31..3e3a1cefcbf44d4d50db7dcd8ea463a9ea8bd7e6 100644 GIT binary patch delta 12189 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℞ejDWTFRJws;I34<{iM%fVMXP$4;*t4lTL+DV6v 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 TdFVos5FZ5@73r$?rh)$t3vH*2 diff --git a/modular_citadel/icons/obj/clothing/cit_clothes.dmi b/modular_citadel/icons/obj/clothing/cit_clothes.dmi index b88e1bd786ff3873521e7932b5be595e3b67d2a7..8cc6ca2950316e64c19c81363327f03c30303fff 100644 GIT binary patch literal 2077 zcmV+&2;%pNP)V=-0C=2@$~z9iFc3x2+OvwMq(}T(H^>okk?g^W2Rz~vBdWc zV43tkXsS>7&8|G>F+IMy7TpjK`bckLeLhe#r%qD<00&V?L_t(|ob8!yOk39($A3-@ zGsfT$Y!gVxHD#bNDUA?iizlRHYt&Slv@9Q%nv{hSp_D37y2>h*Dw>z2trQ}@E!v=2 z5mi*ks)$4r*D9;UTQz4kY{+_K_ScFB(mxg-Ix9s%5G1ENIyyu_5P0aU z6c40-EN1rCDzZT%cPo6W=8SkKNejTh<1n90{ENLa3;e~9%*o6hJpWuo%g)6mUi#H9 zG)jz+LvwSpSXx@j(9jSrmy3$QL9XZJN&hyR4M7m-?d_$is!DeKvU!_#_kp-~)?E%2VeXm!1bwbdo5s zzGsPxnYn|58QTHqnw*N+P>7EEsPh2%`T5vvHUK(~b^~Cu z*~rh&2cV~?2cOSJX=y3V&CTo9ziv}?E-ukEIYrxzR%v2+x`mgAFWtDViHfjU_Bx$d zuUx^_*-2w#qg1~j2rKd}4>vY8YHXdISg%}RuhY419cvDO!MPAaPrAHPx+bRpcxgj# zN64wtArxdW{a_RTv)PQrVtHm>i^YQ3Yz83xr`i?ot;L!GRJUB)&~kR^#`TyigE_CX zXeNN1{P?}Mq1h_B5`10wzlG-BQe=|rc~ zp-V~OYGsJiEjmJTbA&=6W`jY+WhxRNxI2qEtCg43KU#Vzb$B zxm?o!-hu_(tp!}YZIku`N>DTh%*@PeDt$B5)zyi1yIl%Lm%cCOPVm>h2b}(1WOGzk zSEp$2Axi*Ol8C=LraThz31-vd0u$^8|1vwvaU@V65xM{EqNpsOA-R8ZGhS&1W?-m zwMht|wgGCB5I}7M)FvT-+6JgiLIAZ5P@4@2(0cGaajo!HLeb~2``9_L&$qSP%>|0G{basi zru*i?mJ&gh0PbVw#G-6J0FV5Uqvy$Bl9ZmIUj$&MF>)?{-)r15BFH)xZ`u)n`N(vU zmK8aJ5BMW@fA5BL92@u!Uln%&5rK-b{cM#Am9{8NPd0Y*FzrC-25Mb;k# zgxyHa_xYAq43Ah*Ti!0#mbZ%lg+~O*={M@T#lj=PsyuR$CBVhY=QZX%xr};82>Any z{d1Thx0_&a7Jz*dHp%%PSjD)F|Evoyl9rc&_ue#xM+9oi+r`2o0^WPmq~&Fhb>T(D zWhz<*YfhXJ_4-tT!C8J5+DV3fk)6gMkNkQ`fby=7;x_r!mbZ)kVl%p(kqes8qnQ=Y z#=bG?TaPNLU-9j5l&JG+kdzV`Vo7-!Qrt%GrenGl{&LUw`k6LCMgBFKUjCfk+Q=nn zU~m$E-r6>rUjCel{A-HKl-&brPMne^m#pkvocE5vB$SsiIT_?{TAVQ{^_ znybGvllCBkhJq%}&Q;M+&_rqdDFTC&82iVlS6HTO0kX1pG3p%wKxa%t?@uMoxE-A_ zjgUV8z^HeGA!z}U%@x|wh-XYM}N!sp8_<{#NE69;MeBDFW{)6 zGB-2_47uF^1cS5a{i)Jw08e&-8!1#Km)xlr@-82|5S4*%YhGGMXJafp%exU1tu;>)iywF5(21gfZ8MkP}=~tNeG~}0c!JayHyt=X%sTC00000NkvXX Hu0mjfw!#4_ literal 2493 zcmV;u2}1UXP)V=-0C=2@$~_LkFbqK9IX;Ee?ufrN3rdADv{yh;V;T!+k!|Sp87i@%vb`sL zHJ+Mt>@c(u-XzM?h#rrdEx4Jp74&%6gDb>Cv1Qbf5qhkYdcCn&1unBFdfb7#N_x=J zUsxvn51Q(W*V&!s+^6TN8z{-8BpFHd7p}4C0){ri2ht`>;Pol)MF0Q@=Sf6CRCt{2 zn{P}T*8#wPCcq3B9O6F&^2a8WD4CW z#@AENEic312EZD)vtbcm#p!HybsP>&JiQ5G`6QxhYy6|HJP! z3*BR>7_L={-zmta>8%bvU;hFgkB2>b_GnsKT11P*!kYh`X8*ooKJ4mcB(Fx6GW6^_ zA$Iwud2;&%A9?lC^{v?f{&F>q0&^l;-ug{Uc}FeaQrS^)XHp^neRpPfW8`zTjZe|7 zOXi?q4VzYlJ5&4ZX;~!H*Vl`Mg@t%L9^7s>j{bfcb91Gm&1S=5v2f+e6%HIY5cm9h z_MH%mcO^6O!7v|r^%U<)mf|`tPO&vRfZ<^i9T%r!k`R@E@@JnHe2NjJt$ZyIssVc1#Kn4i3(fV6)lSuwjD~|JkWi>~3z3TmC)!PKaBx0|49z zqyjJ+N|NF;Q*Q&XRv!Z3Bd*(_D|`oTe|@&^aMh%bF* zBY(Er#dt|LwNC;gxl@LZnv}NLNNpH zS!ix<24Hx2m`5Ldlm>R-+vST}8B7~DAOwPF_35m$=1AACUHvbbon1Jx-5ffx0pIEM zvppk~tSIljU`<^rJ1V|xHu7Y0GDAZ*04T{^%|XMOdFc)s)=-kU8UWYmO=&2)RCaV( ztCPsMAE|tRyu3VYHX8sfdpiKI*=*$HFM5duN3 z4}2zlf`OZ4{nLVFJyPX&`KIR$Pm8f=Q*FOJjcfEK&2KhI-TCeoJ~v$bW}_w|VYzH; zZN+-}G`9A3>gwvG{4EyCymWKJb#-+bTYEd!)2G?i+PdsA0KD|-iyG6$4Gej&BLspB ze>#Y#r-x8z0)Xu!HmUM|Xcc3cgclrwB1_Jt;2I5&k&iFw+hKAJXtCsHG1fZ-fXQUS zY&L&sTC>@V$z%c`;}?nZz84REee9Q-veLt1FmRJlXoBa2wX>6NXkNOkKm9hQd1pZZ zht9vgq)BY<9$`7;>^`p<0dn#l%=cm;GxfH#>RAp;nl1b8%q$pwPz=2Af+G3ek9Riu z7f*B-i>`w1rhig^6fJ!-GyE86pL<r3U?Q~q z7I{C)N)JmDdRF#2Ui4mvQAkZqBQ!Gt;ngWkCC9}5u2b=u1MViYK8s1K6<5dm_r#ft zzei|bAeP(3Oj>Fxx2C3;2!%*YOyno0rm6nvG%sDyO7U`$mA#H3?{xsQ`gBqQX{75{ zqt&M)1cCqzd9U;2_KB$X01$(Kii!%+YPAC4%KkE}Rx1@16=H2|tt`)CGW2?EHXClY zTRLvbpQ5KJpEK{-r2T;0czSvO2!$p{4Wvn{A(-6-$8fKh=790>@nyv?hpMV7(Qda( z;mFeSoyk%@?CRynW8uwNRaKQNPexyQ^+ioq_BsISGE;a?Sj&!2jU4_wT?#)Ztd03$ zTvR=vqM|}H8ja|5Iv`xpI-TyGVU`7CHZwi6`(Mx0EJNnC``=Hg1&B)l$0o%zuE&7MirnissM#i1t^RvKw(q?3Zn{8 z7*&A6r~(vb#RzCbm=-!%+CP1D}Ei>R)y7X5xduf6u#eeYdfUM?DqMvfmp9(DdJ>Tz_|$wx@f&BXh` z7@ME4P`UqtxcLbS-Veq|&&?$3>C^y`qv&ur#Egs#S@V{Im;^Ll zJH(kb6Y0H~)aIY#*~tUc=AWam<}ktjQS{e_sgbLsz}VOrb1OeWL_%k0CkBH-#uCJz zm;~H1z5Di&v5$YSJ^vxTZ3*)4y?@33uOPLY z?EzLQ-}oQruBeTeO8ij;D2ysVVN?MMqY6+MRe-{%0u<)|(&eCK;^XW_00000NkvXX Hu0mjf{Gzeu From 51e4ac0f6779c96f6f20b135252505cb250cb6a6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 23 Jun 2019 08:59:19 -0400 Subject: [PATCH 150/180] fixes plant disk design and hacked autolathen (#8674) * fixes plant disk design and hacked autolathen * Update lavaland_surface_seed_vault.dmm --- _maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm | 3 +-- code/modules/ruins/lavaland_ruin_code.dm | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index fd2e56a53f..945ea515c7 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -274,8 +274,7 @@ /area/ruin/powered/seedvault) "Z" = ( /obj/item/disk/design_disk/plant_disk, -/obj/machinery/autolathe{ - hacked = TRUE; +/obj/machinery/autolathe/hacked{ desc = "This autolathe seems to have its safety light off." }, /turf/open/floor/plasteel/freezer, diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 28ea849782..161ea3ac62 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -22,7 +22,7 @@ icon_state = "datadisk1" max_blueprints = 1 -/obj/item/disk/design_disk/golem_shell/Initialize() +/obj/item/disk/design_disk/plant_disk/Initialize() . = ..() var/datum/design/diskplantgene/P = new blueprints[1] = P From 69e551a95faa9e82d4e9db9e62c337ebaf141b8d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 07:59:21 -0500 Subject: [PATCH 151/180] Automatic changelog generation for PR #8674 [ci skip] --- html/changelogs/AutoChangeLog-pr-8674.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8674.yml diff --git a/html/changelogs/AutoChangeLog-pr-8674.yml b/html/changelogs/AutoChangeLog-pr-8674.yml new file mode 100644 index 0000000000..3277946844 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8674.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "fixing cat code that dosnt work, my bad" From d85a2f5f4ad8232c6417b52ff1d843194d0293dc Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 23 Jun 2019 08:59:35 -0400 Subject: [PATCH 152/180] Update arcade.dm (#8675) --- code/game/machinery/computer/arcade.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index efbbe36228..2c839c2ab9 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -32,7 +32,6 @@ /obj/item/toy/spinningtoy = ARCADE_WEIGHT_TRICK, /obj/item/toy/sword = ARCADE_WEIGHT_TRICK, /obj/item/toy/sword/cx = ARCADE_WEIGHT_TRICK, - /obj/item/toy/sword/darksabre = ARCADE_WEIGHT_TRICK, /obj/item/toy/talking/AI = ARCADE_WEIGHT_USELESS, /obj/item/toy/talking/codex_gigas = ARCADE_WEIGHT_USELESS, /obj/item/toy/talking/griffin = ARCADE_WEIGHT_USELESS, From 8c3d377a9bf8dbf5d0a74fec08eec55c0dc9dd87 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 07:59:36 -0500 Subject: [PATCH 153/180] Automatic changelog generation for PR #8675 [ci skip] --- html/changelogs/AutoChangeLog-pr-8675.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8675.yml diff --git a/html/changelogs/AutoChangeLog-pr-8675.yml b/html/changelogs/AutoChangeLog-pr-8675.yml new file mode 100644 index 0000000000..170a44ca25 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8675.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "Arcades stealing from noodles" From d21e483abf827701719af5b54ac3c55cbbd9f4e8 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 23 Jun 2019 14:59:50 +0200 Subject: [PATCH 154/180] Ports "Disembowelment now only works if you are dead/in critical" (#8671) --- code/modules/surgery/bodyparts/bodyparts.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 3c80737b31..a97a133685 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -564,6 +564,11 @@ max_stamina_damage = 200 var/obj/item/cavity_item +/obj/item/bodypart/chest/can_dismember(obj/item/I) + if(!((owner.stat == DEAD) || owner.InFullCritical())) + return FALSE + return ..() + /obj/item/bodypart/chest/Destroy() if(cavity_item) qdel(cavity_item) From 27920454de1269511e910619ed3a1c28c6fb9ea2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 07:59:52 -0500 Subject: [PATCH 155/180] Automatic changelog generation for PR #8671 [ci skip] --- html/changelogs/AutoChangeLog-pr-8671.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8671.yml diff --git a/html/changelogs/AutoChangeLog-pr-8671.yml b/html/changelogs/AutoChangeLog-pr-8671.yml new file mode 100644 index 0000000000..bb01481d5c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8671.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by wesoda25)" +delete-after: True +changes: + - balance: "disembowelment no longer works on mobs that aren't dead or in critical condition" From 2bb56a900a92fde714ca1707544e348682087ed4 Mon Sep 17 00:00:00 2001 From: Sishen1542 Date: Sun, 23 Jun 2019 09:00:07 -0400 Subject: [PATCH 156/180] Dab emote now checks restraint flags. (#8672) * Update cit_emotes.dm * Revert "Update cit_emotes.dm" This reverts commit 649007667db6f7d1fdd0f30e99bbaa268fbeb03c. * Revert "Revert "Update cit_emotes.dm"" This reverts commit 7950f642bf32b4179d265fdb498451c3e05a10fe. --- modular_citadel/code/modules/mob/cit_emotes.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index a314baa852..aff1739ae4 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -183,6 +183,7 @@ key_third_person = "suddenly hits a dab" message = "suddenly hits a dab!" emote_type = EMOTE_AUDIBLE + restraint_check = TRUE From 41bd3caf3ca3d1c4f24820324e4f606bd7f8f8e6 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 23 Jun 2019 15:00:27 +0200 Subject: [PATCH 157/180] Ports "Reorganizes the uplink, adds grenades and explosives category." (#8669) * Ports "Reorganizes the uplink, adds grenades and explosives category." * Unbent codex, singing the sorrow of aborted spoils. * . --- code/game/objects/items/storage/backpack.dm | 13 + code/game/objects/items/storage/briefcase.dm | 16 + code/modules/clothing/suits/jobs.dm | 3 + .../living/simple_animal/guardian/guardian.dm | 3 + code/modules/uplink/uplink_items.dm | 2220 +++++++++-------- .../code/datums/uplink_items_cit.dm | 177 -- .../code/modules/uplink/uplink_items.dm | 18 - tgstation.dme | 2 - 8 files changed, 1198 insertions(+), 1254 deletions(-) delete mode 100644 modular_citadel/code/datums/uplink_items_cit.dm delete mode 100644 modular_citadel/code/modules/uplink/uplink_items.dm diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 8178f0390a..c2929dafbd 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -589,3 +589,16 @@ new /obj/item/clothing/mask/gas/clown_hat(src) new /obj/item/bikehorn(src) new /obj/item/implanter/sad_trombone(src) + +obj/item/storage/backpack/duffelbag/syndie/shredderbundle + desc = "A large duffel bag containing two CX Shredders, some magazines, an elite hardsuit, and a chest rig." + +/obj/item/storage/backpack/duffelbag/syndie/shredderbundle/PopulateContents() + new /obj/item/ammo_box/magazine/flechette/shredder(src) + new /obj/item/ammo_box/magazine/flechette/shredder(src) + new /obj/item/ammo_box/magazine/flechette/shredder(src) + new /obj/item/ammo_box/magazine/flechette/shredder(src) + new /obj/item/gun/ballistic/automatic/flechette/shredder(src) + new /obj/item/gun/ballistic/automatic/flechette/shredder(src) + new /obj/item/storage/belt/military(src) + new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 1f80cec0f5..46676b5adb 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -80,6 +80,21 @@ new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) new /obj/item/suppressor/specialoffer(src) + +/obj/item/storage/briefcase/modularbundle + desc = "It's label reads genuine hardened Captain leather, but suspiciously has no other tags or branding." + force = 10 + +/obj/item/storage/briefcase/modularbundle/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/modular(src) + new /obj/item/suppressor(src) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/ammo_box/magazine/m10mm/soporific(src) + new /obj/item/ammo_box/c10mm/soporific(src) + new /obj/item/clothing/under/lawyer/blacksuit(src) + new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/suit/toggle/lawyer/black/syndie(src) + /obj/item/storage/briefcase/medical name = "medical briefcase" icon_state = "medbriefcase" @@ -89,3 +104,4 @@ new /obj/item/clothing/neck/stethoscope(src) new /obj/item/healthanalyzer(src) ..() //In case of paperwork + diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index deaedfec18..bf11d40caf 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -124,6 +124,9 @@ icon_state = "suitjacket_black" item_state = "ro_suit" +/obj/item/clothing/suit/toggle/lawyer/black/syndie + desc = "A snappy dress jacket. Suspiciously has no tags or branding." + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) //Mime /obj/item/clothing/suit/suspenders diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 701e244f89..1a918766b6 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -596,6 +596,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians /obj/item/guardiancreator/tech/choose/traitor possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") +/obj/item/guardiancreator/tech/choose/traitor/check_uplink_validity() + return !used + /obj/item/guardiancreator/tech/choose random = FALSE diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 871de715df..3018ebf03c 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -109,72 +109,194 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/discounts category = "Discounted Gear" -// Nuclear Operative (Special Offers) -/datum/uplink_item/nukeoffer - category = "Special Offers" +//All bundles and telecrystals +/datum/uplink_item/bundles_TC + category = "Bundles and Telecrystals" surplus = 0 - include_modes = list(/datum/game_mode/nuclear) cant_discount = TRUE -/datum/uplink_item/nukeoffer/c20r - name = "C-20r bundle" - desc = "Old faithful: The classic C-20r, bundled with two magazines, and a (surplus) suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 - -/datum/uplink_item/nukeoffer/bulldog - name = "Bulldog bundle" - desc = "Lean and mean: Optimised for people that want to get up close and personal. Contains the popular \ - Bulldog shotgun, two 12g drums, and a pair of Thermal imaging goggles." - item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - cost = 13 // normally 16 - -/datum/uplink_item/nukeoffer/medical - name = "Medical bundle" - desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a Donksoft machine gun, \ - a box of ammo, and a pair of magboots to rescue your friends in no-gravity environments." - item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - cost = 15 // normally 20 - -/datum/uplink_item/nukeoffer/sniper - name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, a hollow-point \ - a soporific knockout magazine, a free surplus supressor, and a worn out suit and tie." - item = /obj/item/storage/briefcase/sniperbundle - cost = 20 // normally 26 - -/datum/uplink_item/nukeoffer/chemical +/datum/uplink_item/bundles_TC/chemical name = "Bioterror bundle" desc = "For the madman: Contains Bioterror spray, Bioterror grenade, chemicals, syringe gun, box of syringes,\ Donksoft assault rifle, and some darts. Remember: Seal suit and equip internals before use." item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle cost = 30 // normally 42 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/nukeoffer/firestarter +/datum/uplink_item/bundles_TC/bulldog + name = "Bulldog bundle" + desc = "Lean and mean: Optimised for people that want to get up close and personal. Contains the popular \ + Bulldog shotgun, two 12g drums, and a pair of Thermal imaging goggles." + item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle + cost = 13 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/c20r + name = "C-20r bundle" + desc = "Old faithful: The classic C-20r, bundled with two magazines, and a (surplus) suppressor at discount price." + item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle + cost = 14 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/cybernetics_bundle + name = "Cybernetic Implants Bundle" + desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." + item = /obj/item/storage/box/cyber_implants + cost = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/medical + name = "Medical bundle" + desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a Donksoft machine gun, \ + a box of ammo, and a pair of magboots to rescue your friends in no-gravity environments." + item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + cost = 15 // normally 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/modular + name = "Modular Pistol Kit" + desc = "A heavy briefcase containing one modular pistol (chambered in 10mm), one supressor, and spare ammunition, including a box of soporific ammo. \ + Includes a suit jacket that is padded with a robust liner." + item = /obj/item/storage/briefcase/modularbundle + cost = 12 + +/datum/uplink_item/bundles_TC/shredder + name = "Shredder bundle" + desc = "A truly horrific weapon designed simply to maim its victim, the CX Shredder is banned by several intergalactic treaties. \ + You'll get two of them with this. And spare ammo to boot. And we'll throw in an extra elite hardsuit and chest rig to hold them all!" + item = /obj/item/storage/backpack/duffelbag/syndie/shredderbundle + cost = 30 // normally 41 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/sniper + name = "Sniper bundle" + desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, a hollow-point \ + a soporific knockout magazine, a free surplus supressor, and a worn out suit and tie." + item = /obj/item/storage/briefcase/sniperbundle + cost = 20 // normally 26 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/firestarter name = "Spetsnaz Pyro bundle" desc = "For systematic suppression of carbon lifeforms in close range: Contains a specialist Pyrotechnic equipment, foreign pistol, two magazines, a pipebomb, and a stimulant syringe." item = /obj/item/storage/backpack/duffelbag/syndie/firestarter cost = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bundle + name = "Syndicate Bundle" + desc = "Syndicate Bundles are specialized groups of items that arrive in a plain box. \ + These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ + you will receive." + item = /obj/item/storage/box/syndicate + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear) + cant_discount = TRUE + +/datum/uplink_item/bundles_TC/surplus + name = "Syndicate Surplus Crate" + desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 50 TC." + item = /obj/structure/closet/crate + cost = 20 + player_minimum = 25 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cant_discount = TRUE + var/starting_crate_value = 50 + +/datum/uplink_item/bundles_TC/surplus/super + name = "Super Surplus Crate" + desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 125 TC." + cost = 40 + player_minimum = 40 + starting_crate_value = 125 + +/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) + + var/crate_value = starting_crate_value + var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user) + if(U.purchase_log) + U.purchase_log.LogPurchase(C, src, cost) + while(crate_value) + var/category = pick(uplink_items) + var/item = pick(uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + + if(!I.surplus || prob(100 - I.surplus)) + continue + if(crate_value < I.cost) + continue + crate_value -= I.cost + var/obj/goods = new I.item(C) + if(U.purchase_log) + U.purchase_log.LogPurchase(goods, I, 0) + return C + +/datum/uplink_item/bundles_TC/random + name = "Random Item" + desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." + item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech + cost = 0 + cant_discount = TRUE + +/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = U.uplink_items + var/list/possible_items = list() + for(var/category in uplink_items) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(src == I || !I.item) + continue + if(U.telecrystals < I.cost) + continue + if(I.limited_stock == 0) + continue + possible_items += I + + if(possible_items.len) + var/datum/uplink_item/I = pick(possible_items) + SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) + U.MakePurchase(user, I) + +/datum/uplink_item/bundles_TC/telecrystal + name = "1 Raw Telecrystal" + desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal + cost = 1 + surplus = 0 + cant_discount = TRUE + // Don't add telecrystals to the purchase_log since + // it's just used to buy more items (including itself!) + purchase_log_vis = FALSE + +/datum/uplink_item/bundles_TC/telecrystal/five + name = "5 Raw Telecrystals" + desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/five + cost = 5 + +/datum/uplink_item/bundles_TC/telecrystal/twenty + name = "20 Raw Telecrystals" + desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/twenty + cost = 20 // Dangerous Items /datum/uplink_item/dangerous category = "Conspicuous and Dangerous Weapons" -/datum/uplink_item/dangerous/pistol - name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ - with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol - cost = 7 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/revolver - name = "Syndicate Revolver" - desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/gun/ballistic/revolver - cost = 13 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/antitank + name = "Anti Tank Pistol" + desc = "Essentially amounting to a sniper rifle with no stock and barrel (or indeed, any rifling at all), \ + this extremely dubious pistol is guaranteed to dislocate your wrists and hit the broad side of a barn! \ + Uses sniper ammo. \ + Bullets tend to veer off-course. We are not responsible for any unintentional damage or injury resulting from inaacuracy." + item = /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate + cost = 14 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/pie_cannon name = "Banana Cream Pie Cannon" @@ -184,6 +306,42 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/bananashield + name = "Bananium Energy Shield" + desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ + by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ + and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." + item = /obj/item/shield/energy/bananium + cost = 16 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/clownsword + name = "Bananium Energy Sword" + desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ + impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." + item = /obj/item/melee/transforming/energy/sword/bananium + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bioterror + name = "Biohazardous Chemical Sprayer" + desc = "A chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ + Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ + Use with extreme caution, to prevent exposure to yourself and your fellow operatives." + item = /obj/item/reagent_containers/spray/chemsprayer/bioterror + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/throwingweapons + name = "Box of Throwing Weapons" + desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item = /obj/item/storage/box/syndie_kit/throwing_weapons + cost = 3 + /datum/uplink_item/dangerous/shotgun name = "Bulldog Shotgun" desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ @@ -202,86 +360,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 40 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/dangerous/carbine - name = "M-90gl Carbine" - desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ - with a togglable 40mm under-barrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 18 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/machinegun - name = "L6 Squad Automatic Weapon" - desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ - This deadly weapon has a massive 50-round magazine of devastating 1.95x129mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw - cost = 18 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/grenadier - name = "Grenadier's belt" - desc = "A belt of a large variety of lethally dangerous and destructive grenades." - item = /obj/item/storage/belt/grenade/full - include_modes = list(/datum/game_mode/nuclear) - cost = 22 - surplus = 0 - -/datum/uplink_item/dangerous/sniper - name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate - cost = 16 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/bolt_action - name = "Surplus Rifle" - desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/gun/ballistic/shotgun/boltaction - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/crossbow - name = "Miniature Energy Crossbow" - desc = "A short bow mounted across a tiller in miniature. Small enough to \ - fit into a pocket or slip into a bag unnoticed. It will synthesize \ - and fire bolts tipped with a paralyzing toxin that will briefly stun \ - targets and cause them to slur as if inebriated. It can produce an \ - infinite number of bolts, but takes time to automatically recharge \ - after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow - cost = 12 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/flamethrower - name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." - item = /obj/item/flamethrower/full/tank - cost = 4 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/sword - name = "Energy Sword" - desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." - item = /obj/item/melee/transforming/energy/sword/saber - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/clownsword - name = "Bananium Energy Sword" - desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ - impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." - item = /obj/item/melee/transforming/energy/sword/bananium - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/dangerous/doublesword name = "Double-Bladed Energy Sword" desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ @@ -294,6 +372,90 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/doublesword/get_discount() return pick(4;0.8,2;0.65,1;0.5) +/datum/uplink_item/dangerous/cxneb + name = "Dragon's Tooth Non-Eutactic Blade" + desc = "An illegal modification of a weapon that is functionally identical to the energy sword, \ + the Non-Eutactic Blade (NEB) forges a hardlight blade on-demand, \ + generating an extremely sharp, unbreakable edge that is guaranteed to satisfy your every need. \ + This particular model has a polychromic hardlight generator, allowing you to murder in style! \ + The illegal modifications bring this weapon up to par with the classic energy sword, and also gives it the energy sword's distinctive sounds." + item = /obj/item/melee/transforming/energy/sword/cx/traitor + cost = 8 + +/datum/uplink_item/dangerous/sword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive. Activating it produces a loud, distinctive noise." + item = /obj/item/melee/transforming/energy/sword/saber + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/shield + name = "Energy Shield" + desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ + against other attacks. Pair with an Energy Sword for a killer combination." + item = /obj/item/shield/energy + cost = 16 + surplus = 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/flamethrower + name = "Flamethrower" + desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." + item = /obj/item/flamethrower/full/tank + cost = 4 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/flechettegun + name = "Flechette Launcher" + desc = "A compact bullpup that fires micro-flechettes.\ + Flechettes have very poor performance idividually, but can be very deadly in numbers. \ + Pre-loaded with armor piercing flechettes that are capable of puncturing most kinds of armor." + item = /obj/item/gun/ballistic/automatic/flechette + cost = 12 + surplus = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/badass/rapid + name = "Gloves of the North Star" + desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." + item = /obj/item/clothing/gloves/rapid + cost = 8 + +/datum/uplink_item/dangerous/guardian + name = "Holoparasites" + desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ + organic host as a home base and source of fuel." + item = /obj/item/storage/box/syndie_kit/guardian + cost = 15 + refundable = TRUE + cant_discount = TRUE + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + player_minimum = 25 + restricted = TRUE + refund_path = /obj/item/guardiancreator/tech/choose/traitor + +/datum/uplink_item/dangerous/machinegun + name = "L6 Squad Automatic Weapon" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 1.95x129mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + cost = 18 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a togglable 40mm under-barrel grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 18 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/dangerous/powerfist name = "Power Fist" desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ @@ -303,46 +465,36 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/melee/powerfist cost = 8 -/datum/uplink_item/badass/combatglovesplus - name = "Combat Gloves Plus" - desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ - to learn the abilities of krav maga to the wearer." - item = /obj/item/clothing/gloves/krav_maga/combatglovesplus - cost = 5 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/sniper + name = "Sniper Rifle" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" + item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + cost = 16 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/dangerous/emp - name = "EMP Grenades and Implanter Kit" - desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \ - security's energy weapons, and silicon lifeforms when you're in a tight spot." - item = /obj/item/storage/box/syndie_kit/emp - cost = 2 - -/datum/uplink_item/dangerous/syndicate_minibomb - name = "Syndicate Minibomb" - desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - item = /obj/item/grenade/syndieminibomb - cost = 6 +/datum/uplink_item/dangerous/pistol + name = "Stechkin Pistol" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors." + item = /obj/item/gun/ballistic/automatic/pistol + cost = 7 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/dangerous/bombanana - name = "Bombanana" - desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a syndicate minibomb \ - a few seconds after the banana is eaten." - item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana - cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/bolt_action + name = "Surplus Rifle" + desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." + item = /obj/item/gun/ballistic/shotgun/boltaction + cost = 2 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/dangerous/tearstache - name = "Teachstache Grenade" - desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ - remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." - item = /obj/item/grenade/chem_grenade/teargas/moustache - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/revolver + name = "Syndicate Revolver" + desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers." + item = /obj/item/gun/ballistic/revolver/syndie + cost = 13 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" @@ -361,65 +513,132 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/dangerous/viscerators - name = "Viscerator Delivery Grenade" - desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - item = /obj/item/grenade/spawnergrenade/manhacks - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/foampistol + name = "Toy Gun with Riot Darts" + desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ + darts effective at incapacitating a target." + item = /obj/item/gun/ballistic/automatic/toy/pistol/riot + cost = 3 + surplus = 10 -/datum/uplink_item/dangerous/bioterrorfoam - name = "Chemical Foam Grenade" - desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ - mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ - using additional spore toxin. Ensure suit is sealed before use." - item = /obj/item/grenade/chem_grenade/bioterrorfoam - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +// Stealthy Weapons +/datum/uplink_item/stealthy_weapons + category = "Stealthy and Inconspicuous Weapons" -/datum/uplink_item/dangerous/bioterror - name = "Biohazardous Chemical Sprayer" - desc = "A chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ - Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ - Use with extreme caution, to prevent exposure to yourself and your fellow operatives." - item = /obj/item/reagent_containers/spray/chemsprayer/bioterror - cost = 20 +/datum/uplink_item/stealthy_weapons/combatglovesplus + name = "Combat Gloves Plus" + desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ + to learn the abilities of krav maga to the wearer." + item = /obj/item/clothing/gloves/krav_maga/combatglovesplus + cost = 5 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/stealthy_weapons/virus_grenade - name = "Fungal Tuberculosis Grenade" - desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ - autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ - the BVAK solution." - item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade - cost = 8 - surplus = 35 +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE + cost = 13 + surplus = 0 -/datum/uplink_item/dangerous/guardian - name = "Holoparasites" - desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ - organic host as a home base and source of fuel." - item = /obj/item/storage/box/syndie_kit/guardian - cost = 18 +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ + space a small item can." + item = /obj/item/gun/syringe/syndicate + cost = 4 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ + your hand before use so it knows not to kill you." + item = /obj/item/toy/plush/carpplushie/dehy_carp + cost = 1 + +/datum/uplink_item/stealthy_weapons/edagger + name = "Energy Dagger" + desc = "A dagger made of energy that looks and functions as a pen when off." + item = /obj/item/pen/edagger + cost = 2 + +/datum/uplink_item/stealthy_weapons/martialarts + name = "Martial Arts Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ + deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/carp + cost = 17 surplus = 0 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - player_minimum = 25 - restricted = TRUE -/datum/uplink_item/dangerous/buzzkill - name = "Buzzkill Grenade Box" - desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins. Courtesy of the BLF and Tiger Cooperative." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 15 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/stealthy_weapons/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. Small enough to \ + fit into a pocket or slip into a bag unnoticed. It will synthesize \ + and fire bolts tipped with a paralyzing toxin that will briefly stun \ + targets and cause them to slur as if inebriated. It can produce an \ + infinite number of bolts, but takes time to automatically recharge \ + after each shot." + item = /obj/item/gun/energy/kinetic_accelerator/crossbow + cost = 12 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/traitor_chem_bottle + name = "Poison Kit" + desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item = /obj/item/storage/box/syndie_kit/chemical + cost = 6 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/romerol_kit + name = "Romerol" + desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. On death, these nodules take control of the dead body, causing limited revivification, along with slurred speech, aggression, and the ability to infect others with this agent." + item = /obj/item/storage/box/syndie_kit/romerol + cost = 25 + cant_discount = TRUE + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/sleepy_pen + name = "Sleepy Pen" + desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ + strong anesthetic and a chemical that prevents the target from speaking. \ + The pen holds one dose of the mixture, and can be refilled. Note that before the target \ + falls asleep, they will be able to move and act." + item = /obj/item/pen/sleepy + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear) + +datum/uplink_item/stealthy_weapons/taeclowndo_shoes + name = "Tae-clown-do Shoes" + desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." + cost = 12 + item = /obj/item/clothing/shoes/clown_shoes/taeclowndo + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/suppressor + name = "Universal Suppressor" + desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the \ + shots of the weapon for increased stealth and superior ambushing capability." + item = /obj/item/suppressor + cost = 1 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/soap + name = "Syndicate Soap" + desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ + You can also drop it underfoot to slip people." + item = /obj/item/soap/syndie + cost = 1 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/soap_clusterbang + name = "Slipocalypse Clusterbang" + desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" + item = /obj/item/grenade/clusterbuster/soap + cost = 6 // Ammunition /datum/uplink_item/ammo @@ -441,13 +660,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/ammo/pistolfire - name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with incendiary rounds which ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/ammo/pistolhp name = "10mm Hollow Point Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds are more damaging but ineffective against armour." @@ -455,51 +667,35 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/ammo/pistolaps - name = "9mm Handgun Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stetchkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm +/datum/uplink_item/ammo/pistolfire + name = "10mm Incendiary Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with incendiary rounds which ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/bolt_action - name = "Surplus Rifle Clip" - desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." - item = /obj/item/ammo_box/a762 - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/revolver - name = ".357 Speed Loader" - desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ - For when you really need a lot of things dead." - item = /obj/item/ammo_box/a357 - cost = 4 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/pistolzzz + name = "10mm Soporific Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with soporific rounds that put the target to sleep. \ + NOTE: Soporific is not instant acting due to the constraints of the round's scale. Will usually require three shots to take effect." + item = /obj/item/ammo_box/magazine/m10mm/soporific + cost = 2 + /datum/uplink_item/ammo/shotgun cost = 2 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/shotgun/bag + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + cost = 12 + /datum/uplink_item/ammo/shotgun/buck name = "12g Buckshot Drum" desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." item = /obj/item/ammo_box/magazine/m12g -/datum/uplink_item/ammo/shotgun/slug - name = "12g Slug Drum" - desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ - Now 8 times less likely to shoot your pals." - cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug - -/datum/uplink_item/ammo/shotgun/stun - name = "12g Stun Slug Drum" - desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \ - Saying that they're completely non-lethal would be lying." - item = /obj/item/ammo_box/magazine/m12g/stun - include_modes = list(/datum/game_mode/nuclear) - /datum/uplink_item/ammo/shotgun/dragon name = "12g Dragon's Breath Drum" desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ @@ -520,18 +716,34 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/m12g/scatter cost = 4 // most armor has less laser protection then bullet -/datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffel Bag" - desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - cost = 12 - -/datum/uplink_item/ammo/smg - name = ".45 SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun. \ - These bullets pack a lot of punch that can knock most targets down, but do limited overall damage." - item = /obj/item/ammo_box/magazine/smgm45 +/datum/uplink_item/ammo/shotgun/slug + name = "12g Slug Drum" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." cost = 3 + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo/shotgun/stun + name = "12g Stun Slug Drum" + desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \ + Saying that they're completely non-lethal would be lying." + item = /obj/item/ammo_box/magazine/m12g/stun + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/revolver + name = ".357 Speed Loader" + desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ + For when you really need a lot of things dead." + item = /obj/item/ammo_box/a357 + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade" + desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_casing/a40mm + cost = 2 include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/smg/bag @@ -541,6 +753,36 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 20 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/smg + name = ".45 SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun. \ + These bullets pack a lot of punch that can knock most targets down, but do limited overall damage." + item = /obj/item/ammo_box/magazine/smgm45 + cost = 3 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper/basic + name = ".50 Magazine" + desc = "An additional standard 6-round magazine for use with .50 sniper rifles." + item = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/uplink_item/ammo/sniper/penetrator + name = ".50 Penetrator Magazine" + desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ + Can pierce walls and multiple enemies." + item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator + cost = 5 + +/datum/uplink_item/ammo/sniper/soporific + name = ".50 Soporific Magazine" + desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/soporific + cost = 6 + /datum/uplink_item/ammo/carbine name = "5.56mm Toploader Magazine" desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ @@ -549,14 +791,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 4 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade" - desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ - Your teammates will ask you to not shoot these down small hallways." - item = /obj/item/ammo_casing/a40mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - /datum/uplink_item/ammo/machinegun cost = 6 surplus = 0 @@ -568,12 +802,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) By the time you need to use this, you'll already be on a pile of corpses." item = /obj/item/ammo_box/magazine/mm195x129 -/datum/uplink_item/ammo/machinegun/hollow - name = "1.95x129mm (Hollow-Point) Box Magazine" - desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm195x129/hollow - /datum/uplink_item/ammo/machinegun/ap name = "1.95x129mm (Armor Penetrating) Box Magazine" desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with special properties \ @@ -581,33 +809,41 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/mm195x129/ap cost = 9 +/datum/uplink_item/ammo/machinegun/hollow + name = "1.95x129mm (Hollow-Point) Box Magazine" + desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ + with the unarmored masses of crew." + item = /obj/item/ammo_box/magazine/mm195x129/hollow + /datum/uplink_item/ammo/machinegun/incen name = "1.95x129mm (Incendiary) Box Magazine" desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; tipped with a special flammable \ mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." item = /obj/item/ammo_box/magazine/mm195x129/incen -/datum/uplink_item/ammo/sniper - cost = 4 +/datum/uplink_item/ammo/pistolaps + name = "9mm Handgun Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stetchkin APS pistol, found in the Spetsnaz Pyro bundle." + item = /obj/item/ammo_box/magazine/pistolm9mm + cost = 2 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/sniper/basic - name = ".50 Magazine" - desc = "An additional standard 6-round magazine for use with .50 sniper rifles." - item = /obj/item/ammo_box/magazine/sniper_rounds +/datum/uplink_item/ammo/flechetteap + name = "Armor Piercing Flechette Magazine" + desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ + Loaded with armor piercing flechettes that very nearly ignore armor, but are not very effective agaisnt flesh." + item = /obj/item/ammo_box/magazine/flechette + cost = 2 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/sniper/soporific - name = ".50 Soporific Magazine" - desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/soporific - cost = 6 - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 Penetrator Magazine" - desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ - Can pierce walls and multiple enemies." - item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator - cost = 5 +/datum/uplink_item/ammo/flechettes + name = "Serrated Flechette Magazine" + desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ + Loaded with serrated flechettes that shreds flesh, but is stopped dead in its tracks by armor. \ + These flechettes are highly likely to sever arteries, and even limbs." + item = /obj/item/ammo_box/magazine/flechette/s + cost = 2 + include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/toydarts name = "Box of Riot Darts" @@ -624,12 +860,184 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 6 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/bolt_action + name = "Surplus Rifle Clip" + desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." + item = /obj/item/ammo_box/a762 + cost = 1 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/explosives + category = "Grenades and Explosives" + +/datum/uplink_item/explosives/bioterrorfoam + name = "Chemical Foam Grenade" + desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ + mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ + using additional spore toxin. Ensure suit is sealed before use." + item = /obj/item/grenade/chem_grenade/bioterrorfoam + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/bombanana + name = "Bombanana" + desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a syndicate minibomb \ + a few seconds after the banana is eaten." + item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana + cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins. Courtesy of the BLF and Tiger Cooperative." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 15 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ + an assembly to it in order to alter the way it detonates. It has a modifiable timer with a \ + minimum setting of 10 seconds." + item = /obj/item/grenade/plastic/c4 + cost = 1 + +/datum/uplink_item/explosives/c4bag + name = "Bag of C-4 explosives" + desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." + item = /obj/item/storage/backpack/duffelbag/syndie/c4 + cost = 9 //10% discount! + cant_discount = TRUE + +/datum/uplink_item/explosives/x4bag + name = "Bag of X-4 explosives" + desc = "Contains 3 X-4 plastic explosives. Similar, but more powerful than C-4. X-4 can be placed on a solid surface, such as a wall or window, and it will \ + blast through the wall, injuring anything on the opposite side, while being safer to the user. For when you want a wider, deeper, hole." + item = /obj/item/storage/backpack/duffelbag/syndie/x4 + cost = 4 // + cant_discount = TRUE + +/datum/uplink_item/explosives/clown_bomb_clownops + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/detomatix + name = "Detomatix PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ + detonate PDAs of crewmembers who have their message feature enabled. \ + The concussive effect from the explosion will knock the recipient out for a short period, and deafen \ + them for longer. Beware, it has a chance to detonate your PDA." + item = /obj/item/cartridge/virus/syndicate + cost = 5 + restricted = TRUE + +/datum/uplink_item/explosives/emp + name = "EMP Grenades and Implanter Kit" + desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \ + security's energy weapons, and silicon lifeforms when you're in a tight spot." + item = /obj/item/storage/box/syndie_kit/emp + cost = 2 + +/datum/uplink_item/explosives/virus_grenade + name = "Fungal Tuberculosis Grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ + autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ + the BVAK solution." + item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade + cost = 8 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/explosives/grenadier + name = "Grenadier's belt" + desc = "A belt of a large variety of lethally dangerous and destructive grenades." + item = /obj/item/storage/belt/grenade/full + include_modes = list(/datum/game_mode/nuclear) + cost = 22 + surplus = 0 + +/datum/uplink_item/explosives/pizza_bomb + name = "Pizza Bomb" + desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ + opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + item = /obj/item/pizzabox/bomb + cost = 6 + surplus = 8 + +/datum/uplink_item/explosives/syndicate_bomb + name = "Syndicate Bomb" + desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/bomb + cost = 11 + +/datum/uplink_item/explosives/syndicate_detonator + name = "Syndicate Detonator" + desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ + and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ + Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ + the blast radius before using the detonator." + item = /obj/item/syndicatedetonator + cost = 3 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ + in addition to dealing high amounts of damage to nearby personnel." + item = /obj/item/grenade/syndieminibomb + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/tearstache + name = "Teachstache Grenade" + desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ + remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." + item = /obj/item/grenade/chem_grenade/teargas/moustache + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/viscerators + name = "Viscerator Delivery Grenade" + desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/grenade/spawnergrenade/manhacks + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + + //Support and Mechs /datum/uplink_item/support category = "Support and Mechanized Exosuits" surplus = 0 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/support/clown_reinforcement + name = "Clown Reinforcements" + desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." + item = /obj/item/antag_spawner/nuke_ops/clown + cost = 20 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + restricted = TRUE + /datum/uplink_item/support/reinforcement name = "Reinforcements" desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ @@ -664,13 +1072,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/mecha/combat/gygax/dark/loaded cost = 80 -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring, \ - and deployable smoke." - item = /obj/mecha/combat/marauder/mauler/loaded - cost = 140 - /datum/uplink_item/support/honker name = "Dark H.O.N.K." desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." @@ -678,141 +1079,36 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 80 include_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/support/clown_reinforcement - name = "Clown Reinforcements" - desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." - item = /obj/item/antag_spawner/nuke_ops/clown - cost = 20 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -// Stealthy Weapons -/datum/uplink_item/stealthy_weapons - category = "Stealthy and Inconspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/martialarts - name = "Martial Arts Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ - deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/carp - cost = 17 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/cqc - name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - item = /obj/item/book/granter/martial/cqc - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cost = 13 - surplus = 0 - -/datum/uplink_item/stealthy_weapons/throwingweapons - name = "Box of Throwing Weapons" - desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - item = /obj/item/storage/box/syndie_kit/throwing_weapons - cost = 3 - -/datum/uplink_item/stealthy_weapons/edagger - name = "Energy Dagger" - desc = "A dagger made of energy that looks and functions as a pen when off." - item = /obj/item/pen/edagger - cost = 2 - -/datum/uplink_item/stealthy_weapons/foampistol - name = "Toy Gun with Riot Darts" - desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ - darts effective at incapacitating a target." - item = /obj/item/gun/ballistic/automatic/toy/pistol/riot - cost = 3 - surplus = 10 - -/datum/uplink_item/stealthy_weapons/sleepy_pen - name = "Sleepy Pen" - desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ - strong anesthetic and a chemical that prevents the target from speaking. \ - The pen holds one dose of the mixture, and can be refilled. Note that before the target \ - falls asleep, they will be able to move and act." - item = /obj/item/pen/sleepy - cost = 4 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/soap - name = "Syndicate Soap" - desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ - You can also drop it underfoot to slip people." - item = /obj/item/soap/syndie - cost = 1 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/traitor_chem_bottle - name = "Poison Kit" - desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." - item = /obj/item/storage/box/syndie_kit/chemical - cost = 6 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/romerol_kit - name = "Romerol" - desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. On death, these nodules take control of the dead body, causing limited revivification, along with slurred speech, aggression, and the ability to infect others with this agent." - item = /obj/item/storage/box/syndie_kit/romerol - cost = 25 - cant_discount = TRUE - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/dart_pistol - name = "Dart Pistol" - desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ - space a small item can." - item = /obj/item/gun/syringe/syndicate - cost = 4 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/detomatix - name = "Detomatix PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ - detonate PDAs of crewmembers who have their message feature enabled. \ - The concussive effect from the explosion will knock the recipient out for a short period, and deafen \ - them for longer. Beware, it has a chance to detonate your PDA." - item = /obj/item/cartridge/virus/syndicate - cost = 5 - restricted = TRUE - -/datum/uplink_item/stealthy_weapons/suppressor - name = "Universal Suppressor" - desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the \ - shots of the weapon for increased stealth and superior ambushing capability." - item = /obj/item/suppressor - cost = 1 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/pizza_bomb - name = "Pizza Bomb" - desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - item = /obj/item/pizzabox/bomb - cost = 6 - surplus = 8 - -/datum/uplink_item/stealthy_weapons/dehy_carp - name = "Dehydrated Space Carp" - desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ - your hand before use so it knows not to kill you." - item = /obj/item/toy/plush/carpplushie/dehy_carp - cost = 1 - -/datum/uplink_item/stealthy_weapons/soap_clusterbang - name = "Slipocalypse Clusterbang" - desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" - item = /obj/item/grenade/clusterbuster/soap - cost = 6 +/datum/uplink_item/support/mauler + name = "Mauler Exosuit" + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring, \ + and deployable smoke." + item = /obj/mecha/combat/marauder/mauler/loaded + cost = 140 // Stealth Items /datum/uplink_item/stealthy_tools category = "Stealth and Camouflage Items" +/datum/uplink_item/stealthy_tools/agent_card + name = "Agent Identification Card" + desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ + from other identification cards. The access is cumulative, so scanning one card does not erase the \ + access gained from another. In addition, they can be forged to display a new assignment and name. \ + This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ + with these cards." + item = /obj/item/card/id/syndicate + cost = 2 + +/datum/uplink_item/stealthy_tools/ai_detector + name = "Artificial Intelligence Detector" + desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ + activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ + an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ + blind spots can help you identify escape routes." + item = /obj/item/multitool/ai_detect + cost = 1 + /datum/uplink_item/stealthy_tools/chameleon name = "Chameleon Kit" desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more!" @@ -820,6 +1116,46 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 2 exclude_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/stealthy_tools/chameleon_proj + name = "Chameleon Projector" + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ + move the projector from their hand. Disguised users move slowly, and projectiles pass over them." + item = /obj/item/chameleon + cost = 7 + +/datum/uplink_item/stealthy_tools/codespeak_manual + name = "Codespeak Manual" + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited used." + item = /obj/item/codespeak_manual/unlimited + cost = 3 + +/datum/uplink_item/stealthy_tools/combatbananashoes + name = "Combat Banana Shoes" + desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ + can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ + squeak significantly louder." + item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/emplight + name = "EMP Flashlight" + desc = "A small, self-charging, short-ranged EMP device disguised as a flashlight. \ + Useful for disrupting headsets, cameras, and borgs during stealth operations." + item = /obj/item/flashlight/emp + cost = 2 + surplus = 30 + +/datum/uplink_item/stealthy_tools/mulligan + name = "Mulligan" + desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ + and appearance." + item = /obj/item/reagent_containers/syringe/mulligan + cost = 3 + surplus = 30 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + /datum/uplink_item/stealthy_tools/syndigaloshes name = "No-Slip Chameleon Shoes" desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ @@ -835,57 +1171,22 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) exclude_modes = list() include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/stealthy_tools/jammer + name = "Radio Jammer" + desc = "This device will disrupt any nearby outgoing radio communication when activated." + item = /obj/item/jammer + cost = 5 -datum/uplink_item/stealthy_tools/taeclowndo_shoes - name = "Tae-clown-do Shoes" - desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." - cost = 12 - item = /obj/item/clothing/shoes/clown_shoes/taeclowndo - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/frame - name = "F.R.A.M.E. PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ - when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ - telecrystals normally." - item = /obj/item/cartridge/virus/frame - cost = 2 - restricted = TRUE - -/datum/uplink_item/stealthy_tools/agent_card - name = "Agent Identification Card" - desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ - from other identification cards. The access is cumulative, so scanning one card does not erase the \ - access gained from another. In addition, they can be forged to display a new assignment and name. \ - This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ - with these cards." - item = /obj/item/card/id/syndicate - cost = 2 - -/datum/uplink_item/stealthy_tools/chameleon_proj - name = "Chameleon Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ - move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/chameleon - cost = 7 - -/datum/uplink_item/stealthy_tools/camera_bug - name = "Camera Bug" - desc = "Enables you to view all cameras on the network and track a target. Bugging cameras allows you \ - to disable them remotely." - item = /obj/item/camera_bug - cost = 1 - surplus = 90 +/*/datum/uplink_item/stealthy_tools/syndi_borer + name = "Syndicate Brain Slug" + desc = "A small cortical borer, modified to be completely loyal to the owner. \ + Genetically infertile, these brain slugs can assist medically in a support role, or take direct action \ + to assist their host." + item = /obj/item/antag_spawner/syndi_borer + refundable = TRUE + cost = 10 + surplus = 20 //Let's not have this be too common + exclude_modes = list(/datum/game_mode/nuclear) */ /datum/uplink_item/stealthy_tools/smugglersatchel name = "Smuggler's Satchel" @@ -896,46 +1197,6 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes cost = 2 surplus = 30 -/datum/uplink_item/stealthy_tools/stimpack - name = "Stimpack" - desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/syringe/stimulants - cost = 5 - surplus = 90 - -/datum/uplink_item/stealthy_tools/mulligan - name = "Mulligan" - desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ - and appearance." - item = /obj/item/reagent_containers/syringe/mulligan - cost = 3 - surplus = 30 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/emplight - name = "EMP Flashlight" - desc = "A small, self-charging, short-ranged EMP device disguised as a flashlight. \ - Useful for disrupting headsets, cameras, and borgs during stealth operations." - item = /obj/item/flashlight/emp - cost = 2 - surplus = 30 - -/datum/uplink_item/stealthy_tools/cutouts - name = "Adaptive Cardboard Cutouts" - desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. This pack contains three as well as a \ - crayon for changing their appearances." - item = /obj/item/storage/box/syndie_kit/cutouts - cost = 1 - surplus = 20 - -/datum/uplink_item/stealthy_tools/fakenucleardisk - name = "Decoy Nuclear Authentication Disk" - desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. Don't try to give this to us to complete your objective, we know better!" - item = /obj/item/disk/nuclear/fake - cost = 1 - surplus = 1 - //Space Suits and Hardsuits /datum/uplink_item/suits category = "Space Suits and Hardsuits" @@ -982,6 +1243,74 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes /datum/uplink_item/device_tools category = "Devices and Tools" +/datum/uplink_item/device_tools/cutouts + name = "Adaptive Cardboard Cutouts" + desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. This pack contains three as well as a \ + crayon for changing their appearances." + item = /obj/item/storage/box/syndie_kit/cutouts + cost = 1 + surplus = 20 + +/datum/uplink_item/device_tools/assault_pod + name = "Assault Pod Targeting Device" + desc = "Use to select the landing zone of your assault pod." + item = /obj/item/assault_pod + cost = 30 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/binary + name = "Binary Translator Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ + such as AI units and cyborgs, over their private binary channel. Caution should \ + be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." + item = /obj/item/encryptionkey/binary + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/magboots + name = "Blood-Red Magboots" + desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ + during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ + 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." + item = /obj/item/clothing/shoes/magboots/syndie + cost = 2 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/compressionkit + name = "Bluespace Compression Kit" + desc = "A modified version of a BSRPED that can be used to reduce the size of most items while retaining their original functions! \ + Does not work on storage items. \ + Recharge using bluespace crystals. \ + Comes with 5 charges." + item = /obj/item/compressionkit + cost = 5 + +/datum/uplink_item/device_tools/briefcase_launchpad + name = "Briefcase Launchpad" + desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to twenty tiles away from the briefcase. \ + Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." + surplus = 0 + item = /obj/item/storage/briefcase/launchpad + cost = 6 + +/datum/uplink_item/device_tools/camera_bug + name = "Camera Bug" + desc = "Enables you to view all cameras on the network and track a target. Bugging cameras allows you \ + to disable them remotely." + item = /obj/item/camera_bug + cost = 1 + surplus = 90 + +/datum/uplink_item/device_tools/military_belt + name = "Chest Rig" + desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." + item = /obj/item/storage/belt/military + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/device_tools/emag name = "Cryptographic Sequencer" desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ @@ -989,6 +1318,29 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes item = /obj/item/card/emag cost = 6 +/datum/uplink_item/device_tools/emagrecharge + name = "Electromagnet Charging Device" + desc = "A small device intended for recharging Cryptographic Sequencers. Using it will add five extra charges to the Cryptographic Sequencer." + item = /obj/item/emagrecharge + cost = 2 + +/datum/uplink_item/device_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/disk/nuclear/fake + cost = 1 + surplus = 1 + +/datum/uplink_item/device_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/cartridge/virus/frame + cost = 2 + restricted = TRUE + /datum/uplink_item/device_tools/toolbox name = "Full Syndicate Toolbox" desc = "The syndicate toolbox is a suspicious black and red. It comes loaded with a full tool set including a \ @@ -996,12 +1348,28 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes item = /obj/item/storage/toolbox/syndicate cost = 1 -/datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, and a muzzle." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery - cost = 3 +/datum/uplink_item/device_tools/syndie_glue + name = "Glue" + desc = "A cheap bottle of one use syndicate brand super glue. \ + Use on any item to make it undroppable. \ + Be careful not to glue an item you're already holding!" + item = /obj/item/syndie_glue + cost = 2 + +/datum/uplink_item/device_tools/hacked_module + name = "Hacked AI Law Upload Module" + desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + item = /obj/item/aiModule/syndicate + cost = 9 + +/datum/uplink_item/device_tools/medgun + name = "Medbeam Gun" + desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + operatives in the fight, even while under fire." + item = /obj/item/gun/medbeam + cost = 15 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/device_tools/nutcracker name = "Nutcracker" @@ -1009,19 +1377,39 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes item = /obj/item/nutcracker cost = 1 -/datum/uplink_item/device_tools/surgerybag_adv - name = "Advanced Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all newest surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, a muzzle, and a full Syndicate Combat Medic Kit." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery_adv - cost = 10 +/datum/uplink_item/device_tools/singularity_beacon + name = "Power Beacon" + desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ + active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ + in containment. Because of its size, it cannot be carried. Ordering this \ + sends you a small beacon that will teleport the larger beacon to your location upon activation." + item = /obj/item/sbeacondrop + cost = 14 -/datum/uplink_item/device_tools/military_belt - name = "Chest Rig" - desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." - item = /obj/item/storage/belt/military - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/device_tools/powersink + name = "Power Sink" + desc = "When screwed to wiring attached to a power grid and activated, this large device places excessive \ + load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ + traditional bags and boxes." + item = /obj/item/powersink + cost = 6 + +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids. It has two settings: intensity, which controls the power of the radiation, \ + and wavelength, which controls how long the radiation delay is." + item = /obj/item/healthanalyzer/rad_laser + cost = 3 + +/datum/uplink_item/device_tools/stimpack + name = "Stimpack" + desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ + 5 minutes after injection." + item = /obj/item/reagent_containers/syringe/stimulants + cost = 5 + surplus = 90 /datum/uplink_item/device_tools/medkit name = "Syndicate Combat Medic Kit" @@ -1032,6 +1420,29 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes cost = 4 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, and a muzzle." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + cost = 3 + +/datum/uplink_item/device_tools/surgerybag_adv + name = "Advanced Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all newest surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, a muzzle, and a full Syndicate Combat Medic Kit." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery_adv + cost = 10 + +/datum/uplink_item/device_tools/encryptionkey + name = "Syndicate Encryption Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ + as well as talk on an encrypted Syndicate channel with other agents that have the same key." + item = /obj/item/encryptionkey/syndicate + cost = 2 + surplus = 75 + restricted = TRUE + /datum/uplink_item/device_tools/syndietome name = "Syndicate Tome" desc = "Using rare artifacts acquired at great cost, the syndicate has reverse engineered \ @@ -1050,175 +1461,6 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes item = /obj/item/clothing/glasses/thermal/syndi cost = 4 -/datum/uplink_item/device_tools/binary - name = "Binary Translator Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ - such as AI units and cyborgs, over their private binary channel. Caution should \ - be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/encryptionkey/binary - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/encryptionkey - name = "Syndicate Encryption Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ - as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/encryptionkey/syndicate - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/ai_detector - name = "Artificial Intelligence Detector" - desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ - activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ - an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ - blind spots can help you identify escape routes." - item = /obj/item/multitool/ai_detect - cost = 1 - -/datum/uplink_item/device_tools/hacked_module - name = "Hacked AI Law Upload Module" - desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - item = /obj/item/aiModule/syndicate - cost = 9 - -/datum/uplink_item/device_tools/briefcase_launchpad - name = "Briefcase Launchpad" - desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to twenty tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - surplus = 0 - item = /obj/item/storage/briefcase/launchpad - cost = 6 - -/datum/uplink_item/device_tools/magboots - name = "Blood-Red Magboots" - desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ - during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ - 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." - item = /obj/item/clothing/shoes/magboots/syndie - cost = 2 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/c4 - name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ - an assembly to it in order to alter the way it detonates. It has a modifiable timer with a \ - minimum setting of 10 seconds." - item = /obj/item/grenade/plastic/c4 - cost = 1 - -/datum/uplink_item/device_tools/c4bag - name = "Bag of C-4 explosives" - desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." - item = /obj/item/storage/backpack/duffelbag/syndie/c4 - cost = 9 //10% discount! - cant_discount = TRUE - -/datum/uplink_item/device_tools/x4bag - name = "Bag of X-4 explosives" - desc = "Contains 3 X-4 plastic explosives. Similar, but more powerful than C-4. X-4 can be placed on a solid surface, such as a wall or window, and it will \ - blast through the wall, injuring anything on the opposite side, while being safer to the user. For when you want a wider, deeper, hole." - item = /obj/item/storage/backpack/duffelbag/syndie/x4 - cost = 4 // - cant_discount = TRUE - -/datum/uplink_item/device_tools/powersink - name = "Power Sink" - desc = "When screwed to wiring attached to a power grid and activated, this large device places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes." - item = /obj/item/powersink - cost = 6 - -/datum/uplink_item/device_tools/singularity_beacon - name = "Power Beacon" - desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ - active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ - in containment. Because of its size, it cannot be carried. Ordering this \ - sends you a small beacon that will teleport the larger beacon to your location upon activation." - item = /obj/item/sbeacondrop - cost = 14 - -/datum/uplink_item/device_tools/syndicate_bomb - name = "Syndicate Bomb" - desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/bomb - cost = 11 - -/datum/uplink_item/device_tools/clown_bomb_clownops - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ - and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ - the blast radius before using the detonator." - item = /obj/item/syndicatedetonator - cost = 3 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/rad_laser - name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls how long the radiation delay is." - item = /obj/item/healthanalyzer/rad_laser - cost = 3 - -/datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targeting Device" - desc = "Use to select the landing zone of your assault pod." - item = /obj/item/assault_pod - cost = 30 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/shield - name = "Energy Shield" - desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ - against other attacks. Pair with an Energy Sword for a killer combination." - item = /obj/item/shield/energy - cost = 16 - surplus = 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/bananashield - name = "Bananium Energy Shield" - desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ - by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ - and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." - item = /obj/item/shield/energy/bananium - cost = 16 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/medgun - name = "Medbeam Gun" - desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ - operatives in the fight, even while under fire." - item = /obj/item/gun/medbeam - cost = 15 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/device_tools/potion name = "Syndicate Sentience Potion" item = /obj/item/slimepotion/slime/sentience/nuclear @@ -1227,79 +1469,12 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) restricted = TRUE -/datum/uplink_item/device_tools/telecrystal - name = "Raw Telecrystal" - desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal - cost = 1 - surplus = 0 - cant_discount = TRUE - // Don't add telecrystals to the purchase_log since - // it's just used to buy more items (including itself!) - purchase_log_vis = FALSE - -/datum/uplink_item/device_tools/telecrystal/five - name = "5 Raw Telecrystals" - desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/five - cost = 5 - -/datum/uplink_item/device_tools/telecrystal/twenty - name = "20 Raw Telecrystals" - desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/twenty - cost = 20 - -/datum/uplink_item/device_tools/jammer - name = "Radio Jammer" - desc = "This device will disrupt any nearby outgoing radio communication when activated." - item = /obj/item/jammer - cost = 5 - -/datum/uplink_item/device_tools/codespeak_manual - name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited used." - item = /obj/item/codespeak_manual/unlimited - cost = 3 - -/datum/uplink_item/device_tools/compressionkit - name = "Bluespace Compression Kit" - desc = "A modified version of a BSRPED that can be used to reduce the size of most items while retaining their original functions! \ - Does not work on storage items. \ - Recharge using bluespace crystals. \ - Comes with 5 charges." - item = /obj/item/compressionkit - cost = 5 - -/datum/uplink_item/device_tools/syndie_glue - name = "Glue" - desc = "A cheap bottle of one use syndicate brand super glue. \ - Use on any item to make it undroppable. \ - Be careful not to glue an item you're already holding!" - item = /obj/item/syndie_glue - cost = 2 // Implants /datum/uplink_item/implants category = "Implants" surplus = 50 -/datum/uplink_item/implants/freedom - name = "Freedom Implant" - desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ - user from common restraints such as handcuffs." - item = /obj/item/storage/box/syndie_kit/imp_freedom - cost = 5 - -/datum/uplink_item/implants/uplink - name = "Uplink Implant" - desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals, must be charged by the use of physical telecrystals. Undetectable (except via surgery), and excellent for escaping confinement." - item = /obj/item/storage/box/syndie_kit/imp_uplink - cost = 4 - // An empty uplink is kinda useless. - surplus = 0 - restricted = TRUE - /datum/uplink_item/implants/adrenal name = "Adrenal Implant" desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ @@ -1308,12 +1483,19 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes cost = 8 player_minimum = 25 -/datum/uplink_item/implants/storage - name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ - pocket capable of storing two items." - item = /obj/item/storage/box/syndie_kit/imp_storage - cost = 8 +/datum/uplink_item/implants/antistun + name = "CNS Rebooter Implant" + desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." + item = /obj/item/autosurgeon/anti_stun + cost = 12 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/freedom + name = "Freedom Implant" + desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ + user from common restraints such as handcuffs." + item = /obj/item/storage/box/syndie_kit/imp_freedom + cost = 5 /datum/uplink_item/implants/microbomb name = "Microbomb Implant" @@ -1340,48 +1522,49 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes cost = 4 restricted = TRUE +/datum/uplink_item/implants/reviver + name = "Reviver Implant" + desc = "This implant will attempt to revive you if you lose consciousness. Comes with an autosurgeon." + item = /obj/item/autosurgeon/reviver + cost = 8 + include_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/implants/stealthimplant name = "Stealth Implant" desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right." item = /obj/item/implanter/stealth cost = 8 -// Cybernetics -/datum/uplink_item/cyber_implants - category = "Cybernetic Implants" - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/implants/storage + name = "Storage Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ + pocket capable of storing two items." + item = /obj/item/storage/box/syndie_kit/imp_storage + cost = 8 -/datum/uplink_item/cyber_implants/thermals +/datum/uplink_item/implants/thermals name = "Thermal Eyes" desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." item = /obj/item/autosurgeon/thermal_eyes cost = 8 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/cyber_implants/xray +/datum/uplink_item/implants/uplink + name = "Uplink Implant" + desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals, must be charged by the use of physical telecrystals. Undetectable (except via surgery), and excellent for escaping confinement." + item = /obj/item/storage/box/syndie_kit/imp_uplink + cost = 4 + // An empty uplink is kinda useless. + surplus = 0 + restricted = TRUE + +/datum/uplink_item/implants/xray name = "X-ray Vision Implant" desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." item = /obj/item/autosurgeon/xray_eyes cost = 10 - -/datum/uplink_item/cyber_implants/antistun - name = "CNS Rebooter Implant" - desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." - item = /obj/item/autosurgeon/anti_stun - cost = 12 - -/datum/uplink_item/cyber_implants/reviver - name = "Reviver Implant" - desc = "This implant will attempt to revive you if you lose consciousness. Comes with an autosurgeon." - item = /obj/item/autosurgeon/reviver - cost = 8 - -/datum/uplink_item/cyber_implants/bundle - name = "Cybernetic Implants Bundle" - desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." - item = /obj/item/storage/box/cyber_implants - cost = 40 - cant_discount = TRUE + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) // Role-specific items /datum/uplink_item/role_restricted @@ -1389,23 +1572,62 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) surplus = 0 -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - item = /obj/item/storage/box/hug/reverse_revolver +/datum/uplink_item/role_restricted/ancient_jumpsuit + name = "Ancient Jumpsuit" + desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." + item = /obj/item/clothing/under/color/grey/glorf + cost = 20 + restricted_roles = list("Assistant") + +/datum/uplink_item/role_restricted/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + item = /obj/item/pneumatic_cannon/pie/selfcharge restricted_roles = list("Clown") -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap +/datum/uplink_item/role_restricted/blastcannon + name = "Blast Cannon" + desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ + withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ + blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ + disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." + item = /obj/item/gun/blastcannon + cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled gas masked scientist. + restricted_roles = list("Research Director", "Scientist") + +/datum/uplink_item/role_restricted/brainwash_disk + name = "Brainwashing Surgery Program" + desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ + Insert into an Operating Console to enable the procedure." + item = /obj/item/disk/surgery/brainwashing + restricted_roles = list("Medical Doctor") + cost = 3 + +/datum/uplink_item/role_restricted/clown_bomb + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 restricted_roles = list("Clown") +/* +/datum/uplink_item/role_restricted/clowncar + name = "Clown Car" + desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ + Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ + You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ + someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ + are very sensetive. Now with our included lube defense mechanism which will protect you against any angry shitcurity!" + item = /obj/vehicle/sealed/car/clowncar + cost = 15 + restricted_roles = list("Clown") +*/ + /datum/uplink_item/role_restricted/clumsyDNA name = "Clumsy Clown DNA" desc = "A DNA injector that has been loaded with the clown gene that makes people clumsy.. \ @@ -1414,19 +1636,31 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes item = /obj/item/dnainjector/clumsymut restricted_roles = list("Clown") -/datum/uplink_item/role_restricted/taeclowndo_shoes - name = "Tae-clown-do Shoes" - desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." - cost = 14 - item = /obj/item/clothing/shoes/clown_shoes/taeclowndo - restricted_roles = list("Clown") +/datum/uplink_item/role_restricted/haunted_magic_eightball + name = "Haunted Magic Eightball" + desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." + item = /obj/item/toy/eightball/haunted + cost = 2 + restricted_roles = list("Curator") + limited_stock = 1 //please don't spam deadchat -/datum/uplink_item/role_restricted/mimery - name = "Guide to Advanced Mimery Series" - desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. Obviously only works for Mimes." - cost = 12 - item = /obj/item/storage/box/syndie_kit/mimery - restricted_roles = list("Mime") +/datum/uplink_item/role_restricted/his_grace + name = "His Grace" + desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ + However, if left alone for long enough, He will fall back to slumber. \ + To activate His Grace, simply unlatch Him." + item = /obj/item/his_grace + cost = 20 + restricted_roles = list("Chaplain") + surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain + +/datum/uplink_item/role_restricted/explosive_hot_potato + name = "Exploding Hot Potato" + desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." + item = /obj/item/hot_potato/syndicate + cost = 4 + restricted_roles = list("Cook", "Botanist", "Clown", "Mime") /datum/uplink_item/role_restricted/ez_clean_bundle name = "EZ Clean Grenade Bundle" @@ -1436,6 +1670,36 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes surplus = 20 restricted_roles = list("Janitor") +/datum/uplink_item/role_restricted/goldenbox + name = "Gold Toolbox" + desc = "A gold planted plastitanium toolbox loaded with tools. Comes with a set of AI detection multi-tool and a pare of combat gloves." + item = /obj/item/storage/toolbox/gold_real + cost = 3 // Has syndie tools + gloves + a robust weapon + restricted_roles = list("Assistant", "Curator") //Curator due to this being made of gold - It fits the theme + +/datum/uplink_item/role_restricted/mimery + name = "Guide to Advanced Mimery Series" + desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. Obviously only works for Mimes." + cost = 12 + item = /obj/item/storage/box/syndie_kit/mimery + restricted_roles = list("Mime") + +/datum/uplink_item/role_restricted/ultrahonkpins + 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." + item = /obj/item/firing_pin/clown/ultra + cost = 2 + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/pressure_mod + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. Occupies 35% mod capacity." + item = /obj/item/borg/upgrade/modkit/indoors + cost = 5 //you need two for full damage, so total of 10 for maximum damage + limited_stock = 2 //you can't use more than two! + restricted_roles = list("Shaft Miner") + /datum/uplink_item/role_restricted/kitchen_gun name = "Kitchen Gun (TM)" desc = "A revolutionary .45 caliber cleaning solution! Say goodbye to daily stains and dirty surfaces with Kitchen Gun (TM)! Just five shots from Kitchen Gun (TM), and it'll sparkle like new! Includes two extra ammunition clips!" @@ -1451,60 +1715,12 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes restricted_roles = list("Cook", "Janitor") item = /obj/item/ammo_box/magazine/m45/kitchengun -/datum/uplink_item/role_restricted/explosive_hot_potato - name = "Exploding Hot Potato" - desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." - item = /obj/item/hot_potato/syndicate - cost = 4 - restricted_roles = list("Cook", "Botanist", "Clown", "Mime") - -/datum/uplink_item/role_restricted/his_grace - name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ - His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ - However, if left alone for long enough, He will fall back to slumber. \ - To activate His Grace, simply unlatch Him." - item = /obj/item/his_grace - cost = 20 - restricted_roles = list("Chaplain") - surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain - -/datum/uplink_item/role_restricted/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - item = /obj/item/pneumatic_cannon/pie/selfcharge - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/ancient_jumpsuit - name = "Ancient Jumpsuit" - desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." - item = /obj/item/clothing/under/color/grey/glorf - cost = 20 - restricted_roles = list("Assistant") - -/datum/uplink_item/role_restricted/goldenbox - name = "Gold Toolbox" - desc = "A gold planted plastitanium toolbox loaded with tools. Comes with a set of AI detection multi-tool and a pare of combat gloves." - item = /obj/item/storage/toolbox/gold_real - cost = 3 // Has synda tools + gloves + a robust weapon - restricted_roles = list("Assistant", "Curator") //Curator do to being made of gold - It fits the theme - -/datum/uplink_item/role_restricted/brainwash_disk - name = "Brainwashing Surgery Program" - desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ - Insert into an Operating Console to enable the procedure." - item = /obj/item/disk/surgery/brainwashing - restricted_roles = list("Medical Doctor") - cost = 3 - -/datum/uplink_item/role_restricted/haunted_magic_eightball - name = "Haunted Magic Eightball" - desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." - item = /obj/item/toy/eightball/haunted - cost = 2 - restricted_roles = list("Curator") - limited_stock = 1 //please don't spam deadchat +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + item = /obj/item/reagent_containers/hypospray/magillitis + cost = 15 + restricted_roles = list("Geneticist", "Chief Medical Officer") /datum/uplink_item/role_restricted/modified_syringe_gun name = "Modified Syringe Gun" @@ -1520,106 +1736,41 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes cost = 12 restricted_roles = list("Chemist", "Chief Medical Officer") -/datum/uplink_item/role_restricted/magillitis_serum - name = "Magillitis Serum Autoinjector" - desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/magillitis - cost = 15 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/pressure_mod - name = "Kinetic Accelerator Pressure Mod" - desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. Occupies 35% mod capacity." - item = /obj/item/borg/upgrade/modkit/indoors - cost = 5 //you need two for full damage, so total of 10 for maximum damage - limited_stock = 2 //you can't use more than two! - restricted_roles = list("Shaft Miner") - -/datum/uplink_item/role_restricted/blastcannon - name = "Blast Cannon" - desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ - withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ - blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ - disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." - item = /obj/item/gun/blastcannon - cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled gas masked scientist. - restricted_roles = list("Research Director", "Scientist") - -/datum/uplink_item/device_tools/clown_bomb - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 +/datum/uplink_item/role_restricted/reverse_bear_trap + name = "Reverse Bear Trap" + desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ + violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ + head after three seconds uninterrupted." + cost = 5 + item = /obj/item/reverse_bear_trap restricted_roles = list("Clown") -/datum/uplink_item/device_tools/ultrahonkpins //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." - item = /obj/item/firing_pin/clown/ultra - cost = 2 +/datum/uplink_item/role_restricted/reverse_revolver + name = "Reverse Revolver" + desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ + The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." + cost = 14 + item = /obj/item/storage/box/hug/reverse_revolver restricted_roles = list("Clown") -/* -/datum/uplink_item/role_restricted/clowncar - name = "Clown Car" - desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ - Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ - You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ - someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ - are very sensetive. Now with our included lube defense mechanism which will protect you against any angry shitcurity!" - item = /obj/vehicle/sealed/car/clowncar - cost = 15 +/datum/uplink_item/role_restricted/taeclowndo_shoes + name = "Tae-clown-do Shoes" + desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." + cost = 14 + item = /obj/item/clothing/shoes/clown_shoes/taeclowndo restricted_roles = list("Clown") -*/ + // Pointless /datum/uplink_item/badass category = "(Pointless) Badassery" surplus = 0 -/datum/uplink_item/badass/syndiecards - name = "Syndicate Playing Cards" - desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ - making them slightly more robust than a normal deck of cards. \ - You can also play card games with them or leave them on your victims." - item = /obj/item/toy/cards/deck/syndicate - cost = 1 - surplus = 40 - -/datum/uplink_item/badass/syndiecash - name = "Syndicate Briefcase Full of Cash" - desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - item = /obj/item/storage/secure/briefcase/syndie - cost = 1 - -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate - cost = 2 - -/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. \ - Can blow the deepest of covers." - item = /obj/item/toy/syndicateballoon - cost = 20 - cant_discount = TRUE - -/datum/uplink_item/badass/durasteel_toolbox - name = "Durasteel Toolbox" - desc = "A very high impact toolbox. Excels at destroying stationary structures." - item = /obj/item/storage/toolbox/durasteel - cost = 2 //18 damage on mobs, 50 on objects, 4.5 stam/hit +/datum/uplink_item/badass/costumes/obvious_chameleon + name = "Broken Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! Please note that this kit did NOT pass quality control." + item = /obj/item/storage/box/syndie_kit/chameleon/broken /datum/uplink_item/badass/costumes - surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) cost = 4 cant_discount = TRUE @@ -1634,90 +1785,45 @@ datum/uplink_item/stealthy_tools/taeclowndo_shoes desc = "Nothing is more terrifying than clowns with fully automatic weaponry." item = /obj/item/storage/backpack/duffelbag/clown/syndie -/datum/uplink_item/badass/costumes/obvious_chameleon - name = "Broken Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! Please note that this kit did NOT pass quality control." - item = /obj/item/storage/box/syndie_kit/chameleon/broken +/datum/uplink_item/badass/durasteel_toolbox + name = "Durasteel Toolbox" + desc = "A very high impact toolbox. Excels at destroying stationary structures." + item = /obj/item/storage/toolbox/durasteel + cost = 2 //18 damage on mobs, 50 on objects, 4.5 stam/hit -/datum/uplink_item/badass/rapid - name = "Gloves of the North Star" - desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - item = /obj/item/clothing/gloves/rapid - cost = 8 - -/datum/uplink_item/badass/bundle - name = "Syndicate Bundle" - desc = "Syndicate Bundles are specialized groups of items that arrive in a plain box. \ - These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ - you will receive." - item = /obj/item/storage/box/syndicate +/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. \ + Can blow the deepest of covers." + item = /obj/item/toy/syndicateballoon cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) cant_discount = TRUE -/datum/uplink_item/badass/surplus - name = "Syndicate Surplus Crate" - desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 50 TC." - item = /obj/structure/closet/crate - cost = 20 - player_minimum = 25 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cant_discount = TRUE - var/starting_crate_value = 50 +/datum/uplink_item/badass/syndiecash + name = "Syndicate Briefcase Full of Cash" + desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ + and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ + manufactured to pack a little bit more of a punch if your client needs some convincing." + item = /obj/item/storage/secure/briefcase/syndie + cost = 1 -/datum/uplink_item/badass/surplus/super - name = "Super Surplus Crate" - desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 125 TC." - cost = 40 - player_minimum = 40 - starting_crate_value = 125 +/datum/uplink_item/badass/phantomthief + name = "Syndicate Mask" + desc = "A cheap plastic mask fitted with an adrenaline autoinjector, which can be used by simply tensing your muscles" + item = /obj/item/clothing/glasses/phantomthief/syndicate + cost = 2 -/datum/uplink_item/badass/surplus/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) +/datum/uplink_item/badass/syndiecards + name = "Syndicate Playing Cards" + desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ + making them slightly more robust than a normal deck of cards. \ + You can also play card games with them or leave them on your victims." + item = /obj/item/toy/cards/deck/syndicate + cost = 1 + surplus = 40 - var/crate_value = starting_crate_value - var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user) - if(U.purchase_log) - U.purchase_log.LogPurchase(C, src, cost) - while(crate_value) - var/category = pick(uplink_items) - var/item = pick(uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - - if(!I.surplus || prob(100 - I.surplus)) - continue - if(crate_value < I.cost) - continue - crate_value -= I.cost - var/obj/goods = new I.item(C) - if(U.purchase_log) - U.purchase_log.LogPurchase(goods, I, 0) - return C - -/datum/uplink_item/badass/random - name = "Random Item" - desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." - item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech - cost = 0 - cant_discount = TRUE - -/datum/uplink_item/badass/random/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = U.uplink_items - var/list/possible_items = list() - for(var/category in uplink_items) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(src == I || !I.item) - continue - if(U.telecrystals < I.cost) - continue - if(I.limited_stock == 0) - continue - possible_items += I - - if(possible_items.len) - var/datum/uplink_item/I = pick(possible_items) - SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) - U.MakePurchase(user, I) +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate + cost = 2 diff --git a/modular_citadel/code/datums/uplink_items_cit.dm b/modular_citadel/code/datums/uplink_items_cit.dm deleted file mode 100644 index 16130de96d..0000000000 --- a/modular_citadel/code/datums/uplink_items_cit.dm +++ /dev/null @@ -1,177 +0,0 @@ -/*/datum/uplink_item/stealthy_tools/syndi_borer - name = "Syndicate Brain Slug" - desc = "A small cortical borer, modified to be completely loyal to the owner. \ - Genetically infertile, these brain slugs can assist medically in a support role, or take direct action \ - to assist their host." - item = /obj/item/antag_spawner/syndi_borer - refundable = TRUE - cost = 10 - surplus = 20 //Let's not have this be too common - exclude_modes = list(/datum/game_mode/nuclear) */ - -/datum/uplink_item/stealthy_tools/holoparasite - name="Holoparasite Injector" - desc="An injector containing a swarm of holographic parasites. \ - They mimic the function of the guardians employed by the Space Wizard Federation, and their form can be selected upon application \ - NOTE: The precise nature of the symbiosis required by the parasites renders them incompatible with changelings" //updated to actually describe what they do and warn traitorchans not to buy it - item = /obj/item/storage/box/syndie_kit/holoparasite - refundable = TRUE - cant_discount = TRUE - cost = 15 - surplus = 20 //Nobody needs a ton of parasites - exclude_modes = list(/datum/game_mode/nuclear) - refund_path = /obj/item/guardiancreator/tech/choose/traitor - - -/obj/item/storage/box/syndie_kit/holoparasite - name = "box" - -/obj/item/storage/box/syndie_kit/holoparasite/PopulateContents() - new /obj/item/guardiancreator/tech/choose/traitor(src) - new /obj/item/paper/guides/antag/guardian(src) - -/datum/uplink_item/dangerous/antitank - name = "Anti Tank Pistol" - desc = "Essentially amounting to a sniper rifle with no stock and barrel (or indeed, any rifling at all), \ - this extremely dubious pistol is guaranteed to dislocate your wrists and hit the broad side of a barn! \ - Uses sniper ammo. \ - Bullets tend to veer off-course. We are not responsible for any unintentional damage or injury resulting from inaacuracy." - item = /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate - cost = 14 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/* Commented out due to introduction of reskinnable stetchkins. May still have a niche if people decide it somehow has value. -/datum/uplink_item/dangerous/stealthpistol - name = "Stealth Pistol" - desc = "A compact, easily concealable bullpup pistol that fires 10mm auto rounds in 8 round magazines. \ - Has an integrated suppressor." - item = /obj/item/gun/ballistic/automatic/pistol/stealth - cost = 10 - surplus = 30 -*/ - -///Soporific 10mm mags/// - -/datum/uplink_item/ammo/pistolzzz - name = "10mm Soporific Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with soporific rounds that put the target to sleep. \ - NOTE: Soporific is not instant acting due to the constraints of the round's scale. Will usually require three shots to take effect." - item = /obj/item/ammo_box/magazine/m10mm/soporific - cost = 2 - -///flechette memes/// - -/datum/uplink_item/dangerous/flechettegun - name = "Flechette Launcher" - desc = "A compact bullpup that fires micro-flechettes.\ - Flechettes have very poor performance idividually, but can be very deadly in numbers. \ - Pre-loaded with armor piercing flechettes that are capable of puncturing most kinds of armor." - item = /obj/item/gun/ballistic/automatic/flechette - cost = 12 - surplus = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/flechetteap - name = "Armor Piercing Flechette Magazine" - desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ - Loaded with armor piercing flechettes that very nearly ignore armor, but are not very effective agaisnt flesh." - item = /obj/item/ammo_box/magazine/flechette - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/flechettes - name = "Serrated Flechette Magazine" - desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ - Loaded with serrated flechettes that shreds flesh, but is stopped dead in its tracks by armor. \ - These flechettes are highly likely to sever arteries, and even limbs." - item = /obj/item/ammo_box/magazine/flechette/s - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -///shredder/// - -/datum/uplink_item/nukeoffer/shredder - name = "Shredder bundle" - desc = "A truly horrific weapon designed simply to maim its victim, the CX Shredder is banned by several intergalactic treaties. \ - You'll get two of them with this. And spare ammo to boot. And we'll throw in an extra elite hardsuit and chest rig to hold them all!" - item = /obj/item/storage/backpack/duffelbag/syndie/shredderbundle - cost = 30 // normally 41 - -///Modular Pistols/// - -/datum/uplink_item/bundle/modular - name="Modular Pistol Kit" - desc="A heavy briefcase containing one modular pistol (chambered in 10mm), one supressor, and spare ammunition, including a box of soporific ammo. \ - Includes a suit jacket that is padded with a robust liner." - item = /obj/item/storage/briefcase/modularbundle - cost = 12 - -//////Bundle stuff////// - -///bundle category/// - -/datum/uplink_item/bundle - category = "Bundles" - surplus = 0 - cant_discount = TRUE - -///place bundle storage items here I guess/// - -/obj/item/storage/briefcase/modularbundle - name = "briefcase" - desc = "It's label reads genuine hardened Captain leather, but suspiciously has no other tags or branding." - icon_state = "briefcase" - flags_1 = CONDUCT_1 - force = 10 - hitsound = "swing_hit" - throw_speed = 2 - throw_range = 4 - w_class = WEIGHT_CLASS_BULKY - attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - resistance_flags = FLAMMABLE - max_integrity = 150 - -/obj/item/storage/briefcase/modularbundle/PopulateContents() - new /obj/item/gun/ballistic/automatic/pistol/modular(src) - new /obj/item/suppressor(src) - new /obj/item/ammo_box/magazine/m10mm(src) - new /obj/item/ammo_box/magazine/m10mm/soporific(src) - new /obj/item/ammo_box/c10mm/soporific(src) - new /obj/item/clothing/under/lawyer/blacksuit(src) - new /obj/item/clothing/accessory/waistcoat(src) - new /obj/item/clothing/suit/toggle/lawyer/black/syndie(src) - -/obj/item/clothing/suit/toggle/lawyer/black/syndie - desc = "A snappy dress jacket. Suspiciously has no tags or branding." - armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10) - -/obj/item/storage/backpack/duffelbag/syndie/shredderbundle - desc = "A large duffel bag containing two CX Shredders, some magazines, an elite hardsuit, and a chest rig." - -/obj/item/storage/backpack/duffelbag/syndie/shredderbundle/PopulateContents() - new /obj/item/ammo_box/magazine/flechette/shredder(src) - new /obj/item/ammo_box/magazine/flechette/shredder(src) - new /obj/item/ammo_box/magazine/flechette/shredder(src) - new /obj/item/ammo_box/magazine/flechette/shredder(src) - new /obj/item/gun/ballistic/automatic/flechette/shredder(src) - new /obj/item/gun/ballistic/automatic/flechette/shredder(src) - new /obj/item/storage/belt/military(src) - new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) - -///End of Bundle stuff/// - - -/*///////////////////////////////////////////////////////////////////////// -///////////// The TRUE Energy Sword /////////////////////////// -*////////////////////////////////////////////////////////////////////////// - -/datum/uplink_item/dangerous/cxneb - name = "Dragon's Tooth Non-Eutactic Blade" - desc = "An illegal modification of a weapon that is functionally identical to the energy sword, \ - the Non-Eutactic Blade (NEB) forges a hardlight blade on-demand, \ - generating an extremely sharp, unbreakable edge that is guaranteed to satisfy your every need. \ - This particular model has a polychromic hardlight generator, allowing you to murder in style! \ - The illegal modifications bring this weapon up to par with the classic energy sword, and also gives it the energy sword's distinctive sounds." - item = /obj/item/melee/transforming/energy/sword/cx/traitor - cost = 8 \ No newline at end of file diff --git a/modular_citadel/code/modules/uplink/uplink_items.dm b/modular_citadel/code/modules/uplink/uplink_items.dm deleted file mode 100644 index df076c3994..0000000000 --- a/modular_citadel/code/modules/uplink/uplink_items.dm +++ /dev/null @@ -1,18 +0,0 @@ -/* -// PUT ALL YOUR NEW UPLINK STUFF HERE, OVERRIDES GO IN HERE TOO -*/ - -/datum/uplink_item/device_tools/emagrecharge - name = "Electromagnet Charging Device" - desc = "A small device intended for recharging Cryptographic Sequencers. Using it will add five extra charges to the Cryptographic Sequencer." - item = /obj/item/emagrecharge - cost = 2 - -/datum/uplink_item/dangerous/revolver - item = /obj/item/gun/ballistic/revolver/syndie - -/datum/uplink_item/dangerous/phantomthief - name = "Syndicate Mask" - desc = "A cheap plastic mask fitted with an adrenaline autoinjector, which can be used by simply tensing your muscles" - item = /obj/item/clothing/glasses/phantomthief/syndicate - cost = 2 diff --git a/tgstation.dme b/tgstation.dme index 8e33f39524..e596189415 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2825,7 +2825,6 @@ #include "modular_citadel\code\controllers\configuration\entries\general.dm" #include "modular_citadel\code\controllers\subsystem\job.dm" #include "modular_citadel\code\controllers\subsystem\shuttle.dm" -#include "modular_citadel\code\datums\uplink_items_cit.dm" #include "modular_citadel\code\datums\components\material_container.dm" #include "modular_citadel\code\datums\components\phantomthief.dm" #include "modular_citadel\code\datums\components\souldeath.dm" @@ -3036,7 +3035,6 @@ #include "modular_citadel\code\modules\research\techweb\_techweb.dm" #include "modular_citadel\code\modules\research\techweb\all_nodes.dm" #include "modular_citadel\code\modules\research\xenobiology\xenobio_camera.dm" -#include "modular_citadel\code\modules\uplink\uplink_items.dm" #include "modular_citadel\code\modules\vehicles\secway.dm" #include "modular_citadel\code\modules\vore\hook-defs_vr.dm" #include "modular_citadel\code\modules\vore\persistence.dm" From 36c1e80fcc2a57e2b19e7f3ced9596f7adf4ab8c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:00:29 -0500 Subject: [PATCH 158/180] Automatic changelog generation for PR #8669 [ci skip] --- html/changelogs/AutoChangeLog-pr-8669.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8669.yml diff --git a/html/changelogs/AutoChangeLog-pr-8669.yml b/html/changelogs/AutoChangeLog-pr-8669.yml new file mode 100644 index 0000000000..20770e8cc2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8669.yml @@ -0,0 +1,5 @@ +author: "Ghommie (original PRs by Denton and Skoglol)" +delete-after: True +changes: + - tweak: "Reorganized the syndicate uplinks. Items are now mostly alphabetical, some misplaced items moved to more fitting categories. Bundles, random item and TC have been moved into a new category called \"Bundles and Telecrystals\". Gloves of the North Star and Box of Throwing Weapons have been moved to Conspicuous and Dangerous Weapons. Combat Gloves Plus have been moved to Stealthy and Inconspicuous Weapons. Moved all implants into the Implants category." + - tweak: "Added a new category to the uplink: Grenades and Explosives." From d4a13077ff484e947624e0b0b3e683d0ffbe9986 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 23 Jun 2019 15:01:09 +0200 Subject: [PATCH 159/180] ports in "Adds radial menu to arm-mounted implants" (#8733) --- code/modules/surgery/organs/augments_arms.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index ad07ce7238..f09258f19f 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -129,11 +129,14 @@ holder = null if(contents.len == 1) Extend(contents[1]) - else // TODO: make it similar to borg's storage-like module selection - var/obj/item/choise = input("Activate which item?", "Arm Implant", null, null) as null|anything in items_list - if(owner && owner == usr && owner.stat != DEAD && (src in owner.internal_organs) && !holder && istype(choise) && (choise in contents)) - // This monster sanity check is a nice example of how bad input() is. - Extend(choise) + else + var/list/choice_list = list() + for(var/obj/item/I in items_list) + choice_list[I] = getFlatIcon(I) + var/obj/item/choice = show_radial_menu(owner, owner, choice_list) + if(owner && owner == usr && owner.stat != DEAD && (src in owner.internal_organs) && !holder && (choice in contents)) + // This monster sanity check is a nice example of how bad input is. + Extend(choice) else Retract() From 37e97510e334d2f568ffc52e2fd0e6b47ba9eef0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:01:11 -0500 Subject: [PATCH 160/180] Automatic changelog generation for PR #8733 [ci skip] --- html/changelogs/AutoChangeLog-pr-8733.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8733.yml diff --git a/html/changelogs/AutoChangeLog-pr-8733.yml b/html/changelogs/AutoChangeLog-pr-8733.yml new file mode 100644 index 0000000000..593c06bd90 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8733.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by Swindly)" +delete-after: True +changes: + - rscadd: "Arm-mounted implants that contain more than one item use a radial menu instead of a list menu." From 057e12dcf66405eb873d6ba0c7944e5528dcdc45 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:01:30 -0500 Subject: [PATCH 161/180] Automatic changelog generation for PR #8732 [ci skip] --- html/changelogs/AutoChangeLog-pr-8732.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8732.yml diff --git a/html/changelogs/AutoChangeLog-pr-8732.yml b/html/changelogs/AutoChangeLog-pr-8732.yml new file mode 100644 index 0000000000..69a79b93ac --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8732.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by Nicjh)" +delete-after: True +changes: + - rscadd: "Abductor console's select disguise option now uses a radial" From 60d42511dfa8aa2f6ceee35d0cc7c037cf8171b0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:01:54 -0500 Subject: [PATCH 162/180] Automatic changelog generation for PR #8718 [ci skip] --- html/changelogs/AutoChangeLog-pr-8718.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8718.yml diff --git a/html/changelogs/AutoChangeLog-pr-8718.yml b/html/changelogs/AutoChangeLog-pr-8718.yml new file mode 100644 index 0000000000..102fbd4f23 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8718.yml @@ -0,0 +1,4 @@ +author: "Linzolle" +delete-after: True +changes: + - rscadd: "ability to quickly max sensors" From 21e757b69d66354a4062790356442edbe2f15e17 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:19:43 -0500 Subject: [PATCH 163/180] Automatic changelog generation for PR #8665 [ci skip] --- html/changelogs/AutoChangeLog-pr-8665.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8665.yml diff --git a/html/changelogs/AutoChangeLog-pr-8665.yml b/html/changelogs/AutoChangeLog-pr-8665.yml new file mode 100644 index 0000000000..fc34f9ac3e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8665.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "Buffed wizard and artificier's Magic Missile, wizard and xeno queen's Repulse and juggernaut's Gauntlet Echo." From 573de725bc4805a7f042642e2d0984934ba677e2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:21:00 -0500 Subject: [PATCH 164/180] Automatic changelog generation for PR #8677 [ci skip] --- html/changelogs/AutoChangeLog-pr-8677.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8677.yml diff --git a/html/changelogs/AutoChangeLog-pr-8677.yml b/html/changelogs/AutoChangeLog-pr-8677.yml new file mode 100644 index 0000000000..181f6d2932 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8677.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "speedy quirk" From 6d42fab676e6f95573046c197c46a58992ecfd63 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:41:05 -0500 Subject: [PATCH 165/180] Automatic changelog generation for PR #8698 [ci skip] --- html/changelogs/AutoChangeLog-pr-8698.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8698.yml diff --git a/html/changelogs/AutoChangeLog-pr-8698.yml b/html/changelogs/AutoChangeLog-pr-8698.yml new file mode 100644 index 0000000000..464f74427e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8698.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixes flashlights being unable to be used for rudimentary eyes and mouth exams." From c3e19d9cf168af5af2e524c9639bda60c51d1487 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:41:36 -0500 Subject: [PATCH 166/180] Automatic changelog generation for PR #8691 [ci skip] --- html/changelogs/AutoChangeLog-pr-8691.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8691.yml diff --git a/html/changelogs/AutoChangeLog-pr-8691.yml b/html/changelogs/AutoChangeLog-pr-8691.yml new file mode 100644 index 0000000000..680904cc5c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8691.yml @@ -0,0 +1,4 @@ +author: "Ghommie (Original PRs by nemvar and Rowell)" +delete-after: True +changes: + - rscadd: "Added beekini bras and panties, thigh-high and knee-high bee socks." From 9db5b56653cd97476230688abf009fe9da71000e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:45:51 -0500 Subject: [PATCH 167/180] Automatic changelog generation for PR #8688 [ci skip] --- html/changelogs/AutoChangeLog-pr-8688.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8688.yml diff --git a/html/changelogs/AutoChangeLog-pr-8688.yml b/html/changelogs/AutoChangeLog-pr-8688.yml new file mode 100644 index 0000000000..b22c2c52fd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8688.yml @@ -0,0 +1,5 @@ +author: "Ghommie (Original PR by nemvar)" +delete-after: True +changes: + - rscadd: "Botanists can now get beeplushies (or cultivator and bucket) as an heirloom." + - bugfix: "Clowns and mimes will now properly pick either a can of paint or their brand as heirloom now." From 9cce5a45f13132038f80b39dd29e76b06364253a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:46:34 -0500 Subject: [PATCH 168/180] Automatic changelog generation for PR #8689 [ci skip] --- html/changelogs/AutoChangeLog-pr-8689.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8689.yml diff --git a/html/changelogs/AutoChangeLog-pr-8689.yml b/html/changelogs/AutoChangeLog-pr-8689.yml new file mode 100644 index 0000000000..bf44770c76 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8689.yml @@ -0,0 +1,4 @@ +author: "Fermis" +delete-after: True +changes: + - rscadd: "Added a panda simplemob" From 03ed1976e4e1158e8b5d9af0d619b84b10d51c3e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:46:50 -0500 Subject: [PATCH 169/180] Automatic changelog generation for PR #8687 [ci skip] --- html/changelogs/AutoChangeLog-pr-8687.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8687.yml diff --git a/html/changelogs/AutoChangeLog-pr-8687.yml b/html/changelogs/AutoChangeLog-pr-8687.yml new file mode 100644 index 0000000000..65347093ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8687.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by monster860)" +delete-after: True +changes: + - bugfix: "fixes advanced proccall" From 1ce01839fa6990836bd39c0eb996596b1299d556 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:50:34 -0500 Subject: [PATCH 170/180] Automatic changelog generation for PR #8659 [ci skip] --- html/changelogs/AutoChangeLog-pr-8659.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8659.yml diff --git a/html/changelogs/AutoChangeLog-pr-8659.yml b/html/changelogs/AutoChangeLog-pr-8659.yml new file mode 100644 index 0000000000..6287f1307f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8659.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by ninjanomnom)" +delete-after: True +changes: + - bugfix: "Orbiting is a little more aggressive about staying in orbit. The wisp as a result now correctly follows you over shuttle moves." From 504e9d2be682696d7c67a9981b5f07a47420de2a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:52:07 -0500 Subject: [PATCH 171/180] Automatic changelog generation for PR #8711 [ci skip] --- html/changelogs/AutoChangeLog-pr-8711.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8711.yml diff --git a/html/changelogs/AutoChangeLog-pr-8711.yml b/html/changelogs/AutoChangeLog-pr-8711.yml new file mode 100644 index 0000000000..f836783659 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8711.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Adds in a grey jumpsuit to the loadout choices, restricted to Assistants." From 847fbd6516fc1f4f6c42f8c10117abbae4e16535 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:52:27 -0500 Subject: [PATCH 172/180] Automatic changelog generation for PR #8722 [ci skip] --- html/changelogs/AutoChangeLog-pr-8722.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8722.yml diff --git a/html/changelogs/AutoChangeLog-pr-8722.yml b/html/changelogs/AutoChangeLog-pr-8722.yml new file mode 100644 index 0000000000..fe858768af --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8722.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "I didn't code it right it in the first place" From f2aaaf9d3e174a0477f0cb3cf674adc372263798 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:53:04 -0500 Subject: [PATCH 173/180] Automatic changelog generation for PR #8695 [ci skip] --- html/changelogs/AutoChangeLog-pr-8695.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8695.yml diff --git a/html/changelogs/AutoChangeLog-pr-8695.yml b/html/changelogs/AutoChangeLog-pr-8695.yml new file mode 100644 index 0000000000..671eaa519e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8695.yml @@ -0,0 +1,6 @@ +author: "Ghommie (original PRs by grandpawalton and Mickyan)" +delete-after: True +changes: + - tweak: "the contents on the smartfridge icon now change depending on how many items it contains" + - bugfix: "opening the maintenance panel of smartfridges now correctly updates the icon" + - bugfix: "Screwing a disk compartmentalizer no longer makes it look like a smartfridge." From 53c81f8897329c959c115d0b52782061c8f795b3 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:53:32 -0500 Subject: [PATCH 174/180] Automatic changelog generation for PR #8721 [ci skip] --- html/changelogs/AutoChangeLog-pr-8721.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8721.yml diff --git a/html/changelogs/AutoChangeLog-pr-8721.yml b/html/changelogs/AutoChangeLog-pr-8721.yml new file mode 100644 index 0000000000..4b616e9923 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8721.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by XDTM)" +delete-after: True +changes: + - bugfix: "Reagents now stop their passive effects (for example, stun immunity) if the liver stops working while they're active." From 8fadb8b3d4f69ede70315213223cea9d44d4a185 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:54:07 -0500 Subject: [PATCH 175/180] Automatic changelog generation for PR #8666 [ci skip] --- html/changelogs/AutoChangeLog-pr-8666.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8666.yml diff --git a/html/changelogs/AutoChangeLog-pr-8666.yml b/html/changelogs/AutoChangeLog-pr-8666.yml new file mode 100644 index 0000000000..df2e2e3af0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8666.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by YPOQ)" +delete-after: True +changes: + - bugfix: "Fixing roffle waffle, mushroom halluginogen and some invalid reagents." From 2b401e2022976c6df4cf5387143790269fbc1b5a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:54:45 -0500 Subject: [PATCH 176/180] Automatic changelog generation for PR #8667 [ci skip] --- html/changelogs/AutoChangeLog-pr-8667.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8667.yml diff --git a/html/changelogs/AutoChangeLog-pr-8667.yml b/html/changelogs/AutoChangeLog-pr-8667.yml new file mode 100644 index 0000000000..1f80a2917d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8667.yml @@ -0,0 +1,4 @@ +author: "Ghommie (original PR by Anturk)" +delete-after: True +changes: + - rscadd: "Recipe for fabled secret sauce can now be found in the deepest reaches of space." From ccdc90186f94ae8cc6b928445e05180ef7912c45 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:56:19 -0500 Subject: [PATCH 177/180] Automatic changelog generation for PR #8692 [ci skip] --- html/changelogs/AutoChangeLog-pr-8692.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8692.yml diff --git a/html/changelogs/AutoChangeLog-pr-8692.yml b/html/changelogs/AutoChangeLog-pr-8692.yml new file mode 100644 index 0000000000..f1d87676ab --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8692.yml @@ -0,0 +1,7 @@ +author: "Ghommie (original PRs by ShizCalev)" +delete-after: True +changes: + - bugfix: "Fixed a bug that allowed you to teleport an ID in your possession to a PDA anywhere ingame." + - bugfix: "Fixed an exploit allowing you to steal ID's/pens from PDA's not in your possession." + - bugfix: "Fixed an exploit allowing you unlimited control of a PDA's interface even if it wasn't near you/in your possession." + - bugfix: "Fixed Pride Mirror exploits." From 83d06d88aded0b4528518f586be4c0965dbbb8bc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 08:57:11 -0500 Subject: [PATCH 178/180] Automatic changelog generation for PR #8715 [ci skip] --- html/changelogs/AutoChangeLog-pr-8715.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8715.yml diff --git a/html/changelogs/AutoChangeLog-pr-8715.yml b/html/changelogs/AutoChangeLog-pr-8715.yml new file mode 100644 index 0000000000..b99309cdd9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8715.yml @@ -0,0 +1,5 @@ +author: "Sishen1542" +delete-after: True +changes: + - rscadd: "Pentetic Jelly, new chemical made through mixing 1:1 slime jelly and pentetic acid." + - tweak: "Anatomic panacea now gives pent jelly instead of pent acid. Medbeams now have TRUE tox healing to heal TOXINLOVER as well." From 74c607b2dfd1ffd52230be35a5a165ebb32fb522 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Sun, 23 Jun 2019 17:15:03 -0400 Subject: [PATCH 179/180] Ghommie Asked --- code/modules/clothing/under/miscellaneous.dm | 3 +-- icons/mob/uniform.dmi | Bin 239154 -> 239187 bytes 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index d15f3d392c..91fde0dbd0 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -1,4 +1,3 @@ - /obj/item/clothing/under/pj/red name = "red pj's" desc = "Sleepwear." @@ -755,5 +754,5 @@ name = "gear harness" desc = "A simple, inconspicuous harness replacement for a jumpsuit." icon_state = "gear_harness" - item_state = "golem" //This allows us to have no clothing on us well also hiding the cit lewd bits unless we show them. + item_state = "gear_harness" //We dont use golem do to being a item, item without faces making it default to error suit sprites. body_parts_covered = CHEST|GROIN \ No newline at end of file diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 2ed178394187e4b1759fd5c86e8c128f717ffdd0..3d281606de26537b657b52dfa55cdf8856399bf6 100644 GIT binary patch delta 17122 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

    T9CRUwjUNM>yS9PHZa{U0-D&lH%Ub7d zcjwt2dXuBB^)+9@{HdwOVuA=;3tlbgK*MO%X1hIQ^s1c1om|2a=?Mh)%pob4645<* zz3v7-Gbp2g16c2qLE%0uH1-v9;kc^JQl+C2^jJt)Ipho?l58ZC?OOPRd&3@G_ zSv);UPFES=Z$5j%K@j(fX1&TvvRB1pUAxvxA_@$(GA#+n!bqhF7KZ}KZ*sIMAMPb0 zro7sPLdx{&h$2B+y$;+5zF4!#pjgbH4e=a|xuNME?ND;C=GZtF*1P#Lu zj1>cpJ-oEG&^Uc9vkzdZl-H@EXrN{~@E&9Y!FoWk<*0JjS_NVcw&@Iu*Y|3}cBLA% z<^Hd3NkvTv1O-)PzDnEHTJOcZTL6i@layK5*H|1YY`m-w2_Jr3xL06@>RvGuzQ%~z zEzgF03w>a0Z-WNa9pZm}i#ZR9&%_WE9B#Z2gg?L)5mp;(g+LU?kqo~*eu~UpDmsHo z_|9X2BM=QJo}P<_03Y#Xj$tfw8a6g8<|CS zKf%7Czchcde1S#afo1xkk+)aYPol})w&~bpsj8%ly!c1Qfe)GT?Skh`EA(5z?&@{T zCqut)0gODbTIJEmN&jP5483u7!$T<&QoF-#_P28PknhPrJZHC|TWbIjE3(>~@!!{% zT`>(Z&T!q1Jkjx)q`d8EidlMurGC}gps#7h-b8?P`nu7_{Qn*AJzUK1xZwttMKrp> zf;R_rWx*HS;1IYnK8Y$js!Q>8_97wp{p!mh*JNi?`-zJC(1 z$o91kcAhSG(+lu>hWv-;fuK0_ez#4Z9;!q|GXf0ofUxkq(kPByCW#?%|HL8%eE`va z*uB8CZSHzoJ#==7sOy_UCN)w!fi0 zAHw#35NaRB{*t_a9WJqv!qy7nkL_YVsEJ6G@fH2@TeoIm-92(@L=_V$%R&dJGJbCi zQZ6x5={WvDvGpg-yCue24e-2px14f&O0IR-0wvtzRn1K^l~;PNHm~E{ig_md1x4?`U`3h-!fM!-~*uA zVYFL!Z+1@&n8w{aNQwQQlw>8OhfIwoW!Po>#Q?%-6&KVb#!1%$SYu#g|FIHVFX=;y z+(Giqr~k5)(Jb>vs2C4%3Cmuq7lO-0)QMaI>^Jw5Wd6&0{?wGe??F8MQmkd;Rcy>Z z*0P%S5<|tDj}j&q{ofVK8bm!AS<8e@cQ-LdsURXKy&S$s5h;+?3Ben zCa6{IWwVetlowumGw7B$C&c*cIq2U1L^fxqC$3h23J4^y=BRYs`vR8J!2YjjFM#Gm zFbT<)4D6SEK4FX!5`Zm7NJ(Un8z@f;esuTL`_ST@No-}qP4eHz&j`a#)N&MUlqfw+N>(?~JKicqw(bN2sn@*G>j--?SSM2`++CO9*5SQ1&E9uuv zA`uk}ut+_l<^CZhVBO4tbi+4O{zG((;<-yyjQjF={7*KYsSQ)c#xr6T#=Nw##h9h~ zi#lYI-3D(UKYAoyN^tS%+kZ?6#<(IZqw)U0ZTNNgS+kNFtq>Uq$x3YM@70#qHk&K% z|BtA}{!Vj}cqJ3%wchK>md5nIiu%a(pIy--7}#ONWG43MW+3FBs-lKMg`CBw{|_VQ B^v(bP From dcd74f899acaaf88d095cc4613fb741f571a292e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 23 Jun 2019 19:26:32 -0500 Subject: [PATCH 180/180] Automatic changelog generation for PR #8736 [ci skip] --- html/changelogs/AutoChangeLog-pr-8736.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8736.yml diff --git a/html/changelogs/AutoChangeLog-pr-8736.yml b/html/changelogs/AutoChangeLog-pr-8736.yml new file mode 100644 index 0000000000..68d64e2410 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8736.yml @@ -0,0 +1,6 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "gear harness and a conflict merg" + - rscdel: "Nudity permits" + - bugfix: "nothing"