Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yautja Rework Holder #3955

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
c1edf1c
Dissolve and Breach
realforest2001 May 28, 2023
52ff6ef
icons
realforest2001 May 28, 2023
f493f47
the bits I missed
realforest2001 May 28, 2023
6f61058
charging
realforest2001 May 28, 2023
ec498c4
x
realforest2001 May 28, 2023
93730c9
tracker QOL
realforest2001 May 28, 2023
59c51f2
Plasma Pistol tweaks
realforest2001 May 28, 2023
6b17e32
changes
realforest2001 May 29, 2023
0882944
changes
realforest2001 May 29, 2023
9f057c4
Apply suggestions from code review
realforest2001 Jun 3, 2023
344bd7c
human_holder
realforest2001 Jun 9, 2023
3549244
def
realforest2001 Jun 9, 2023
65f923a
Apply suggestions from code review
realforest2001 Jun 9, 2023
bb8ebe0
Requested Changes
realforest2001 Jun 9, 2023
3198a9f
Merge remote-tracking branch 'origin/forest/pred/recovery' into fores…
realforest2001 Jun 9, 2023
047ff4d
Update code/modules/power/apc.dm
realforest2001 Jun 17, 2023
0f71934
Merge branch 'master' into forest/pred/bracercharge
realforest2001 Jun 28, 2023
6c0d534
removes the gel
realforest2001 Jun 28, 2023
cd574c9
Merge branch 'master' into forest/pred/recovery
realforest2001 Jun 28, 2023
9482ee8
Yautja cloak changes
realforest2001 Jun 28, 2023
5aed912
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/cloak
realforest2001 Jul 13, 2023
e64ea21
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/br…
realforest2001 Jul 13, 2023
6799227
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/re…
realforest2001 Jul 13, 2023
54c9def
access code
realforest2001 Jul 13, 2023
4abcd15
mapping
realforest2001 Jul 13, 2023
0af8c16
fixes the sound toggle
realforest2001 Jul 13, 2023
01979c7
Merge branch 'forest/pred/sound' into forest/pred/HOLDER
realforest2001 Jul 13, 2023
ba5b4d8
Merge branch 'forest/pred/recovery' into forest/pred/HOLDER
realforest2001 Jul 13, 2023
6028636
Merge branch 'forest/pred/cloak' into forest/pred/HOLDER
realforest2001 Jul 13, 2023
9e5e3e2
Merge branch 'forest/pred/bracercharge' into forest/pred/HOLDER
realforest2001 Jul 13, 2023
e44893f
Merge branch 'forest/pred/armory' into forest/pred/HOLDER
realforest2001 Jul 13, 2023
2288622
breaching charges
realforest2001 Jul 13, 2023
b637531
Yautja emote panel
realforest2001 Jul 16, 2023
9de94b5
bracer lock toggle & SD note
realforest2001 Jul 16, 2023
545e5bd
Merge branch 'forest/pred/locktoggle' into forest/pred/HOLDER
realforest2001 Jul 16, 2023
442019a
Merge branch 'forest/pred/voiceline' into forest/pred/HOLDER
realforest2001 Jul 16, 2023
20f2734
Merge remote-tracking branch 'upstream/master' into pr/3455
morrowwolf Jul 19, 2023
e0e8714
Changes
realforest2001 Jul 19, 2023
617c31f
Apply suggestions from code review
realforest2001 Jul 19, 2023
985286e
x
realforest2001 Jul 19, 2023
67666e6
changes
realforest2001 Jul 19, 2023
64db114
changes
realforest2001 Jul 19, 2023
29e64aa
changes
realforest2001 Jul 19, 2023
979bbef
changes
realforest2001 Jul 19, 2023
7d867fa
changes
realforest2001 Jul 19, 2023
dad0c32
Merge branch 'master' into forest/pred/recovery
realforest2001 Jul 19, 2023
67c44ca
fix rifle charge
realforest2001 Jul 19, 2023
960179c
yautja map flag
realforest2001 Jul 19, 2023
f9fb862
changes
realforest2001 Jul 19, 2023
8f8e736
Merge branch 'master' into forest/pred/armory
realforest2001 Jul 19, 2023
bf7a248
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/br…
realforest2001 Jul 19, 2023
6e0c6b0
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/cloak
realforest2001 Jul 19, 2023
31b0828
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/lo…
realforest2001 Jul 19, 2023
e329e55
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/vo…
realforest2001 Jul 19, 2023
55b0b46
Merge branch 'forest/pred/armory' into forest/pred/HOLDER
realforest2001 Jul 19, 2023
c153ccd
Merge branch 'forest/pred/bracercharge' into forest/pred/HOLDER
realforest2001 Jul 19, 2023
7754643
Merge branch 'forest/pred/cloak' into forest/pred/HOLDER
realforest2001 Jul 19, 2023
54e17cb
Merge branch 'forest/pred/locktoggle' into forest/pred/HOLDER
realforest2001 Jul 19, 2023
048b00f
Merge branch 'forest/pred/recovery' into forest/pred/HOLDER
realforest2001 Jul 19, 2023
e19c2c7
Merge branch 'forest/pred/voiceline' into forest/pred/HOLDER
realforest2001 Jul 19, 2023
50a4f61
Merge remote-tracking branch 'origin/forest/pred/HOLDER' into forest/…
realforest2001 Jul 19, 2023
6abe5a2
fix?
realforest2001 Jul 19, 2023
546b483
bracer access
realforest2001 Jul 19, 2023
d4c0930
fix?
realforest2001 Jul 19, 2023
25fc454
bracer access
realforest2001 Jul 19, 2023
9f27393
Apply suggestions from code review
realforest2001 Jul 19, 2023
8db39d7
plasma charge fix
realforest2001 Jul 20, 2023
bcaca58
plasma charge fix
realforest2001 Jul 20, 2023
fe08029
Merge branch 'forest/pred/recovery' into forest/pred/HOLDER
realforest2001 Jul 20, 2023
945cfc9
Merge branch 'master' into forest/pred/HOLDER
realforest2001 Jul 20, 2023
c54a05d
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/cloak
realforest2001 Jul 20, 2023
f4af5ac
Merge branch 'master' into forest/pred/voiceline
realforest2001 Jul 24, 2023
7efc23e
Merge branch 'master' into forest/pred/recovery
realforest2001 Jul 24, 2023
43771bb
Merge branch 'master' into forest/pred/locktoggle
realforest2001 Jul 24, 2023
8dd1ce6
Merge branch 'master' into forest/pred/cloak
realforest2001 Jul 24, 2023
2b0bcc0
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/br…
realforest2001 Jul 24, 2023
f32ef08
fix trait check
realforest2001 Jul 24, 2023
aca5dd4
Merge branch 'forest/pred/voiceline' into forest/pred/HOLDER
realforest2001 Jul 24, 2023
5aa4491
Merge branch 'forest/pred/recovery' into forest/pred/HOLDER
realforest2001 Jul 24, 2023
8982c14
Merge branch 'forest/pred/locktoggle' into forest/pred/HOLDER
realforest2001 Jul 24, 2023
b1af257
Merge branch 'forest/pred/armory' into forest/pred/HOLDER
realforest2001 Jul 24, 2023
067a385
Merge branch 'forest/pred/bracercharge' into forest/pred/HOLDER
realforest2001 Jul 24, 2023
308d50a
Merge branch 'forest/pred/cloak' into forest/pred/HOLDER
realforest2001 Jul 24, 2023
b5ea62a
Merge remote-tracking branch 'origin/forest/pred/HOLDER' into forest/…
realforest2001 Jul 24, 2023
9115d69
duplicate code removal
realforest2001 Jul 24, 2023
039cf4f
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/HO…
realforest2001 Jul 24, 2023
027924b
Merge remote-tracking branch 'cmss13-devs/master' into forest/pred/HO…
realforest2001 Jul 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,11 @@ most of them are tied into map-placed objects. This should be reworked in the fu
#define ACCESS_WY_CORPORATE_DS 202
#define ACCESS_PRESS 203
//=================================================

