Merge branch 'master' of https://github.com/PolarisSS13/Polaris into gravestone

# Conflicts:
#	icons/obj/structures.dmi
This commit is contained in:
Anewbe
2017-09-27 13:49:56 -05:00
35 changed files with 595 additions and 52 deletions
@@ -1,28 +1,21 @@
var/list/syndicate_ids = list()
/obj/item/weapon/card/id/syndicate
name = "agent card"
icon_state = "syndicate"
assignment = "Agent"
origin_tech = list(TECH_ILLEGAL = 3)
var/electronic_warfare = 1
var/registered_user = null
var/mob/registered_user = null
/obj/item/weapon/card/id/syndicate/New(mob/user as mob)
..()
syndicate_ids += src
access = syndicate_access.Copy()
/obj/item/weapon/card/id/syndicate/Destroy()
syndicate_ids -= src
registered_user = null
return ..()
/obj/item/weapon/card/id/syndicate/station_access/New()
..() // Same as the normal Syndicate id, only already has all station access
access |= get_all_station_access()
// On mob destruction, ensure any references are cleared
/mob/Destroy()
for(var/obj/item/weapon/card/id/syndicate/SID in syndicate_ids)
if(SID.registered_user == src)
SID.registered_user = null
/obj/item/weapon/card/id/syndicate/Destroy()
unset_registered_user(registered_user)
return ..()
/obj/item/weapon/card/id/syndicate/prevent_tracking()
@@ -37,9 +30,8 @@ var/list/syndicate_ids = list()
user << "<span class='notice'>The microscanner activates as you pass it over the ID, copying its access.</span>"
/obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob)
if(!registered_user)
registered_user = user
user.set_id_info(src)
// We use the fact that registered_name is not unset should the owner be vaporized, to ensure the id doesn't magically become unlocked.
if(!registered_user && register_user(user))
user << "<span class='notice'>The microscanner marks you as its owner, preventing others from accessing its internals.</span>"
if(registered_user == user)
switch(alert("Would you like edit the ID, or show it?","Show or Edit?", "Edit","Show"))
@@ -72,6 +64,21 @@ var/list/syndicate_ids = list()
ui.set_initial_data(data)
ui.open()
/obj/item/weapon/card/id/syndicate/proc/register_user(var/mob/user)
if(!istype(user) || user == registered_user)
return FALSE
unset_registered_user()
registered_user = user
user.set_id_info(src)
user.register(OBSERVER_EVENT_DESTROY, src, /obj/item/weapon/card/id/syndicate/proc/unset_registered_user)
return TRUE
/obj/item/weapon/card/id/syndicate/proc/unset_registered_user(var/mob/user)
if(!registered_user || (user && user != registered_user))
return
registered_user.unregister(OBSERVER_EVENT_DESTROY, src)
registered_user = null
/obj/item/weapon/card/id/syndicate/CanUseTopic(mob/user)
if(user != registered_user)
return STATUS_CLOSE
@@ -172,7 +179,7 @@ var/list/syndicate_ids = list()
icon_state = initial(icon_state)
name = initial(name)
registered_name = initial(registered_name)
registered_user = null
unset_registered_user()
sex = initial(sex)
user << "<span class='notice'>All information has been deleted from \the [src].</span>"
. = 1
@@ -1,7 +1,7 @@
/obj/item/weapon/material/gravemarker
name = "grave marker"
desc = "An object used in marking graves."
icon_state = "gravestone"
icon_state = "gravemarker"
w_class = ITEMSIZE_LARGE
fragile = 1
force_divisor = 0.65
@@ -70,5 +70,6 @@
G.grave_name = grave_name
G.epitaph = epitaph
G.add_fingerprint(usr)
G.dir = user.dir
qdel_null(src)
return
+28 -5
View File
@@ -1,10 +1,12 @@
/obj/structure/gravemarker
name = "grave marker"
desc = "An object used in marking graves."
icon_state = "gravestone"
icon_state = "gravemarker"
density = 1
anchored = 1
throwpass = 1
climbable = 1
//Maybe make these calculate based on material?
var/health = 100
@@ -34,6 +36,23 @@
if(epitaph)
to_chat(user, epitaph)
/obj/structure/gravemarker/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(!mover)
return 1
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
if(get_dir(loc, target) & dir)
return !density
else
return 1
/obj/structure/gravemarker/CheckExit(atom/movable/O as mob|obj, target as turf)
if(istype(O) && O.checkpass(PASSTABLE))
return 1
if(get_dir(O.loc, target) == dir)
return 0
return 1
/obj/structure/gravemarker/attackby(obj/item/weapon/W, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/carving_1 = sanitizeSafe(input(user, "Who is \the [src.name] for?", "Gravestone Naming", null) as text, MAX_NAME_LEN)
@@ -53,7 +72,7 @@
return
if(istype(W, /obj/item/weapon/wrench))
user.visible_message("[user] starts taking down \the [src.name].", "You start taking down \the [src.name].")
if(do_after(user, 50 * W.toolspeed))
if(do_after(user, material.hardness * W.toolspeed))
user.visible_message("[user] takes down \the [src.name].", "You take down \the [src.name].")
dismantle()
..()
@@ -93,13 +112,13 @@
qdel(src)
return
/* //Need Directional Sprites
/obj/structure/gravemarker/verb/rotate()
set name = "Rotate Grave Marker"
set category = "Object"
set src in oview(1)
if(dir_locked)
if(anchored)
return
if(config.ghost_interaction)
src.set_dir(turn(src.dir, 90))
@@ -114,4 +133,8 @@
src.set_dir(turn(src.dir, 90))
return
*/
/obj/structure/gravemarker/gravestone
name = "gravestone"
desc = "A large stone used in marking graves."
icon_state = "gravestone"
+11
View File
@@ -239,3 +239,14 @@
if(air_group)
return 0 //Make sure air doesn't drain
..()
/obj/structure/grille/broken/cult
icon_state = "grillecult-b"
/obj/structure/grille/rustic
name = "rustic grille"
desc = "A lattice of metal, arranged in an old, rustic fashion."
icon_state = "grillerustic"
/obj/structure/grille/broken/rustic
icon_state = "grillerustic-b"
+4 -1
View File
@@ -42,7 +42,7 @@
/obj/structure/simple_door/Destroy()
processing_objects -= src
update_nearby_tiles()
..()
return ..()
/obj/structure/simple_door/get_material()
return material
@@ -194,5 +194,8 @@
/obj/structure/simple_door/wood/New(var/newloc,var/material_name)
..(newloc, "wood")
/obj/structure/simple_door/sifwood/New(var/newloc,var/material_name)
..(newloc, "alien wood")
/obj/structure/simple_door/resin/New(var/newloc,var/material_name)
..(newloc, "resin")