Merge pull request #6471 from Citadel-Station-13/upstream-merge-36270

[MIRROR] [READY] A few additions, tweaks, and fixes for integrated circuits
This commit is contained in:
LetterJay
2018-04-22 22:19:28 -05:00
committed by GitHub
22 changed files with 375 additions and 156 deletions
+38 -23
View File
@@ -7,12 +7,14 @@
species = "replicapod"
plantname = "Replica Pod"
product = /mob/living/carbon/human //verrry special -- Urist
container_type = INJECTABLE|DRAWABLE
lifespan = 50
endurance = 8
maturation = 10
production = 1
yield = 1 //seeds if there isn't a dna inside
potency = 30
var/volume = 5
var/ckey = null
var/realName = null
var/datum/mind/mind = null
@@ -23,28 +25,38 @@
var/list/traits = null
var/contains_sample = 0
/obj/item/seeds/replicapod/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/reagent_containers/syringe))
if(!contains_sample)
for(var/datum/reagent/blood/bloodSample in W.reagents.reagent_list)
if(bloodSample.data["mind"] && bloodSample.data["cloneable"] == 1)
mind = bloodSample.data["mind"]
ckey = bloodSample.data["ckey"]
realName = bloodSample.data["real_name"]
blood_gender = bloodSample.data["gender"]
blood_type = bloodSample.data["blood_type"]
features = bloodSample.data["features"]
factions = bloodSample.data["factions"]
traits = bloodSample.data["traits"]
W.reagents.clear_reagents()
to_chat(user, "<span class='notice'>You inject the contents of the syringe into the seeds.</span>")
contains_sample = 1
else
to_chat(user, "<span class='warning'>The seeds reject the sample!</span>")
else
to_chat(user, "<span class='warning'>The seeds already contain a genetic sample!</span>")
else
return ..()
/obj/item/seeds/replicapod/Initialize()
. = ..()
create_reagents(volume)
/obj/item/seeds/replicapod/on_reagent_change(changetype)
if(changetype == ADD_REAGENT)
var/datum/reagent/blood/B = reagents.has_reagent("blood")
if(B)
if(B.data["mind"] && B.data["cloneable"])
mind = B.data["mind"]
ckey = B.data["ckey"]
realName = B.data["real_name"]
blood_gender = B.data["gender"]
blood_type = B.data["blood_type"]
features = B.data["features"]
factions = B.data["factions"]
factions = B.data["traits"]
contains_sample = TRUE
visible_message("<span class='notice'>The [src] is injected with a fresh blood sample.</span>")
else
visible_message("<span class='warning'>The [src] rejects the sample!</span>")
if(!reagents.has_reagent("blood"))
mind = null
ckey = null
realName = null
blood_gender = null
blood_type = null
features = null
factions = null
contains_sample = FALSE
/obj/item/seeds/replicapod/get_analyzer_text()
var/text = ..()
@@ -53,10 +65,11 @@
return text
/obj/item/seeds/replicapod/harvest(mob/user = usr) //now that one is fun -- Urist
/obj/item/seeds/replicapod/harvest(mob/user) //now that one is fun -- Urist
var/obj/machinery/hydroponics/parent = loc
var/make_podman = 0
var/ckey_holder = null
var/list/result = list()
if(CONFIG_GET(flag/revival_pod_plants))
if(ckey)
for(var/mob/M in GLOB.player_list)
@@ -113,6 +126,8 @@
var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc //needed for TK
for(var/i=0,i<seed_count,i++)
var/obj/item/seeds/replicapod/harvestseeds = src.Copy()
result.Add(harvestseeds)
harvestseeds.forceMove(output_loc)
parent.update_tray()
return result
+5 -3
View File
@@ -853,7 +853,8 @@
if(issilicon(user)) //How does AI know what plant is?
return
if(harvest)
myseed.harvest(user)
return myseed.harvest(user)
else if(dead)
dead = 0
to_chat(user, "<span class='notice'>You remove the dead plant from [src].</span>")
@@ -861,9 +862,10 @@
myseed = null
update_icon()
else
examine(user)
if(user)
examine(user)
/obj/machinery/hydroponics/proc/update_tray(mob/user = usr)
/obj/machinery/hydroponics/proc/update_tray(mob/user)
harvest = 0
lastproduce = age
if(istype(myseed, /obj/item/seeds/replicapod))
+3 -1
View File
@@ -1,5 +1,6 @@
/proc/seedify(obj/item/O, t_max, obj/machinery/seed_extractor/extractor, mob/living/user)
var/t_amount = 0
var/list/seeds = list()
if(t_max == -1)
if(extractor)
t_max = rand(1,4) * extractor.seed_multiplier
@@ -17,10 +18,11 @@
return
while(t_amount < t_max)
var/obj/item/seeds/t_prod = F.seed.Copy()
seeds.Add(t_prod)
t_prod.forceMove(seedloc)
t_amount++
qdel(O)
return 1
return seeds
else if(istype(O, /obj/item/grown))
var/obj/item/grown/F = O
+2 -2
View File
@@ -136,7 +136,7 @@
return return_yield
/obj/item/seeds/proc/harvest(mob/user = usr)
/obj/item/seeds/proc/harvest(mob/user)
var/obj/machinery/hydroponics/parent = loc //for ease of access
var/t_amount = 0
var/list/result = list()
@@ -151,7 +151,7 @@
product_name = t_prod.name
if(getYield() >= 1)
SSblackbox.record_feedback("tally", "food_harvested", getYield(), product_name)
parent.update_tray()
parent.update_tray(user)
return result