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:
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user