Laptop vendor, access tweaks and computer recipes.

This commit is contained in:
davipatury
2017-02-20 21:28:14 -03:00
parent cbee4567d9
commit 67ee6fdd41
10 changed files with 656 additions and 8 deletions
+4 -4
View File
@@ -245,7 +245,7 @@ var/const/access_trade_sol = 160
access_pilot, access_ntrep, access_magistrate, access_mineral_storeroom, access_minisat, access_network)
/proc/get_all_centcom_access()
return list(access_cent_general, access_cent_living, access_cent_medical, access_cent_security, access_cent_storage, access_cent_shuttles, access_cent_telecomms, access_cent_teleporter, access_cent_specops, access_cent_specops_commander, access_cent_blackops, access_cent_thunder, access_cent_bridge, access_cent_commander, access_network)
return list(access_cent_general, access_cent_living, access_cent_medical, access_cent_security, access_cent_storage, access_cent_shuttles, access_cent_telecomms, access_cent_teleporter, access_cent_specops, access_cent_specops_commander, access_cent_blackops, access_cent_thunder, access_cent_bridge, access_cent_commander)
/proc/get_all_syndicate_access()
return list(access_syndicate, access_syndicate_leader, access_vox)
@@ -267,13 +267,13 @@ var/const/access_trade_sol = 160
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(REGION_RESEARCH) //research
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_xenoarch, access_minisat, access_rd)
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_xenoarch, access_minisat, access_rd, access_network)
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(REGION_SUPPLY) //supply
return list(access_mailsorting, access_mining, access_mining_station, access_mineral_storeroom, access_cargo, access_qm)
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_network, access_gateway, access_all_personal_lockers, access_heads_vault, access_blueshield, access_ntrep, access_hop, access_captain)
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(REGION_CENTCOMM) //because why the heck not
return get_all_centcom_access() + get_all_accesses()
@@ -428,7 +428,7 @@ var/const/access_trade_sol = 160
if(access_tcomsat)
return "Telecommunications"
if(access_network)
return "Network"
return "Network Access"
if(access_gateway)
return "Gateway"
if(access_sec_doors)
+4 -2
View File
@@ -12,11 +12,13 @@
access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue,
access_tox_storage, access_tech_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_minisat, access_mineral_storeroom)
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch,
access_minisat, access_mineral_storeroom, access_network)
minimal_access = list(access_eva, access_rd, access_heads, access_tox, access_genetics, access_morgue,
access_tox_storage, access_tech_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_minisat, access_maint_tunnels, access_mineral_storeroom)
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch,
access_minisat, access_maint_tunnels, access_mineral_storeroom, access_network)
minimal_player_age = 21
exp_requirements = 600
exp_type = EXP_TYPE_CREW
@@ -50,6 +50,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list(
new /datum/stack_recipe/rods("metal rod", /obj/item/stack/rods, 1, 2, 60),
null,
new /datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1),
@@ -0,0 +1,306 @@
// A vendor machine for modular computer portable devices - Laptops and Tablets
/obj/machinery/lapvend
name = "computer vendor"
desc = "A vending machine with a built-in microfabricator, capable of dispensing various NT-branded computers."
icon = 'icons/obj/vending.dmi'
icon_state = "robotics"
layer = BELOW_OBJ_LAYER
anchored = 1
density = 1
// The actual laptop/tablet
var/obj/item/device/modular_computer/laptop/fabricated_laptop = null
var/obj/item/device/modular_computer/tablet/fabricated_tablet = null
// Utility vars
var/state = 0 // 0: Select device type, 1: Select loadout, 2: Payment, 3: Thankyou screen
var/devtype = 0 // 0: None(unselected), 1: Laptop, 2: Tablet
var/total_price = 0 // Price of currently vended device.
// Device loadout
var/dev_cpu = 1 // 1: Default, 2: Upgraded
var/dev_battery = 1 // 1: Default, 2: Upgraded, 3: Advanced
var/dev_disk = 1 // 1: Default, 2: Upgraded, 3: Advanced
var/dev_netcard = 0 // 0: None, 1: Basic, 2: Long-Range
var/dev_apc_recharger = 0 // 0: None, 1: Standard (LAPTOP ONLY)
var/dev_printer = 0 // 0: None, 1: Standard
var/dev_card = 0 // 0: None, 1: Standard
// Removes all traces of old order and allows you to begin configuration from scratch.
/obj/machinery/lapvend/proc/reset_order()
state = 0
devtype = 0
if(fabricated_laptop)
qdel(fabricated_laptop)
fabricated_laptop = null
if(fabricated_tablet)
qdel(fabricated_tablet)
fabricated_tablet = null
dev_cpu = 1
dev_battery = 1
dev_disk = 1
dev_netcard = 0
dev_apc_recharger = 0
dev_printer = 0
dev_card = 0
// Recalculates the price and optionally even fabricates the device.
/obj/machinery/lapvend/proc/fabricate_and_recalc_price(fabricate = 0)
total_price = 0
if(devtype == 1) // Laptop, generally cheaper to make it accessible for most station roles
var/obj/item/weapon/computer_hardware/battery/battery_module = null
if(fabricate)
fabricated_laptop = new /obj/item/device/modular_computer/laptop/buildable(src)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/battery)
battery_module = fabricated_laptop.all_components[MC_CELL]
total_price = 99
switch(dev_cpu)
if(1)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/processor_unit/small)
if(2)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/processor_unit)
total_price += 299
switch(dev_battery)
if(1) // Basic(750C)
if(fabricate)
battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer)
if(2) // Upgraded(1100C)
if(fabricate)
battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/advanced)
total_price += 199
if(3) // Advanced(1500C)
if(fabricate)
battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/super)
total_price += 499
switch(dev_disk)
if(1) // Basic(128GQ)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/hard_drive)
if(2) // Upgraded(256GQ)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/hard_drive/advanced)
total_price += 99
if(3) // Advanced(512GQ)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/hard_drive/super)
total_price += 299
switch(dev_netcard)
if(1) // Basic(Short-Range)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/network_card)
total_price += 99
if(2) // Advanced (Long Range)
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/network_card/advanced)
total_price += 299
if(dev_apc_recharger)
total_price += 399
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/recharger/APC)
if(dev_printer)
total_price += 99
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/printer/mini)
if(dev_card)
total_price += 199
if(fabricate)
fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/card_slot)
return total_price
else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this.
var/obj/item/weapon/computer_hardware/battery/battery_module = null
if(fabricate)
fabricated_tablet = new(src)
fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/battery)
fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/processor_unit/small)
battery_module = fabricated_tablet.all_components[MC_CELL]
total_price = 199
switch(dev_battery)
if(1) // Basic(300C)
if(fabricate)
battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/nano)
if(2) // Upgraded(500C)
if(fabricate)
battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer/micro)
total_price += 199
if(3) // Advanced(750C)
if(fabricate)
battery_module.try_insert(new /obj/item/weapon/stock_parts/cell/computer)
total_price += 499
switch(dev_disk)
if(1) // Basic(32GQ)
if(fabricate)
fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/hard_drive/micro)
if(2) // Upgraded(64GQ)
if(fabricate)
fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/hard_drive/small)
total_price += 99
if(3) // Advanced(128GQ)
if(fabricate)
fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/hard_drive)
total_price += 299
switch(dev_netcard)
if(1) // Basic(Short-Range)
if(fabricate)
fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/network_card)
total_price += 99
if(2) // Advanced (Long Range)
if(fabricate)
fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/network_card/advanced)
total_price += 299
if(dev_printer)
total_price += 99
if(fabricate)
fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/printer)
if(dev_card)
total_price += 199
if(fabricate)
fabricated_tablet.install_component(new/obj/item/weapon/computer_hardware/card_slot)
return total_price
return 0
/obj/machinery/lapvend/Topic(href, href_list)
if(..())
return 1
switch(href_list["action"])
if("pick_device")
if(state) // We've already picked a device type
return 0
devtype = text2num(href_list["pick"])
state = 1
fabricate_and_recalc_price(0)
return 1
if("clean_order")
reset_order()
return 1
if((state != 1) && devtype) // Following IFs should only be usable when in the Select Loadout mode
return 0
switch(href_list["action"])
if("confirm_order")
state = 2 // Wait for ID swipe for payment processing
fabricate_and_recalc_price(0)
return 1
if("hw_cpu")
dev_cpu = text2num(href_list["cpu"])
fabricate_and_recalc_price(0)
return 1
if("hw_battery")
dev_battery = text2num(href_list["battery"])
fabricate_and_recalc_price(0)
return 1
if("hw_disk")
dev_disk = text2num(href_list["disk"])
fabricate_and_recalc_price(0)
return 1
if("hw_netcard")
dev_netcard = text2num(href_list["netcard"])
fabricate_and_recalc_price(0)
return 1
if("hw_tesla")
dev_apc_recharger = text2num(href_list["tesla"])
fabricate_and_recalc_price(0)
return 1
if("hw_nanoprint")
dev_printer = text2num(href_list["print"])
fabricate_and_recalc_price(0)
return 1
if("hw_card")
dev_card = text2num(href_list["card"])
fabricate_and_recalc_price(0)
return 1
return 0
/obj/machinery/lapvend/attack_hand(mob/user)
ui_interact(user)
/obj/machinery/lapvend/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "computer_fabricator.tmpl", "Personal Computer Vendor", 500, 400)
ui.set_auto_update(1)
ui.open()
/obj/machinery/lapvend/ui_data(mob/user)
var/list/data[0]
data["state"] = state
if(state == 1)
data["devtype"] = devtype
data["hw_battery"] = dev_battery
data["hw_disk"] = dev_disk
data["hw_netcard"] = dev_netcard
data["hw_tesla"] = dev_apc_recharger
data["hw_nanoprint"] = dev_printer
data["hw_card"] = dev_card
data["hw_cpu"] = dev_cpu
if(state == 1 || state == 2)
data["totalprice"] = total_price
return data
obj/machinery/lapvend/attackby(obj/item/I, mob/user)
var/obj/item/weapon/card/id/C
if(istype(I, /obj/item/weapon/card/id))
C = I
if(istype(I, /obj/item/device/pda))
var/obj/item/device/pda/PDA = I
if(PDA.id)
C = PDA.id
if(C && istype(C) && state == 2)
if(process_payment(C, I))
fabricate_and_recalc_price(1)
if((devtype == 1) && fabricated_laptop)
fabricated_laptop.forceMove(loc)
fabricated_laptop = null
else if((devtype == 2) && fabricated_tablet)
fabricated_tablet.forceMove(loc)
fabricated_tablet = null
atom_say("Enjoy your new product!")
state = 3
return 1
return 0
return ..()
// Simplified payment processing, returns 1 on success.
/obj/machinery/lapvend/proc/process_payment(obj/item/weapon/card/id/I, obj/item/ID_container)
visible_message("<span class='info'>\The [usr] swipes \the [ID_container] through \the [src].</span>")
var/datum/money_account/customer_account = get_card_account(I)
if(!customer_account || customer_account.suspended)
atom_say("Connection error. Unable to connect to account.")
return 0
if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2)
var/attempt_pin = input("Enter pin code", "Vendor transaction") as num
customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2)
if(!customer_account)
atom_say("Unable to access account: incorrect credentials.")
return 0
if(total_price > customer_account.money)
atom_say("Insufficient funds in account.")
return 0
else
var/paid = customer_account.charge(total_price,
transaction_purpose = "Purchase of [(devtype == 1) ? "laptop computer" : "tablet microcomputer"].",
terminal_name = name,
terminal_id = name,
dest_name = vendor_account.owner_name)
if(paid)
vendor_account.money += total_price
var/datum/transaction/T = new()
T.target_name = customer_account.owner_name
T.purpose = "Purchase of [(devtype == 1) ? "laptop computer" : "tablet microcomputer"]"
T.amount = "[total_price]"
T.source_terminal = name
T.date = current_date_string
T.time = worldtime2text()
vendor_account.transaction_log.Add(T)
return 1
return 0
+1
View File
@@ -19,6 +19,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
var/list/categories = list(
"AI Modules",
"Computer Boards",
"Computer Parts",
"Engineering Machinery",
"Exosuit Modules",
"Hydroponics Machinery",
@@ -0,0 +1,251 @@
////////////////////////////////////////
///////////Computer Parts///////////////
////////////////////////////////////////
/datum/design/disk/normal
name = "hard disk drive"
id = "hdd_basic"
req_tech = list("programming" = 1, "engineering" = 1)
build_type = PROTOLATHE
materials = list(MAT_METAL = 400, MAT_GLASS = 100)
build_path = /obj/item/weapon/computer_hardware/hard_drive
category = list("Computer Parts")
/datum/design/disk/advanced
name = "advanced hard disk drive"
id = "hdd_advanced"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 800, MAT_GLASS = 200)
build_path = /obj/item/weapon/computer_hardware/hard_drive/advanced
category = list("Computer Parts")
/datum/design/disk/super
name = "super hard disk drive"
id = "hdd_super"
req_tech = list("programming" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 1600, MAT_GLASS = 400)
build_path = /obj/item/weapon/computer_hardware/hard_drive/super
category = list("Computer Parts")
/datum/design/disk/cluster
name = "cluster hard disk drive"
id = "hdd_cluster"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3200, MAT_GLASS = 800)
build_path = /obj/item/weapon/computer_hardware/hard_drive/cluster
category = list("Computer Parts")
/datum/design/disk/small
name = "solid state drive"
id = "ssd_small"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 800, MAT_GLASS = 200)
build_path = /obj/item/weapon/computer_hardware/hard_drive/small
category = list("Computer Parts")
/datum/design/disk/micro
name = "micro solid state drive"
id = "ssd_micro"
req_tech = list("programming" = 1, "engineering" = 1)
build_type = PROTOLATHE
materials = list(MAT_METAL = 400, MAT_GLASS = 100)
build_path = /obj/item/weapon/computer_hardware/hard_drive/micro
category = list("Computer Parts")
// Network cards
/datum/design/netcard/basic
name = "network card"
id = "netcard_basic"
req_tech = list("programming" = 2, "engineering" = 1)
build_type = IMPRINTER
materials = list(MAT_METAL = 250, MAT_GLASS = 100, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/network_card
category = list("Computer Parts")
/datum/design/netcard/advanced
name = "advanced network card"
id = "netcard_advanced"
req_tech = list("programming" = 4, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_METAL = 500, MAT_GLASS = 200, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/network_card/advanced
category = list("Computer Parts")
/datum/design/netcard/wired
name = "wired network card"
id = "netcard_wired"
req_tech = list("programming" = 5, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_METAL = 2500, MAT_GLASS = 400, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/network_card/wired
category = list("Computer Parts")
// Data disks
/datum/design/portabledrive/basic
name = "data disk"
id = "portadrive_basic"
req_tech = list("programming" = 1)
build_type = IMPRINTER
materials = list(MAT_GLASS = 800, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/hard_drive/portable
category = list("Computer Parts")
/datum/design/portabledrive/advanced
name = "advanced data disk"
id = "portadrive_advanced"
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1600, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/hard_drive/portable/advanced
category = list("Computer Parts")
/datum/design/portabledrive/super
name = "super data disk"
id = "portadrive_super"
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 3200, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/hard_drive/portable/super
category = list("Computer Parts")
// Card slot
/datum/design/cardslot
name = "ID card slot"
id = "cardslot"
req_tech = list("programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 600)
build_path = /obj/item/weapon/computer_hardware/card_slot
category = list("Computer Parts")
// Intellicard slot
/datum/design/aislot
name = "Intellicard slot"
id = "aislot"
req_tech = list("programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 600)
build_path = /obj/item/weapon/computer_hardware/ai_slot
category = list("Computer Parts")
// Mini printer
/datum/design/miniprinter
name = "miniprinter"
id = "miniprinter"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 600)
build_path = /obj/item/weapon/computer_hardware/printer/mini
category = list("Computer Parts")
// APC Link
/datum/design/APClink
name = "area power connector"
id = "APClink"
req_tech = list("programming" = 2, "powerstorage" = 3, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000)
build_path = /obj/item/weapon/computer_hardware/recharger/APC
category = list("Computer Parts")
// Batteries
/datum/design/battery/controller
name = "power cell controller"
id = "bat_control"
req_tech = list("powerstorage" = 1, "engineering" = 1)
build_type = PROTOLATHE
materials = list(MAT_METAL = 400)
build_path = /obj/item/weapon/computer_hardware/battery
category = list("Computer Parts")
/datum/design/battery/normal
name = "battery module"
id = "bat_normal"
req_tech = list("powerstorage" = 1, "engineering" = 1)
build_type = PROTOLATHE
materials = list(MAT_METAL = 400)
build_path = /obj/item/weapon/stock_parts/cell/computer
category = list("Computer Parts")
/datum/design/battery/advanced
name = "advanced battery module"
id = "bat_advanced"
req_tech = list("powerstorage" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 800)
build_path = /obj/item/weapon/stock_parts/cell/computer/advanced
category = list("Computer Parts")
/datum/design/battery/super
name = "super battery module"
id = "bat_super"
req_tech = list("powerstorage" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 1600)
build_path = /obj/item/weapon/stock_parts/cell/computer/super
category = list("Computer Parts")
/datum/design/battery/nano
name = "nano battery module"
id = "bat_nano"
req_tech = list("powerstorage" = 1, "engineering" = 1)
build_type = PROTOLATHE
materials = list(MAT_METAL = 200)
build_path = /obj/item/weapon/stock_parts/cell/computer/nano
category = list("Computer Parts")
/datum/design/battery/micro
name = "micro battery module"
id = "bat_micro"
req_tech = list("powerstorage" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 400)
build_path = /obj/item/weapon/stock_parts/cell/computer/micro
category = list("Computer Parts")
// Processor unit
/datum/design/cpu
name = "processor board"
id = "cpu_normal"
req_tech = list("programming" = 3, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1600, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/processor_unit
category = list("Computer Parts")
/datum/design/cpu/small
name = "microprocessor"
id = "cpu_small"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 800, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/processor_unit/small
category = list("Computer Parts")
/datum/design/cpu/photonic
name = "photonic processor board"
id = "pcpu_normal"
req_tech = list("programming" = 5, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS= 6400, MAT_GOLD = 2000, "sacid" = 40)
build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic
category = list("Computer Parts")
/datum/design/cpu/photonic/small
name = "photonic microprocessor"
id = "pcpu_small"
req_tech = list("programming" = 4, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 3200, MAT_GOLD = 1000, "sacid" = 20)
build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic/small
category = list("Computer Parts")
+1
View File
@@ -18,6 +18,7 @@ Note: Must be placed west/left of and R&D console to function.
var/list/categories = list(
"Bluespace",
"Computer Parts",
"Equipment",
"Janitorial",
"Medical",
+1 -1
View File
@@ -1,7 +1,7 @@
{{if data.printing}}
<h5 class='average'>The computer is currently busy.</h5>
<div class='notice'>
<center><span class='bad'>Printing...</span></center>
<center>Printing...</center>
</div>
<p>
Thank you for your patience!
+85
View File
@@ -0,0 +1,85 @@
{{:helper.link('Clear Order', 'circle', {'action' : 'clean_order'})}}<br><br>
<i>Your new computer device you always dreamed of is just four steps away...</i><hr>
{{if data.state == 0}}
<div class='item'>
<h2>Step 1: Select your device type</h2>
{{:helper.link('Laptop', 'laptop', {'action' : 'pick_device', 'pick' : 1})}}
{{:helper.link('LTablet', 'tablet', {'action' : 'pick_device', 'pick' : 2})}}
</div>
{{else data.state == 1}}
<div class='item'>
<h2>Step 2: Personalise your device</h2>
<table>
<tr>
<td><b>Current Price:</b>
<td>{{:data.totalprice}}C
</tr>
<tr>
<td><b>Battery:</b>
<td>{{:helper.link('Standard', 'bolt', {'action' : 'hw_battery', 'battery' : 1}, data.hw_battery == 1 ? "selected" : null)}}
<td>{{:helper.link('Upgraded', 'bolt', {'action' : 'hw_battery', 'battery' : 2}, data.hw_battery == 2 ? "selected" : null)}}
<td>{{:helper.link('Advanced', 'bolt', {'action' : 'hw_battery', 'battery' : 3}, data.hw_battery == 3 ? "selected" : null)}}
</tr>
<tr>
<td><b>Hard Drive:</b>
<td>{{:helper.link('Standard', 'hdd-o', {'action' : 'hw_disk', 'disk' : 1}, data.hw_disk == 1 ? "selected" : null)}}
<td>{{:helper.link('Upgraded', 'hdd-o', {'action' : 'hw_disk', 'disk' : 2}, data.hw_disk == 2 ? "selected" : null)}}
<td>{{:helper.link('Advanced', 'hdd-o', {'action' : 'hw_disk', 'disk' : 3}, data.hw_disk == 3 ? "selected" : null)}}
</tr>
<tr>
<td><b>Network Card:</b>
<td>{{:helper.link('None', 'times', {'action' : 'hw_netcard', 'netcard' : 0}, data.hw_netcard == 0 ? "selected" : null)}}
<td>{{:helper.link('Standard', 'signal', {'action' : 'hw_netcard', 'netcard' : 1}, data.hw_netcard == 1 ? "selected" : null)}}
<td>{{:helper.link('Advanced', 'signal', {'action' : 'hw_netcard', 'netcard' : 2}, data.hw_netcard == 2 ? "selected" : null)}}
</tr>
<tr>
<td><b>Nano Printer:</b>
<td>{{:helper.link('None', 'times', {'action' : 'hw_nanoprint', 'print' : 0}, data.hw_nanoprint == 0 ? "selected" : null)}}
<td>{{:helper.link('Standard', 'print', {'action' : 'hw_nanoprint', 'print' : 1}, data.hw_nanoprint == 1 ? "selected" : null)}}
</tr>
<tr>
<td><b>Card Reader:</b>
<td>{{:helper.link('None', 'times', {'action' : 'hw_card', 'card' : 0}, data.hw_card == 0 ? "selected" : null)}}
<td>{{:helper.link('Standard', 'credit-card', {'action' : 'hw_card', 'card' : 1}, data.hw_card == 1 ? "selected" : null)}}
</tr>
</table>
{{if data.devtype != 2}}
<table>
<tr>
<td><b>Processor Unit:</b>
<td>{{:helper.link('Standard', 'tasks', {'action' : 'hw_cpu', 'cpu' : 1}, data.hw_cpu == 1 ? "selected" : null)}}
<td>{{:helper.link('Advanced', 'tasks', {'action' : 'hw_cpu', 'cpu' : 2}, data.hw_cpu == 2 ? "selected" : null)}}
</tr>
<tr>
<td><b>Tesla Relay:</b>
<td>{{:helper.link('None', 'times', {'action' : 'hw_tesla', 'tesla' : 0}, data.hw_tesla == 0 ? "selected" : null)}}
<td>{{:helper.link('Standard', 'plug', {'action' : 'hw_tesla', 'tesla' : 1}, data.hw_tesla == 1 ? "selected" : null)}}
</tr>
</table>
{{/if}}
<table>
<tr>
<td><b>Confirm Order:</b>
<td>{{:helper.link('CONFIRM', 'check', {'action' : 'confirm_order'})}}
</tr>
</table>
<hr>
<b>Battery</b> allows your device to operate without external utility power source. Advanced batteries increase battery life.<br>
<b>Hard Drive</b> stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.<br>
<b>Network Card</b> allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.<br>
<b>Processor Unit</b> is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.<br>
<b>Tesla Relay</b> is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.<br>
<b>Nano Printer</b> is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.<br>
<b>Card Reader</b> adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards.
</div>
{{else data.state == 2}}
<h2>Step 3: Payment</h2>
<b>Your device is now ready for fabrication..</b><br>
<i>Please swipe your identification card to finish purchase.</i><br>
<i>Total price: <b>{{:data.totalprice}}T</b></i>
{{else data.state == 3}}
<h2>Step 4: Thank you for your purchase</h2>
<b>Should you experience any issues with your new device, contact technical support at support@computerservice.nt</b>
{{/if}}
+2 -1
View File
@@ -1218,7 +1218,6 @@
#include "code\modules\computer3\computer3_notes.dm"
#include "code\modules\computer3\file.dm"
#include "code\modules\computer3\laptop.dm"
#include "code\modules\computer3\lapvend.dm"
#include "code\modules\computer3\networking.dm"
#include "code\modules\computer3\NTOS.dm"
#include "code\modules\computer3\program.dm"
@@ -1754,6 +1753,7 @@
#include "code\modules\mob\new_player\poll.dm"
#include "code\modules\mob\new_player\preferences_setup.dm"
#include "code\modules\mob\new_player\sprite_accessories.dm"
#include "code\modules\modular_computers\laptop_vendor.dm"
#include "code\modules\modular_computers\computers\item\computer.dm"
#include "code\modules\modular_computers\computers\item\computer_components.dm"
#include "code\modules\modular_computers\computers\item\computer_damage.dm"
@@ -2012,6 +2012,7 @@
#include "code\modules\research\designs\biogenerator_designs.dm"
#include "code\modules\research\designs\bluespace_designs.dm"
#include "code\modules\research\designs\comp_board_designs.dm"
#include "code\modules\research\designs\computer_part_designs.dm"
#include "code\modules\research\designs\equipment_designs.dm"
#include "code\modules\research\designs\janitorial_designs.dm"
#include "code\modules\research\designs\machine_designs.dm"