Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Ghommie-cit42
This commit is contained in:
@@ -182,11 +182,11 @@
|
||||
|
||||
//Get the clone body ready
|
||||
maim_clone(H)
|
||||
H.add_trait(TRAIT_STABLEHEART, "cloning")
|
||||
H.add_trait(TRAIT_EMOTEMUTE, "cloning")
|
||||
H.add_trait(TRAIT_MUTE, "cloning")
|
||||
H.add_trait(TRAIT_NOBREATH, "cloning")
|
||||
H.add_trait(TRAIT_NOCRITDAMAGE, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_STABLEHEART, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_EMOTEMUTE, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_MUTE, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_NOBREATH, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_NOCRITDAMAGE, "cloning")
|
||||
H.Unconscious(80)
|
||||
|
||||
clonemind.transfer_to(H)
|
||||
@@ -361,11 +361,11 @@
|
||||
if(!mob_occupant)
|
||||
return
|
||||
|
||||
mob_occupant.remove_trait(TRAIT_STABLEHEART, "cloning")
|
||||
mob_occupant.remove_trait(TRAIT_EMOTEMUTE, "cloning")
|
||||
mob_occupant.remove_trait(TRAIT_MUTE, "cloning")
|
||||
mob_occupant.remove_trait(TRAIT_NOCRITDAMAGE, "cloning")
|
||||
mob_occupant.remove_trait(TRAIT_NOBREATH, "cloning")
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_STABLEHEART, "cloning")
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_EMOTEMUTE, "cloning")
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_MUTE, "cloning")
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_NOCRITDAMAGE, "cloning")
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_NOBREATH, "cloning")
|
||||
|
||||
if(grab_ghost_when == CLONER_MATURE_CLONE)
|
||||
mob_occupant.grab_ghost()
|
||||
@@ -452,7 +452,7 @@
|
||||
|
||||
// brain function, they also have no limbs or internal organs.
|
||||
|
||||
if(!H.has_trait(TRAIT_NODISMEMBER))
|
||||
if(!HAS_TRAIT(H, TRAIT_NODISMEMBER))
|
||||
var/static/list/zones = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)
|
||||
for(var/zone in zones)
|
||||
var/obj/item/bodypart/BP = H.get_bodypart(zone)
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#define ARCADE_WEIGHT_TRICK 4
|
||||
#define ARCADE_WEIGHT_USELESS 2
|
||||
#define ARCADE_WEIGHT_RARE 1
|
||||
#define ARCADE_WEIGHT_PLUSH 65
|
||||
|
||||
|
||||
/obj/machinery/computer/arcade
|
||||
name = "random arcade"
|
||||
desc = "random arcade machine"
|
||||
@@ -6,55 +12,65 @@
|
||||
icon_screen = "invaders"
|
||||
clockwork = TRUE //it'd look weird
|
||||
var/list/prizes = list(
|
||||
/obj/item/storage/box/snappops = 8,
|
||||
/obj/item/toy/talking/AI = 8,
|
||||
/obj/item/toy/talking/codex_gigas = 8,
|
||||
/obj/item/clothing/under/syndicate/tacticool = 8,
|
||||
/obj/item/toy/sword = 8,
|
||||
/obj/item/toy/gun = 8,
|
||||
/obj/item/gun/ballistic/shotgun/toy/crossbow = 8,
|
||||
/obj/item/storage/box/fakesyndiesuit = 8,
|
||||
/obj/item/storage/crayons = 8,
|
||||
/obj/item/toy/spinningtoy = 8,
|
||||
/obj/item/toy/prize/ripley = 4,
|
||||
/obj/item/toy/prize/fireripley = 4,
|
||||
/obj/item/toy/prize/deathripley = 4,
|
||||
/obj/item/toy/prize/gygax = 4,
|
||||
/obj/item/toy/prize/durand = 4,
|
||||
/obj/item/toy/prize/honk = 4,
|
||||
/obj/item/toy/prize/marauder = 4,
|
||||
/obj/item/toy/prize/seraph = 4,
|
||||
/obj/item/toy/prize/mauler = 4,
|
||||
/obj/item/toy/prize/odysseus = 4,
|
||||
/obj/item/toy/prize/phazon = 4,
|
||||
/obj/item/toy/prize/reticence = 4,
|
||||
/obj/item/toy/cards/deck = 8,
|
||||
/obj/item/toy/nuke = 8,
|
||||
/obj/item/toy/minimeteor = 8,
|
||||
/obj/item/toy/redbutton = 8,
|
||||
/obj/item/toy/talking/owl = 8,
|
||||
/obj/item/toy/talking/griffin = 8,
|
||||
/obj/item/coin/antagtoken = 8,
|
||||
/obj/item/stack/tile/fakespace/loaded = 8,
|
||||
/obj/item/stack/tile/fakepit/loaded = 8,
|
||||
/obj/item/toy/toy_xeno = 8,
|
||||
/obj/item/storage/box/actionfigure = 4,
|
||||
/obj/item/restraints/handcuffs/fake = 8,
|
||||
/obj/item/grenade/chem_grenade/glitter/pink = 4,
|
||||
/obj/item/grenade/chem_grenade/glitter/blue = 4,
|
||||
/obj/item/grenade/chem_grenade/glitter/white = 4,
|
||||
/obj/item/toy/eightball = 8,
|
||||
/obj/item/toy/windupToolbox = 8,
|
||||
/obj/item/toy/clockwork_watch = 8,
|
||||
/obj/item/toy/toy_dagger = 8,
|
||||
/obj/item/extendohand/acme = 4,
|
||||
/obj/item/hot_potato/harmless/toy = 4,
|
||||
/obj/item/card/emagfake = 4,
|
||||
/obj/item/clothing/shoes/wheelys = 8,
|
||||
/obj/item/clothing/shoes/kindleKicks = 8,
|
||||
/obj/item/storage/belt/military/snack = 8,
|
||||
/obj/item/toy/plush/random = 450
|
||||
)//plushies have a 0.6 chance
|
||||
/obj/item/toy/balloon = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/beach_ball = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/cattoy = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/clockwork_watch = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/dummy = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/eightball = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/eightball/haunted = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/storage/box/actionfigure = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/foamblade = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/gun = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/gun/justicar = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/gun/m41 = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/katana = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/minimeteor = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/nuke = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/plush/random = ARCADE_WEIGHT_PLUSH,
|
||||
/obj/item/toy/redbutton = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/spinningtoy = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/sword = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/sword/cx = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/talking/AI = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/talking/codex_gigas = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/talking/griffin = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/talking/owl = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/toy/toy_dagger = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/toy_xeno = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/toy/windupToolbox = ARCADE_WEIGHT_TRICK,
|
||||
|
||||
/obj/item/twohanded/dualsaber/toy = ARCADE_WEIGHT_RARE,
|
||||
/mob/living/simple_animal/bot/secbot/grievous/toy = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/clothing/mask/facehugger/toy = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/hot_potato/harmless/toy = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/twohanded/dualsaber/toy = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/twohanded/hypereutactic/toy = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/twohanded/hypereutactic/toy/rainbow = ARCADE_WEIGHT_RARE,
|
||||
|
||||
/obj/item/storage/box/snappops = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/clothing/under/syndicate/tacticool = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/gun/ballistic/shotgun/toy/crossbow = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/storage/box/fakesyndiesuit = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/storage/crayons = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/coin/antagtoken = ARCADE_WEIGHT_USELESS,
|
||||
/obj/item/stack/tile/fakespace/loaded = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/stack/tile/fakepit/loaded = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/restraints/handcuffs/fake = ARCADE_WEIGHT_TRICK,
|
||||
|
||||
/obj/item/grenade/chem_grenade/glitter/pink = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/grenade/chem_grenade/glitter/blue = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/grenade/chem_grenade/glitter/white = ARCADE_WEIGHT_TRICK,
|
||||
|
||||
/obj/item/extendohand/acme = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/card/emagfake = ARCADE_WEIGHT_TRICK,
|
||||
/obj/item/clothing/shoes/wheelys = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/clothing/shoes/kindleKicks = ARCADE_WEIGHT_RARE,
|
||||
/obj/item/storage/belt/military/snack = ARCADE_WEIGHT_RARE,
|
||||
|
||||
/obj/item/clothing/mask/fakemoustache/italian = ARCADE_WEIGHT_RARE
|
||||
)
|
||||
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
|
||||
@@ -74,7 +90,8 @@
|
||||
|
||||
/obj/machinery/computer/arcade/proc/prizevend(mob/user)
|
||||
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "arcade", /datum/mood_event/arcade)
|
||||
if(prob(0.0001)) //1 in a million
|
||||
|
||||
if(prob(1) && prob(1) && prob(1)) //Proper 1 in a million
|
||||
new /obj/item/gun/energy/pulse/prize(src)
|
||||
SSmedals.UnlockMedal(MEDAL_PULSE, usr.client)
|
||||
|
||||
@@ -124,6 +141,8 @@
|
||||
var/blocked = FALSE //Player cannot attack/heal while set
|
||||
var/turtle = 0
|
||||
|
||||
var/turn_speed = 5 //Measured in deciseconds.
|
||||
|
||||
/obj/machinery/computer/arcade/battle/Reset()
|
||||
var/name_action
|
||||
var/name_part1
|
||||
@@ -172,7 +191,7 @@
|
||||
if(turtle > 0)
|
||||
turtle--
|
||||
|
||||
sleep(10)
|
||||
sleep(turn_speed)
|
||||
enemy_hp -= attackamt
|
||||
arcade_action(usr)
|
||||
|
||||
@@ -185,7 +204,7 @@
|
||||
updateUsrDialog()
|
||||
turtle++
|
||||
|
||||
sleep(10)
|
||||
sleep(turn_speed)
|
||||
player_mp -= pointamt
|
||||
player_hp += healamt
|
||||
blocked = TRUE
|
||||
@@ -202,7 +221,7 @@
|
||||
turtle--
|
||||
|
||||
updateUsrDialog()
|
||||
sleep(10)
|
||||
sleep(turn_speed)
|
||||
arcade_action(usr)
|
||||
|
||||
if (href_list["close"])
|
||||
@@ -211,10 +230,10 @@
|
||||
|
||||
else if (href_list["newgame"]) //Reset everything
|
||||
temp = "New Round"
|
||||
player_hp = 30
|
||||
player_mp = 10
|
||||
enemy_hp = 45
|
||||
enemy_mp = 20
|
||||
player_hp = initial(player_hp)
|
||||
player_mp = initial(player_mp)
|
||||
enemy_hp = initial(enemy_hp)
|
||||
enemy_mp = initial(enemy_mp)
|
||||
gameover = FALSE
|
||||
turtle = 0
|
||||
|
||||
@@ -260,7 +279,7 @@
|
||||
|
||||
if (player_mp <= 0)
|
||||
gameover = TRUE
|
||||
sleep(10)
|
||||
sleep(turn_speed)
|
||||
temp = "You have been drained! GAME OVER"
|
||||
playsound(loc, 'sound/arcade/lose.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
if(obj_flags & EMAGGED)
|
||||
|
||||
@@ -59,8 +59,8 @@
|
||||
var/total_moles = air_sample.total_moles()
|
||||
if(total_moles)
|
||||
for(var/gas_id in air_sample.gases)
|
||||
var/gas_name = air_sample.gases[gas_id][GAS_META][META_GAS_NAME]
|
||||
signal.data["gases"][gas_name] = air_sample.gases[gas_id][MOLES] / total_moles * 100
|
||||
var/gas_name = GLOB.meta_gas_names[gas_id]
|
||||
signal.data["gases"][gas_name] = air_sample.gases[gas_id] / total_moles * 100
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
|
||||
@@ -450,7 +450,7 @@
|
||||
scantemp = "<font class='bad'>Subject's brain is not responding to scanning stimuli.</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
return
|
||||
if((mob_occupant.has_trait(TRAIT_NOCLONE)) && (src.scanner.scan_level < 2))
|
||||
if((HAS_TRAIT(mob_occupant, TRAIT_NOCLONE)) && (src.scanner.scan_level < 2))
|
||||
scantemp = "<font class='bad'>Subject no longer contains the fundamental materials required to create a living clone.</font>"
|
||||
playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0)
|
||||
return
|
||||
|
||||
@@ -173,14 +173,15 @@
|
||||
var/obj/machinery/shuttle_manipulator/M = locate() in GLOB.machines
|
||||
if(M)
|
||||
SSshuttle.shuttle_purchased = TRUE
|
||||
M.unload_preview()
|
||||
M.load_template(S)
|
||||
M.existing_shuttle = SSshuttle.emergency
|
||||
M.action_load(S)
|
||||
SSshuttle.points -= S.credit_cost
|
||||
minor_announce("[usr.real_name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase")
|
||||
message_admins("[ADMIN_LOOKUPFLW(usr)] purchased [S.name].")
|
||||
SSblackbox.record_feedback("text", "shuttle_purchase", 1, "[S.name]")
|
||||
M.unload_preview()
|
||||
M.load_template(S)
|
||||
M.existing_shuttle = SSshuttle.emergency
|
||||
M.action_load(S)
|
||||
message_admins("[S.name] loaded, purchased by [usr]")
|
||||
else
|
||||
to_chat(usr, "Something went wrong! The shuttle exchange system seems to be down.")
|
||||
else
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
if(connected && connected.is_operational())
|
||||
if(connected.occupant) //set occupant_status message
|
||||
viable_occupant = connected.occupant
|
||||
if(viable_occupant.has_dna() && !viable_occupant.has_trait(TRAIT_RADIMMUNE) && !viable_occupant.has_trait(TRAIT_NOCLONE) || (connected.scan_level == 3)) //occupant is viable for dna modification
|
||||
if(viable_occupant.has_dna() && !HAS_TRAIT(viable_occupant, TRAIT_RADIMMUNE) && !HAS_TRAIT(viable_occupant, TRAIT_NOCLONE) || (connected.scan_level == 3)) //occupant is viable for dna modification
|
||||
occupant_status += "[viable_occupant.name] => "
|
||||
switch(viable_occupant.stat)
|
||||
if(CONSCIOUS)
|
||||
@@ -523,7 +523,7 @@
|
||||
var/mob/living/carbon/viable_occupant = null
|
||||
if(connected)
|
||||
viable_occupant = connected.occupant
|
||||
if(!istype(viable_occupant) || !viable_occupant.dna || viable_occupant.has_trait(TRAIT_RADIMMUNE) || viable_occupant.has_trait(TRAIT_NOCLONE))
|
||||
if(!istype(viable_occupant) || !viable_occupant.dna || HAS_TRAIT(viable_occupant, TRAIT_RADIMMUNE) || HAS_TRAIT(viable_occupant, TRAIT_NOCLONE))
|
||||
viable_occupant = null
|
||||
return viable_occupant
|
||||
|
||||
|
||||
@@ -214,11 +214,11 @@
|
||||
sparkles += S
|
||||
switch(i)
|
||||
if(1 to 8)
|
||||
S.orbit(src, 30, TRUE, 60, 36, TRUE, FALSE)
|
||||
S.orbit(src, 30, TRUE, 60, 36, TRUE)
|
||||
if(9 to 16)
|
||||
S.orbit(src, 62, TRUE, 60, 36, TRUE, FALSE)
|
||||
S.orbit(src, 62, TRUE, 60, 36, TRUE)
|
||||
if(17 to 24)
|
||||
S.orbit(src, 95, TRUE, 60, 36, TRUE, FALSE)
|
||||
S.orbit(src, 95, TRUE, 60, 36, TRUE)
|
||||
if(25)
|
||||
S.pixel_y = 7
|
||||
S.forceMove(get_turf(src))
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
var/mob/living/mob_occupant = get_mob_or_brainmob(occupant)
|
||||
if(istype(mob_occupant))
|
||||
if(locate_computer(/obj/machinery/computer/cloning))
|
||||
if(!mob_occupant.suiciding && !(mob_occupant.has_trait(TRAIT_NOCLONE)) && !mob_occupant.hellbound)
|
||||
if(!mob_occupant.suiciding && !(HAS_TRAIT(mob_occupant, TRAIT_NOCLONE)) && !mob_occupant.hellbound)
|
||||
mob_occupant.notify_ghost_cloning("Your corpse has been placed into a cloning scanner. Re-enter your corpse if you want to be cloned!", source = src)
|
||||
|
||||
// DNA manipulators cannot operate on severed heads or brains
|
||||
|
||||
@@ -763,7 +763,7 @@
|
||||
|
||||
if(ishuman(user) && prob(40) && src.density)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if((H.has_trait(TRAIT_DUMB)) && Adjacent(user))
|
||||
if((HAS_TRAIT(H, TRAIT_DUMB)) && Adjacent(user))
|
||||
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
||||
if(!istype(H.head, /obj/item/clothing/head/helmet))
|
||||
H.visible_message("<span class='danger'>[user] headbutts the airlock.</span>", \
|
||||
|
||||
@@ -42,11 +42,11 @@
|
||||
icon_state = "pod_1"
|
||||
//Get the clone body ready
|
||||
maim_clone(H)
|
||||
H.add_trait(TRAIT_STABLEHEART, "cloning")
|
||||
H.add_trait(TRAIT_EMOTEMUTE, "cloning")
|
||||
H.add_trait(TRAIT_MUTE, "cloning")
|
||||
H.add_trait(TRAIT_NOBREATH, "cloning")
|
||||
H.add_trait(TRAIT_NOCRITDAMAGE, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_STABLEHEART, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_EMOTEMUTE, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_MUTE, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_NOBREATH, "cloning")
|
||||
ADD_TRAIT(H, TRAIT_NOCRITDAMAGE, "cloning")
|
||||
H.Unconscious(80)
|
||||
|
||||
var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone?", null, null, null, 100, H)
|
||||
@@ -268,7 +268,7 @@
|
||||
scantemp = "<font class='bad'>Unable to locate valid genetic data.</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
return
|
||||
if((mob_occupant.has_trait(TRAIT_NOCLONE)) && (src.scanner.scan_level < 2))
|
||||
if((HAS_TRAIT(mob_occupant, TRAIT_NOCLONE)) && (src.scanner.scan_level < 2))
|
||||
scantemp = "<font class='bad'>Subject no longer contains the fundamental materials required to create a living clone.</font>"
|
||||
playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0)
|
||||
return
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
say("Subject is not organic.")
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
|
||||
return
|
||||
if(!allow_living && !(C.stat == DEAD || C.has_trait(TRAIT_FAKEDEATH))) //I mean, the machines scanners arent advanced enough to tell you're alive
|
||||
if(!allow_living && !(C.stat == DEAD || HAS_TRAIT(C, TRAIT_FAKEDEATH))) //I mean, the machines scanners arent advanced enough to tell you're alive
|
||||
say("Subject is still alive.")
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
|
||||
return
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
icon = 'icons/obj/machines/limbgrower.dmi'
|
||||
icon_state = "limbgrower_idleoff"
|
||||
density = TRUE
|
||||
container_type = OPENCONTAINER
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
@@ -34,7 +33,7 @@
|
||||
)
|
||||
|
||||
/obj/machinery/limbgrower/Initialize()
|
||||
create_reagents(100)
|
||||
create_reagents(100, OPENCONTAINER)
|
||||
stored_research = new /datum/techweb/specialized/autounlocking/limbgrower
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -485,7 +485,7 @@
|
||||
threatcount += 4
|
||||
|
||||
if(shoot_unloyal)
|
||||
if (!perp.has_trait(TRAIT_MINDSHIELD))
|
||||
if (!HAS_TRAIT(perp, TRAIT_MINDSHIELD))
|
||||
threatcount += 4
|
||||
|
||||
return threatcount
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
/obj/machinery/suit_storage_unit/security
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/security
|
||||
mask_type = /obj/item/clothing/mask/gas/sechailer
|
||||
storage_type = /obj/item/tank/jetpack/oxygen/security
|
||||
|
||||
/obj/machinery/suit_storage_unit/hos
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos
|
||||
|
||||
Reference in New Issue
Block a user