Merge remote-tracking branch 'upstream/master' into TGUI-3.0

This commit is contained in:
Artur
2020-05-22 16:19:17 +03:00
20 changed files with 69 additions and 31 deletions
+1 -1
View File
@@ -73,7 +73,7 @@
if(!material_amount)
to_chat(user, "<span class='warning'>[I] does not contain sufficient materials to be accepted by [parent].</span>")
return
if(!has_space(material_amount))
if((!precise_insertion || !GLOB.typecache_stack[I]) && !has_space(material_amount))
to_chat(user, "<span class='warning'>[parent] has not enough space. Please remove materials from [parent] in order to insert more.</span>")
return
user_insert(I, user)
+1 -2
View File
@@ -82,7 +82,7 @@
if(..())
return
ADD_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION)
AddElement(/datum/element/dwarfism, COMSIG_HUMAN_MUTATION_LOSS, src)
owner.AddElement(/datum/element/dwarfism, COMSIG_HUMAN_MUTATION_LOSS, src)
passtable_on(owner, GENETIC_MUTATION)
owner.visible_message("<span class='danger'>[owner] suddenly shrinks!</span>", "<span class='notice'>Everything around you seems to grow..</span>")
@@ -90,7 +90,6 @@
if(..())
return
REMOVE_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION)
owner.transform = owner.transform.Scale(1, 1.25)
passtable_off(owner, GENETIC_MUTATION)
owner.visible_message("<span class='danger'>[owner] suddenly grows!</span>", "<span class='notice'>Everything around you seems to shrink..</span>")
+6 -4
View File
@@ -154,15 +154,17 @@
. = value
var/sum = 0
var/divisor = 0
var/one_trait = istext(traits)
var/one_bad_trait = istext(bad_traits)
for(var/k in I.used_skills)
var/datum/skill/S = GLOB.skill_datums[k]
if(!S)
continue
var/our_traits = S.skill_traits
var/item_traits = I.used_skills[k]
if(item_traits)
our_traits |= item_traits
if((traits && !(our_traits[traits] || length(our_traits & traits))) || (bad_traits && (our_traits[bad_traits] || length(our_traits & bad_traits))))
our_traits |= I.used_skills[k]
if(traits && !(one_trait ? (traits in our_traits) : length(our_traits & traits)))
continue
if(bad_traits && (one_bad_trait ? (bad_traits in our_traits) : length(our_traits & bad_traits)))
continue
var/mod = S.base_multiplier
switch(S.progression_type)
+2
View File
@@ -120,11 +120,13 @@
/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration)
. = ..()
ADD_TRAIT(owner, TRAIT_MUTE, "mesmerize")
ADD_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, "mesmerize")
owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize)
/datum/status_effect/mesmerize/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_MUTE, "mesmerize")
REMOVE_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, "mesmerize")
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize)
/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration)
+12 -8
View File
@@ -58,18 +58,22 @@
/obj/item/wallframe/proc/after_attach(var/obj/O)
transfer_fingerprints_to(O)
/obj/item/wallframe/attackby(obj/item/W, mob/user, params)
..()
if(istype(W, /obj/item/screwdriver))
// For camera-building borgs
var/turf/T = get_step(get_turf(user), user.dir)
if(iswallturf(T))
T.attackby(src, user, params)
/obj/item/wallframe/screwdriver_act(mob/user, obj/item/I)
. = ..()
if(.)
return
// For camera-building borgs
var/turf/T = get_step(get_turf(user), user.dir)
if(iswallturf(T))
T.attackby(src, user)
/obj/item/wallframe/wrench_act(mob/user, obj/item/I)
if(!custom_materials)
return
var/metal_amt = round(custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)]/MINERAL_MATERIAL_AMOUNT)
var/glass_amt = round(custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)]/MINERAL_MATERIAL_AMOUNT)
if(istype(W, /obj/item/wrench) && (metal_amt || glass_amt))
if(metal_amt || glass_amt)
to_chat(user, "<span class='notice'>You dismantle [src].</span>")
if(metal_amt)
new /obj/item/stack/sheet/metal(get_turf(src), metal_amt)
@@ -117,8 +117,6 @@
RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/ContinueTarget)
// 5 second windup
addtimer(CALLBACK(src, .proc/apply_effects, L, target, power_time), 6 SECONDS)
ADD_TRAIT(target, TRAIT_COMBAT_MODE_LOCKED, src)
ADD_TRAIT(L, TRAIT_COMBAT_MODE_LOCKED, src)
/datum/action/bloodsucker/targeted/mesmerize/proc/apply_effects(aggressor, victim, power_time)
var/mob/living/carbon/target = victim
@@ -127,7 +125,6 @@
return
PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y
target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time)
REMOVE_TRAIT(L, TRAIT_COMBAT_MODE_LOCKED, src)
target.face_atom(L)
target.Stun(power_time)
to_chat(L, "<span class='notice'>[target] is fixed in place by your hypnotic gaze.</span>")
@@ -136,7 +133,6 @@
spawn(power_time)
if(istype(target) && success)
target.notransform = FALSE
REMOVE_TRAIT(target, TRAIT_COMBAT_MODE_LOCKED, src)
if(istype(L) && target.stat == CONSCIOUS && (target in L.fov_view(10))) // They Woke Up! (Notice if within view)
to_chat(L, "<span class='warning'>[target] has snapped out of their trance.</span>")
@@ -647,6 +647,19 @@
desc = "A white winter coat hood with green markings."
icon_state = "winterhood_viro"
/obj/item/clothing/suit/hooded/wintercoat/paramedic
name = "paramedic winter coat"
desc = "A winter coat with blue markings. Warm, but probably won't protect from biological agents. For the cozy doctor on the go."
icon_state = "coatparamed"
item_state = "coatparamed"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45)
hoodtype = /obj/item/clothing/head/hooded/winterhood/paramedic
/obj/item/clothing/head/hooded/winterhood/paramedic
desc = "A white winter coat hood with blue markings."
icon_state = "winterhood_paramed"
/obj/item/clothing/suit/hooded/wintercoat/science
name = "science winter coat"
desc = "A white winter coat with an outdated atomic model instead of a plastic zipper tab."
@@ -89,7 +89,7 @@
desc = "Produces electricity from chemicals."
icon_state = "chemical_cell"
extended_desc = "This is effectively an internal beaker. It will consume and produce power from plasma, slime jelly, welding fuel, carbon,\
ethanol, nutriment, and blood in order of decreasing efficiency. It will consume fuel only if the battery can take more energy."
ethanol, nutriment, and blood in order of decreasing efficiency. It will consume fuel only if the battery can take more energy. But no fuel can be compared with blood of living human."
complexity = 4
inputs = list()
outputs = list("volume used" = IC_PINTYPE_NUMBER, "self reference" = IC_PINTYPE_SELFREF)
@@ -102,10 +102,8 @@
var/lfwb =TRUE
/obj/item/integrated_circuit/passive/power/chemical_cell/Initialize()
..()
. = ..()
create_reagents(volume, OPENCONTAINER)
extended_desc +="But no fuel can be compared with blood of living human."
/obj/item/integrated_circuit/passive/power/chemical_cell/interact(mob/user)
set_pin_data(IC_OUTPUT, 2, WEAKREF(src))
@@ -33,7 +33,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //
var/mob/living/carbon/human/H = C
H.facial_hair_style = dwarf_hair
H.update_hair()
AddElement(/datum/element/dwarfism, COMSIG_SPECIES_LOSS, src)
H.AddElement(/datum/element/dwarfism, COMSIG_SPECIES_LOSS, src)
RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used.
/datum/species/dwarf/on_species_loss(mob/living/carbon/H, datum/species/new_species)
@@ -264,7 +264,7 @@
. = ..()
if(!slime_check)
return
if(nutrition == max)
if(nutrition >= get_grow_nutrition())
if(powerlevel<10)
if(prob(30-powerlevel*2))
powerlevel++
+1 -1
View File
@@ -1051,7 +1051,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
///Adjust the nutrition of a mob
/mob/proc/adjust_nutrition(change, max = INFINITY) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks
nutrition = clamp(0, nutrition + change, max)
nutrition = clamp(nutrition + change, 0, max)
///Force set the mob nutrition
/mob/proc/set_nutrition(var/change) //Seriously fuck you oldcoders.
@@ -274,7 +274,11 @@
/datum/reagent/medicine/silver_sulfadiazine/overdose_start(mob/living/M)
metabolization_rate = 15 * REAGENTS_METABOLISM
M.adjustBruteLoss(2*REM, 0)
..()
. = 1
/datum/reagent/medicine/silver_sulfadiazine/overdose_process(mob/living/M)
M.adjustFireLoss(2*REM, 0)
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.applyOrganDamage(1)
@@ -340,8 +344,12 @@
..()
. = 1
datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 15 * REAGENTS_METABOLISM
..()
. = 1
/datum/reagent/medicine/styptic_powder/overdose_process(mob/living/M)
M.adjustBruteLoss(2*REM, 0)
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
if(L)
+1
View File
@@ -49,6 +49,7 @@
/obj/item/storage/backpack/medic = 5,
/obj/item/storage/backpack/satchel/med = 5,
/obj/item/clothing/suit/hooded/wintercoat/medical = 5,
/obj/item/clothing/suit/hooded/wintercoat/paramedic = 2,
/obj/item/clothing/under/rank/medical/doctor/nurse = 5,
/obj/item/clothing/head/nursehat = 5,
/obj/item/clothing/under/rank/medical/doctor/skirt= 5,
Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

