Merge pull request #10937 from Arturlang/debug_outfit_updates
Updates the debug outfit
This commit is contained in:
@@ -1537,4 +1537,9 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
if(190)
|
||||
return "."
|
||||
if(189)
|
||||
return "-"
|
||||
return "-"
|
||||
|
||||
/proc/generate_items_inside(list/items_list, where_to)
|
||||
for(var/each_item in items_list)
|
||||
for(var/i in 1 to items_list[each_item])
|
||||
new each_item(where_to)
|
||||
|
||||
@@ -25,6 +25,7 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
var/unlock_code
|
||||
var/failsafe_code
|
||||
var/datum/ui_state/checkstate
|
||||
var/debug = FALSE
|
||||
|
||||
/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate)
|
||||
if(!isitem(parent))
|
||||
@@ -152,7 +153,7 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
if(I.restricted_roles.len)
|
||||
var/is_inaccessible = 1
|
||||
for(var/R in I.restricted_roles)
|
||||
if(R == user.mind.assigned_role)
|
||||
if(R == user.mind.assigned_role || debug)
|
||||
is_inaccessible = 0
|
||||
if(is_inaccessible)
|
||||
continue
|
||||
@@ -294,4 +295,4 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
if(!T)
|
||||
return
|
||||
explosion(T,1,2,3)
|
||||
qdel(parent) //Alternatively could brick the uplink.
|
||||
qdel(parent) //Alternatively could brick the uplink.
|
||||
|
||||
@@ -542,3 +542,14 @@ update_label("John Doe", "Clowny")
|
||||
|
||||
/obj/item/card/id/knight/captain
|
||||
id_color = "#FFD700"
|
||||
|
||||
/obj/item/card/id/debug
|
||||
name = "\improper Debug ID"
|
||||
desc = "A debug ID card. Has ALL the all access, you really shouldn't have this."
|
||||
icon_state = "ert_janitor"
|
||||
assignment = "Jannie"
|
||||
|
||||
/obj/item/card/id/debug/Initialize()
|
||||
access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access()
|
||||
. = ..()
|
||||
|
||||
|
||||
102
code/game/objects/items/debug_items.dm
Normal file
102
code/game/objects/items/debug_items.dm
Normal file
@@ -0,0 +1,102 @@
|
||||
/* This file contains standalone items for debug purposes. */
|
||||
|
||||
/obj/item/debug/human_spawner
|
||||
name = "human spawner"
|
||||
desc = "Spawn a human by aiming at a turf and clicking. Use in hand to change type."
|
||||
icon = 'icons/obj/guns/magic.dmi'
|
||||
icon_state = "nothingwand"
|
||||
item_state = "wand"
|
||||
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/datum/species/selected_species
|
||||
var/valid_species = list()
|
||||
|
||||
/obj/item/debug/human_spawner/afterattack(atom/target, mob/user, proximity)
|
||||
..()
|
||||
if(isturf(target))
|
||||
var/mob/living/carbon/human/H = new /mob/living/carbon/human(target)
|
||||
if(selected_species)
|
||||
H.set_species(selected_species)
|
||||
|
||||
/obj/item/debug/human_spawner/attack_self(mob/user)
|
||||
..()
|
||||
var/choice = input("Select a species", "Human Spawner", null) in GLOB.species_list
|
||||
selected_species = GLOB.species_list[choice]
|
||||
|
||||
/* Revive this once we purge all the istype checks for tools for tool_behaviour
|
||||
/obj/item/debug/omnitool
|
||||
name = "omnitool"
|
||||
desc = "The original hypertool, born before them all. Use it in hand to unleash it's true power."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "hypertool"
|
||||
item_state = "hypertool"
|
||||
toolspeed = 0.1
|
||||
tool_behaviour = null
|
||||
|
||||
/obj/item/debug/omnitool/examine()
|
||||
. = ..()
|
||||
. += " The mode is: [tool_behaviour]"
|
||||
|
||||
/obj/item/debug/omnitool/proc/check_menu(mob/user)
|
||||
if(!istype(user))
|
||||
return FALSE
|
||||
if(user.incapacitated() || !user.Adjacent(src))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/debug/omnitool/attack_self(mob/user)
|
||||
if(!user)
|
||||
return
|
||||
var/list/tool_list = list(
|
||||
"Crowbar" = image(icon = 'icons/obj/tools.dmi', icon_state = "crowbar"),
|
||||
"Multitool" = image(icon = 'icons/obj/device.dmi', icon_state = "multitool"),
|
||||
"Screwdriver" = image(icon = 'icons/obj/tools.dmi', icon_state = "screwdriver_map"),
|
||||
"Wirecutters" = image(icon = 'icons/obj/tools.dmi', icon_state = "cutters_map"),
|
||||
"Wrench" = image(icon = 'icons/obj/tools.dmi', icon_state = "wrench"),
|
||||
"Welding Tool" = image(icon = 'icons/obj/tools.dmi', icon_state = "miniwelder"),
|
||||
"Analyzer" = image(icon = 'icons/obj/device.dmi', icon_state = "analyzer"),
|
||||
"Mining Tool" = image(icon = 'icons/obj/mining.dmi', icon_state = "minipick"),
|
||||
"Shovel" = image(icon = 'icons/obj/mining.dmi', icon_state = "spade"),
|
||||
"Retractor" = image(icon = 'icons/obj/surgery.dmi', icon_state = "retractor"),
|
||||
"Hemostat" = image(icon = 'icons/obj/surgery.dmi', icon_state = "hemostat"),
|
||||
"Cautery" = image(icon = 'icons/obj/surgery.dmi', icon_state = "cautery"),
|
||||
"Drill" = image(icon = 'icons/obj/surgery.dmi', icon_state = "drill"),
|
||||
"Scalpel" = image(icon = 'icons/obj/surgery.dmi', icon_state = "scalpel"),
|
||||
"Saw" = image(icon = 'icons/obj/surgery.dmi', icon_state = "saw")
|
||||
)
|
||||
var/tool_result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
if(!check_menu(user))
|
||||
return
|
||||
switch(tool_result)
|
||||
if("Crowbar")
|
||||
tool_behaviour = TOOL_CROWBAR
|
||||
if("Multitool")
|
||||
tool_behaviour = TOOL_MULTITOOL
|
||||
if("Screwdriver")
|
||||
tool_behaviour = TOOL_SCREWDRIVER
|
||||
if("Wirecutters")
|
||||
tool_behaviour = TOOL_WIRECUTTER
|
||||
if("Wrench")
|
||||
tool_behaviour = TOOL_WRENCH
|
||||
if("Welding Tool")
|
||||
tool_behaviour = TOOL_WELDER
|
||||
if("Analyzer")
|
||||
tool_behaviour = TOOL_ANALYZER
|
||||
if("Mining Tool")
|
||||
tool_behaviour = TOOL_MINING
|
||||
if("Shovel")
|
||||
tool_behaviour = TOOL_SHOVEL
|
||||
if("Retractor")
|
||||
tool_behaviour = TOOL_RETRACTOR
|
||||
if("Hemostat")
|
||||
tool_behaviour = TOOL_HEMOSTAT
|
||||
if("Cautery")
|
||||
tool_behaviour = TOOL_CAUTERY
|
||||
if("Drill")
|
||||
tool_behaviour = TOOL_DRILL
|
||||
if("Scalpel")
|
||||
tool_behaviour = TOOL_SCALPEL
|
||||
if("Saw")
|
||||
tool_behaviour = TOOL_SAW
|
||||
*/
|
||||
@@ -1288,3 +1288,62 @@
|
||||
/obj/item/storage/box/marshmallow/PopulateContents()
|
||||
for (var/i in 1 to 5)
|
||||
new /obj/item/reagent_containers/food/snacks/marshmallow(src)
|
||||
|
||||
/obj/item/storage/box/material/PopulateContents() //less uranium because radioactive
|
||||
var/static/items_inside = list(
|
||||
/obj/item/stack/sheet/metal/fifty=1,\
|
||||
/obj/item/stack/sheet/glass/fifty=1,\
|
||||
/obj/item/stack/sheet/rglass=50,\
|
||||
/obj/item/stack/sheet/plasmaglass=50,\
|
||||
/obj/item/stack/sheet/titaniumglass=50,\
|
||||
/obj/item/stack/sheet/plastitaniumglass=50,\
|
||||
/obj/item/stack/sheet/plasteel=50,\
|
||||
/obj/item/stack/sheet/mineral/plastitanium=50,\
|
||||
/obj/item/stack/sheet/mineral/titanium=50,\
|
||||
/obj/item/stack/sheet/mineral/gold=50,\
|
||||
/obj/item/stack/sheet/mineral/silver=50,\
|
||||
/obj/item/stack/sheet/mineral/plasma=50,\
|
||||
/obj/item/stack/sheet/mineral/uranium=50,\
|
||||
/obj/item/stack/sheet/mineral/diamond=50,\
|
||||
/obj/item/stack/sheet/bluespace_crystal=50,\
|
||||
/obj/item/stack/sheet/mineral/bananium=50,\
|
||||
/obj/item/stack/sheet/mineral/wood=50,\
|
||||
/obj/item/stack/sheet/plastic/fifty=1,\
|
||||
/obj/item/stack/sheet/runed_metal/fifty=1
|
||||
)
|
||||
generate_items_inside(items_inside, src)
|
||||
|
||||
/obj/item/storage/box/debugtools
|
||||
name = "box of debug tools"
|
||||
icon_state = "syndiebox"
|
||||
|
||||
/obj/item/storage/box/debugtools/PopulateContents()
|
||||
var/static/items_inside = list(
|
||||
/obj/item/flashlight/emp/debug=1,\
|
||||
/obj/item/pda=1,\
|
||||
/obj/item/modular_computer/tablet/preset/advanced=1,\
|
||||
/obj/item/geiger_counter=1,\
|
||||
/obj/item/construction/rcd/combat/admin=1,\
|
||||
/obj/item/pipe_dispenser=1,\
|
||||
/obj/item/card/emag=1,\
|
||||
/obj/item/healthanalyzer/advanced=1,\
|
||||
/obj/item/disk/tech_disk/debug=1,\
|
||||
/obj/item/uplink/debug=1,\
|
||||
/obj/item/uplink/nuclear/debug=1,\
|
||||
/obj/item/storage/box/beakers/bluespace=1,\
|
||||
/obj/item/storage/box/beakers/variety=1,\
|
||||
/obj/item/storage/box/material=1,\
|
||||
/obj/item/storage/belt/medical/surgery_belt_adv
|
||||
)
|
||||
generate_items_inside(items_inside, src)
|
||||
|
||||
/obj/item/storage/box/beakers/variety
|
||||
name = "beaker variety box"
|
||||
|
||||
/obj/item/storage/box/beakers/variety/PopulateContents()
|
||||
new /obj/item/reagent_containers/glass/beaker(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/large(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/plastic(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/meta(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/noreact(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/bluespace(src)
|
||||
|
||||
@@ -488,4 +488,47 @@
|
||||
if(client && client.prefs.uses_glasses_colour && glasses_equipped)
|
||||
add_client_colour(G.glass_colour_type)
|
||||
else
|
||||
remove_client_colour(G.glass_colour_type)
|
||||
remove_client_colour(G.glass_colour_type)
|
||||
|
||||
/obj/item/clothing/glasses/debug
|
||||
name = "debug glasses"
|
||||
desc = "Medical, security and diagnostic hud. Alt click to toggle xray."
|
||||
icon_state = "nvgmeson"
|
||||
item_state = "nvgmeson"
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
darkness_view = 8
|
||||
flash_protect = 2
|
||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||
glass_colour_type = FALSE
|
||||
clothing_flags = SCAN_REAGENTS
|
||||
vision_flags = SEE_TURFS
|
||||
var/list/hudlist = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED, DATA_HUD_SECURITY_ADVANCED)
|
||||
var/xray = FALSE
|
||||
|
||||
/obj/item/clothing/glasses/debug/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot != ITEM_SLOT_EYES)
|
||||
return
|
||||
if(ishuman(user))
|
||||
for(var/hud in hudlist)
|
||||
var/datum/atom_hud/H = GLOB.huds[hud]
|
||||
H.add_hud_to(user)
|
||||
|
||||
/obj/item/clothing/glasses/debug/dropped(mob/user)
|
||||
. = ..()
|
||||
if(ishuman(user))
|
||||
for(var/hud in hudlist)
|
||||
var/datum/atom_hud/H = GLOB.huds[hud]
|
||||
H.remove_hud_from(user)
|
||||
|
||||
/obj/item/clothing/glasses/debug/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(ishuman(user))
|
||||
if(xray)
|
||||
vision_flags -= SEE_MOBS|SEE_OBJS
|
||||
else
|
||||
vision_flags += SEE_MOBS|SEE_OBJS
|
||||
xray = !xray
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.update_sight()
|
||||
|
||||
|
||||
@@ -39,6 +39,12 @@
|
||||
/obj/item/clothing/mask/gas/welding/attack_self(mob/user)
|
||||
weldingvisortoggle(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/welding/up
|
||||
|
||||
/obj/item/clothing/mask/gas/welding/up/Initialize()
|
||||
..()
|
||||
visor_toggling()
|
||||
|
||||
|
||||
// ********************************************************************
|
||||
|
||||
|
||||
@@ -427,14 +427,27 @@
|
||||
/datum/outfit/debug //Debug objs plus hardsuit
|
||||
name = "Debug outfit"
|
||||
uniform = /obj/item/clothing/under/patriotsuit
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
mask = /obj/item/clothing/mask/gas/welding
|
||||
belt = /obj/item/storage/belt/utility/chief/full
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
id = /obj/item/card/id/ert
|
||||
glasses = /obj/item/clothing/glasses/meson/night
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite/debug
|
||||
glasses = /obj/item/clothing/glasses/debug
|
||||
ears = /obj/item/radio/headset/headset_cent/commander
|
||||
mask = /obj/item/clothing/mask/gas/welding/up
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
belt = /obj/item/storage/belt/utility/chief/full
|
||||
l_pocket = /obj/item/gun/magic/wand/resurrection/debug
|
||||
r_pocket = /obj/item/gun/magic/wand/death/debug
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance/debug
|
||||
id = /obj/item/card/id/debug
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
back = /obj/item/storage/backpack/holding
|
||||
backpack_contents = list(/obj/item/card/emag=1, /obj/item/flashlight/emp/debug=1, /obj/item/construction/rcd/combat=1, /obj/item/gun/magic/wand/resurrection/debug=1, /obj/item/melee/transforming/energy/axe=1)
|
||||
box = /obj/item/storage/box/debugtools
|
||||
internals_slot = ITEM_SLOT_SUITSTORE
|
||||
backpack_contents = list(
|
||||
/obj/item/melee/transforming/energy/axe=1,\
|
||||
/obj/item/storage/part_replacer/bluespace/tier4=1,\
|
||||
/obj/item/debug/human_spawner=1,\
|
||||
)
|
||||
|
||||
/datum/outfit/debug/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
@@ -30,8 +30,9 @@
|
||||
magpulse = !magpulse
|
||||
icon_state = "[magboot_state][magpulse]"
|
||||
to_chat(user, "<span class='notice'>You [magpulse ? "enable" : "disable"] the mag-pulse traction system.</span>")
|
||||
user.update_inv_shoes() //so our mob-overlays update
|
||||
user.update_gravity(user.has_gravity())
|
||||
if(user)
|
||||
user.update_inv_shoes() //so our mob-overlays update
|
||||
user.update_gravity(user.has_gravity())
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
@@ -52,6 +53,11 @@
|
||||
slowdown_active = SHOES_SLOWDOWN
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/magboots/advance/debug
|
||||
|
||||
/obj/item/clothing/shoes/magboots/advance/debug/Initialize()
|
||||
attack_self(src)
|
||||
|
||||
/obj/item/clothing/shoes/magboots/syndie
|
||||
desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders."
|
||||
name = "blood-red magboots"
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
item_state = "syndie_helm"
|
||||
item_color = "syndi"
|
||||
armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90)
|
||||
on = TRUE
|
||||
on = FALSE
|
||||
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_mode)
|
||||
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
@@ -367,6 +367,12 @@
|
||||
on = FALSE
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug/Initialize()
|
||||
. = ..()
|
||||
soundloop.volume = 0
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi/elite
|
||||
name = "elite syndicate hardsuit"
|
||||
desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode."
|
||||
@@ -380,6 +386,9 @@
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi/elite/debug
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug
|
||||
slowdown = 0
|
||||
|
||||
//The Owl Hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
|
||||
|
||||
@@ -73,6 +73,12 @@
|
||||
user.adjustOxyLoss(500)
|
||||
charges--
|
||||
|
||||
/obj/item/gun/magic/wand/death/debug
|
||||
desc = "In some obscure circles, this is known as the 'cloning tester's friend'."
|
||||
max_charges = 500
|
||||
variable_charges = FALSE
|
||||
can_charge = TRUE
|
||||
recharge_rate = 1
|
||||
|
||||
/////////////////////////////////////
|
||||
//WAND OF HEALING
|
||||
|
||||
@@ -60,6 +60,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
|
||||
new /obj/item/stock_parts/manipulator(src)
|
||||
new /obj/item/stock_parts/micro_laser(src)
|
||||
new /obj/item/stock_parts/matter_bin(src)
|
||||
new /obj/item/stock_parts/cell/high(src)
|
||||
|
||||
/obj/item/storage/part_replacer/bluespace/tier2
|
||||
|
||||
@@ -70,6 +71,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
|
||||
new /obj/item/stock_parts/manipulator/nano(src)
|
||||
new /obj/item/stock_parts/micro_laser/high(src)
|
||||
new /obj/item/stock_parts/matter_bin/adv(src)
|
||||
new /obj/item/stock_parts/cell/super(src)
|
||||
|
||||
/obj/item/storage/part_replacer/bluespace/tier3
|
||||
|
||||
@@ -80,6 +82,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
|
||||
new /obj/item/stock_parts/manipulator/pico(src)
|
||||
new /obj/item/stock_parts/micro_laser/ultra(src)
|
||||
new /obj/item/stock_parts/matter_bin/super(src)
|
||||
new /obj/item/stock_parts/cell/hyper(src)
|
||||
|
||||
/obj/item/storage/part_replacer/bluespace/tier4
|
||||
|
||||
@@ -90,6 +93,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
|
||||
new /obj/item/stock_parts/manipulator/femto(src)
|
||||
new /obj/item/stock_parts/micro_laser/quadultra(src)
|
||||
new /obj/item/stock_parts/matter_bin/bluespace(src)
|
||||
new /obj/item/stock_parts/cell/bluespace(src)
|
||||
|
||||
/obj/item/storage/part_replacer/cargo //used in a cargo crate
|
||||
|
||||
|
||||
@@ -57,3 +57,22 @@
|
||||
/obj/item/pen/uplink/Initialize(mapload, owner, tc_amount = 20)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/uplink, owner, TRUE, FALSE, null, tc_amount)
|
||||
|
||||
/obj/item/uplink/debug
|
||||
name = "debug uplink"
|
||||
|
||||
/obj/item/uplink/debug/Initialize(mapload, owner, tc_amount = 9000)
|
||||
. = ..()
|
||||
var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink)
|
||||
hidden_uplink.name = "debug uplink"
|
||||
hidden_uplink.debug = TRUE
|
||||
|
||||
/obj/item/uplink/nuclear/debug
|
||||
name = "debug nuclear uplink"
|
||||
|
||||
/obj/item/uplink/nuclear/debug/Initialize(mapload, owner, tc_amount = 9000)
|
||||
. = ..()
|
||||
var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink)
|
||||
hidden_uplink.set_gamemode(/datum/game_mode/nuclear)
|
||||
hidden_uplink.name = "debug nuclear uplink"
|
||||
hidden_uplink.debug = TRUE
|
||||
|
||||
Reference in New Issue
Block a user