mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 19:13:30 +01:00
merge conflict fix
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
/* Alien shit!
|
||||
* Contains:
|
||||
* effect/acid
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Acid
|
||||
*/
|
||||
/obj/effect/acid
|
||||
gender = PLURAL
|
||||
name = "acid"
|
||||
desc = "Burbling corrossive stuff."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "acid"
|
||||
density = 0
|
||||
opacity = 0
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
var/atom/target
|
||||
var/ticks = 0
|
||||
var/target_strength = 0
|
||||
|
||||
|
||||
/obj/effect/acid/New(loc, targ)
|
||||
..(loc)
|
||||
target = targ
|
||||
|
||||
//handle APCs and newscasters and stuff nicely
|
||||
pixel_x = target.pixel_x
|
||||
pixel_y = target.pixel_y
|
||||
|
||||
if(isturf(target)) //Turfs take twice as long to take down.
|
||||
target_strength = 640
|
||||
else
|
||||
target_strength = 320
|
||||
tick()
|
||||
|
||||
|
||||
/obj/effect/acid/proc/tick()
|
||||
if(!target)
|
||||
qdel(src)
|
||||
|
||||
ticks++
|
||||
|
||||
if(ticks >= target_strength)
|
||||
target.visible_message("<span class='warning'>[target] collapses under its own weight into a puddle of goop and undigested debris!</span>")
|
||||
|
||||
if(istype(target, /obj/structure/closet))
|
||||
var/obj/structure/closet/T = target
|
||||
T.dump_contents()
|
||||
qdel(target)
|
||||
|
||||
if(istype(target, /turf/simulated/mineral))
|
||||
var/turf/simulated/mineral/M = target
|
||||
M.ChangeTurf(/turf/simulated/floor/plating/airless/asteroid)
|
||||
|
||||
if(istype(target, /turf/simulated/floor))
|
||||
var/turf/simulated/floor/F = target
|
||||
F.ChangeTurf(/turf/space)
|
||||
|
||||
if(istype(target, /turf/simulated/wall))
|
||||
var/turf/simulated/wall/W = target
|
||||
W.dismantle_wall(1)
|
||||
|
||||
else
|
||||
qdel(target)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
x = target.x
|
||||
y = target.y
|
||||
z = target.z
|
||||
|
||||
switch(target_strength - ticks)
|
||||
if(480)
|
||||
visible_message("<span class='warning'>[target] is holding up against the acid!</span>")
|
||||
if(320)
|
||||
visible_message("<span class='warning'>[target] is being melted by the acid!</span>")
|
||||
if(160)
|
||||
visible_message("<span class='warning'>[target] is struggling to withstand the acid!</span>")
|
||||
if(80)
|
||||
visible_message("<span class='warning'>[target] begins to crumble under the acid!</span>")
|
||||
|
||||
spawn(1)
|
||||
if(src)
|
||||
tick()
|
||||
@@ -1,510 +0,0 @@
|
||||
/* Alien shit!
|
||||
* Contains:
|
||||
* structure/alien
|
||||
* Resin
|
||||
* Weeds
|
||||
* Egg
|
||||
* effect/acid
|
||||
*/
|
||||
|
||||
#define WEED_NORTH_EDGING "north"
|
||||
#define WEED_SOUTH_EDGING "south"
|
||||
#define WEED_EAST_EDGING "east"
|
||||
#define WEED_WEST_EDGING "west"
|
||||
|
||||
/obj/structure/alien
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
|
||||
/*
|
||||
* Resin
|
||||
*/
|
||||
/obj/structure/alien/resin
|
||||
name = "resin"
|
||||
desc = "Looks like some kind of thick resin."
|
||||
icon = 'icons/obj/smooth_structures/alien/resin_wall.dmi'
|
||||
icon_state = "resin"
|
||||
density = 1
|
||||
opacity = 1
|
||||
anchored = 1
|
||||
canSmoothWith = list(/obj/structure/alien/resin)
|
||||
var/health = 200
|
||||
var/resintype = null
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
/obj/structure/alien/resin/initialize()
|
||||
air_update_turf(1)
|
||||
..()
|
||||
|
||||
/obj/structure/alien/resin/Destroy()
|
||||
air_update_turf(1)
|
||||
return ..()
|
||||
|
||||
/obj/structure/alien/resin/Move()
|
||||
var/turf/T = loc
|
||||
..()
|
||||
move_update_air(T)
|
||||
|
||||
/obj/structure/alien/resin/CanAtmosPass()
|
||||
return !density
|
||||
|
||||
/obj/structure/alien/resin/wall
|
||||
name = "resin wall"
|
||||
desc = "Thick resin solidified into a wall."
|
||||
icon = 'icons/obj/smooth_structures/alien/resin_wall.dmi'
|
||||
icon_state = "wall0" //same as resin, but consistency ho!
|
||||
resintype = "wall"
|
||||
canSmoothWith = list(/obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane)
|
||||
|
||||
/obj/structure/alien/resin/wall/BlockSuperconductivity()
|
||||
return 1
|
||||
|
||||
/obj/structure/alien/resin/wall/shadowling //For chrysalis
|
||||
name = "chrysalis wall"
|
||||
desc = "Some sort of purple substance in an egglike shape. It pulses and throbs from within and seems impenetrable."
|
||||
health = INFINITY
|
||||
|
||||
/obj/structure/alien/resin/membrane
|
||||
name = "resin membrane"
|
||||
desc = "Resin just thin enough to let light pass through."
|
||||
icon = 'icons/obj/smooth_structures/alien/resin_membrane.dmi'
|
||||
icon_state = "membrane0"
|
||||
opacity = 0
|
||||
health = 120
|
||||
resintype = "membrane"
|
||||
canSmoothWith = list(/obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane)
|
||||
|
||||
/obj/structure/alien/resin/proc/healthcheck()
|
||||
if(health <=0)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/alien/resin/bullet_act(obj/item/projectile/Proj)
|
||||
if(Proj.damage_type == BRUTE || Proj.damage_type == BURN)
|
||||
health -= Proj.damage
|
||||
..()
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/resin/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
health -= 150
|
||||
if(2)
|
||||
health -= 100
|
||||
if(3)
|
||||
health -= 50
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/resin/blob_act()
|
||||
health -= 50
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/resin/hitby(atom/movable/AM)
|
||||
..()
|
||||
var/tforce = 0
|
||||
if(ismob(AM))
|
||||
tforce = 10
|
||||
else if(isobj(AM))
|
||||
var/obj/O = AM
|
||||
tforce = O.throwforce
|
||||
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
health -= tforce
|
||||
healthcheck()
|
||||
|
||||
/obj/structure/alien/resin/attack_hand(mob/living/user)
|
||||
if(HULK in user.mutations)
|
||||
user.do_attack_animation(src)
|
||||
user.visible_message("<span class='danger'>[user] destroys [src]!</span>")
|
||||
health = 0
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/resin/attack_alien(mob/living/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if(islarva(user))
|
||||
return
|
||||
user.visible_message("<span class='danger'>[user] claws at the resin!</span>")
|
||||
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
health -= 50
|
||||
if(health <= 0)
|
||||
user.visible_message("<span class='danger'>[user] slices the [name] apart!</span>")
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/resin/attackby(obj/item/I, mob/living/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
health -= I.force
|
||||
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
healthcheck()
|
||||
..()
|
||||
|
||||
|
||||
/obj/structure/alien/resin/CanPass(atom/movable/mover, turf/target, height=0)
|
||||
if(istype(mover) && mover.checkpass(PASSGLASS))
|
||||
return !opacity
|
||||
return !density
|
||||
|
||||
|
||||
/*
|
||||
* Weeds
|
||||
*/
|
||||
|
||||
#define NODERANGE 3
|
||||
|
||||
/obj/structure/alien/weeds
|
||||
gender = PLURAL
|
||||
name = "resin floor"
|
||||
desc = "A thick resin surface covers the floor."
|
||||
icon_state = "weeds"
|
||||
anchored = 1
|
||||
density = 0
|
||||
layer = 2
|
||||
var/health = 15
|
||||
var/obj/structure/alien/weeds/node/linked_node = null
|
||||
var/static/list/weedImageCache
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/New(pos, node)
|
||||
..()
|
||||
linked_node = node
|
||||
if(istype(loc, /turf/space))
|
||||
qdel(src)
|
||||
return
|
||||
if(icon_state == "weeds")
|
||||
icon_state = pick("weeds", "weeds1", "weeds2")
|
||||
fullUpdateWeedOverlays()
|
||||
spawn(rand(150, 200))
|
||||
if(src)
|
||||
Life()
|
||||
|
||||
/obj/structure/alien/weeds/Destroy()
|
||||
var/turf/T = loc
|
||||
for(var/obj/structure/alien/weeds/W in range(1,T))
|
||||
W.updateWeedOverlays()
|
||||
linked_node = null
|
||||
return ..()
|
||||
|
||||
/obj/structure/alien/weeds/proc/Life()
|
||||
set background = BACKGROUND_ENABLED
|
||||
var/turf/U = get_turf(src)
|
||||
|
||||
if(istype(U, /turf/space))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if(!linked_node || get_dist(linked_node, src) > linked_node.node_range)
|
||||
return
|
||||
|
||||
for(var/turf/T in U.GetAtmosAdjacentTurfs())
|
||||
|
||||
if(locate(/obj/structure/alien/weeds) in T || istype(T, /turf/space))
|
||||
continue
|
||||
|
||||
new /obj/structure/alien/weeds(T, linked_node)
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/ex_act(severity)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/attackby(obj/item/I, mob/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(I.attack_verb.len)
|
||||
visible_message("<span class='danger'>[user] has [pick(I.attack_verb)] [src] with [I]!</span>")
|
||||
else
|
||||
visible_message("<span class='danger'>[user] has attacked [src] with [I]!</span>")
|
||||
|
||||
var/damage = I.force / 4
|
||||
if(istype(I, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = I
|
||||
if(WT.remove_fuel(0, user))
|
||||
damage = 15
|
||||
playsound(loc, WT.usesound, 100, 1)
|
||||
|
||||
health -= damage
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/proc/healthcheck()
|
||||
if(health <= 0)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 300)
|
||||
health -= 5
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/proc/updateWeedOverlays()
|
||||
|
||||
overlays.Cut()
|
||||
|
||||
if(!weedImageCache || !weedImageCache.len)
|
||||
weedImageCache = list()
|
||||
weedImageCache.len = 4
|
||||
weedImageCache[WEED_NORTH_EDGING] = image('icons/mob/alien.dmi', "weeds_side_n", layer=2.11, pixel_y = -32)
|
||||
weedImageCache[WEED_SOUTH_EDGING] = image('icons/mob/alien.dmi', "weeds_side_s", layer=2.11, pixel_y = 32)
|
||||
weedImageCache[WEED_EAST_EDGING] = image('icons/mob/alien.dmi', "weeds_side_e", layer=2.11, pixel_x = -32)
|
||||
weedImageCache[WEED_WEST_EDGING] = image('icons/mob/alien.dmi', "weeds_side_w", layer=2.11, pixel_x = 32)
|
||||
|
||||
var/turf/N = get_step(src, NORTH)
|
||||
var/turf/S = get_step(src, SOUTH)
|
||||
var/turf/E = get_step(src, EAST)
|
||||
var/turf/W = get_step(src, WEST)
|
||||
if(!locate(/obj/structure/alien) in N.contents)
|
||||
if(istype(N, /turf/simulated/floor))
|
||||
overlays += weedImageCache[WEED_SOUTH_EDGING]
|
||||
if(!locate(/obj/structure/alien) in S.contents)
|
||||
if(istype(S, /turf/simulated/floor))
|
||||
overlays += weedImageCache[WEED_NORTH_EDGING]
|
||||
if(!locate(/obj/structure/alien) in E.contents)
|
||||
if(istype(E, /turf/simulated/floor))
|
||||
overlays += weedImageCache[WEED_WEST_EDGING]
|
||||
if(!locate(/obj/structure/alien) in W.contents)
|
||||
if(istype(W, /turf/simulated/floor))
|
||||
overlays += weedImageCache[WEED_EAST_EDGING]
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/proc/fullUpdateWeedOverlays()
|
||||
for(var/obj/structure/alien/weeds/W in range(1,src))
|
||||
W.updateWeedOverlays()
|
||||
|
||||
//Weed nodes
|
||||
/obj/structure/alien/weeds/node
|
||||
name = "glowing resin"
|
||||
desc = "Blue bioluminescence shines from beneath the surface."
|
||||
icon_state = "weednode"
|
||||
light_range = 1
|
||||
var/node_range = NODERANGE
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/node/New()
|
||||
..(loc, src)
|
||||
|
||||
#undef NODERANGE
|
||||
|
||||
|
||||
/*
|
||||
* Egg
|
||||
*/
|
||||
|
||||
//for the status var
|
||||
#define BURST 0
|
||||
#define BURSTING 1
|
||||
#define GROWING 2
|
||||
#define GROWN 3
|
||||
#define MIN_GROWTH_TIME 1800 //time it takes to grow a hugger
|
||||
#define MAX_GROWTH_TIME 3000
|
||||
|
||||
/obj/structure/alien/egg
|
||||
name = "egg"
|
||||
desc = "A large mottled egg."
|
||||
icon_state = "egg_growing"
|
||||
density = 0
|
||||
anchored = 1
|
||||
var/health = 100
|
||||
var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive
|
||||
layer = MOB_LAYER
|
||||
|
||||
|
||||
/obj/structure/alien/egg/New()
|
||||
new /obj/item/clothing/mask/facehugger(src)
|
||||
..()
|
||||
spawn(rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
|
||||
Grow()
|
||||
|
||||
/obj/structure/alien/egg/attack_hand(mob/living/user)
|
||||
if(user.get_int_organ(/obj/item/organ/internal/xenos/plasmavessel))
|
||||
switch(status)
|
||||
if(BURST)
|
||||
to_chat(user, "<span class='notice'>You clear the hatched egg.</span>")
|
||||
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
|
||||
qdel(src)
|
||||
return
|
||||
if(GROWING)
|
||||
to_chat(user, "<span class='notice'>The child is not developed yet.</span>")
|
||||
return
|
||||
if(GROWN)
|
||||
to_chat(user, "<span class='notice'>You retrieve the child.</span>")
|
||||
Burst(0)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It feels slimy.</span>")
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
|
||||
/obj/structure/alien/egg/proc/GetFacehugger()
|
||||
return locate(/obj/item/clothing/mask/facehugger) in contents
|
||||
|
||||
/obj/structure/alien/egg/proc/Grow()
|
||||
icon_state = "egg"
|
||||
status = GROWN
|
||||
|
||||
/obj/structure/alien/egg/proc/Burst(kill = 1) //drops and kills the hugger if any is remaining
|
||||
if(status == GROWN || status == GROWING)
|
||||
icon_state = "egg_hatched"
|
||||
flick("egg_opening", src)
|
||||
status = BURSTING
|
||||
spawn(15)
|
||||
status = BURST
|
||||
var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
|
||||
if(child)
|
||||
child.loc = get_turf(src)
|
||||
if(kill && istype(child))
|
||||
child.Die()
|
||||
else
|
||||
for(var/mob/M in range(1,src))
|
||||
if(CanHug(M))
|
||||
child.Attach(M)
|
||||
break
|
||||
|
||||
/obj/structure/alien/egg/bullet_act(obj/item/projectile/Proj)
|
||||
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
|
||||
health -= Proj.damage
|
||||
..()
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/egg/attackby(obj/item/I, mob/user, params)
|
||||
if(I.attack_verb.len)
|
||||
visible_message("<span class='danger'>[user] has [pick(I.attack_verb)] [src] with [I]!</span>")
|
||||
else
|
||||
visible_message("<span class='danger'>[user] has attacked [src] with [I]!</span>")
|
||||
|
||||
var/damage = I.force / 4
|
||||
if(istype(I, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = I
|
||||
|
||||
if(WT.remove_fuel(0, user))
|
||||
damage = 15
|
||||
playsound(loc, WT.usesound, 100, 1)
|
||||
|
||||
health -= damage
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/egg/proc/healthcheck()
|
||||
if(health <= 0)
|
||||
if(status != BURST && status != BURSTING)
|
||||
Burst()
|
||||
else if(status == BURST && prob(50))
|
||||
qdel(src) //Remove the egg after it has been hit after bursting.
|
||||
|
||||
|
||||
/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 500)
|
||||
health -= 5
|
||||
healthcheck()
|
||||
|
||||
|
||||
/obj/structure/alien/egg/HasProximity(atom/movable/AM)
|
||||
if(status == GROWN)
|
||||
if(!CanHug(AM))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/C = AM
|
||||
if(C.stat == CONSCIOUS && C.get_int_organ(/obj/item/organ/internal/body_egg/alien_embryo))
|
||||
return
|
||||
|
||||
Burst(0)
|
||||
|
||||
#undef BURST
|
||||
#undef BURSTING
|
||||
#undef GROWING
|
||||
#undef GROWN
|
||||
#undef MIN_GROWTH_TIME
|
||||
#undef MAX_GROWTH_TIME
|
||||
|
||||
|
||||
/*
|
||||
* Acid
|
||||
*/
|
||||
/obj/effect/acid
|
||||
gender = PLURAL
|
||||
name = "acid"
|
||||
desc = "Burbling corrossive stuff."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "acid"
|
||||
density = 0
|
||||
opacity = 0
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
var/atom/target
|
||||
var/ticks = 0
|
||||
var/target_strength = 0
|
||||
|
||||
|
||||
/obj/effect/acid/New(loc, targ)
|
||||
..(loc)
|
||||
target = targ
|
||||
|
||||
//handle APCs and newscasters and stuff nicely
|
||||
pixel_x = target.pixel_x
|
||||
pixel_y = target.pixel_y
|
||||
|
||||
if(isturf(target)) //Turfs take twice as long to take down.
|
||||
target_strength = 640
|
||||
else
|
||||
target_strength = 320
|
||||
tick()
|
||||
|
||||
|
||||
/obj/effect/acid/proc/tick()
|
||||
if(!target)
|
||||
qdel(src)
|
||||
|
||||
ticks++
|
||||
|
||||
if(ticks >= target_strength)
|
||||
target.visible_message("<span class='warning'>[target] collapses under its own weight into a puddle of goop and undigested debris!</span>")
|
||||
|
||||
if(istype(target, /obj/structure/closet))
|
||||
var/obj/structure/closet/T = target
|
||||
T.dump_contents()
|
||||
qdel(target)
|
||||
|
||||
if(istype(target, /turf/simulated/mineral))
|
||||
var/turf/simulated/mineral/M = target
|
||||
M.ChangeTurf(/turf/simulated/floor/plating/airless/asteroid)
|
||||
|
||||
if(istype(target, /turf/simulated/floor))
|
||||
var/turf/simulated/floor/F = target
|
||||
F.ChangeTurf(/turf/space)
|
||||
|
||||
if(istype(target, /turf/simulated/wall))
|
||||
var/turf/simulated/wall/W = target
|
||||
W.dismantle_wall(1)
|
||||
|
||||
else
|
||||
qdel(target)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
x = target.x
|
||||
y = target.y
|
||||
z = target.z
|
||||
|
||||
switch(target_strength - ticks)
|
||||
if(480)
|
||||
visible_message("<span class='warning'>[target] is holding up against the acid!</span>")
|
||||
if(320)
|
||||
visible_message("<span class='warning'>[target] is being melted by the acid!</span>")
|
||||
if(160)
|
||||
visible_message("<span class='warning'>[target] is struggling to withstand the acid!</span>")
|
||||
if(80)
|
||||
visible_message("<span class='warning'>[target] begins to crumble under the acid!</span>")
|
||||
|
||||
spawn(1)
|
||||
if(src)
|
||||
tick()
|
||||
|
||||
#undef WEED_NORTH_EDGING
|
||||
#undef WEED_SOUTH_EDGING
|
||||
#undef WEED_EAST_EDGING
|
||||
#undef WEED_WEST_EDGING
|
||||
@@ -9,7 +9,7 @@
|
||||
density = 0
|
||||
anchored = 1
|
||||
luminosity = 3
|
||||
var/obj/item/device/assembly/signaler/anomaly/aSignal = null
|
||||
var/obj/item/assembly/signaler/anomaly/aSignal = null
|
||||
|
||||
/obj/effect/anomaly/New()
|
||||
set_light(initial(luminosity))
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
|
||||
/obj/effect/anomaly/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/analyzer))
|
||||
if(istype(I, /obj/item/analyzer))
|
||||
to_chat(user, "<span class='notice'>Analyzing... [src]'s unstable field is fluctuating along frequency [aSignal.code]:[format_frequency(aSignal.frequency)].</span>")
|
||||
|
||||
///////////////////////
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
create_reagents(100)
|
||||
..()
|
||||
|
||||
/obj/effect/decal/cleanable/attackby(obj/item/weapon/W as obj, mob/user as mob,)
|
||||
if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food/drinks))
|
||||
/obj/effect/decal/cleanable/attackby(obj/item/W as obj, mob/user as mob,)
|
||||
if(istype(W, /obj/item/reagent_containers/glass) || istype(W, /obj/item/reagent_containers/food/drinks))
|
||||
if(src.reagents && W.reagents && !noscoop)
|
||||
if(!src.reagents.total_volume)
|
||||
to_chat(user, "<span class='notice'>There isn't enough [src] to scoop up!</span>")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
// The poster item
|
||||
|
||||
/obj/item/weapon/poster
|
||||
/obj/item/poster
|
||||
name = "rolled-up poster"
|
||||
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities."
|
||||
icon = 'icons/obj/contraband.dmi'
|
||||
@@ -12,7 +12,7 @@
|
||||
var/poster_type
|
||||
var/obj/structure/sign/poster/poster_structure
|
||||
|
||||
/obj/item/weapon/poster/New(loc, obj/structure/sign/poster/new_poster_structure)
|
||||
/obj/item/poster/New(loc, obj/structure/sign/poster/new_poster_structure)
|
||||
..()
|
||||
poster_structure = new_poster_structure
|
||||
if(!new_poster_structure && poster_type)
|
||||
@@ -26,17 +26,17 @@
|
||||
|
||||
name = "[name] - [poster_structure.original_name]"
|
||||
|
||||
/obj/item/weapon/poster/Destroy()
|
||||
/obj/item/poster/Destroy()
|
||||
poster_structure = null
|
||||
. = ..()
|
||||
|
||||
// These icon_states may be overriden, but are for mapper's convinence
|
||||
/obj/item/weapon/poster/random_contraband
|
||||
/obj/item/poster/random_contraband
|
||||
name = "random contraband poster"
|
||||
poster_type = /obj/structure/sign/poster/contraband/random
|
||||
icon_state = "rolled_poster"
|
||||
|
||||
/obj/item/weapon/poster/random_official
|
||||
/obj/item/poster/random_official
|
||||
name = "random official poster"
|
||||
poster_type = /obj/structure/sign/poster/official/random
|
||||
icon_state = "rolled_poster_legit"
|
||||
@@ -110,12 +110,12 @@
|
||||
/obj/structure/sign/poster/proc/roll_and_drop(loc)
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
var/obj/item/weapon/poster/P = new(loc, src)
|
||||
var/obj/item/poster/P = new(loc, src)
|
||||
forceMove(P)
|
||||
return P
|
||||
|
||||
//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby()
|
||||
/turf/simulated/wall/proc/place_poster(obj/item/weapon/poster/P, mob/user)
|
||||
/turf/simulated/wall/proc/place_poster(obj/item/poster/P, mob/user)
|
||||
if(!P.poster_structure)
|
||||
return
|
||||
var/stuff_on_wall = 0
|
||||
@@ -157,7 +157,7 @@
|
||||
playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1)
|
||||
|
||||
if(do_after(user, PLACE_SPEED, target = src))
|
||||
if(!D || qdeleted(D))
|
||||
if(!D || QDELETED(D))
|
||||
return
|
||||
|
||||
if(iswallturf(src) && user && user.loc == temp_loc) //Let's check if everything is still there
|
||||
|
||||
@@ -214,8 +214,8 @@
|
||||
/obj/structure/foamedmetal/attackby(obj/item/I, mob/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if(istype(I, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = I
|
||||
if(istype(I, /obj/item/grab))
|
||||
var/obj/item/grab/G = I
|
||||
G.affecting.loc = src.loc
|
||||
user.visible_message("<span class='warning'>[G.assailant] smashes [G.affecting] through the foamed metal wall.</span>")
|
||||
qdel(I)
|
||||
|
||||
@@ -154,8 +154,8 @@
|
||||
/obj/structure/glowshroom/attackby(obj/item/I, mob/user)
|
||||
..()
|
||||
var/damage_to_do = I.force
|
||||
if(istype(I, /obj/item/weapon/scythe))
|
||||
var/obj/item/weapon/scythe/S = I
|
||||
if(istype(I, /obj/item/scythe))
|
||||
var/obj/item/scythe/S = I
|
||||
if(S.extend) //so folded telescythes won't get damage boosts / insta-clears (they instead will instead be treated like non-scythes)
|
||||
damage_to_do *= 4
|
||||
for(var/obj/structure/glowshroom/G in range(1,src))
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
/obj/effect/landmark/costume/chicken/New()
|
||||
new /obj/item/clothing/suit/chickensuit(src.loc)
|
||||
new /obj/item/clothing/head/chicken(src.loc)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc)
|
||||
new /obj/item/reagent_containers/food/snacks/egg(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/landmark/costume/gladiator/New()
|
||||
@@ -182,7 +182,7 @@
|
||||
var/CHOICE= pick( /obj/item/clothing/head/bowlerhat, /obj/item/clothing/head/that)
|
||||
new CHOICE(src.loc)
|
||||
new /obj/item/clothing/shoes/black(src.loc)
|
||||
new /obj/item/weapon/cane(src.loc)
|
||||
new /obj/item/cane(src.loc)
|
||||
new /obj/item/clothing/under/sl_suit(src.loc)
|
||||
new /obj/item/clothing/mask/fakemoustache(src.loc)
|
||||
qdel(src)
|
||||
@@ -236,13 +236,13 @@
|
||||
/obj/effect/landmark/costume/cutewitch/New()
|
||||
new /obj/item/clothing/under/sundress(src.loc)
|
||||
new /obj/item/clothing/head/witchwig(src.loc)
|
||||
new /obj/item/weapon/twohanded/staff/broom(src.loc)
|
||||
new /obj/item/twohanded/staff/broom(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/landmark/costume/fakewizard/New()
|
||||
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
|
||||
new /obj/item/clothing/head/wizard/fake(src.loc)
|
||||
new /obj/item/weapon/twohanded/staff/(src.loc)
|
||||
new /obj/item/twohanded/staff/(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/landmark/costume/sexyclown/New()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
var/dat = "<B>Crew Manifest</B>:<BR>"
|
||||
for(var/mob/living/carbon/human/M in mob_list)
|
||||
dat += text(" <B>[]</B> - []<BR>", M.name, M.get_assignment())
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
|
||||
var/obj/item/paper/P = new /obj/item/paper( src.loc )
|
||||
P.info = dat
|
||||
P.name = "paper- 'Crew Manifest'"
|
||||
//SN src = null
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "I Better stay away from that thing."
|
||||
density = 0
|
||||
anchored = 1
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "uglyminearmed"
|
||||
var/triggered = 0
|
||||
var/faction = "syndicate"
|
||||
@@ -130,7 +130,7 @@
|
||||
spawn(0)
|
||||
new /obj/effect/hallucination/delusion(victim.loc, victim, force_kind = "demon", duration = duration, skip_nearby = 0)
|
||||
|
||||
var/obj/item/weapon/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc)
|
||||
var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc)
|
||||
chainsaw.flags |= NODROP
|
||||
victim.drop_l_hand()
|
||||
victim.drop_r_hand()
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
|
||||
/obj/effect/portal/Destroy()
|
||||
portals -= src
|
||||
if(istype(creator, /obj/item/weapon/hand_tele))
|
||||
var/obj/item/weapon/hand_tele/O = creator
|
||||
if(istype(creator, /obj/item/hand_tele))
|
||||
var/obj/item/hand_tele/O = creator
|
||||
O.active_portals--
|
||||
else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector))
|
||||
var/obj/item/weapon/gun/energy/wormhole_projector/P = creator
|
||||
else if(istype(creator, /obj/item/gun/energy/wormhole_projector))
|
||||
var/obj/item/gun/energy/wormhole_projector/P = creator
|
||||
P.portal_destroyed(src)
|
||||
creator = null
|
||||
target = null
|
||||
@@ -52,5 +52,5 @@
|
||||
do_teleport(M, target, precision) ///You will appear adjacent to the beacon
|
||||
|
||||
/obj/effect/portal/attackby(obj/item/A, mob/user)
|
||||
if(istype(A, /obj/item/device/multitool) && can_multitool_to_remove)
|
||||
if(istype(A, /obj/item/multitool) && can_multitool_to_remove)
|
||||
qdel(src)
|
||||
@@ -23,9 +23,9 @@
|
||||
/obj/effect/spawner/newbomb/New()
|
||||
..()
|
||||
|
||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/weapon/tank/plasma/PT = new(V)
|
||||
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
||||
var/obj/item/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/tank/plasma/PT = new(V)
|
||||
var/obj/item/tank/oxygen/OT = new(V)
|
||||
|
||||
V.tank_one = PT
|
||||
V.tank_two = OT
|
||||
@@ -36,23 +36,23 @@
|
||||
PT.air_contents.temperature = btemp1 + T0C
|
||||
OT.air_contents.temperature = btemp2 + T0C
|
||||
|
||||
var/obj/item/device/assembly/S
|
||||
var/obj/item/assembly/S
|
||||
|
||||
switch(src.btype)
|
||||
// radio
|
||||
if(0)
|
||||
|
||||
S = new/obj/item/device/assembly/signaler(V)
|
||||
S = new/obj/item/assembly/signaler(V)
|
||||
|
||||
// proximity
|
||||
if(1)
|
||||
|
||||
S = new/obj/item/device/assembly/prox_sensor(V)
|
||||
S = new/obj/item/assembly/prox_sensor(V)
|
||||
|
||||
// timer
|
||||
if(2)
|
||||
|
||||
S = new/obj/item/device/assembly/timer(V)
|
||||
S = new/obj/item/assembly/timer(V)
|
||||
|
||||
|
||||
V.attached_device = S
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
lootdoubles = 0
|
||||
|
||||
loot = list(
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol = 8,
|
||||
/obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5,
|
||||
/obj/item/weapon/gun/projectile/revolver/mateba,
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/deagle
|
||||
/obj/item/gun/projectile/automatic/pistol = 8,
|
||||
/obj/item/gun/projectile/shotgun/automatic/combat = 5,
|
||||
/obj/item/gun/projectile/revolver/mateba,
|
||||
/obj/item/gun/projectile/automatic/pistol/deagle
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/maintenance
|
||||
@@ -73,13 +73,13 @@
|
||||
/obj/item/clothing/mask/gas = 10,
|
||||
/obj/item/clothing/suit/storage/hazardvest = 10,
|
||||
/obj/item/clothing/under/rank/vice = 10,
|
||||
/obj/item/device/assembly/prox_sensor = 40,
|
||||
/obj/item/device/assembly/timer = 30,
|
||||
/obj/item/device/flashlight = 40,
|
||||
/obj/item/device/flashlight/pen = 10,
|
||||
/obj/item/device/multitool = 20,
|
||||
/obj/item/device/radio/off = 20,
|
||||
/obj/item/device/t_scanner = 60,
|
||||
/obj/item/assembly/prox_sensor = 40,
|
||||
/obj/item/assembly/timer = 30,
|
||||
/obj/item/flashlight = 40,
|
||||
/obj/item/flashlight/pen = 10,
|
||||
/obj/item/multitool = 20,
|
||||
/obj/item/radio/off = 20,
|
||||
/obj/item/t_scanner = 60,
|
||||
/obj/item/stack/cable_coil = 40,
|
||||
/obj/item/stack/cable_coil{amount = 5} = 60,
|
||||
/obj/item/stack/medical/bruise_pack/advanced = 10,
|
||||
@@ -90,65 +90,65 @@
|
||||
/obj/item/stack/sheet/metal{amount = 20} = 10,
|
||||
/obj/item/stack/sheet/mineral/plasma{layer = 2.9} = 10,
|
||||
/obj/item/stack/sheet/rglass = 10,
|
||||
/obj/item/weapon/book/manual/engineering_construction = 10,
|
||||
/obj/item/weapon/book/manual/engineering_hacking = 10,
|
||||
/obj/item/book/manual/engineering_construction = 10,
|
||||
/obj/item/book/manual/engineering_hacking = 10,
|
||||
/obj/item/clothing/head/cone = 10,
|
||||
/obj/item/weapon/coin/silver = 10,
|
||||
/obj/item/weapon/coin/twoheaded = 10,
|
||||
/obj/item/weapon/poster/random_contraband = 10,
|
||||
/obj/item/weapon/crowbar = 10,
|
||||
/obj/item/weapon/crowbar/red = 10,
|
||||
/obj/item/weapon/extinguisher = 90,
|
||||
//obj/item/weapon/gun/projectile/revolver/russian = 1, //disabled until lootdrop is a proper world proc.
|
||||
/obj/item/weapon/hand_labeler = 10,
|
||||
/obj/item/weapon/paper/crumpled = 10,
|
||||
/obj/item/weapon/pen = 10,
|
||||
/obj/item/weapon/cultivator = 10,
|
||||
/obj/item/weapon/reagent_containers/spray/pestspray = 10,
|
||||
/obj/item/weapon/stock_parts/cell = 30,
|
||||
/obj/item/weapon/storage/belt/utility = 20,
|
||||
/obj/item/weapon/storage/box = 20,
|
||||
/obj/item/weapon/storage/box/cups = 10,
|
||||
/obj/item/weapon/storage/box/donkpockets = 10,
|
||||
/obj/item/weapon/storage/box/lights/mixed = 30,
|
||||
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco = 10,
|
||||
/obj/item/weapon/storage/toolbox/mechanical = 10,
|
||||
/obj/item/weapon/screwdriver = 30,
|
||||
/obj/item/weapon/tank/emergency_oxygen = 20,
|
||||
/obj/item/weapon/tank/emergency_oxygen/engi = 10,
|
||||
/obj/item/weapon/vending_refill/cola = 10,
|
||||
/obj/item/weapon/weldingtool = 30,
|
||||
/obj/item/weapon/wirecutters = 10,
|
||||
/obj/item/weapon/wrench = 40,
|
||||
/obj/item/weapon/relic = 35,
|
||||
/obj/item/weaponcrafting/receiver = 20,
|
||||
/obj/item/coin/silver = 10,
|
||||
/obj/item/coin/twoheaded = 10,
|
||||
/obj/item/poster/random_contraband = 10,
|
||||
/obj/item/crowbar = 10,
|
||||
/obj/item/crowbar/red = 10,
|
||||
/obj/item/extinguisher = 90,
|
||||
//obj/item/gun/projectile/revolver/russian = 1, //disabled until lootdrop is a proper world proc.
|
||||
/obj/item/hand_labeler = 10,
|
||||
/obj/item/paper/crumpled = 10,
|
||||
/obj/item/pen = 10,
|
||||
/obj/item/cultivator = 10,
|
||||
/obj/item/reagent_containers/spray/pestspray = 10,
|
||||
/obj/item/stock_parts/cell = 30,
|
||||
/obj/item/storage/belt/utility = 20,
|
||||
/obj/item/storage/box = 20,
|
||||
/obj/item/storage/box/cups = 10,
|
||||
/obj/item/storage/box/donkpockets = 10,
|
||||
/obj/item/storage/box/lights/mixed = 30,
|
||||
/obj/item/storage/fancy/cigarettes/dromedaryco = 10,
|
||||
/obj/item/storage/toolbox/mechanical = 10,
|
||||
/obj/item/screwdriver = 30,
|
||||
/obj/item/tank/emergency_oxygen = 20,
|
||||
/obj/item/tank/emergency_oxygen/engi = 10,
|
||||
/obj/item/vending_refill/cola = 10,
|
||||
/obj/item/weldingtool = 30,
|
||||
/obj/item/wirecutters = 10,
|
||||
/obj/item/wrench = 40,
|
||||
/obj/item/relic = 35,
|
||||
/obj/item/weaponcrafting/receiver = 2,
|
||||
/obj/item/clothing/shoes/brown = 30,
|
||||
/obj/item/seeds/ambrosia/deus = 10,
|
||||
/obj/item/seeds/ambrosia = 20,
|
||||
/obj/item/clothing/under/color/black = 30,
|
||||
/obj/item/stack/tape_roll = 10,
|
||||
////////////////CONTRABAND STUFF//////////////////
|
||||
/obj/item/weapon/grenade/clown_grenade = 3,
|
||||
/obj/item/grenade/clown_grenade = 3,
|
||||
/obj/item/seeds/ambrosia/cruciatus = 3,
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/empty = 1,
|
||||
/obj/item/gun/projectile/automatic/pistol/empty = 1,
|
||||
/obj/item/ammo_box/magazine/m10mm = 4,
|
||||
/obj/item/weapon/soap/syndie = 7,
|
||||
/obj/item/weapon/gun/syringe/syndicate = 2,
|
||||
/obj/item/weapon/suppressor = 4,
|
||||
/obj/item/soap/syndie = 7,
|
||||
/obj/item/gun/syringe/syndicate = 2,
|
||||
/obj/item/suppressor = 4,
|
||||
/obj/item/clothing/under/chameleon = 2,
|
||||
/obj/item/weapon/stamp/chameleon = 2,
|
||||
/obj/item/stamp/chameleon = 2,
|
||||
/obj/item/clothing/shoes/syndigaloshes = 5,
|
||||
/obj/item/clothing/mask/gas/voice = 2,
|
||||
/obj/item/weapon/dnascrambler = 1,
|
||||
/obj/item/weapon/storage/backpack/satchel_flat = 2,
|
||||
/obj/item/weapon/storage/toolbox/syndicate = 2,
|
||||
/obj/item/weapon/storage/backpack/duffel/syndie/surgery_fake = 2,
|
||||
/obj/item/weapon/storage/belt/military = 2,
|
||||
/obj/item/weapon/storage/box/syndie_kit/space = 2,
|
||||
/obj/item/device/multitool/ai_detect = 2,
|
||||
/obj/item/weapon/implanter/storage = 1,
|
||||
/obj/item/dnascrambler = 1,
|
||||
/obj/item/storage/backpack/satchel_flat = 2,
|
||||
/obj/item/storage/toolbox/syndicate = 2,
|
||||
/obj/item/storage/backpack/duffel/syndie/surgery_fake = 2,
|
||||
/obj/item/storage/belt/military = 2,
|
||||
/obj/item/storage/box/syndie_kit/space = 2,
|
||||
/obj/item/multitool/ai_detect = 2,
|
||||
/obj/item/implanter/storage = 1,
|
||||
/obj/item/toy/cards/deck/syndicate = 2,
|
||||
/obj/item/weapon/storage/secure/briefcase/syndie = 2,
|
||||
/obj/item/storage/secure/briefcase/syndie = 2,
|
||||
"" = 70
|
||||
)
|
||||
|
||||
@@ -167,11 +167,11 @@
|
||||
color = "#00FFFF"
|
||||
|
||||
loot = list(
|
||||
/obj/item/weapon/card/emag_broken = 2,
|
||||
/obj/item/weapon/defibrillator/compact/loaded = 2,
|
||||
/obj/item/weapon/gun/energy/laser/retro = 2,
|
||||
/obj/item/weapon/rcd/combat = 1,
|
||||
/obj/item/weapon/rcd = 2,
|
||||
/obj/item/card/emag_broken = 2,
|
||||
/obj/item/defibrillator/compact/loaded = 2,
|
||||
/obj/item/gun/energy/laser/retro = 2,
|
||||
/obj/item/rcd/combat = 1,
|
||||
/obj/item/rcd = 2,
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/trade_sol_common
|
||||
@@ -180,22 +180,22 @@
|
||||
color = "#00FFFF"
|
||||
|
||||
loot = list(
|
||||
/obj/item/weapon/tank/anesthetic = 2,
|
||||
/obj/item/weapon/weldingtool/hugetank = 2,
|
||||
/obj/item/weapon/pickaxe/diamond = 1,
|
||||
/obj/item/device/spacepod_equipment/weaponry/mining_laser = 1,
|
||||
/obj/item/device/paicard = 2,
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol = 2,
|
||||
/obj/item/device/megaphone = 2,
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
/obj/item/weapon/stock_parts/cell/high = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
/obj/item/tank/anesthetic = 2,
|
||||
/obj/item/weldingtool/hugetank = 2,
|
||||
/obj/item/pickaxe/diamond = 1,
|
||||
/obj/item/spacepod_equipment/weaponry/mining_laser = 1,
|
||||
/obj/item/paicard = 2,
|
||||
/obj/item/gun/projectile/automatic/pistol = 2,
|
||||
/obj/item/megaphone = 2,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/cell/high = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/scanning_module = 1,
|
||||
/obj/item/stack/spacecash/c200 = 1,
|
||||
/obj/item/weapon/airlock_electronics = 1,
|
||||
/obj/item/weapon/gun/energy/kinetic_accelerator = 1,
|
||||
/obj/item/airlock_electronics = 1,
|
||||
/obj/item/gun/energy/kinetic_accelerator = 1,
|
||||
/obj/item/pizzabox = 3,
|
||||
)
|
||||
|
||||
@@ -204,20 +204,20 @@
|
||||
lootcount = 3
|
||||
lootdoubles = FALSE
|
||||
var/soups = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/beetsoup,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/stew,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/hotchili,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/nettlesoup,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meatballsoup)
|
||||
/obj/item/reagent_containers/food/snacks/beetsoup,
|
||||
/obj/item/reagent_containers/food/snacks/stew,
|
||||
/obj/item/reagent_containers/food/snacks/hotchili,
|
||||
/obj/item/reagent_containers/food/snacks/nettlesoup,
|
||||
/obj/item/reagent_containers/food/snacks/meatballsoup)
|
||||
var/salads = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/herbsalad,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/validsalad,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/aesirsalad)
|
||||
/obj/item/reagent_containers/food/snacks/herbsalad,
|
||||
/obj/item/reagent_containers/food/snacks/validsalad,
|
||||
/obj/item/reagent_containers/food/snacks/aesirsalad)
|
||||
var/mains = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/enchiladas,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/superbiteburger)
|
||||
/obj/item/reagent_containers/food/snacks/enchiladas,
|
||||
/obj/item/reagent_containers/food/snacks/stewedsoymeat,
|
||||
/obj/item/reagent_containers/food/snacks/bigbiteburger,
|
||||
/obj/item/reagent_containers/food/snacks/superbiteburger)
|
||||
|
||||
/obj/effect/spawner/lootdrop/three_course_meal/New()
|
||||
loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/spider/attackby(obj/item/weapon/W, mob/user, params)
|
||||
/obj/structure/spider/attackby(obj/item/W, mob/user, params)
|
||||
if(W.attack_verb.len)
|
||||
visible_message("<span class='danger'>[user] has [pick(W.attack_verb)] [src] with [W]!</span>")
|
||||
else
|
||||
@@ -33,7 +33,7 @@
|
||||
var/damage = W.force / 4
|
||||
|
||||
if(iswelder(W))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
var/obj/item/weldingtool/WT = W
|
||||
|
||||
if(WT.remove_fuel(0, user))
|
||||
damage = 15
|
||||
|
||||
Reference in New Issue
Block a user