Merge remote-tracking branch 'upstream/master' into just-defibrillator-things

This commit is contained in:
E-MonaRhg
2021-04-06 15:28:01 +02:00
17 changed files with 59 additions and 55 deletions
@@ -94,7 +94,7 @@
/datum/action/changeling/sting/transformation/can_sting(mob/user, mob/target)
if(!..())
return
if(HAS_TRAIT(target, TRAIT_HUSK) || (!ishuman(target)))
if(HAS_TRAIT(target, TRAIT_HUSK) || !ishuman(target) || (NOTRANSSTING in target.dna.species.species_traits))
to_chat(user, "<span class='warning'>Our sting appears ineffective against its DNA.</span>")
return FALSE
if(ishuman(target))
+11 -6
View File
@@ -14,7 +14,8 @@ GLOBAL_VAR(bomb_set)
icon_state = "nuclearbomb0"
density = 1
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/extended = FALSE
anchored = TRUE
var/extended = TRUE
var/lighthack = FALSE
var/timeleft = 120
var/timing = FALSE
@@ -34,6 +35,10 @@ GLOBAL_VAR(bomb_set)
/obj/machinery/nuclearbomb/syndicate
is_syndicate = TRUE
/obj/machinery/nuclearbomb/undeployed
extended = FALSE
anchored = FALSE
/obj/machinery/nuclearbomb/New()
..()
r_code = rand(10000, 99999.0) // Creates a random code upon object spawn.
@@ -269,11 +274,6 @@ GLOBAL_VAR(bomb_set)
else
code = "ERROR"
return
if(!yes_code) // All requests below here require both NAD inserted AND code correct
return
switch(action)
if("toggle_anchor")
if(removal_stage == NUKE_MOBILE)
anchored = FALSE
@@ -288,6 +288,11 @@ GLOBAL_VAR(bomb_set)
else
visible_message("<span class='warning'>The anchoring bolts slide back into the depths of [src].</span>")
return
if(!yes_code) // All requests below here require both NAD inserted AND code correct
return
switch(action)
if("set_time")
var/time = input(usr, "Detonation time (seconds, min 120, max 600)", "Input Time", 120) as num|null
if(time)
+4
View File
@@ -220,6 +220,10 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
/obj/effect/proc_holder/spell/vampire/targetted/enthrall = 300,
/datum/vampire_passive/full = 500)
/datum/vampire/proc/adjust_nullification(base, extra)
// First hit should give full nullification, while subsequent hits increase the value slower
nullified = max(nullified + extra, base)
/datum/vampire/New(gend = FEMALE)
gender = gend
+1 -1
View File
@@ -12,7 +12,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "multitool"
flags = CONDUCT
force = 5.0
force = 0
w_class = WEIGHT_CLASS_SMALL
throwforce = 0
throw_range = 7
@@ -39,7 +39,7 @@
if(ishuman(M) && M.mind?.vampire)
if(!M.mind.vampire.get_ability(/datum/vampire_passive/full))
to_chat(M, "<span class='warning'>The nullrod's power interferes with your own!</span>")
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
M.mind.vampire.adjust_nullification(5, 2)
/obj/item/nullrod/pickup(mob/living/user)
. = ..()
@@ -476,7 +476,7 @@
return
if(target.mind.vampire && !target.mind.vampire.get_ability(/datum/vampire_passive/full)) // Getting a full prayer off on a vampire will interrupt their powers for a large duration.
target.mind.vampire.nullified = max(120, target.mind.vampire.nullified + 120)
target.mind.vampire.adjust_nullification(120, 50)
to_chat(target, "<span class='userdanger'>[user]'s prayer to [SSticker.Bible_deity_name] has interfered with your power!</span>")
praying = FALSE
return
@@ -500,7 +500,7 @@
if(holder.l_hand == src || holder.r_hand == src) // Holding this in your hand will
for(var/mob/living/carbon/human/H in range(5, loc))
if(H.mind && H.mind.vampire && !H.mind.vampire.get_ability(/datum/vampire_passive/full))
H.mind.vampire.nullified = max(5, H.mind.vampire.nullified + 2)
H.mind.vampire.adjust_nullification(5, 2)
if(prob(10))
to_chat(H, "<span class='userdanger'>Being in the presence of [holder]'s [src] is interfering with your powers!</span>")
+1
View File
@@ -263,6 +263,7 @@
icon_state = "meson"
item_state = "meson"
resistance_flags = NONE
prescription_upgradable = TRUE
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
sprite_sheets = list(
+3 -1
View File
@@ -618,7 +618,9 @@ BLIND // can't see anything
resistance_flags = NONE
hide_tail_by_species = null
species_restricted = list("exclude","Wryn")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/suit.dmi'
)
//Under clothing
/obj/item/clothing/under
+27 -23
View File
@@ -4,31 +4,33 @@
// Pre-upgraded upgradable glasses
name = "prescription [name]"
/obj/item/clothing/glasses/attackby(obj/item/O as obj, mob/user as mob)
if(user.stat || user.restrained() || !ishuman(user))
/obj/item/clothing/glasses/attackby(obj/item/I, mob/user)
if(!prescription_upgradable || user.stat || user.restrained() || !ishuman(user))
return ..()
var/mob/living/carbon/human/H = user
if(prescription_upgradable)
if(istype(O, /obj/item/clothing/glasses/regular))
if(prescription)
to_chat(H, "You can't possibly imagine how adding more lenses would improve \the [name].")
return
H.unEquip(O)
O.loc = src // Store the glasses for later removal
to_chat(H, "You fit \the [name] with lenses from \the [O].")
prescription = 1
name = "prescription [name]"
// Adding prescription glasses
if(istype(I, /obj/item/clothing/glasses/regular))
if(prescription)
to_chat(H, "<span class='warning'>You can't possibly imagine how adding more lenses would improve [src].</span>")
return
if(prescription && istype(O, /obj/item/screwdriver))
var/obj/item/clothing/glasses/regular/G = locate() in src
if(!G)
G = new(get_turf(H))
to_chat(H, "You salvage the prescription lenses from \the [name].")
prescription = 0
name = initial(name)
H.put_in_hands(G)
return
return ..()
H.unEquip(I)
I.loc = src // Store the glasses for later removal
to_chat(H, "<span class='notice'>You fit [src] with lenses from [I].</span>")
prescription = TRUE
name = "prescription [initial(name)]"
// Removing prescription glasses
else if(prescription && istype(I, /obj/item/screwdriver))
var/obj/item/clothing/glasses/regular/G = locate() in src
if(!G)
G = new(src)
to_chat(H, "<span class='notice'>You salvage the prescription lenses from [src].</span>")
prescription = FALSE
name = initial(name)
H.put_in_hands(G)
H.update_nearsighted_effects()
/obj/item/clothing/glasses/visor_toggling()
..()
@@ -114,7 +116,7 @@
icon_state = "purple"
item_state = "glasses"
origin_tech = "magnets=2;engineering=1"
prescription_upgradable = 0
prescription_upgradable = TRUE
scan_reagents = 1 //You can see reagents while wearing science goggles
resistance_flags = ACID_PROOF
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
@@ -135,6 +137,7 @@
icon_state = "nvpurple"
item_state = "glasses"
see_in_dark = 8
prescription_upgradable = FALSE
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE //don't render darkness while wearing these
/obj/item/clothing/glasses/janitor
@@ -454,6 +457,7 @@
vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
scan_reagents = 1
prescription = TRUE
flags = NODROP
flags_cover = null
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
@@ -203,6 +203,7 @@
reagent_state = LIQUID
color = "#7DFF00"
taste_description = "slime"
can_synth = FALSE
/datum/reagent/stable_mutagen/on_new(data)
..()
@@ -284,7 +284,7 @@
update_flags |= M.adjustStaminaLoss(5, FALSE)
if(prob(20))
M.emote("scream")
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
M.mind.vampire.adjust_nullification(5, 2)
M.mind.vampire.bloodusable = max(M.mind.vampire.bloodusable - 3,0)
if(M.mind.vampire.bloodusable)
V.vomit(0,1)
@@ -296,7 +296,7 @@
switch(current_cycle)
if(1 to 4)
to_chat(M, "<span class = 'warning'>Something sizzles in your veins!</span>")
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
M.mind.vampire.adjust_nullification(5, 2)
if(5 to 12)
to_chat(M, "<span class = 'danger'>You feel an intense burning inside of you!</span>")
update_flags |= M.adjustFireLoss(1, FALSE)
@@ -304,7 +304,7 @@
M.Jitter(20)
if(prob(20))
M.emote("scream")
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
M.mind.vampire.adjust_nullification(5, 2)
if(13 to INFINITY)
to_chat(M, "<span class = 'danger'>You suddenly ignite in a holy fire!</span>")
for(var/mob/O in viewers(M, null))
@@ -316,7 +316,7 @@
M.Jitter(30)
if(prob(40))
M.emote("scream")
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
M.mind.vampire.adjust_nullification(5, 2)
return ..() | update_flags
@@ -333,7 +333,7 @@
return
else
to_chat(M, "<span class='warning'>Something holy interferes with your powers!</span>")
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
M.mind.vampire.adjust_nullification(5, 2)
/datum/reagent/holywater/reaction_turf(turf/simulated/T, volume)
@@ -154,19 +154,6 @@
result_amount = 3
mix_message = "The substance turns neon green and bubbles unnervingly."
/datum/chemical_reaction/stable_mutagen
name = "Stable mutagen"
id = "stable_mutagen"
result = "stable_mutagen"
required_reagents = list("mutagen" = 1, "lithium" = 1, "acetone" = 1, "bromine" = 1)
result_amount = 3
mix_message = "The substance turns a drab green and begins to bubble."
/datum/chemical_reaction/stable_mutagen/stable_mutagen2
id = "stable_mutagen2"
required_reagents = list("mutadone" = 3, "lithium" = 1)
result_amount = 4
/datum/chemical_reaction/rotatium
name = "Rotatium"
id = "Rotatium"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 KiB

After

Width:  |  Height:  |  Size: 303 KiB

+1 -1
View File
@@ -49,7 +49,7 @@ export const NuclearBomb = (props, context) => {
<Button
icon={data.anchored ? 'check' : 'times'}
selected={data.anchored}
disabled={!data.authfull}
disabled={!data.authdisk}
content={data.anchored ? 'YES' : 'NO'}
onClick={() => act("toggle_anchor")} />
</LabeledList.Item>
File diff suppressed because one or more lines are too long