Mecca Fixes, pt1. WIP.

```yaml
changes:
- tweak: "Device Analyzers can no longer scan some items.  Other items can only be scanned with the traitor variant of the scanner."
- tweak: "Flatpacks take 10-20 seconds to open."
- bugfix: "Flatpacks hit multiple times by a crowbar will only open once."
```
This commit is contained in:
Rob Nelson
2014-11-12 11:20:18 -08:00
parent 21cf8c9a90
commit 0ff02b10b0
9 changed files with 34 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
/datum/mind/var/list/job_objectives=list() /datum/mind/var/list/job_objectives=list()
#define FINDJOBTASK_DEFAULT_NEW 1 // Make a new task of this type if one can't be found. #define FINDJOBTASK_DEFAULT_NEW 1 // Make a new task of this type if one can't be found.
/datum/mind/proc/findJobTask(var/typepath,var/options=0) /datum/mind/proc/findJobTask(var/typepath,var/options=0)
var/datum/job_objective/task = locate(typepath) in src.job_objectives var/datum/job_objective/task = locate(typepath) in src.job_objectives
if(!istype(task,typepath)) if(!istype(task,typepath))

View File

@@ -24,6 +24,9 @@
var/list/mob/_using // All mobs dicking with us. var/list/mob/_using // All mobs dicking with us.
// Shit for mechanics. (MECH_*)
var/mech_flags=0
/obj/Destroy() /obj/Destroy()
if(_using) if(_using)
for(var/mob/mob in _using) for(var/mob/mob in _using)
@@ -267,4 +270,4 @@ a {
return return
/obj/proc/container_resist() /obj/proc/container_resist()
return return

View File

@@ -104,6 +104,7 @@ var/global/loopModeNames=list(
var/state_base = "jukebox2" var/state_base = "jukebox2"
machine_flags = WRENCHMOVE | FIXED2WORK | EMAGGABLE machine_flags = WRENCHMOVE | FIXED2WORK | EMAGGABLE
mech_flags = MECH_SCAN_FAIL
emag_cost = 0 // because fun/unlimited uses. emag_cost = 0 // because fun/unlimited uses.
/obj/machinery/media/jukebox/New(loc) /obj/machinery/media/jukebox/New(loc)

View File

@@ -15,6 +15,7 @@
force = 5.0 force = 5.0
origin_tech = "combat=1" origin_tech = "combat=1"
attack_verb = list("struck", "hit", "bashed") attack_verb = list("struck", "hit", "bashed")
mech_flags = MECH_SCAN_ILLEGAL
var/fire_sound = 'sound/weapons/Gunshot.ogg' var/fire_sound = 'sound/weapons/Gunshot.ogg'
var/obj/item/projectile/in_chamber = null var/obj/item/projectile/in_chamber = null

View File

@@ -62,6 +62,14 @@
if(!istype(O)) if(!istype(O))
return 0 return 0
// Objects that cannot be scanned
if((O.mech_flags & MECH_SCAN_FAIL)==MECH_SCAN_FAIL)
return 0
// Objects that can only be scanned with the syndi-scanner.
if(syndi_filter && (O.mech_flags & MECH_SCAN_ILLEGAL)==MECH_SCAN_ILLEGAL)
return 0
var/list/techlist var/list/techlist
if(istype(O, /obj/machinery)) if(istype(O, /obj/machinery))
var/obj/machinery/M = O var/obj/machinery/M = O

View File

@@ -6,6 +6,7 @@
density = 1 density = 1
anchored = 0 anchored = 0
var/obj/machinery/machine = null var/obj/machinery/machine = null
var/opening=0
/obj/structure/closet/crate/flatpack/New() /obj/structure/closet/crate/flatpack/New()
..() ..()
@@ -13,8 +14,12 @@
/obj/structure/closet/crate/flatpack/attackby(var/atom/A, mob/user) /obj/structure/closet/crate/flatpack/attackby(var/atom/A, mob/user)
if(istype(A, /obj/item/weapon/crowbar)) if(istype(A, /obj/item/weapon/crowbar))
if(opening)
user << "<span class='warning'>This is already being opened.</span>"
return 1
user <<"<span class='notice'>You begin to open the flatpack...</span>" user <<"<span class='notice'>You begin to open the flatpack...</span>"
if(do_after(user, 40)) opening=1
if(do_after(user, rand(10,20) SECONDS))
if(machine) if(machine)
user <<"<span class='notice'>\icon [src]You successfully unpack \the [src]!</span>" user <<"<span class='notice'>\icon [src]You successfully unpack \the [src]!</span>"
machine.loc = get_turf(src) machine.loc = get_turf(src)
@@ -24,7 +29,9 @@
for(var/atom/movable/AM in src) for(var/atom/movable/AM in src)
AM.loc = get_turf(src) AM.loc = get_turf(src)
qdel(src) qdel(src)
opening=0
return 1 return 1
opening=0
return return
/obj/structure/closet/crate/flatpack/attack_hand() /obj/structure/closet/crate/flatpack/attack_hand()

View File

@@ -28,7 +28,7 @@
var/damage = 0 var/damage = 0
var/damage_archived = 0 var/damage_archived = 0
var/safe_alert = "Crystaline hyperstructure returning to safe operating levels." var/safe_alert = "Crystalline hyperstructure returning to safe operating levels."
var/warning_point = 100 var/warning_point = 100
var/warning_alert = "Danger! Crystal hyperstructure instability!" var/warning_alert = "Danger! Crystal hyperstructure instability!"
var/emergency_point = 700 var/emergency_point = 700

View File

@@ -925,3 +925,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define ACCESS_EMAG 32 //does it lose all its access when smacked by an emag? incompatible with CONSOLECONTROl, for obvious reasons #define ACCESS_EMAG 32 //does it lose all its access when smacked by an emag? incompatible with CONSOLECONTROl, for obvious reasons
#define LOCKBOXES 64 //does it spawn a lockbox around a design which is said to be locked? - for fabricators #define LOCKBOXES 64 //does it spawn a lockbox around a design which is said to be locked? - for fabricators
#define TRUELOCKS 128 //does it make a truly locked lockbox? If not set, the lockboxes made are unlockable by any crew with an ID #define TRUELOCKS 128 //does it make a truly locked lockbox? If not set, the lockboxes made are unlockable by any crew with an ID
// Mecca scanner flags
#define MECH_SCAN_FAIL 1 // Cannot be scanned at all.
#define MECH_SCAN_ILLEGAL 2 // Can only be scanned by the antag scanner.

View File

@@ -0,0 +1,6 @@
author: N3X15
delete-after: true
changes:
- tweak: "Device Analyzers can no longer scan some items. Other items can only be scanned with the traitor variant of the scanner."
- tweak: "Flatpacks take 10-20 seconds to open."
- bugfix: "Flatpacks hit multiple times by a crowbar will only open once."