mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 13:38:41 +01:00
Merge branch 'master' into shuttle-processing
Conflicts: code/modules/shuttle/ripple.dm
This commit is contained in:
@@ -9,9 +9,9 @@
|
||||
w_class = 2
|
||||
|
||||
/obj/item/bodybag/attack_self(mob/user)
|
||||
var/obj/structure/closet/body_bag/R = new unfoldedbag_path(user.loc)
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
var/obj/structure/closet/body_bag/R = new unfoldedbag_path(user.loc)
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/bodybags
|
||||
@@ -21,13 +21,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/bodybags/New()
|
||||
..()
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/bodybag(src)
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/bodybag(src)
|
||||
|
||||
|
||||
/obj/structure/closet/body_bag
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/latexballon
|
||||
name = "latex glove"
|
||||
desc = "" //todo
|
||||
desc = "Sterile and airtight."
|
||||
icon_state = "latexballon"
|
||||
item_state = "lgloves"
|
||||
force = 0
|
||||
@@ -48,7 +48,6 @@
|
||||
/obj/item/latexballon/temperature_expose(datum/gas_mixture/air, temperature, volume)
|
||||
if(temperature > T0C+100)
|
||||
burst()
|
||||
return
|
||||
|
||||
/obj/item/latexballon/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/tank))
|
||||
|
||||
Executable → Regular
@@ -64,5 +64,6 @@
|
||||
name = "crushed can"
|
||||
icon_state = "cola"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/attack(mob/M, mob/living/user)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -215,7 +215,6 @@ RCD
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
rcd_list += src
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/rcd/Destroy()
|
||||
@@ -288,7 +287,6 @@ RCD
|
||||
|
||||
if(prob(20))
|
||||
src.spark_system.start()
|
||||
return
|
||||
|
||||
/obj/item/weapon/rcd/proc/activate()
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
@@ -472,15 +470,34 @@ RCD
|
||||
|
||||
/obj/item/weapon/rcd/proc/checkResource(amount, mob/user)
|
||||
return matter >= amount
|
||||
|
||||
/obj/item/weapon/rcd/proc/detonate_pulse()
|
||||
audible_message("<span class='danger'><b>[src] begins to vibrate and \
|
||||
buzz loudly!</b></span>","<span class='danger'><b>[src] begins \
|
||||
vibrating violently!</b></span>")
|
||||
// 5 seconds to get rid of it
|
||||
addtimer(src, "detonate_pulse_explode", 50)
|
||||
|
||||
/obj/item/weapon/rcd/proc/detonate_pulse_explode()
|
||||
explosion(src, 0, 0, 3, 1, flame_range = 1)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/rcd/borg/useResource(amount, mob/user)
|
||||
if(!isrobot(user))
|
||||
return 0
|
||||
return user:cell:use(amount * 72) //borgs get 1.3x the use of their RCDs
|
||||
var/mob/living/silicon/robot/borgy = user
|
||||
if(!borgy.cell)
|
||||
return 0
|
||||
return borgy.cell.use(amount * 72) //borgs get 1.3x the use of their RCDs
|
||||
|
||||
/obj/item/weapon/rcd/borg/checkResource(amount, mob/user)
|
||||
if(!isrobot(user))
|
||||
return 0
|
||||
return user:cell:charge >= (amount * 72)
|
||||
var/mob/living/silicon/robot/borgy = user
|
||||
if(!borgy.cell)
|
||||
return 0
|
||||
return borgy.cell.charge >= (amount * 72)
|
||||
|
||||
/obj/item/weapon/rcd/borg/New()
|
||||
..()
|
||||
|
||||
@@ -240,20 +240,21 @@
|
||||
holo_integrity = 3
|
||||
var/shockcd = 0
|
||||
|
||||
/obj/effect/overlay/holograph/barrier/cyborg/hacked/proc/cooldown()
|
||||
shockcd = FALSE
|
||||
|
||||
/obj/effect/overlay/holograph/barrier/cyborg/hacked/attack_hand(mob/living/user)
|
||||
if(!shockcd)
|
||||
if(ismob(user))
|
||||
var/mob/living/M = user
|
||||
M.electrocute_act(15,"Energy Barrier", safety=1)
|
||||
shockcd = 1
|
||||
spawn(10)
|
||||
shockcd = 0
|
||||
shockcd = TRUE
|
||||
addtimer(src, "cooldown", 10)
|
||||
|
||||
/obj/effect/overlay/holograph/barrier/cyborg/hacked/Bumped(atom/user)
|
||||
if(!shockcd)
|
||||
if(ismob(user))
|
||||
var/mob/living/M = user
|
||||
M.electrocute_act(15,"Energy Barrier", safety=1)
|
||||
shockcd = 1
|
||||
spawn(10)
|
||||
shockcd = 0
|
||||
shockcd = TRUE
|
||||
addtimer(src, "cooldown", 10)
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
M.reagents.add_reagent(forkload.id, 1)
|
||||
icon_state = "fork"
|
||||
forkload = null
|
||||
return
|
||||
|
||||
else if(user.zone_selected == "eyes")
|
||||
if(user.disabilities & CLUMSY && prob(50))
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
heat = 3500
|
||||
|
||||
/obj/item/weapon/melee/energy/suicide_act(mob/user)
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>"))
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on [src]! It looks like \he's trying to commit suicide.</span>"))
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/weapon/melee/energy/add_blood(list/blood_dna)
|
||||
@@ -99,7 +99,6 @@
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/energy/is_hot()
|
||||
return active * heat
|
||||
@@ -156,21 +155,19 @@
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber/attackby(obj/item/weapon/W, mob/living/user, params)
|
||||
if(istype(W, /obj/item/weapon/melee/energy/sword/saber))
|
||||
if(W == src)
|
||||
user << "<span class='notice'>You try to attach the end of the energy sword to... itself. You're not very smart, are you?</span>"
|
||||
if(ishuman(user))
|
||||
user.adjustBrainLoss(10)
|
||||
else
|
||||
user << "<span class='notice'>You attach the ends of the two energy swords, making a single double-bladed weapon! You're cool.</span>"
|
||||
var/obj/item/weapon/twohanded/dualsaber/newSaber = new /obj/item/weapon/twohanded/dualsaber(user.loc)
|
||||
if(src.hacked) // That's right, we'll only check the "original" esword.
|
||||
newSaber.hacked = 1
|
||||
newSaber.item_color = "rainbow"
|
||||
user.unEquip(W)
|
||||
user.unEquip(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
user.put_in_hands(newSaber)
|
||||
user << "<span class='notice'>You attach the ends of the two \
|
||||
energy swords, making a single double-bladed weapon! \
|
||||
You're cool.</span>"
|
||||
var/obj/item/weapon/melee/energy/sword/saber/other_esword = W
|
||||
var/obj/item/weapon/twohanded/dualsaber/newSaber = new(user.loc)
|
||||
if(hacked || other_esword.hacked)
|
||||
newSaber.hacked = TRUE
|
||||
newSaber.item_color = "rainbow"
|
||||
user.unEquip(W)
|
||||
user.unEquip(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
user.put_in_hands(newSaber)
|
||||
else if(istype(W, /obj/item/device/multitool))
|
||||
if(hacked == 0)
|
||||
hacked = 1
|
||||
|
||||
@@ -35,49 +35,46 @@
|
||||
var/on = 1
|
||||
|
||||
/obj/item/weapon/melee/classic_baton/attack(mob/target, mob/living/user)
|
||||
if(on)
|
||||
add_fingerprint(user)
|
||||
if((CLUMSY in user.disabilities) && prob(50))
|
||||
user << "<span class ='danger'>You club yourself over the head.</span>"
|
||||
user.Weaken(3 * force)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.apply_damage(2*force, BRUTE, "head")
|
||||
else
|
||||
user.take_organ_damage(2*force)
|
||||
return
|
||||
if(isrobot(target))
|
||||
..()
|
||||
return
|
||||
if(!isliving(target))
|
||||
return
|
||||
if (user.a_intent == "harm")
|
||||
if(!..()) return
|
||||
if(!isrobot(target)) return
|
||||
else
|
||||
if(cooldown <= 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
if (H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK))
|
||||
return
|
||||
playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1)
|
||||
target.Weaken(3)
|
||||
add_logs(user, target, "stunned", src)
|
||||
src.add_fingerprint(user)
|
||||
target.visible_message("<span class ='danger'>[user] has knocked down [target] with \the [src]!</span>", \
|
||||
"<span class ='userdanger'>[user] has knocked down [target] with \the [src]!</span>")
|
||||
if(!iscarbon(user))
|
||||
target.LAssailant = null
|
||||
else
|
||||
target.LAssailant = user
|
||||
cooldown = 1
|
||||
spawn(40)
|
||||
cooldown = 0
|
||||
return
|
||||
else
|
||||
if(!on)
|
||||
return ..()
|
||||
|
||||
|
||||
add_fingerprint(user)
|
||||
if((CLUMSY in user.disabilities) && prob(50))
|
||||
user << "<span class ='danger'>You club yourself over the head.</span>"
|
||||
user.Weaken(3 * force)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.apply_damage(2*force, BRUTE, "head")
|
||||
else
|
||||
user.take_organ_damage(2*force)
|
||||
return
|
||||
if(isrobot(target))
|
||||
..()
|
||||
return
|
||||
if(!isliving(target))
|
||||
return
|
||||
if (user.a_intent == "harm")
|
||||
if(!..())
|
||||
return
|
||||
if(!isrobot(target))
|
||||
return
|
||||
else
|
||||
if(cooldown <= world.time)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
if (H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK))
|
||||
return
|
||||
playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1)
|
||||
target.Weaken(3)
|
||||
add_logs(user, target, "stunned", src)
|
||||
src.add_fingerprint(user)
|
||||
target.visible_message("<span class ='danger'>[user] has knocked down [target] with \the [src]!</span>", \
|
||||
"<span class ='userdanger'>[user] has knocked down [target] with \the [src]!</span>")
|
||||
if(!iscarbon(user))
|
||||
target.LAssailant = null
|
||||
else
|
||||
target.LAssailant = user
|
||||
cooldown = world.time + 40
|
||||
|
||||
/obj/item/weapon/melee/classic_baton/telescopic
|
||||
name = "telescopic baton"
|
||||
@@ -108,7 +105,6 @@
|
||||
qdel(B)
|
||||
gibs(H.loc, H.viruses, H.dna)
|
||||
return (BRUTELOSS)
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/classic_baton/telescopic/attack_self(mob/user)
|
||||
on = !on
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
/obj/item/weapon/caution
|
||||
desc = "Caution! Wet Floor!"
|
||||
name = "wet floor sign"
|
||||
|
||||
@@ -55,28 +55,27 @@
|
||||
name = "any color"
|
||||
icon_state = "paint_neutral"
|
||||
|
||||
attack_self(mob/user)
|
||||
var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "blue", "green", "yellow", "violet", "black", "white")
|
||||
if ((user.get_active_hand() != src || user.stat || user.restrained()))
|
||||
return
|
||||
switch(t1)
|
||||
if("red")
|
||||
item_color = "C73232"
|
||||
if("blue")
|
||||
item_color = "5998FF"
|
||||
if("green")
|
||||
item_color = "2A9C3B"
|
||||
if("yellow")
|
||||
item_color = "CFB52B"
|
||||
if("violet")
|
||||
item_color = "AE4CCD"
|
||||
if("white")
|
||||
item_color = "FFFFFF"
|
||||
if("black")
|
||||
item_color = "333333"
|
||||
icon_state = "paint_[t1]"
|
||||
add_fingerprint(user)
|
||||
/obj/item/weapon/paint/anycolor/attack_self(mob/user)
|
||||
var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "blue", "green", "yellow", "violet", "black", "white")
|
||||
if ((user.get_active_hand() != src || user.stat || user.restrained()))
|
||||
return
|
||||
switch(t1)
|
||||
if("red")
|
||||
item_color = "C73232"
|
||||
if("blue")
|
||||
item_color = "5998FF"
|
||||
if("green")
|
||||
item_color = "2A9C3B"
|
||||
if("yellow")
|
||||
item_color = "CFB52B"
|
||||
if("violet")
|
||||
item_color = "AE4CCD"
|
||||
if("white")
|
||||
item_color = "FFFFFF"
|
||||
if("black")
|
||||
item_color = "333333"
|
||||
icon_state = "paint_[t1]"
|
||||
add_fingerprint(user)
|
||||
|
||||
|
||||
/obj/item/weapon/paint/afterattack(turf/target, mob/user, proximity)
|
||||
@@ -87,15 +86,14 @@
|
||||
if(!istype(target) || istype(target, /turf/open/space))
|
||||
return
|
||||
target.color = "#" + item_color
|
||||
return
|
||||
|
||||
/obj/item/weapon/paint/paint_remover
|
||||
gender = PLURAL
|
||||
name = "paint remover"
|
||||
icon_state = "paint_neutral"
|
||||
|
||||
afterattack(turf/target, mob/user,proximity)
|
||||
if(!proximity) return
|
||||
if(istype(target) && target.color != initial(target.color))
|
||||
target.color = initial(target.color)
|
||||
/obj/item/weapon/paint/paint_remover/afterattack(turf/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(istype(target) && target.color != initial(target.color))
|
||||
target.color = initial(target.color)
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
..()
|
||||
bcell = new(src)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/baton/proc/deductcharge(chrgdeductamt)
|
||||
if(bcell)
|
||||
|
||||
Reference in New Issue
Block a user