mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into OrganRefactor
This commit is contained in:
@@ -57,7 +57,9 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/device/radio/headset/receive_range(freq, level)
|
||||
/obj/item/device/radio/headset/receive_range(freq, level, aiOverride = 0)
|
||||
if(aiOverride)
|
||||
return ..(freq, level)
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
if(H.l_ear == src || H.r_ear == src)
|
||||
|
||||
@@ -20,13 +20,13 @@ var/list/world_uplinks = list()
|
||||
var/purchase_log = ""
|
||||
var/uplink_owner = null//text-only
|
||||
var/used_TC = 0
|
||||
|
||||
|
||||
var/job = null
|
||||
var/show_descriptions = 0
|
||||
|
||||
/obj/item/device/uplink/nano_host()
|
||||
return loc
|
||||
|
||||
return loc
|
||||
|
||||
/obj/item/device/uplink/New()
|
||||
..()
|
||||
welcome = ticker.mode.uplink_welcome
|
||||
@@ -48,7 +48,7 @@ var/list/world_uplinks = list()
|
||||
/obj/item/device/uplink/proc/generate_menu(mob/user as mob)
|
||||
if(!job)
|
||||
job = user.mind.assigned_role
|
||||
|
||||
|
||||
var/dat = "<B>[src.welcome]</B><BR>"
|
||||
dat += "Telecrystals left: [src.uses]<BR>"
|
||||
dat += "<HR>"
|
||||
@@ -82,7 +82,7 @@ var/list/world_uplinks = list()
|
||||
/obj/item/device/uplink/proc/generate_item_lists(mob/user as mob)
|
||||
if(!job)
|
||||
job = user.mind.assigned_role
|
||||
|
||||
|
||||
var/list/nano = new
|
||||
var/list/reference = new
|
||||
|
||||
@@ -92,7 +92,7 @@ var/list/world_uplinks = list()
|
||||
if(I.job && I.job.len)
|
||||
if(!(I.job.Find(job)))
|
||||
continue
|
||||
nano[nano.len]["items"] += list(list("Name" = I.name, "Description" = I.description(),"Cost" = I.cost, "obj_path" = I.reference))
|
||||
nano[nano.len]["items"] += list(list("Name" = sanitize(I.name), "Description" = sanitize(I.description()),"Cost" = I.cost, "obj_path" = I.reference))
|
||||
reference[I.reference] = I
|
||||
|
||||
var/datum/nano_item_lists/result = new
|
||||
@@ -130,7 +130,7 @@ var/list/world_uplinks = list()
|
||||
return
|
||||
UI.buy(src,usr)
|
||||
nanomanager.update_uis(src)
|
||||
|
||||
|
||||
/* var/list/L = UI.spawn_item(get_turf(usr),src)
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/A = usr
|
||||
@@ -244,7 +244,7 @@ var/list/world_uplinks = list()
|
||||
update_nano_data(href_list["id"])
|
||||
if(href_list["descriptions"])
|
||||
show_descriptions = !show_descriptions
|
||||
update_nano_data()
|
||||
update_nano_data()
|
||||
|
||||
nanomanager.update_uis(src)
|
||||
return 1
|
||||
@@ -253,7 +253,7 @@ var/list/world_uplinks = list()
|
||||
if(nanoui_menu == 1)
|
||||
var/permanentData[0]
|
||||
for(var/datum/data/record/L in sortRecord(data_core.general))
|
||||
permanentData[++permanentData.len] = list(Name = L.fields["name"],"id" = L.fields["id"])
|
||||
permanentData[++permanentData.len] = list(Name = sanitize(L.fields["name"]),"id" = L.fields["id"])
|
||||
nanoui_data["exploit_records"] = permanentData
|
||||
|
||||
if(nanoui_menu == 11)
|
||||
@@ -283,7 +283,7 @@ var/list/world_uplinks = list()
|
||||
src.hidden_uplink.trigger(user)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
//Refund proc for the borg teleporter (later I'll make a general refund proc if there is demand for it)
|
||||
/obj/item/device/radio/uplink/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/antag_spawner/borg_tele))
|
||||
@@ -293,8 +293,8 @@ var/list/world_uplinks = list()
|
||||
qdel(S)
|
||||
user << "<span class='notice'>Teleporter refunded.</span>"
|
||||
else
|
||||
user << "<span class='notice'>This teleporter is already used, or is currently being used.</span>"
|
||||
|
||||
user << "<span class='notice'>This teleporter is already used, or is currently being used.</span>"
|
||||
|
||||
// PRESET UPLINKS
|
||||
// A collection of preset uplinks.
|
||||
//
|
||||
|
||||
@@ -91,8 +91,7 @@
|
||||
//Step one - dehairing.
|
||||
|
||||
/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if( istype(W, /obj/item/weapon/kitchenknife) || \
|
||||
istype(W, /obj/item/weapon/kitchen/utensil/knife) || \
|
||||
if( istype(W, /obj/item/weapon/kitchen/knife) || \
|
||||
istype(W, /obj/item/weapon/twohanded/fireaxe) || \
|
||||
istype(W, /obj/item/weapon/hatchet) )
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ var/global/list/datum/stack_recipe/plastic_recipes = list ( \
|
||||
new/datum/stack_recipe("plastic ashtray", /obj/item/ashtray/plastic, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("plastic fork", /obj/item/weapon/kitchen/utensil/pfork, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("plastic spoon", /obj/item/weapon/kitchen/utensil/pspoon, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("plastic knife", /obj/item/weapon/kitchen/utensil/pknife, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("plastic knife", /obj/item/weapon/kitchen/knife/plastic, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1), \
|
||||
new/datum/stack_recipe("bear mould", /obj/item/weapon/kitchen/mould/bear, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("worm mould", /obj/item/weapon/kitchen/mould/worm, 1, on_floor = 1), \
|
||||
|
||||
@@ -92,110 +92,73 @@
|
||||
/*
|
||||
* Knives
|
||||
*/
|
||||
/obj/item/weapon/kitchen/utensil/knife
|
||||
name = "knife"
|
||||
desc = "Can cut through any food."
|
||||
icon_state = "knife"
|
||||
force = 10.0
|
||||
throwforce = 10.0
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << pick("<span class='suicide'>[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
user << "\red You accidentally cut yourself with the [src]."
|
||||
user.take_organ_damage(20)
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/kitchen/utensil/pknife
|
||||
name = "plastic knife"
|
||||
desc = "The bluntest of blades."
|
||||
icon_state = "pknife"
|
||||
force = 10.0
|
||||
throwforce = 10.0
|
||||
|
||||
/*
|
||||
* Kitchen knives
|
||||
*/
|
||||
/obj/item/weapon/kitchenknife
|
||||
/obj/item/weapon/kitchen/knife
|
||||
name = "kitchen knife"
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "knife"
|
||||
desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come."
|
||||
flags = CONDUCT
|
||||
sharp = 1
|
||||
edge = 1
|
||||
force = 10.0
|
||||
w_class = 3.0
|
||||
throwforce = 6.0
|
||||
force = 10
|
||||
w_class = 2
|
||||
throwforce = 10
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
throw_speed = 3
|
||||
throw_range = 6
|
||||
materials = list(MAT_METAL=12000)
|
||||
origin_tech = "materials=1"
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
no_embed = 1
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << pick("<span class='suicide'>[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>")
|
||||
return (BRUTELOSS)
|
||||
/obj/item/weapon/kitchen/knife/suicide_act(mob/user)
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>"))
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/kitchenknife/combat
|
||||
name = "combat knife"
|
||||
force = 15.0
|
||||
throwforce = 10.0
|
||||
w_class = 2
|
||||
origin_tech = "materials=2;combat=2"
|
||||
desc = "A razor sharp knife, built from advanced alloys, designed for quick, melee killing. Also not half bad as a kitchen knife."
|
||||
slot_flags = SLOT_BELT
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "combatknife"
|
||||
/obj/item/weapon/kitchen/knife/plastic
|
||||
name = "plastic knife"
|
||||
desc = "The bluntest of blades."
|
||||
icon_state = "pknife"
|
||||
item_state = "knife"
|
||||
sharp = 0
|
||||
edge = 0
|
||||
|
||||
|
||||
/obj/item/weapon/kitchenknife/ritual
|
||||
/obj/item/weapon/kitchen/knife/ritual
|
||||
name = "ritual knife"
|
||||
desc = "The unearthly energies that once powered this blade are now dormant."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "render"
|
||||
w_class = 3
|
||||
|
||||
/*
|
||||
* Bucher's cleaver
|
||||
*/
|
||||
/obj/item/weapon/butch
|
||||
name = "butcher's Cleaver"
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
/obj/item/weapon/kitchen/knife/butcher
|
||||
name = "butcher's cleaver"
|
||||
icon_state = "butch"
|
||||
desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown-by-products."
|
||||
flags = CONDUCT
|
||||
force = 15.0
|
||||
w_class = 3.0
|
||||
throwforce = 8.0
|
||||
throw_speed = 3
|
||||
throw_range = 6
|
||||
materials = list(MAT_METAL=12000)
|
||||
origin_tech = "materials=1"
|
||||
force = 15
|
||||
throwforce = 8
|
||||
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharp = 1
|
||||
edge = 1
|
||||
w_class = 3
|
||||
|
||||
/obj/item/weapon/butch/meatcleaver
|
||||
/obj/item/weapon/kitchen/knife/butcher/meatcleaver
|
||||
name = "Meat Cleaver"
|
||||
icon_state = "mcleaver"
|
||||
item_state = "butch"
|
||||
desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown-by-products."
|
||||
force = 25.0
|
||||
throwforce = 15.0
|
||||
no_embed = 1
|
||||
|
||||
/obj/item/weapon/kitchen/knife/combat
|
||||
name = "combat knife"
|
||||
icon_state = "combatknife"
|
||||
item_state = "knife"
|
||||
desc = "A military combat utility survival knife."
|
||||
force = 20
|
||||
throwforce = 20
|
||||
origin_tech = "materials=2;combat=4"
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
|
||||
|
||||
/*
|
||||
* Rolling Pins
|
||||
*/
|
||||
|
||||
@@ -159,6 +159,7 @@
|
||||
"/obj/item/ammo_box",
|
||||
"/obj/item/weapon/reagent_containers/food/snacks/donut/normal",
|
||||
"/obj/item/weapon/reagent_containers/food/snacks/donut/jelly",
|
||||
"/obj/item/weapon/kitchen/knife/combat",
|
||||
"/obj/item/weapon/melee/baton",
|
||||
"/obj/item/weapon/melee/classic_baton",
|
||||
"/obj/item/device/flashlight/seclite",
|
||||
@@ -172,7 +173,7 @@
|
||||
|
||||
/obj/item/weapon/storage/belt/security/response_team/New()
|
||||
..()
|
||||
new /obj/item/weapon/kitchenknife/combat(src)
|
||||
new /obj/item/weapon/kitchen/knife/combat(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/device/flash(src)
|
||||
new /obj/item/weapon/melee/classic_baton/telescopic(src)
|
||||
@@ -215,6 +216,13 @@
|
||||
icon_state = "militarybelt"
|
||||
item_state = "military"
|
||||
|
||||
/obj/item/weapon/storage/belt/military/assault
|
||||
name = "assault belt"
|
||||
desc = "A tactical assault belt."
|
||||
icon_state = "assaultbelt"
|
||||
item_state = "assault"
|
||||
storage_slots = 6
|
||||
|
||||
/obj/item/weapon/storage/belt/janitor
|
||||
name = "janibelt"
|
||||
desc = "A belt used to hold most janitorial supplies."
|
||||
@@ -245,7 +253,7 @@
|
||||
desc = "A bandolier for holding shotgun ammunition."
|
||||
icon_state = "bandolier"
|
||||
item_state = "bandolier"
|
||||
storage_slots = 6
|
||||
storage_slots = 8
|
||||
can_hold = list(
|
||||
"/obj/item/ammo_casing/shotgun"
|
||||
)
|
||||
@@ -258,6 +266,8 @@
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
|
||||
/obj/item/weapon/storage/belt/holster
|
||||
name = "shoulder holster"
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
throw_range = 4
|
||||
throwforce = 10
|
||||
w_class = 1
|
||||
var/transformed = 0
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << "<span class='suicide'>[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>"
|
||||
@@ -57,6 +58,28 @@
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/nullrod/afterattack(var/obj/item/I as obj, mob/user as mob, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(istype(I, /obj/item/clothing/suit/armor/riot/knight/templar)) //Only the Chaplain's holy armor is capable fo performing this feat.
|
||||
if(!transformed) // can't turn a sword into a sword.
|
||||
user << "<span class='notice'>You sheath the [src] into the [I]'s scabbard, transforming it into a holy sword.</span>"
|
||||
user.unEquip(src)
|
||||
qdel(src)
|
||||
var/obj/item/weapon/nullrod/sword/S = new /obj/item/weapon/nullrod/sword
|
||||
user.put_in_hands(S)
|
||||
|
||||
/obj/item/weapon/nullrod/sword
|
||||
name = "holy sword"
|
||||
desc = "A sword imbued with holy power, its very presence disrupts and dampens the powers of paranormal phenomenae."
|
||||
icon_state = "claymore"
|
||||
item_state = "claymore"
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
w_class = 3 //transforming it is not without its downsides.
|
||||
sharp = 1
|
||||
edge = 1
|
||||
transformed = 1
|
||||
|
||||
/obj/item/weapon/sord
|
||||
name = "\improper SORD"
|
||||
desc = "This thing is so unspeakably shitty you are having a hard time even holding it."
|
||||
@@ -159,7 +182,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params)
|
||||
..()
|
||||
if(istype(I, /obj/item/weapon/shard))
|
||||
var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear
|
||||
|
||||
|
||||
if(!remove_item_from_storage(user))
|
||||
user.unEquip(src)
|
||||
user.unEquip(I)
|
||||
@@ -173,7 +196,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params)
|
||||
var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod
|
||||
|
||||
if(!remove_item_from_storage(user))
|
||||
user.unEquip(src)
|
||||
user.unEquip(src)
|
||||
user.unEquip(I)
|
||||
|
||||
user.put_in_hands(P)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/obj/structure/closet/secure_closet/chaplain
|
||||
name = "chapel wardrobe"
|
||||
desc = "A lockable storage unit for Nanotrasen-approved religious attire."
|
||||
req_access = list(access_chapel_office)
|
||||
icon_state = "chaplainsecure1"
|
||||
icon_closed = "chaplainsecure"
|
||||
icon_locked = "chaplainsecure1"
|
||||
icon_opened = "chaplainsecureopen"
|
||||
icon_broken = "chaplainsecurebroken"
|
||||
icon_off = "chaplainsecureoff"
|
||||
|
||||
/obj/structure/closet/secure_closet/chaplain/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/clothing/under/rank/chaplain(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
new /obj/item/clothing/suit/nun(src)
|
||||
new /obj/item/clothing/head/nun_hood(src)
|
||||
new /obj/item/clothing/suit/chaplain_hoodie(src)
|
||||
new /obj/item/clothing/head/chaplain_hood(src)
|
||||
new /obj/item/clothing/suit/holidaypriest(src)
|
||||
new /obj/item/clothing/under/wedding/bride_white(src)
|
||||
new /obj/item/weapon/storage/backpack/cultpack (src)
|
||||
new /obj/item/clothing/head/helmet/knight/templar(src)
|
||||
new /obj/item/clothing/suit/armor/riot/knight/templar(src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box/eternal(src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box/eternal(src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box/eternal(src)
|
||||
new /obj/item/clothing/gloves/ring/silver(src)
|
||||
new /obj/item/clothing/gloves/ring/silver(src)
|
||||
new /obj/item/clothing/gloves/ring/gold(src)
|
||||
new /obj/item/clothing/gloves/ring/gold(src)
|
||||
return
|
||||
@@ -249,6 +249,7 @@
|
||||
new /obj/item/clothing/glasses/sunglasses(src)
|
||||
new /obj/item/clothing/glasses/hud/health/health_advanced
|
||||
new /obj/item/clothing/head/beret/centcom/officer(src)
|
||||
new /obj/item/clothing/head/beret/centcom/officer/navy(src)
|
||||
new /obj/item/clothing/suit/armor/vest/blueshield(src)
|
||||
new /obj/item/clothing/suit/storage/blueshield(src)
|
||||
new /obj/item/clothing/shoes/centcom(src)
|
||||
|
||||
@@ -111,35 +111,6 @@
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/structure/closet/wardrobe/chaplain_black
|
||||
name = "chapel wardrobe"
|
||||
desc = "It's a storage unit for Nanotrasen-approved religious attire."
|
||||
icon_state = "black"
|
||||
icon_closed = "black"
|
||||
|
||||
/obj/structure/closet/wardrobe/chaplain_black/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/clothing/under/rank/chaplain(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
new /obj/item/clothing/suit/nun(src)
|
||||
new /obj/item/clothing/head/nun_hood(src)
|
||||
new /obj/item/clothing/suit/chaplain_hoodie(src)
|
||||
new /obj/item/clothing/head/chaplain_hood(src)
|
||||
new /obj/item/clothing/suit/holidaypriest(src)
|
||||
new /obj/item/clothing/under/wedding/bride_white(src)
|
||||
new /obj/item/weapon/storage/backpack/cultpack (src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box/eternal(src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box/eternal(src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box/eternal(src)
|
||||
new /obj/item/clothing/gloves/ring/silver(src)
|
||||
new /obj/item/clothing/gloves/ring/silver(src)
|
||||
new /obj/item/clothing/gloves/ring/gold(src)
|
||||
new /obj/item/clothing/gloves/ring/gold(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/structure/closet/wardrobe/green
|
||||
name = "green wardrobe"
|
||||
icon_state = "green"
|
||||
|
||||
@@ -314,6 +314,7 @@
|
||||
if(dir != NORTH)
|
||||
layer = 5
|
||||
flipped = 1
|
||||
smooth = SMOOTH_FALSE
|
||||
flags |= ON_BORDER
|
||||
for(var/D in list(turn(direction, 90), turn(direction, -90)))
|
||||
if(locate(/obj/structure/table,get_step(src,D)))
|
||||
@@ -339,6 +340,7 @@
|
||||
|
||||
layer = initial(layer)
|
||||
flipped = 0
|
||||
smooth = initial(smooth)
|
||||
flags &= ~ON_BORDER
|
||||
for(var/D in list(turn(dir, 90), turn(dir, -90)))
|
||||
if(locate(/obj/structure/table,get_step(src,D)))
|
||||
|
||||
Reference in New Issue
Block a user