// Yautja Access Levels
/// Requires a visible ID chip to open
#define ACCESS_YAUTJA_SECURE 250
/// Elders+ only
#define ACCESS_YAUTJA_ELDER 251
/// Ancients only
#define ACCESS_YAUTJA_ANCIENT 252
16 changes: 8 additions & 8 deletions code/__DEFINES/clans.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@
/// Scales with clan size
#define CLAN_LIMIT_SIZE 2

var/global/list/datum/rank/clan_ranks = list(
CLAN_RANK_UNBLOODED = new /datum/rank/unblooded(),
CLAN_RANK_YOUNG = new /datum/rank/young(),
CLAN_RANK_BLOODED = new /datum/rank/blooded(),
CLAN_RANK_ELITE = new /datum/rank/elite(),
CLAN_RANK_ELDER = new /datum/rank/elder(),
CLAN_RANK_LEADER = new /datum/rank/leader(),
CLAN_RANK_ADMIN = new /datum/rank/ancient()
var/global/list/datum/yautja_rank/clan_ranks = list(
CLAN_RANK_UNBLOODED = new /datum/yautja_rank/unblooded(),
CLAN_RANK_YOUNG = new /datum/yautja_rank/young(),
CLAN_RANK_BLOODED = new /datum/yautja_rank/blooded(),
CLAN_RANK_ELITE = new /datum/yautja_rank/elite(),
CLAN_RANK_ELDER = new /datum/yautja_rank/elder(),
CLAN_RANK_LEADER = new /datum/yautja_rank/leader(),
CLAN_RANK_ADMIN = new /datum/yautja_rank/ancient()
)

var/global/list/clan_ranks_ordered = list(
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/signals_global.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,6 @@

/// From /datum/game_mode/colonialmarines/proc/check_ground_humans()
#define COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING "!groundside_forsaken_handling"

/// From
#define COMSIG_GLOB_YAUTJA_ARMORY_OPENED "yautja_armory_opened"
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@
#define JOE_EMOTE_CATEGORY_WARNING "Warning"
#define JOE_EMOTE_CATEGORY_QUESTION "Question"
#define JOE_EMOTE_CATEGORY_NOTICE "Notice"

#define YAUTJA_EMOTE_CATEGORY_FAKESOUND "Fake Sound"
#define YAUTJA_EMOTE_CATEGORY_VOICE "Voice Synthesizer"
#define YAUTJA_EMOTE_CATEGORY_SPECIES "Yautja"
25 changes: 18 additions & 7 deletions code/game/jobs/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,28 @@
//returns FALSE otherwise
/obj/proc/allowed(mob/M)
//check if it doesn't require any access at all
if(check_access()) return TRUE
if(isRemoteControlling(M)) return TRUE //AI can do whatever he wants
if(check_access() || isRemoteControlling(M))
return TRUE

else if(ishuman(M))
if(ishuman(M))
var/mob/living/carbon/human/H = M
//if they are holding or wearing a card that has access, that works
if(check_access(H.get_active_hand()) || check_access(H.wear_id)) return TRUE
else if(istype(M, /mob/living/carbon/xenomorph))
if(check_access(H.get_active_hand()) || check_access(H.wear_id))
return TRUE
return check_yautja_access(H)
if(istype(M, /mob/living/carbon/xenomorph))
var/mob/living/carbon/C = M
if(check_access(C.get_active_hand())) return TRUE
return FALSE
if(check_access(C.get_active_hand()))
return TRUE
return FALSE

/obj/proc/check_yautja_access(mob/living/carbon/human/yautja)
if(!istype(yautja))
return FALSE
var/obj/item/clothing/gloves/yautja/hunter/bracer = yautja.gloves
if(!istype(bracer) || !bracer.embedded_id || !check_access(bracer.embedded_id))
return FALSE
return TRUE

/obj/item/proc/GetAccess() return list()

Expand Down
30 changes: 30 additions & 0 deletions code/game/machinery/doors/airlock_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,36 @@
/obj/structure/machinery/door/airlock/strata/mining/autoname
autoname = TRUE

//YAUTJA SHIP - CURRENTLY USES STRATA DOORS
/obj/structure/machinery/door/airlock/yautja
name = "\improper Airlock"
icon = 'icons/obj/structures/doors/strata/strata_doors.dmi'
openspeed = 5
req_access = null
req_one_access = null
tiles_with = list(
/obj/structure/window/framed/strata,
/obj/structure/machinery/door/airlock,
)
masterkey_resist = TRUE
no_panel = TRUE
not_weldable = TRUE
unacidable = TRUE

/obj/structure/machinery/door/airlock/yautja/autoname
autoname = TRUE

/obj/structure/machinery/door/airlock/yautja/secure
heavy = TRUE
req_one_access = list(ACCESS_YAUTJA_SECURE, ACCESS_YAUTJA_ELDER, ACCESS_YAUTJA_ANCIENT)

/obj/structure/machinery/door/airlock/yautja/secure/elder
req_one_access = list(ACCESS_YAUTJA_ELDER, ACCESS_YAUTJA_ANCIENT)

/obj/structure/machinery/door/airlock/yautja/secure/ancient
req_one_access = list(ACCESS_YAUTJA_ANCIENT)
unslashable = TRUE

//FIORINA PENITENTIARY (PRISON_FOP) MAINTENANCE HATCHES

/obj/structure/machinery/door/airlock/prison_hatch
Expand Down
11 changes: 11 additions & 0 deletions code/game/machinery/doors/shutters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,17 @@
. = ..()
relativewall_neighbours()

/obj/structure/machinery/door/poddoor/shutters/almayer/yautja
name = "Armory Shutter"
id = "Yautja Armory"
needs_power = FALSE
unacidable = TRUE
indestructible = TRUE

/obj/structure/machinery/door/poddoor/shutters/almayer/yautja/Initialize()
. = ..()
RegisterSignal(SSdcs, COMSIG_GLOB_YAUTJA_ARMORY_OPENED, PROC_REF(open))

/obj/structure/machinery/door/poddoor/shutters/almayer/containment
unacidable = TRUE

Expand Down
4 changes: 2 additions & 2 deletions code/modules/clans/client.dm
Original file line number Diff line number Diff line change
Expand Up @@ -405,10 +405,10 @@
to_chat(src, SPAN_WARNING("This player doesn't belong to a clan!"))
return

var/list/datum/rank/ranks = clan_ranks.Copy()
var/list/datum/yautja_rank/ranks = clan_ranks.Copy()
ranks -= CLAN_RANK_ADMIN // Admin rank should not and cannot be obtained from here

var/datum/rank/chosen_rank
var/datum/yautja_rank/chosen_rank
if(has_clan_permission(CLAN_PERMISSION_ADMIN_MODIFY, warn = FALSE))
var/input = tgui_input_list(src, "Select the rank to change this user to.", "Select Rank", ranks)

Expand Down
16 changes: 8 additions & 8 deletions code/modules/clans/rank.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/datum/rank
/datum/yautja_rank
var/name

var/limit_type
Expand All @@ -7,37 +7,37 @@
var/permissions = CLAN_PERMISSION_USER_VIEW
var/permission_required = CLAN_PERMISSION_USER_MODIFY

/datum/rank/unblooded
/datum/yautja_rank/unblooded
name = CLAN_RANK_UNBLOODED
permission_required = CLAN_PERMISSION_ADMIN_MODIFY

/datum/rank/young
/datum/yautja_rank/young
name = CLAN_RANK_YOUNG

/datum/rank/blooded
/datum/yautja_rank/blooded
name = CLAN_RANK_BLOODED

/datum/rank/elite
/datum/yautja_rank/elite
name = CLAN_RANK_ELITE

limit_type = CLAN_LIMIT_SIZE
limit = 5

/datum/rank/elder
/datum/yautja_rank/elder
name = CLAN_RANK_ELDER

limit_type = CLAN_LIMIT_SIZE
limit = 12

/datum/rank/leader
/datum/yautja_rank/leader
name = CLAN_RANK_LEADER

permissions = CLAN_PERMISSION_USER_ALL
permission_required = CLAN_PERMISSION_ADMIN_MODIFY
limit_type = CLAN_LIMIT_NUMBER
limit = 1

/datum/rank/ancient
/datum/yautja_rank/ancient
name = CLAN_RANK_ADMIN

permission_required = CLAN_PERMISSION_ADMIN_MANAGER
Expand Down
83 changes: 74 additions & 9 deletions code/modules/cm_preds/yaut_bracers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,10 @@
/obj/item/clothing/gloves/yautja/equipped(mob/user, slot)
. = ..()
if(slot == WEAR_HANDS)
flags_item |= NODROP
START_PROCESSING(SSobj, src)
if(isyautja(user))
to_chat(user, SPAN_WARNING("The bracer clamps securely around your forearm and beeps in a comfortable, familiar way."))
else
to_chat(user, SPAN_WARNING("The bracer clamps painfully around your forearm and beeps angrily. It won't come off!"))
if(!owner)
owner = user
toggle_lock_internal(user, TRUE)

/obj/item/clothing/gloves/yautja/Destroy()
STOP_PROCESSING(SSobj, src)
Expand Down Expand Up @@ -227,7 +223,7 @@
var/caster_material = "ebony"

var/obj/item/card/id/bracer_chip/embedded_id

var/owner_rank = CLAN_RANK_UNBLOODED_INT

var/caster_deployed = FALSE
var/obj/item/weapon/gun/energy/yautja/plasma_caster/caster
Expand All @@ -236,8 +232,10 @@
var/obj/item/weapon/wristblades/left_wristblades
var/obj/item/weapon/wristblades/right_wristblades

/obj/item/clothing/gloves/yautja/hunter/Initialize(mapload, new_translator_type, new_caster_material)
/obj/item/clothing/gloves/yautja/hunter/Initialize(mapload, new_translator_type, new_caster_material, new_owner_rank)
. = ..()
if(new_owner_rank)
owner_rank = new_owner_rank
embedded_id = new(src)
if(new_translator_type)
translator_type = new_translator_type
Expand Down Expand Up @@ -742,12 +740,13 @@
return
exploding = FALSE
to_chat(M, SPAN_NOTICE("Your bracers stop beeping."))
message_admins("[M] ([M.key]) has deactivated their Self-Destruct.")
message_all_yautja("[M.real_name] has cancelled their bracer's self-destruction sequence.")
message_admins("[key_name(M)] has deactivated their Self-Destruct.")
return
if(istype(M.wear_mask,/obj/item/clothing/mask/facehugger) || (M.status_flags & XENO_HOST))
to_chat(M, SPAN_WARNING("Strange...something seems to be interfering with your bracer functions..."))
return
if(forced || alert("Detonate the bracers? Are you sure?","Explosive Bracers", "Yes", "No") == "Yes")
if(forced || alert("Detonate the bracers? Are you sure?\n\nNote: If you activate SD for any non-accidental reason during or after a fight, you commit to the SD. By initially activating the SD, you have accepted your impending death to preserve any lost honor.","Explosive Bracers", "Yes", "No") == "Yes")
if(M.gloves != src)
return
if(M.stat == DEAD)
Expand Down Expand Up @@ -1077,3 +1076,69 @@
M.u_equip(embedded_id, src, FALSE, TRUE)
else
embedded_id.forceMove(src)

/// Verb to let Yautja attempt the unlocking.
/obj/item/clothing/gloves/yautja/hunter/verb/toggle_lock()
set name = "Toggle Bracer Lock"
set desc = "Toggle the lock on your bracers, allowing them to be removed."
set category = "Yautja.Misc"
set src in usr

if(usr.stat)
to_chat(usr, SPAN_WARNING("You can't do that right now..."))
return FALSE
if(!HAS_TRAIT(usr, TRAIT_YAUTJA_TECH))
to_chat(usr, SPAN_WARNING("You have no idea how to use this..."))
return FALSE

attempt_toggle_lock(usr, FALSE)
return TRUE

/// Handles all the locking and unlocking of bracers.
/obj/item/clothing/gloves/yautja/proc/attempt_toggle_lock(mob/user, force_lock)
if(!user)
return FALSE

var/obj/item/grab/held_mob = user.get_active_hand()
if(!istype(held_mob))
log_attack("[key_name_admin(usr)] has unlocked their own bracer.")
toggle_lock_internal(user)
return TRUE

var/mob/living/carbon/human/victim = held_mob.grabbed_thing
var/obj/item/clothing/gloves/yautja/hunter/bracer = victim.gloves
if(isspeciesyautja(victim) && !(victim.stat == DEAD))
to_chat(user, SPAN_WARNING("You cannot unlock the bracer of a living hunter!"))
return FALSE

if(!istype(bracer))
to_chat(user, SPAN_WARNING("<b>This [victim.species] does not have a bracer attached.</b>"))
return FALSE

if(alert("Are you sure you want to unlock this [victim.species]'s bracer?", "Unlock Bracers", "Yes", "No") != "Yes")
return FALSE

if(user.get_active_hand() == held_mob && victim && victim.gloves == bracer)
log_interact(user, victim, "[key_name(user)] unlocked the [bracer.name] of [key_name(victim)].")
user.visible_message(SPAN_WARNING("[user] presses a few buttons on [victim]'s wrist bracer."),SPAN_DANGER("You unlock the bracer."))
bracer.toggle_lock_internal(victim)
return TRUE

/// The actual unlock/lock function.
/obj/item/clothing/gloves/yautja/proc/toggle_lock_internal(mob/wearer, force_lock)
if(((flags_item & NODROP) || (flags_inventory & CANTSTRIP)) && !force_lock)
flags_item &= ~NODROP
flags_inventory &= ~CANTSTRIP
if(!isyautja(wearer))
to_chat(wearer, SPAN_WARNING("The bracer beeps pleasantly, releasing it's grip on your forearm."))
else
to_chat(wearer, SPAN_WARNING("With an angry blare the bracer releases your forearm."))
return TRUE

flags_item |= NODROP
flags_inventory |= CANTSTRIP
if(isyautja(wearer))
to_chat(wearer, SPAN_WARNING("The bracer clamps securely around your forearm and beeps in a comfortable, familiar way."))
else
to_chat(wearer, SPAN_WARNING("The bracer clamps painfully around your forearm and beeps angrily. It won't come off!"))
return TRUE
20 changes: 20 additions & 0 deletions code/modules/cm_preds/yaut_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -888,11 +888,31 @@
desc = "A complex cypher chip embedded within a set of clan bracers."
icon = 'icons/obj/items/radio.dmi'
icon_state = "upp_key"
access = list(ACCESS_YAUTJA_SECURE)
w_class = SIZE_TINY
flags_equip_slot = SLOT_ID
flags_item = ITEM_PREDATOR|DELONDROP|NODROP
paygrade = null

/obj/item/card/id/bracer_chip/set_user_data(mob/living/carbon/human/H)
if(!istype(H))
return

registered_name = H.real_name
registered_ref = WEAKREF(H)
registered_gid = H.gid
blood_type = H.blood_type

var/list/new_access = list(ACCESS_YAUTJA_SECURE)
var/obj/item/clothing/gloves/yautja/hunter/bracer = loc
if(istype(bracer) && bracer.owner_rank)
switch(bracer.owner_rank)
if(CLAN_RANK_ELDER_INT, CLAN_RANK_LEADER_INT)
new_access = list(ACCESS_YAUTJA_SECURE, ACCESS_YAUTJA_ELDER)
if(CLAN_RANK_ADMIN_INT)
new_access = list(ACCESS_YAUTJA_SECURE, ACCESS_YAUTJA_ELDER, ACCESS_YAUTJA_ANCIENT)
access = new_access

/obj/item/storage/medicomp
name = "medicomp"
desc = "A complex kit of alien tools and medicines."
Expand Down
Loading