From c587019b8767d73a3f9c4662387493b23b7f331e Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Mon, 25 Apr 2016 06:06:20 -0400 Subject: [PATCH 1/3] Ports Door Wands --- code/game/jobs/access.dm | 24 ++-- code/game/objects/items/control_wand.dm | 104 ++++++++++++++++++ .../crates_lockers/closets/secure/cargo.dm | 3 +- .../closets/secure/engineering.dm | 1 + .../crates_lockers/closets/secure/medical.dm | 1 + .../closets/secure/scientist.dm | 1 + .../crates_lockers/closets/secure/security.dm | 3 + icons/obj/device.dmi | Bin 33124 -> 34130 bytes paradise.dme | 1 + 9 files changed, 125 insertions(+), 13 deletions(-) create mode 100644 code/game/objects/items/control_wand.dm diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index d43d5e17e8f..5cb0002158f 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -253,20 +253,20 @@ switch(code) if(0) return get_all_accesses() - if(1) //security - return list(access_sec_doors, access_weapons, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_pilot, access_hos) - if(2) //medbay - return list(access_medical, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo, access_paramedic) - if(3) //research - return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_xenoarch, access_minisat, access_rd) - if(4) //engineering and maintenance - return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_minisat, access_ce, access_mechanic) - if(5) //command - return list(access_heads, access_RC_announce, access_keycard_auth, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_tcomsat, access_gateway, access_all_personal_lockers, access_heads_vault, access_blueshield, access_ntrep, access_hop, access_captain) - if(6) //station general + if(1) //station general return list(access_kitchen,access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer, access_magistrate, access_clown, access_mime) - if(7) //supply + if(2) //security + return list(access_sec_doors, access_weapons, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_pilot, access_hos) + if(3) //medbay + return list(access_medical, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo, access_paramedic) + if(4) //research + return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_xenoarch, access_minisat, access_rd) + if(5) //engineering and maintenance + return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_minisat, access_ce, access_mechanic) + if(6) //supply return list(access_mailsorting, access_mining, access_mining_station, access_mineral_storeroom, access_cargo, access_qm) + if(7) //command + return list(access_heads, access_RC_announce, access_keycard_auth, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_tcomsat, access_gateway, access_all_personal_lockers, access_heads_vault, access_blueshield, access_ntrep, access_hop, access_captain) /proc/get_region_accesses_name(var/code) switch(code) diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm new file mode 100644 index 00000000000..8a5b6ec7aca --- /dev/null +++ b/code/game/objects/items/control_wand.dm @@ -0,0 +1,104 @@ +#define WAND_OPEN "Open Door" +#define WAND_BOLT "Toggle Bolts" +#define WAND_EMERGENCY "Toggle Emergency Access" + +/obj/item/weapon/door_remote + icon_state = "gangtool-white" + item_state = "electronic" + icon = 'icons/obj/device.dmi' + name = "control wand" + desc = "Remotely controls airlocks." + w_class = 1 + var/mode = WAND_OPEN + var/region_access = 1 //See access.dm + var/obj/item/weapon/card/id/ID + +/obj/item/weapon/door_remote/New() + ..() + ID = new /obj/item/weapon/card/id + ID.access = get_region_accesses(region_access) + +/obj/item/weapon/door_remote/attack_self(mob/user) + switch(mode) + if(WAND_OPEN) + mode = WAND_BOLT + if(WAND_BOLT) + mode = WAND_EMERGENCY + if(WAND_EMERGENCY) + mode = WAND_OPEN + to_chat(user, "Now in mode: [mode].") + +/obj/item/weapon/door_remote/afterattack(obj/machinery/door/airlock/D, mob/user) + if(!istype(D)) + return + if(!(D.arePowerSystemsOn())) + to_chat(user, "[D] has no power!") + return + if(!D.requiresID()) + to_chat(user, "[D]'s ID scan is disabled!") + return + if(D.check_access(src.ID)) + switch(mode) + if(WAND_OPEN) + if(D.density) + D.open() + else + D.close() + if(WAND_BOLT) + if(D.locked) + D.unlock() + else + D.lock() + if(WAND_EMERGENCY) + if(D.emergency) + D.emergency = 0 + else + D.emergency = 1 + D.update_icon() + else + to_chat(user, "[src] does not have access to this door.") + +/obj/item/weapon/door_remote/omni + name = "omni door remote" + desc = "This control wand can access any door on the station." + icon_state = "gangtool-yellow" + region_access = 0 + +/obj/item/weapon/door_remote/captain + name = "command door remote" + icon_state = "gangtool-yellow" + region_access = 7 + +/obj/item/weapon/door_remote/chief_engineer + name = "engineering door remote" + icon_state = "gangtool-orange" + region_access = 5 + +/obj/item/weapon/door_remote/research_director + name = "research door remote" + icon_state = "gangtool-purple" + region_access = 4 + +/obj/item/weapon/door_remote/head_of_security + name = "security door remote" + icon_state = "gangtool-red" + region_access = 2 + +/obj/item/weapon/door_remote/quartermaster + name = "supply door remote" + icon_state = "gangtool-green" + region_access = 6 + +/obj/item/weapon/door_remote/chief_medical_officer + name = "medical door remote" + icon_state = "gangtool-blue" + region_access = 3 + +/obj/item/weapon/door_remote/civillian + name = "civillian door remote" + icon_state = "gangtool-white" + region_access = 1 + +#undef WAND_OPEN +#undef WAND_BOLT +#undef WAND_EMERGENCY \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 945f4f4d818..51f01d874a8 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -39,4 +39,5 @@ new /obj/item/weapon/tank/emergency_oxygen(src) new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/glasses/meson(src) - new /obj/item/clothing/head/soft(src) \ No newline at end of file + new /obj/item/clothing/head/soft(src) + new /obj/item/weapon/door_remote/quartermaster(src) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index d7fd20b6d37..1746211e248 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -31,6 +31,7 @@ new /obj/item/device/flash(src) new /obj/item/taperoll/engineering(src) new /obj/item/clothing/head/beret/eng(src) + new /obj/item/weapon/door_remote/chief_engineer(src) /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies locker" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index ad76cfc9409..17f208e28e9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -175,6 +175,7 @@ new /obj/item/device/flash(src) new /obj/item/weapon/reagent_containers/hypospray/CMO(src) new /obj/item/organ/internal/cyberimp/eyes/hud/medical(src) + new /obj/item/weapon/door_remote/chief_medical_officer(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 321b71b6eaa..488a422af86 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -49,6 +49,7 @@ new /obj/item/clothing/suit/armor/reactive(src) new /obj/item/device/flash(src) new /obj/item/device/laser_pointer(src) + new /obj/item/weapon/door_remote/research_director(src) /obj/structure/closet/secure_closet/research_reagents name = "research chemical storage closet" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 05f077e64d1..4a2ced79339 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -26,6 +26,7 @@ new /obj/item/device/radio/headset/heads/captain/alt(src) new /obj/item/clothing/gloves/color/captain(src) new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/door_remote/captain(src) @@ -52,6 +53,7 @@ new /obj/item/device/flash(src) new /obj/item/weapon/mining_voucher(src) new /obj/item/clothing/accessory/petcollar(src) + new /obj/item/weapon/door_remote/civillian(src) /obj/structure/closet/secure_closet/hop2 name = "head of personnel's attire" @@ -114,6 +116,7 @@ new /obj/item/weapon/storage/belt/security/sec(src) new /obj/item/taperoll/police(src) new /obj/item/weapon/gun/energy/hos(src) + new /obj/item/weapon/door_remote/head_of_security(src) diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 37026b153be5d3829010a8c9c01bb4f36e5c24b8..46a4a9743164a928d73eaf9cdb3a1ddf089e0773 100644 GIT binary patch delta 13429 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 diff --git a/paradise.dme b/paradise.dme index 67af82f6adf..570de9bb9ec 100644 --- a/paradise.dme +++ b/paradise.dme @@ -698,6 +698,7 @@ #include "code\game\objects\items\candle.dm" #include "code\game\objects\items\changestone.dm" #include "code\game\objects\items\contraband.dm" +#include "code\game\objects\items\control_wand.dm" #include "code\game\objects\items\crayons.dm" #include "code\game\objects\items\dehy_carp.dm" #include "code\game\objects\items\documents.dm" From d03a7ba7b5927d6875308875641292697a42e142 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 26 Apr 2016 00:51:24 -0400 Subject: [PATCH 2/3] fixes and defines --- code/__DEFINES/misc.dm | 12 +++++++- code/game/jobs/access.dm | 40 ++++++++++++------------- code/game/objects/items/control_wand.dm | 16 +++++----- 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index b6fcfc104c8..7f1a33d0b33 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -220,4 +220,14 @@ #define R_HAND_LAYER 28 #define TARGETED_LAYER 29 //BS12: Layer for the target overlay from weapon targeting system #define FIRE_LAYER 30 //If you're on fire -#define TOTAL_LAYERS 30 \ No newline at end of file +#define TOTAL_LAYERS 30 + +///Access Region Codes/// +#define REGION_ALL 0 +#define REGION_GENERAL 1 +#define REGION_SECURITY 2 +#define REGION_MEDBAY 3 +#define REGION_RESEARCH 4 +#define REGION_ENGINEERING 5 +#define REGION_SUPPLY 6 +#define REGION_COMMAND 7 \ No newline at end of file diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 5cb0002158f..7b0c41ca434 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -249,43 +249,43 @@ /proc/get_absolutely_all_accesses() return (get_all_accesses() | get_all_centcom_access() | get_all_syndicate_access() | get_all_misc_access()) -/proc/get_region_accesses(var/code) +/proc/get_region_accesses(code) switch(code) - if(0) + if(REGION_ALL) return get_all_accesses() - if(1) //station general + if(REGION_GENERAL) //station general return list(access_kitchen,access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer, access_magistrate, access_clown, access_mime) - if(2) //security + if(REGION_SECURITY) //security return list(access_sec_doors, access_weapons, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_pilot, access_hos) - if(3) //medbay + if(REGION_MEDBAY) //medbay return list(access_medical, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo, access_paramedic) - if(4) //research + if(REGION_RESEARCH) //research return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_xenoarch, access_minisat, access_rd) - if(5) //engineering and maintenance + if(REGION_ENGINEERING) //engineering and maintenance return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_minisat, access_ce, access_mechanic) - if(6) //supply + if(REGION_SUPPLY) //supply return list(access_mailsorting, access_mining, access_mining_station, access_mineral_storeroom, access_cargo, access_qm) - if(7) //command + if(REGION_COMMAND) //command return list(access_heads, access_RC_announce, access_keycard_auth, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_tcomsat, access_gateway, access_all_personal_lockers, access_heads_vault, access_blueshield, access_ntrep, access_hop, access_captain) -/proc/get_region_accesses_name(var/code) +/proc/get_region_accesses_name(code) switch(code) - if(0) + if(REGION_ALL) return "All" - if(1) //security + if(REGION_GENERAL) //station general + return "General" + if(REGION_SECURITY) //security return "Security" - if(2) //medbay + if(REGION_MEDBAY) //medbay return "Medbay" - if(3) //research + if(REGION_RESEARCH) //research return "Research" - if(4) //engineering and maintenance + if(REGION_ENGINEERING) //engineering and maintenance return "Engineering" - if(5) //command - return "Command" - if(6) //station general - return "Station General" - if(7) //supply + if(REGION_SUPPLY) //supply return "Supply" + if(REGION_COMMAND) //command + return "Command" /proc/get_access_desc(A) diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index 8a5b6ec7aca..86f6fd5a74d 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -62,42 +62,42 @@ name = "omni door remote" desc = "This control wand can access any door on the station." icon_state = "gangtool-yellow" - region_access = 0 + region_access = REGION_ALL /obj/item/weapon/door_remote/captain name = "command door remote" icon_state = "gangtool-yellow" - region_access = 7 + region_access = REGION_COMMAND /obj/item/weapon/door_remote/chief_engineer name = "engineering door remote" icon_state = "gangtool-orange" - region_access = 5 + region_access = REGION_ENGINEERING /obj/item/weapon/door_remote/research_director name = "research door remote" icon_state = "gangtool-purple" - region_access = 4 + region_access = REGION_RESEARCH /obj/item/weapon/door_remote/head_of_security name = "security door remote" icon_state = "gangtool-red" - region_access = 2 + region_access = REGION_SECURITY /obj/item/weapon/door_remote/quartermaster name = "supply door remote" icon_state = "gangtool-green" - region_access = 6 + region_access = REGION_SUPPLY /obj/item/weapon/door_remote/chief_medical_officer name = "medical door remote" icon_state = "gangtool-blue" - region_access = 3 + region_access = REGION_MEDBAY /obj/item/weapon/door_remote/civillian name = "civillian door remote" icon_state = "gangtool-white" - region_access = 1 + region_access = REGION_GENERAL #undef WAND_OPEN #undef WAND_BOLT From a275496723ac6d5f97b22807d0527c0d77edc721 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 26 Apr 2016 19:25:40 -0400 Subject: [PATCH 3/3] my code immersions --- code/game/jobs/access.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 7b0c41ca434..e3649f5e445 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -254,7 +254,7 @@ if(REGION_ALL) return get_all_accesses() if(REGION_GENERAL) //station general - return list(access_kitchen,access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer, access_magistrate, access_clown, access_mime) + return list(access_kitchen, access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer, access_magistrate, access_clown, access_mime) if(REGION_SECURITY) //security return list(access_sec_doors, access_weapons, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_pilot, access_hos) if(REGION_MEDBAY) //medbay