After

Width:  |  Height:  |  Size: 418 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 141 KiB

@@ -91,6 +91,12 @@
path = /obj/item/clothing/suit/hooded/wintercoat/medical
restricted_roles = list("Chief Medical Officer", "Medical Doctor") // Reserve it to Medical Doctors and their boss, the Chief Medical Officer
/datum/gear/coat/paramedic
name = "Paramedic winter coat"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/hooded/wintercoat/paramedic
restricted_roles = list("Chief Medical Officer", "Paramedic") // Reserve it to Paramedics and their boss, the Chief Medical Officer
/datum/gear/coat/robotics
name = "Robotics winter coat"
category = SLOT_WEAR_SUIT
@@ -226,4 +232,4 @@
/datum/gear/christmascoatrg
name = "Red and Green Christmas Coat"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/hooded/wintercoat/christmascoatrg
path = /obj/item/clothing/suit/hooded/wintercoat/christmascoatrg
+8 -2
View File
@@ -1,6 +1,6 @@
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { Box } from '../components';
import { Box, Button } from '../components';
import { Component, createRef } from 'inferno';
import { pureComponentHooks } from 'common/react';
@@ -85,6 +85,12 @@ export const Canvas = props => {
<PaintCanvas
value={data.grid}
onCanvasClick={(x, y) => act("paint", { x, y })} />
<Box>{data.name}</Box>
<Box>
{!data.finalized
&& <Button.Confirm
onClick={() => act("finalize")}
content="Finalize" />}
{data.name}
</Box>
</Box>);
};
File diff suppressed because one or more lines are too long