mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-30 00:35:45 +01:00
Merge pull request #8753 from Neerti/4-4-2015_borg_module_stuff
Revenge of the Research Module (and other stuff from that PR)
This commit is contained in:
@@ -104,46 +104,51 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
return 1
|
||||
if(O.is_open_container())
|
||||
return 0
|
||||
if(!istype(O, /obj/item/stack/sheet/glass) && !istype(O, /obj/item/stack/sheet/mineral/gold) && !istype(O, /obj/item/stack/sheet/mineral/diamond) && !istype(O, /obj/item/stack/sheet/mineral/uranium))
|
||||
user << "<span class='notice'>You cannot insert this item into \the [src]!</span>"
|
||||
return 1
|
||||
// if(!istype(O, /obj/item/stack/sheet/glass) && !istype(O, /obj/item/stack/sheet/mineral/gold) && !istype(O, /obj/item/stack/sheet/mineral/diamond) && !istype(O, /obj/item/stack/sheet/mineral/uranium))
|
||||
// user << "<span class='notice'>You cannot insert this item into \the [src]!</span>"
|
||||
// return 1
|
||||
if(stat)
|
||||
return 1
|
||||
if(busy)
|
||||
user << "<span class='notice'>\The [src] is busy. Please wait for completion of previous operation.</span>"
|
||||
return 1
|
||||
var/obj/item/stack/sheet/stack = O
|
||||
if((TotalMaterials() + stack.perunit) > max_material_amount)
|
||||
user << "<span class='notice'>\The [src] is full. Please remove glass from \the [src] in order to insert more.</span>"
|
||||
return 1
|
||||
|
||||
var/amount = round(input("How many sheets do you want to add?") as num)
|
||||
if(amount < 0)
|
||||
amount = 0
|
||||
if(amount == 0)
|
||||
return
|
||||
if(amount > stack.amount)
|
||||
amount = min(stack.amount, round((max_material_amount - TotalMaterials()) / stack.perunit))
|
||||
if(istype(O, /obj/item/stack/sheet/glass) || istype(O, /obj/item/stack/sheet/mineral/gold) || istype(O, /obj/item/stack/sheet/mineral/diamond) || istype(O, /obj/item/stack/sheet/mineral/uranium))
|
||||
|
||||
busy = 1
|
||||
use_power(max(1000, (3750 * amount / 10)))
|
||||
var/stacktype = stack.type
|
||||
stack.use(amount)
|
||||
if(do_after(usr, 16))
|
||||
user << "<span class='notice'>You add [amount] sheets to \the [src].</span>"
|
||||
switch(stacktype)
|
||||
if(/obj/item/stack/sheet/glass)
|
||||
g_amount += amount * 3750
|
||||
if(/obj/item/stack/sheet/mineral/gold)
|
||||
gold_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/diamond)
|
||||
diamond_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/uranium)
|
||||
uranium_amount += amount * 2000
|
||||
else
|
||||
new stacktype(loc, amount)
|
||||
busy = 0
|
||||
updateUsrDialog()
|
||||
var/obj/item/stack/sheet/stack = O
|
||||
if((TotalMaterials() + stack.perunit) > max_material_amount)
|
||||
user << "<span class='notice'>\The [src] is full. Please remove glass from \the [src] in order to insert more.</span>"
|
||||
return 1
|
||||
|
||||
var/amount = round(input("How many sheets do you want to add?") as num)
|
||||
if(amount < 0)
|
||||
amount = 0
|
||||
if(amount == 0)
|
||||
return
|
||||
if(amount > stack.amount)
|
||||
amount = min(stack.amount, round((max_material_amount - TotalMaterials()) / stack.perunit))
|
||||
|
||||
busy = 1
|
||||
use_power(max(1000, (3750 * amount / 10)))
|
||||
var/stacktype = stack.type
|
||||
stack.use(amount)
|
||||
if(do_after(usr, 16))
|
||||
user << "<span class='notice'>You add [amount] sheets to \the [src].</span>"
|
||||
switch(stacktype)
|
||||
if(/obj/item/stack/sheet/glass)
|
||||
g_amount += amount * 3750
|
||||
if(/obj/item/stack/sheet/mineral/gold)
|
||||
gold_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/diamond)
|
||||
diamond_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/uranium)
|
||||
uranium_amount += amount * 2000
|
||||
else
|
||||
new stacktype(loc, amount)
|
||||
busy = 0
|
||||
updateUsrDialog()
|
||||
|
||||
..()
|
||||
|
||||
//This is to stop these machines being hackable via clicking.
|
||||
/obj/machinery/r_n_d/circuit_imprinter/attack_hand(mob/user as mob)
|
||||
|
||||
@@ -13,7 +13,7 @@ Note: Must be placed within 3 tiles of the R&D Console
|
||||
var/obj/item/weapon/loaded_item = null
|
||||
var/decon_mod = 1
|
||||
var/min_reliability = 90
|
||||
|
||||
|
||||
use_power = 1
|
||||
idle_power_usage = 30
|
||||
active_power_usage = 2500
|
||||
@@ -38,12 +38,6 @@ Note: Must be placed within 3 tiles of the R&D Console
|
||||
del(src)
|
||||
return
|
||||
|
||||
/obj/machinery/r_n_d/destructive_analyzer/proc/ConvertReqString2List(var/list/source_list)
|
||||
var/list/temp_list = params2list(source_list)
|
||||
for(var/O in temp_list)
|
||||
temp_list[O] = text2num(temp_list[O])
|
||||
return temp_list
|
||||
|
||||
/obj/machinery/r_n_d/destructive_analyzer/update_icon()
|
||||
if(panel_open)
|
||||
icon_state = "d_analyzer_t"
|
||||
|
||||
@@ -116,9 +116,6 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
if(busy)
|
||||
user << "<span class='notice'>\The [src] is busy. Please wait for completion of previous operation.</span>"
|
||||
return 1
|
||||
if(!istype(O, /obj/item/stack/sheet))
|
||||
user << "<span class='notice'>You cannot insert this item into \the [src]!</span>"
|
||||
return 1
|
||||
if(stat)
|
||||
return 1
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
@@ -127,51 +124,52 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
user << "<span class='notice'>\The [src]'s material bin is full. Please remove material before adding more.</span>"
|
||||
return 1
|
||||
|
||||
var/obj/item/stack/sheet/stack = O
|
||||
var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
|
||||
if(!O)
|
||||
return
|
||||
if(amount < 0)//No negative numbers
|
||||
amount = 0
|
||||
if(amount == 0)
|
||||
return
|
||||
if(amount > stack.get_amount())
|
||||
amount = stack.get_amount()
|
||||
if(max_material_storage - TotalMaterials() < (amount * stack.perunit))//Can't overfill
|
||||
amount = min(stack.amount, round((max_material_storage - TotalMaterials()) / stack.perunit))
|
||||
var/obj/item/stack/sheet/stack = O
|
||||
var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
|
||||
if(!O)
|
||||
return
|
||||
if(amount < 0)//No negative numbers
|
||||
amount = 0
|
||||
if(amount == 0)
|
||||
return
|
||||
if(amount > stack.get_amount())
|
||||
amount = stack.get_amount()
|
||||
if(max_material_storage - TotalMaterials() < (amount * stack.perunit))//Can't overfill
|
||||
amount = min(stack.amount, round((max_material_storage - TotalMaterials()) / stack.perunit))
|
||||
|
||||
overlays += "protolathe_[stack.name]"
|
||||
sleep(10)
|
||||
overlays -= "protolathe_[stack.name]"
|
||||
overlays += "protolathe_[stack.name]"
|
||||
sleep(10)
|
||||
overlays -= "protolathe_[stack.name]"
|
||||
|
||||
icon_state = "protolathe"
|
||||
busy = 1
|
||||
use_power(max(1000, (3750 * amount / 10)))
|
||||
var/stacktype = stack.type
|
||||
stack.use(amount)
|
||||
if(do_after(user, 16))
|
||||
user << "<span class='notice'>You add [amount] sheets to \the [src].</span>"
|
||||
icon_state = "protolathe"
|
||||
switch(stacktype)
|
||||
if(/obj/item/stack/sheet/metal)
|
||||
m_amount += amount * 3750
|
||||
if(/obj/item/stack/sheet/glass)
|
||||
g_amount += amount * 3750
|
||||
if(/obj/item/stack/sheet/mineral/gold)
|
||||
gold_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/silver)
|
||||
silver_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/phoron)
|
||||
phoron_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/uranium)
|
||||
uranium_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/diamond)
|
||||
diamond_amount += amount * 2000
|
||||
else
|
||||
new stacktype(loc, amount)
|
||||
busy = 0
|
||||
updateUsrDialog()
|
||||
return
|
||||
busy = 1
|
||||
use_power(max(1000, (3750 * amount / 10)))
|
||||
var/stacktype = stack.type
|
||||
stack.use(amount)
|
||||
if(do_after(user, 16))
|
||||
user << "<span class='notice'>You add [amount] sheets to \the [src].</span>"
|
||||
icon_state = "protolathe"
|
||||
switch(stacktype)
|
||||
if(/obj/item/stack/sheet/metal)
|
||||
m_amount += amount * 3750
|
||||
if(/obj/item/stack/sheet/glass)
|
||||
g_amount += amount * 3750
|
||||
if(/obj/item/stack/sheet/mineral/gold)
|
||||
gold_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/silver)
|
||||
silver_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/phoron)
|
||||
phoron_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/uranium)
|
||||
uranium_amount += amount * 2000
|
||||
if(/obj/item/stack/sheet/mineral/diamond)
|
||||
diamond_amount += amount * 2000
|
||||
else
|
||||
new stacktype(loc, amount)
|
||||
busy = 0
|
||||
updateUsrDialog()
|
||||
return
|
||||
..()
|
||||
|
||||
//This is to stop these machines being hackable via clicking.
|
||||
/obj/machinery/r_n_d/protolathe/attack_hand(mob/user as mob)
|
||||
|
||||
@@ -256,7 +256,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
screen = 1.0
|
||||
return
|
||||
if(linked_destroy.loaded_item.reliability >= linked_destroy.min_reliability)
|
||||
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
var/list/temp_tech = ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
for(var/T in temp_tech)
|
||||
files.UpdateTech(T, temp_tech[T])
|
||||
if(linked_destroy.loaded_item.reliability < 100 && linked_destroy.loaded_item.crit_fail)
|
||||
@@ -753,7 +753,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
dat += "Name: [linked_destroy.loaded_item.name]<BR>"
|
||||
dat += "Origin Tech:"
|
||||
dat += "<UL>"
|
||||
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
var/list/temp_tech = ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
for(var/T in temp_tech)
|
||||
dat += "<LI>[CallTechName(T)] [temp_tech[T]]"
|
||||
for(var/datum/tech/F in files.known_tech)
|
||||
|
||||
@@ -59,6 +59,12 @@ research holder datum.
|
||||
possible_designs += new D(src)
|
||||
RefreshResearch()
|
||||
|
||||
/datum/research/techonly
|
||||
|
||||
/datum/research/techonly/New()
|
||||
for(var/T in typesof(/datum/tech) - /datum/tech)
|
||||
possible_tech += new T(src)
|
||||
RefreshResearch()
|
||||
|
||||
|
||||
//Checks to see if tech has all the required pre-reqs.
|
||||
|
||||
Reference in New Issue
Block a user