Merge branch 'master' into giantenemyspider

This commit is contained in:
Heroman3003
2021-07-22 03:54:44 +10:00
committed by GitHub
1505 changed files with 38547 additions and 34862 deletions
+11 -137
View File
@@ -4,7 +4,6 @@
* Resin
* Weeds
* Acid
* Egg
*/
/*
@@ -23,9 +22,9 @@
desc = "Looks like some kind of slimy growth."
icon_state = "resin"
density = 1
density = TRUE
opacity = 1
anchored = 1
anchored = TRUE
can_atmos_pass = ATMOS_PASS_NO
var/health = 200
//var/mob/living/affecting = null
@@ -54,7 +53,7 @@
/obj/effect/alien/resin/proc/healthcheck()
if(health <=0)
density = 0
density = FALSE
qdel(src)
return
@@ -163,8 +162,8 @@
name = "growth"
desc = "Weird organic growth."
icon_state = "weeds"
anchored = 1
density = 0
anchored = TRUE
density = FALSE
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
@@ -204,6 +203,7 @@
layer = ABOVE_TURF_LAYER+0.01
light_range = NODERANGE
light_on = TRUE
light_color = "#673972"
var/node_range = NODERANGE
var/set_color = "#321D37"
@@ -294,8 +294,7 @@
for(var/obj/effect/alien/weeds/W in orange(node_range, src))
nearby_weeds |= W
for(var/nbw in nearby_weeds)
var/obj/effect/alien/weeds/W = nbw
for(var/obj/effect/alien/weeds/W as anything in nearby_weeds)
if(!W.linked_node)
W.linked_node = src
@@ -319,7 +318,7 @@
/obj/effect/alien/weeds/attackby(var/obj/item/weapon/W, var/mob/user)
user.setClickCooldown(user.get_attack_speed(W))
if(W.attack_verb.len)
if(LAZYLEN(W.attack_verb))
visible_message("<span class='danger'>\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]</span>")
else
visible_message("<span class='danger'>\The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
@@ -374,9 +373,9 @@
desc = "Burbling corrossive stuff. I wouldn't want to touch it."
icon_state = "acid"
density = 0
density = FALSE
opacity = 0
anchored = 1
anchored = TRUE
var/atom/target
var/ticks = 0
@@ -422,129 +421,4 @@
visible_message("<span class='alium'>[src.target] begins to crumble under the acid!</span>")
spawn(rand(150, 200)) tick()
/*
* Egg
*/
/var/const //for the status var
BURST = 0
BURSTING = 1
GROWING = 2
GROWN = 3
MIN_GROWTH_TIME = 1800 //time it takes to grow a hugger
MAX_GROWTH_TIME = 3000
/obj/effect/alien/egg
desc = "It looks like a weird egg"
name = "egg"
// icon_state = "egg_growing" // So the egg looks 'grown', even though it's not.
icon_state = "egg"
density = 0
anchored = 1
var/health = 100
var/status = BURST //can be GROWING, GROWN or BURST; all mutually exclusive
/obj/effect/alien/egg/New()
/*
if(config.aliens_allowed)
..()
spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME))
Grow()
else
qdel(src)
*/
/obj/effect/alien/egg/attack_hand(user as mob)
var/mob/living/carbon/M = user
if(!istype(M) || !(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs))
return attack_hand(user)
switch(status)
if(BURST)
to_chat(user, "<span class='warning'>You clear the hatched egg.</span>")
qdel(src)
return
/* if(GROWING)
to_chat(user, "<span class='warning'>The child is not developed yet.</span>")
return
if(GROWN)
to_chat(user, "<span class='warning'>You retrieve the child.</span>")
Burst(0)
return
/obj/effect/alien/egg/proc/GetFacehugger() // Commented out for future edit.
return locate(/obj/item/clothing/mask/facehugger) in contents
/obj/effect/alien/egg/proc/Grow()
icon_state = "egg"
// status = GROWN
status = BURST
// new /obj/item/clothing/mask/facehugger(src)
return
*/
/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining
if(status == GROWN || status == GROWING)
// var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
icon_state = "egg_hatched"
/* flick("egg_opening", src)
status = BURSTING
spawn(15)
status = BURST
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/effect/alien/egg/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
return
/obj/effect/alien/egg/attack_generic(var/mob/user, var/damage, var/attack_verb)
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
user.do_attack_animation(src)
health -= damage
healthcheck()
return
/obj/effect/alien/egg/take_damage(var/damage)
health -= damage
healthcheck()
return
/obj/effect/alien/egg/attackby(var/obj/item/weapon/W, var/mob/user)
if(health <= 0)
return
if(W.attack_verb.len)
src.visible_message("<span class='danger'>\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]</span>")
else
src.visible_message("<span class='danger'>\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
var/damage = W.force / 4.0
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
damage = 15
playsound(src, 'sound/items/Welder.ogg', 100, 1)
src.health -= damage
src.healthcheck()
/obj/effect/alien/egg/proc/healthcheck()
if(health <= 0)
Burst()
/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 500 + T0C)
health -= 5
healthcheck()
//Xenomorph Effect egg removed, replaced with Structure Egg.
+2 -2
View File
@@ -7,8 +7,8 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list()
var/id = null //id of this bump_teleporter.
var/id_target = null //id of bump_teleporter which this moves you to.
invisibility = 101 //nope, can't see this
anchored = 1
density = 1
anchored = TRUE
density = TRUE
opacity = 0
/obj/effect/bump_teleporter/New()
+5 -5
View File
@@ -6,8 +6,8 @@
name = "foam"
icon_state = "foam"
opacity = 0
anchored = 1
density = 0
anchored = TRUE
density = FALSE
layer = OBJ_LAYER + 0.9
mouse_opacity = 0
animate_movement = 0
@@ -134,9 +134,9 @@
/obj/structure/foamedmetal
icon = 'icons/effects/effects.dmi'
icon_state = "metalfoam"
density = 1
density = TRUE
opacity = 1 // changed in New()
anchored = 1
anchored = TRUE
name = "foamed metal"
desc = "A lightweight foamed metal wall."
can_atmos_pass = ATMOS_PASS_NO
@@ -147,7 +147,7 @@
update_nearby_tiles(1)
/obj/structure/foamedmetal/Destroy()
density = 0
density = FALSE
update_nearby_tiles(1)
return ..()
@@ -4,7 +4,7 @@
icon_state = "fuel"
plane = DIRTY_PLANE
layer = DIRTY_LAYER
anchored = 1
anchored = TRUE
var/amount = 1
generic_filth = TRUE
persistent = FALSE
@@ -51,7 +51,7 @@
/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel
icon_state = "mustard"
anchored = 0
anchored = FALSE
/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/New(newLoc, amt = 1, d = 0)
set_dir(d) //Setting this direction means you won't get torched by your own flamethrower.
@@ -8,8 +8,8 @@ var/global/list/image/splatter_cache=list()
desc = "It's thick and gooey. Perhaps it's the chef's cooking?"
var/drydesc = "It's dry and crusty. Someone is not doing their job."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
plane = BLOOD_PLANE
layer = BLOOD_DECAL_LAYER
icon = 'icons/effects/blood.dmi'
@@ -173,8 +173,8 @@ var/global/list/image/splatter_cache=list()
name = "gibs"
desc = "They look bloody and gruesome."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/blood.dmi'
icon_state = "gibbl5"
random_icon_states = list("gib1", "gib2", "gib3", "gib5", "gib6")
@@ -229,8 +229,8 @@ var/global/list/image/splatter_cache=list()
name = "mucus"
desc = "Disgusting mucus."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/blood.dmi'
icon_state = "mucus"
random_icon_states = list("mucus")
@@ -2,8 +2,8 @@
name = "clutter"
desc = "Someone should clean that up."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/obj/objects.dmi'
icon_state = "shards"
@@ -13,7 +13,7 @@
gender = PLURAL
icon = 'icons/obj/objects.dmi'
icon_state = "ash"
anchored = 1
anchored = TRUE
/obj/effect/decal/cleanable/ash/attack_hand(mob/user as mob)
to_chat(user, "<span class='notice'>[src] sifts through your fingers.</span>")
@@ -32,8 +32,8 @@
name = "dirt"
desc = "Someone should clean that up."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/effects.dmi'
icon_state = "dirt"
mouse_opacity = 0
@@ -42,8 +42,8 @@
name = "flour"
desc = "It's still good. Four second rule!"
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/effects.dmi'
icon_state = "flour"
@@ -51,8 +51,8 @@
name = "glowing goo"
desc = "Jeez. I hope that's not for lunch."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
light_range = 1
icon = 'icons/effects/effects.dmi'
icon_state = "greenglow"
@@ -60,8 +60,8 @@
/obj/effect/decal/cleanable/cobweb
name = "cobweb"
desc = "Somebody should remove that."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
plane = OBJ_PLANE
icon = 'icons/effects/effects.dmi'
icon_state = "cobweb1"
@@ -69,8 +69,8 @@
/obj/effect/decal/cleanable/molten_item
name = "gooey grey mass"
desc = "It looks like a melted... something."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
plane = OBJ_PLANE
icon = 'icons/obj/chemical.dmi'
icon_state = "molten"
@@ -78,8 +78,8 @@
/obj/effect/decal/cleanable/cobweb2
name = "cobweb"
desc = "Somebody should remove that."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
plane = OBJ_PLANE
icon = 'icons/effects/effects.dmi'
icon_state = "cobweb2"
@@ -89,8 +89,8 @@
name = "vomit"
desc = "Gosh, how unpleasant."
gender = PLURAL
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/blood.dmi'
icon_state = "vomit_1"
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
@@ -99,32 +99,32 @@
/obj/effect/decal/cleanable/tomato_smudge
name = "tomato smudge"
desc = "It's red."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
/obj/effect/decal/cleanable/egg_smudge
name = "smashed egg"
desc = "Seems like this one won't hatch."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
/obj/effect/decal/cleanable/pie_smudge //honk
name = "smashed pie"
desc = "It's pie cream from a cream pie."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("smashed_pie")
/obj/effect/decal/cleanable/fruit_smudge
name = "smudge"
desc = "Some kind of fruit smear."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/effects/blood.dmi'
icon_state = "mfloor1"
random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7")
@@ -129,7 +129,7 @@
name = "poster"
desc = "A large piece of space-resistant printed paper. "
icon = 'icons/obj/contraband_vr.dmi' //VOREStation Edit
anchored = 1
anchored = TRUE
var/serial_number //Will hold the value of src.loc if nobody initialises it
var/poster_type //So mappers can specify a desired poster
var/ruined = 0
+1 -1
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/rune.dmi'
plane = DIRTY_PLANE
layer = DIRTY_LAYER
anchored = 1
anchored = TRUE
/obj/effect/decal/cleanable/crayon/New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune")
..()
+3 -3
View File
@@ -4,11 +4,11 @@
icon = 'icons/mob/screen1.dmi'
icon_state = "arrow"
plane = ABOVE_PLANE
anchored = 1
anchored = TRUE
mouse_opacity = 0
// Used for spray that you spray at walls, tables, hydrovats etc
/obj/effect/decal/spraystill
density = 0
anchored = 1
density = FALSE
anchored = TRUE
plane = ABOVE_PLANE
@@ -117,7 +117,7 @@
desc = "A large piece of space-resistant printed paper. "
icon = 'icons/obj/contraband_vr.dmi' //VOREStation Edit
icon_state = "poster" //VOREStation Edit
anchored = 1
anchored = TRUE
var/decl/poster/poster_decl = null
var/target_poster_decl_path = /decl/poster
var/roll_type = /obj/item/poster
+1 -1
View File
@@ -3,7 +3,7 @@
gender = PLURAL
icon = 'icons/effects/blood.dmi'
icon_state = "remains"
anchored = 0
anchored = FALSE
/obj/effect/decal/remains/human
desc = "They look like human remains. They have a strange aura about them."
+5 -5
View File
@@ -11,7 +11,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
name = "effect"
icon = 'icons/effects/effects.dmi'
mouse_opacity = 0
unacidable = 1//So effect are not targeted by alien acid.
unacidable = TRUE//So effect are not targeted by alien acid.
pass_flags = PASSTABLE | PASSGRILLE
blocks_emissive = EMISSIVE_BLOCK_GENERIC
light_on = TRUE
@@ -60,7 +60,7 @@ steam.start() -- spawns the effect
name = "steam"
icon = 'icons/effects/effects.dmi'
icon_state = "extinguish"
density = 0
density = FALSE
/datum/effect/effect/system/steam_spread/set_up(n = 3, c = 0, turf/loc)
if(n > 10)
@@ -98,7 +98,7 @@ steam.start() -- spawns the effect
name = "sparks"
icon_state = "sparks"
var/amount = 6.0
anchored = 1.0
anchored = TRUE
mouse_opacity = 0
/obj/effect/effect/sparks/Initialize()
@@ -168,7 +168,7 @@ steam.start() -- spawns the effect
name = "smoke"
icon_state = "smoke"
opacity = 1
anchored = 0.0
anchored = FALSE
mouse_opacity = 0
var/amount = 6.0
var/time_to_live = 100
@@ -422,7 +422,7 @@ steam.start() -- spawns the effect
/obj/effect/effect/ion_trails
name = "ion trails"
icon_state = "ion_trails"
anchored = 1.0
anchored = TRUE
/datum/effect/effect/system/ion_trail_follow
var/turf/oldposition
@@ -3,7 +3,7 @@
icon = 'icons/effects/effects.dmi'
icon_state = "explosion_particle"
opacity = 1
anchored = 1
anchored = TRUE
mouse_opacity = 0
/obj/effect/expl_particles/New()
@@ -37,7 +37,7 @@
icon = 'icons/effects/96x96.dmi'
icon_state = "explosion"
opacity = 1
anchored = 1
anchored = TRUE
mouse_opacity = 0
pixel_x = -32
pixel_y = -32
@@ -1,5 +1,5 @@
/obj/effect/temporary_effect/item_pickup_ghost
anchored = 1
anchored = TRUE
plane = MOB_PLANE
layer = ABOVE_MOB_LAYER
mouse_opacity = 0//just in case something dumb happens
+15 -6
View File
@@ -2,9 +2,9 @@
name = "landmark"
icon = 'icons/mob/screen1.dmi'
icon_state = "x2"
anchored = 1.0
unacidable = 1
simulated = 0
anchored = TRUE
unacidable = TRUE
simulated = FALSE
invisibility = 100
var/delete_me = 0
@@ -24,7 +24,7 @@
return
if("JoinLate") // Bit difference, since we need the spawn point to move.
latejoin += src
simulated = 1
simulated = TRUE
// delete_me = 1
return
if("JoinLateGateway")
@@ -99,7 +99,7 @@
name = "start"
icon = 'icons/mob/screen1.dmi'
icon_state = "x"
anchored = 1.0
anchored = TRUE
/obj/effect/landmark/start/New()
..()
@@ -117,12 +117,21 @@
else
log_error("[type] mapped in but no using_map")
/obj/effect/landmark/hidden_level
delete_me = 1
/obj/effect/landmark/hidden_level/Initialize()
. = ..()
if(using_map)
using_map.hidden_levels |= z
else
log_error("[type] mapped in but no using_map")
/obj/effect/landmark/virtual_reality
name = "virtual_reality"
icon = 'icons/mob/screen1.dmi'
icon_state = "x"
anchored = 1.0
anchored = TRUE
/obj/effect/landmark/virtual_reality/New()
..()
+1 -1
View File
@@ -2,7 +2,7 @@
name = "manifest"
icon = 'icons/mob/screen1.dmi'
icon_state = "x"
unacidable = 1//Just to be sure.
unacidable = TRUE//Just to be sure.
/obj/effect/manifest/New()
+12 -21
View File
@@ -50,8 +50,8 @@ when portals are shortly lived, or when portals are made to be obvious with spec
opacity = TRUE
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
appearance_flags = PIXEL_SCALE|KEEP_TOGETHER // Removed TILE_BOUND so things not visible on the other side stay hidden from the viewer.
appearance_flags = NONE
var/obj/effect/map_effect/portal/counterpart = null // The portal line or master that this is connected to, on the 'other side'.
// Information used to apply `pixel_[x|y]` offsets so that the visuals line up.
@@ -113,8 +113,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/lowest_y = 0
// First pass is for finding the top right corner.
for(var/thing in vis_contents)
var/turf/T = thing
for(var/turf/T as anything in vis_contents)
if(T.x > highest_x)
highest_x = T.x
if(T.y > highest_y)
@@ -124,8 +123,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
lowest_y = highest_y
// Second one is for the bottom left corner.
for(var/thing in vis_contents)
var/turf/T = thing
for(var/turf/T as anything in vis_contents)
if(T.x < lowest_x)
lowest_x = T.x
if(T.y < lowest_y)
@@ -182,8 +180,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
// Connects both sides of a portal together.
/obj/effect/map_effect/portal/master/proc/find_counterparts()
for(var/thing in GLOB.all_portal_masters)
var/obj/effect/map_effect/portal/master/M = thing
for(var/obj/effect/map_effect/portal/master/M as anything in GLOB.all_portal_masters)
if(M == src)
continue
if(M.counterpart)
@@ -201,12 +198,11 @@ when portals are shortly lived, or when portals are made to be obvious with spec
break
if(!counterpart)
crash_with("Portal master [type] ([x],[y],[z]) could not find another portal master with a matching portal_id ([portal_id]).")
stack_trace("Portal master [type] ([x],[y],[z]) could not find another portal master with a matching portal_id ([portal_id]).")
/obj/effect/map_effect/portal/master/proc/make_visuals()
var/list/observed_turfs = list()
for(var/thing in portal_lines + src)
var/obj/effect/map_effect/portal/P = thing
for(var/obj/effect/map_effect/portal/P as anything in portal_lines + src)
P.name = null
P.icon_state = null
@@ -230,8 +226,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
// Shifts the portal's pixels in order to line up properly, as BYOND offsets the sprite when it holds multiple turfs inside `vis_contents`.
// This undos the shift that BYOND did.
/obj/effect/map_effect/portal/master/proc/apply_offset()
for(var/thing in portal_lines + src)
var/obj/effect/map_effect/portal/P = thing
for(var/obj/effect/map_effect/portal/P as anything in portal_lines + src)
P.pixel_x = WORLD_ICON_SIZE * P.portal_distance_x
P.pixel_y = WORLD_ICON_SIZE * P.portal_distance_y
@@ -245,8 +240,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
var/list/mobs_to_relay = in_range["mobs"]
for(var/thing in mobs_to_relay)
var/mob/mob = thing
for(var/mob/mob as anything in mobs_to_relay)
var/rendered = "<span class='message'>[text]</span>"
mob.show_message(rendered)
@@ -261,8 +255,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
var/list/mobs_to_relay = in_range["mobs"]
for(var/thing in mobs_to_relay)
var/mob/mob = thing
for(var/mob/mob as anything in mobs_to_relay)
mob.show_message(rendered)
..()
@@ -275,8 +268,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
var/list/mobs_to_relay = in_range["mobs"]
for(var/thing in mobs_to_relay)
var/mob/mob = thing
for(var/mob/mob as anything in mobs_to_relay)
var/list/combined = mob.combine_message(message_pieces, verb, M)
var/message = combined["formatted"]
var/name_used = M.GetVoice()
@@ -296,8 +288,7 @@ when portals are shortly lived, or when portals are made to be obvious with spec
var/obj/effect/map_effect/portal/master/other_master = counterpart
var/in_vis_contents = FALSE
for(var/thing in other_master.portal_lines + other_master)
var/obj/effect/map_effect/portal/P = thing
for(var/obj/effect/map_effect/portal/P as anything in other_master.portal_lines + other_master)
if(P in true_turf.vis_locs)
in_vis_contents = TRUE
break
@@ -11,8 +11,7 @@
var/shake_strength = 1 // How much it shakes.
/obj/effect/map_effect/interval/screen_shaker/trigger()
for(var/A in player_list)
var/mob/M = A
for(var/mob/M as anything in player_list)
if(M.z == src.z && get_dist(src, M) <= shake_radius)
shake_camera(M, shake_duration, shake_strength)
..()
+3 -3
View File
@@ -1,14 +1,14 @@
/obj/effect/mine
name = "land mine" //The name and description are deliberately NOT modified, so you can't game the mines you find.
desc = "A small explosive land mine."
density = 0
anchored = 1
density = FALSE
anchored = TRUE
icon = 'icons/obj/weapons.dmi'
icon_state = "uglymine"
var/triggered = 0
var/smoke_strength = 3
var/obj/item/weapon/mine/mineitemtype = /obj/item/weapon/mine
var/panel_open = 0
var/panel_open = FALSE
var/datum/wires/mines/wires = null
var/camo_net = FALSE // Will the mine 'cloak' on deployment?
+2 -2
View File
@@ -4,8 +4,8 @@
desc = "It's a ... present?"
icon = 'icons/obj/items.dmi'
icon_state = "strangepresent"
density = 1
anchored = 0
density = TRUE
anchored = FALSE
/obj/effect/temporary_effect
name = "self deleting effect"
+8 -8
View File
@@ -1,6 +1,6 @@
/obj/effect/overlay
name = "overlay"
unacidable = 1
unacidable = TRUE
var/i_attached//Added for possible image attachments to objects. For hallucinations and the like.
/obj/effect/overlay/beam//Not actually a projectile, just an effect.
@@ -18,19 +18,19 @@
name = "Palm tree"
icon = 'icons/misc/beach2.dmi'
icon_state = "palm1"
density = 1
density = TRUE
plane = MOB_PLANE
layer = ABOVE_MOB_LAYER
anchored = 1
anchored = TRUE
/obj/effect/overlay/palmtree_l
name = "Palm tree"
icon = 'icons/misc/beach2.dmi'
icon_state = "palm2"
density = 1
density = TRUE
plane = MOB_PLANE
layer = ABOVE_MOB_LAYER
anchored = 1
anchored = TRUE
/obj/effect/overlay/coconut
name = "Coconuts"
@@ -47,8 +47,8 @@
name = "wallrot"
desc = "Ick..."
icon = 'icons/effects/wallrot.dmi'
anchored = 1
density = 1
anchored = TRUE
density = TRUE
plane = MOB_PLANE
layer = ABOVE_MOB_LAYER
mouse_opacity = 0
@@ -62,7 +62,7 @@
name = "snow"
icon = 'icons/turf/overlays.dmi'
icon_state = "snow"
anchored = 1
anchored = TRUE
plane = TURF_PLANE
// Todo: Add a version that gradually reaccumulates over time by means of alpha transparency. -Spades
+3 -3
View File
@@ -5,12 +5,12 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal)
desc = "Looks unstable. Best to test it with the clown."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "portal"
density = 1
unacidable = 1//Can't destroy energy portals.
density = TRUE
unacidable = TRUE//Can't destroy energy portals.
var/failchance = 5
var/obj/item/target = null
var/creator = null
anchored = 1.0
anchored = TRUE
/obj/effect/portal/Bumped(mob/M as mob|obj)
if(istype(M,/mob) && !(istype(M,/mob/living)))
+4 -4
View File
@@ -3,8 +3,8 @@
name = "web"
desc = "it's stringy and sticky"
icon = 'icons/effects/effects.dmi'
anchored = 1
density = 0
anchored = TRUE
density = FALSE
var/health = 15
//similar to weeds, but only barfed out by nurses manually
@@ -23,7 +23,7 @@
/obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user)
user.setClickCooldown(user.get_attack_speed(W))
if(W.attack_verb.len)
if(LAZYLEN(W.attack_verb))
visible_message("<span class='warning'>\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]</span>")
else
visible_message("<span class='warning'>\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
@@ -144,7 +144,7 @@
name = "spiderling"
desc = "It never stays still for long."
icon_state = "spiderling"
anchored = 0
anchored = FALSE
layer = HIDING_LAYER
health = 3
var/last_itch = 0
+1 -1
View File
@@ -5,7 +5,7 @@
var/stopper = 1 // stops throwers
invisibility = 99 // nope cant see this shit
plane = ABOVE_PLANE
anchored = 1
anchored = TRUE
icon = 'icons/mob/screen1.dmi' //VS Edit
icon_state = "centermarker" //VS Edit
@@ -23,8 +23,7 @@
if(light_range > 0 && light_intensity > 0)
var/list/turf/line = getline(starting.return_turf(), ending.return_turf())
tracing_line:
for(var/i in line)
var/turf/T = i
for(var/turf/T as anything in line)
for(var/obj/effect/projectile_lighting/PL in T)
if(PL.owner == instance_key)
continue tracing_line
+2 -2
View File
@@ -4,8 +4,8 @@
icon = 'icons/mob/screen1.dmi'
icon_state = "x3"
invisibility = 101 //nope, can't see this
anchored = 1
density = 0
anchored = TRUE
density = FALSE
opacity = 0
can_atmos_pass = ATMOS_PASS_PROC