mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
Fix bundle
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
..()
|
||||
if(!affected_mob.dna)
|
||||
cure()
|
||||
if(affected_mob.dna.species.specflags & NOTRANSSTING) //Only species that can be spread by transformation sting can be spread by the retrovirus
|
||||
cure()
|
||||
|
||||
if(!strain_data["dna"])
|
||||
//Absorbs the target DNA.
|
||||
|
||||
@@ -36,6 +36,11 @@
|
||||
user << "<span class='warning'>You cannot glare at allies!</span>"
|
||||
revert_cast()
|
||||
return
|
||||
var/mob/living/L = user
|
||||
if(L.incorporeal_move) //Other abilities can still be used, but glare needed balancing
|
||||
user << "<span class='warning'>You cannot glare while shadow walking!</span>"
|
||||
revert_cast()
|
||||
return
|
||||
var/mob/living/carbon/human/M = target
|
||||
user.visible_message("<span class='warning'><b>[user]'s eyes flash a blinding red!</b></span>")
|
||||
target.visible_message("<span class='danger'>[target] freezes in place, their eyes glazing over...</span>")
|
||||
|
||||
@@ -374,11 +374,12 @@ var/list/airlock_overlays = list()
|
||||
if("closing")
|
||||
update_icon(AIRLOCK_CLOSING)
|
||||
if("deny")
|
||||
update_icon(AIRLOCK_DENY)
|
||||
playsound(src,doorDeni,50,0,3)
|
||||
sleep(6)
|
||||
update_icon(AIRLOCK_CLOSED)
|
||||
icon_state = "closed"
|
||||
if(!stat)
|
||||
update_icon(AIRLOCK_DENY)
|
||||
playsound(src,doorDeni,50,0,3)
|
||||
sleep(6)
|
||||
update_icon(AIRLOCK_CLOSED)
|
||||
icon_state = "closed"
|
||||
|
||||
/obj/machinery/door/airlock/examine(mob/user)
|
||||
..()
|
||||
|
||||
@@ -179,6 +179,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
|
||||
*/
|
||||
|
||||
var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
|
||||
new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 2, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("pylon", /obj/structure/cult/pylon, 4, time = 40, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("forge", /obj/structure/cult/forge, 6, time = 40, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("archives", /obj/structure/cult/tome, 4, time = 40, one_per_turf = 1, on_floor = 1), \
|
||||
|
||||
@@ -463,7 +463,7 @@
|
||||
boxes.layer = 19
|
||||
closer = new /obj/screen/close()
|
||||
closer.master = src
|
||||
closer.icon_state = "x"
|
||||
closer.icon_state = "backpack_close"
|
||||
closer.layer = 20
|
||||
orient2hud()
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets...
|
||||
return
|
||||
var/mob/living/L = AM
|
||||
if(L.buckled || L.buckled_mobs.len)
|
||||
if(L.buckled || L.incorporeal_move || L.buckled_mobs.len)
|
||||
return
|
||||
if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items.
|
||||
if(horizontal && !L.lying)
|
||||
@@ -259,7 +259,7 @@
|
||||
"<span class='notice'>You stuff [O] into [src].</span>", \
|
||||
"<span class='italics'>You hear a loud metal bang.</span>")
|
||||
var/mob/living/L = O
|
||||
if(istype(L))
|
||||
if(istype(L) && !issilicon(L))
|
||||
L.Weaken(2)
|
||||
step_towards(O, loc)
|
||||
close()
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
layer = 2.9
|
||||
var/state = GIRDER_NORMAL
|
||||
var/girderpasschance = 20 // percentage chance that a projectile passes through the girder.
|
||||
var/can_displace = TRUE //If the girder can be moved around by wrenching it
|
||||
|
||||
/obj/structure/girder/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
@@ -49,7 +50,7 @@
|
||||
var/obj/structure/girder/G = new (loc)
|
||||
transfer_fingerprints_to(G)
|
||||
qdel(src)
|
||||
else if(state == GIRDER_NORMAL)
|
||||
else if(state == GIRDER_NORMAL && can_displace)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
user << "<span class='notice'>You start unsecuring the girder...</span>"
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
@@ -311,16 +312,22 @@
|
||||
|
||||
//////////////////////////////////////////// cult girder //////////////////////////////////////////////
|
||||
|
||||
/obj/structure/cultgirder
|
||||
icon= 'icons/obj/cult.dmi'
|
||||
/obj/structure/girder/cult
|
||||
name = "runed girder"
|
||||
desc = "Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts."
|
||||
icon = 'icons/obj/cult.dmi'
|
||||
icon_state= "cultgirder"
|
||||
anchored = 1
|
||||
density = 1
|
||||
layer = 2
|
||||
can_displace = FALSE
|
||||
|
||||
/obj/structure/cultgirder/attackby(obj/item/W, mob/user, params)
|
||||
/obj/structure/girder/cult/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
if(istype(W, /obj/item/weapon/tome) && iscultist(user)) //Cultists can demolish cult girders instantly with their tomes
|
||||
user.visible_message("<span class='warning'>[user] strikes [src] with [W]!</span>", "<span class='notice'>You demolish [src].</span>")
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0,user))
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
||||
@@ -329,7 +336,8 @@
|
||||
if( !WT.isOn() )
|
||||
return
|
||||
user << "<span class='notice'>You slice apart the girder.</span>"
|
||||
var/obj/effect/decal/remains/human/R = new (get_turf(src))
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
|
||||
@@ -338,32 +346,54 @@
|
||||
playsound(src, 'sound/items/Welder.ogg', 100, 1)
|
||||
if(do_after(user, 30, target = src))
|
||||
user << "<span class='notice'>You slice apart the girder.</span>"
|
||||
var/obj/effect/decal/remains/human/R = new (get_turf(src))
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
|
||||
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
|
||||
user << "<span class='notice'>Your jackhammer smashes through the girder!</span>"
|
||||
var/obj/effect/decal/remains/human/R = new (get_turf(src))
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
transfer_fingerprints_to(R)
|
||||
D.playDigSound()
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/cultgirder/blob_act()
|
||||
else if(istype(W, /obj/item/stack/sheet/runed_metal))
|
||||
var/obj/item/stack/sheet/runed_metal/R = W
|
||||
if(R.amount < 2)
|
||||
user << "<span class='warning'>You need at least two sheets of runed metal to construct a runed wall!</span>"
|
||||
return 0
|
||||
user.visible_message("<span class='notice'>[user] begins laying runed metal on [src]...</span>", "<span class='notice'>You begin constructing a runed wall...</span>")
|
||||
if(!do_after(user, 50, target = src))
|
||||
return 0
|
||||
user.visible_message("<span class='notice'>[user] plates [src] with runed metal.</span>", "<span class='notice'>You construct a runed wall.</span>")
|
||||
R.amount -= 2
|
||||
if(R.amount <= 0)
|
||||
user.drop_item()
|
||||
qdel(R)
|
||||
new/turf/simulated/wall/cult(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/girder/cult/blob_act()
|
||||
if(prob(40))
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/cultgirder/ex_act(severity, target)
|
||||
/obj/structure/girder/cult/ex_act(severity, target)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
if(2)
|
||||
if(prob(30))
|
||||
new /obj/effect/decal/remains/human(loc)
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
qdel(src)
|
||||
if(3)
|
||||
if(prob(5))
|
||||
new /obj/effect/decal/remains/human(loc)
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
qdel(src)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/turf/simulated/wall/cult
|
||||
name = "wall"
|
||||
desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."
|
||||
name = "runed wall"
|
||||
desc = "A cold metal wall engraved with indecipherable symbols. Studying them causes your head to pound."
|
||||
icon = 'icons/turf/walls/cult_wall.dmi'
|
||||
icon_state = "cult"
|
||||
walltype = "cult"
|
||||
@@ -12,8 +12,9 @@
|
||||
..()
|
||||
|
||||
/turf/simulated/wall/cult/break_wall()
|
||||
new /obj/effect/decal/cleanable/blood(src)
|
||||
return (new /obj/structure/cultgirder(src))
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
return (new /obj/structure/girder/cult(src))
|
||||
|
||||
/turf/simulated/wall/cult/devastate_wall()
|
||||
new /obj/effect/decal/cleanable/blood(src)
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
set waitfor = 0
|
||||
playsound_global('sound/magic/lightning_chargeup.ogg', repeat=0, channel=1, volume=100)
|
||||
sleep(80)
|
||||
priority_announce("Attention personnel of [world.name]: incoming portal storm!")
|
||||
priority_announce("Massive bluespace anomaly detected en route to [station_name()]. Brace for impact.")
|
||||
sleep(20)
|
||||
playsound_global('sound/magic/lightningbolt.ogg', repeat=0, channel=1, volume=100)
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
|
||||
/turf/simulated/mineral/gibtonite/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) && stage == 1)
|
||||
user.visible_message("<span class='notice'>You use [I] to locate where to cut off the chain reaction and attempt to stop it...</span>")
|
||||
user.visible_message("<span class='notice'>[user] holds [I] to [src]...</span>", "<span class='notice'>You use [I] to locate where to cut off the chain reaction and attempt to stop it...</span>")
|
||||
defuse()
|
||||
..()
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
if(stat == DEAD)
|
||||
return
|
||||
if(!gibbed)
|
||||
emote("me", 1, "sparks and its screen flickers, its systems slowly coming to a halt.")
|
||||
visible_message("<b>[src]</b> lets out a flurry of sparks, its screen flickering as its systems slowly halt.")
|
||||
stat = DEAD
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
if(stat == DEAD)
|
||||
return
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
visible_message("<b>[src]</b> shudders violently for a moment before falling still, its eyes slowly darkening.")
|
||||
locked = 0 //unlock cover
|
||||
stat = DEAD
|
||||
update_canmove()
|
||||
|
||||
@@ -66,9 +66,8 @@
|
||||
max_ammo = 6
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/cylinder/rev38/can_load(mob/user)
|
||||
user << "<span class='notice'>You start reloading \the [src]...</span>"
|
||||
if(!do_after(user, 30))
|
||||
user << "<span class='danger'>You didn't manage to reload \the [src]!</span>"
|
||||
user << "<span class='notice'>You start reloading...</span>"
|
||||
if(!do_after(user, 30, target = user))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 115 KiB |
Reference in New Issue
Block a user