From 486f46d71e715e1a14281ae39eb5476d4112a701 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 31 Jul 2013 04:17:17 -0700 Subject: [PATCH] Moved around podmen code, adjusted a lot of strings, rewrote/modified a lot of the podman generation code, added podman icons, commented out potato person green tint. --- baystation12.dme | 1 + code/defines/obj/hydro.dm | 24 --- code/game/machinery/hydroponics.dm | 106 +----------- code/game/machinery/podmen.dm | 153 ++++++++++++++++++ .../mob/living/carbon/human/human_defense.dm | 19 +-- code/modules/mob/living/carbon/human/life.dm | 6 +- .../mob/living/carbon/human/update_icons.dm | 31 ++-- icons/mob/human_races/r_def_plant.dmi | Bin 0 -> 14630 bytes icons/mob/human_races/r_plant.dmi | Bin 0 -> 14630 bytes 9 files changed, 175 insertions(+), 165 deletions(-) create mode 100644 code/game/machinery/podmen.dm create mode 100644 icons/mob/human_races/r_def_plant.dmi create mode 100644 icons/mob/human_races/r_plant.dmi diff --git a/baystation12.dme b/baystation12.dme index af20b5bf301..a1637015425 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -314,6 +314,7 @@ #include "code\game\machinery\newscaster.dm" #include "code\game\machinery\OpTable.dm" #include "code\game\machinery\overview.dm" +#include "code\game\machinery\podmen.dm" #include "code\game\machinery\portable_turret.dm" #include "code\game\machinery\recharger.dm" #include "code\game\machinery\rechargestation.dm" diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 9e26cb48fdb..bfea9a3b22b 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -81,30 +81,6 @@ plant_type = 2 growthstages = 3 -/obj/item/seeds/replicapod - name = "pack of replica pod seeds" - desc = "These seeds grow into replica pods. They say these are used to harvest humans." - icon_state = "seed-replicapod" - mypath = "/obj/item/seeds/replicapod" - species = "replicapod" - plantname = "Replica Pod" - productname = "/mob/living/carbon/human" //verrry special -- Urist - lifespan = 50 //no idea what those do - endurance = 8 - maturation = 10 - production = 10 - yield = 1 //seeds if there isn't a dna inside - oneharvest = 1 - potency = 30 - plant_type = 0 - growthstages = 6 - var/ui = null //for storing the guy - var/se = null - var/ckey = null - var/realName = null - var/datum/mind/mind = null - gender = MALE - /obj/item/seeds/grapeseed name = "pack of grape seeds" desc = "These seeds grow into grape vines." diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index 5d187b337c7..a0f8c371e41 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -915,115 +915,13 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) parent.update_tray() -/obj/item/seeds/replicapod/harvest(mob/user = usr) //now that one is fun -- Urist - var/obj/machinery/hydroponics/parent = loc - var/make_podman = 0 - var/mob/ghost - if(ckey && config.revival_pod_plants) - ghost = find_dead_player("[ckey]") - if(ismob(ghost)) - if(istype(ghost,/mob/dead/observer)) - var/mob/dead/observer/O = ghost - if(istype(mind,/datum/mind)) - if(O.can_reenter_corpse) - make_podman = 1 - else - make_podman = 1 - - if(make_podman) //all conditions met! - var/mob/living/carbon/human/podman = new /mob/living/carbon/human(parent.loc) - if(realName) - podman.real_name = realName - else - podman.real_name = "Pod Person [rand(0,999)]" - var/oldactive = mind.active - mind.active = 1 - mind.transfer_to(podman) - mind.active = oldactive - // -- Mode/mind specific stuff goes here. TODO! Broken :( Should be merged into mob/living/Login - switch(ticker.mode.name) - if ("revolution") - if (podman.mind in ticker.mode:revolutionaries) - ticker.mode:add_revolutionary(podman.mind) - ticker.mode:update_all_rev_icons() //So the icon actually appears - if (podman.mind in ticker.mode:head_revolutionaries) - ticker.mode:update_all_rev_icons() - if ("nuclear emergency") - if (podman.mind in ticker.mode:syndicates) - ticker.mode:update_all_synd_icons() - if ("cult") - if (podman.mind in ticker.mode:cult) - ticker.mode:add_cultist(podman.mind) - ticker.mode:update_all_cult_icons() //So the icon actually appears - - // -- End mode specific stuff - - podman.gender = ghost.gender - if(podman.gender in list(NEUTER, PLURAL)) //Sanity check, which should never actually happen. - podman.gender = pick(MALE,FEMALE) - - if(!podman.dna) - podman.dna = new /datum/dna() - podman.dna.real_name = podman.real_name - if(ui) - podman.dna.uni_identity = ui - updateappearance(podman, ui) - if(se) - podman.dna.struc_enzymes = se - if(!prob(potency)) //if it fails, plantman! - if(podman) -// podman.dna.mutantrace = "plant" - podman.mutations.Add(PLANT) - podman.update_mutantrace() - - else //else, one packet of seeds. maybe two - var/seed_count = 1 - if(prob(yield * parent.yieldmod * 20)) - seed_count++ - for(var/i=0,iYour blood has been placed into a replica pod seed. Return to your body if you want to be returned to life as a pod person! (Verbs -> Ghost -> Re-enter corpse)" + break + else + user << "Nothing happens." + return + + if (!istype(source)) + return + + if(source.ckey) + realName = source.real_name + ckey = source.ckey + + W:reagents.clear_reagents() + return + + return ..() + +/obj/item/seeds/replicapod/harvest(mob/user = usr) + + var/obj/machinery/hydroponics/parent = loc + var/mob/ghost + var/list/candidates = list() + + user.visible_message("\blue You carefully begin to open the pod..."."[user] carefully begins to open the pod..." + + //If a sample is injected (and revival is allowed) the plant will be controlled by the original donor. + if(source && source.mind && source.ckey && config.revival_pod_plants) + ghost = source + else // If no sample was injected or revival is not allowed, we grab an interested observer. + for(var/mob/dead/observer/O in player_list) + if(O.client) + var/response = alert(O, "Someone is harvesting a replica pod. Would you like to play as a Dionaea?", "Replica pod harvest", "Yes", "No") + if(response == "Yes") + candidates += O + + if(!do_after(user, 100)) + return + + if(!src || !user) + return + + if(candidates.len) + ghost = pick(candidates) + + //If we don't have a ghost or the ghost is now unplayed, we just give the harvester some seeds. + if(!ghost || !(ghost.ckey)) + user << "The pod has formed badly, and all you can do is salvage some of the seeds." + var/seed_count = 1 + + if(prob(yield * parent.yieldmod * 20)) + seed_count++ + + for(var/i=0,iYou awaken slowly, feeling your sap stir into sluggish motion as the warm air caresses your bark." + if(source && ckey && podman.ckey == ckey) + podman << "Memories of a life as [source] drift oddly through a mind unsuited for them, like a skin of oil over a fathomless lake." + podman << "You are now one of the Dionaea, a race of drifting interstellar plantlike creatures that sometimes share their seeds with human traders." + podman << "Too much darkness will send you into shock and starve you, but light will help you heal." + + if(!realName) + var/newname = input(podman,"Enter a name, or leave blank for the default name.", "Name change","") as text + if (newname != "") + podman.real_name = newname + parent.update_tray() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 1a7f5def825..96a9c4394a6 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -10,7 +10,7 @@ emp_act /mob/living/carbon/human/bullet_act(var/obj/item/projectile/P, var/def_zone) -//Old taser nerf. +// BEGIN TASER NERF /* Commenting out new-old taser nerf. if(C.siemens_coefficient == 0) //If so, is that clothing shock proof? if(prob(deflectchance)) @@ -50,23 +50,6 @@ emp_act P.xo = new_x - curloc.x return -1 // complete projectile permutation -//Book's taser nerf. - if(istype(P, /obj/item/projectile/energy/electrode)) - var/datum/organ/external/select_area = get_organ(def_zone) // We're checking the outside, buddy! - var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes) // What all are we checking? - // var/deflectchance=90 //Is it a CRITICAL HIT with that taser? - for(var/bp in body_parts) //Make an unregulated var to pass around. - if(!bp) - continue //Does this thing we're shooting even exist? - if(bp && istype(bp ,/obj/item/clothing)) // If it exists, and it's clothed - var/obj/item/clothing/C = bp // Then call an argument C to be that clothing! - if(C.body_parts_covered & select_area.body_part) // Is that body part being targeted covered? - P.agony=P.agony*C.siemens_coefficient - apply_effect(P.agony,AGONY,0) - flash_pain() - src <<"\red You have been shot!" - del P -//End taser nerf. //BEGIN BOOK'S TASER NERF. if(istype(P, /obj/item/projectile/energy/electrode)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 205dcf5b34e..45164ff77d3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -841,8 +841,7 @@ if(status_flags & GODMODE) return 0 //godmode adjustToxLoss(total_plasmaloss) -// if(dna && dna.mutantrace == "plant") //couldn't think of a better place to place it, since it handles nutrition -- Urist - if(PLANT in mutations) + if(PLANT in mutations || (dna && dna.mutantrace == "plant")) var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing if(isturf(loc)) //else, there's considered to be no light var/turf/T = loc @@ -900,8 +899,7 @@ if(overeatduration > 1) overeatduration -= 2 //doubled the unfat rate -// if(dna && dna.mutantrace == "plant") - if(PLANT in mutations) + if(PLANT in mutations || (dna && dna.mutantrace == "plant")) if(nutrition < 200) take_overall_damage(2,0) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e947f30a967..eed0e94f1ef 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -220,14 +220,14 @@ proc/get_damage_icon_part(damage_state, body_part) var/husk_color_mod = rgb(96,88,80) var/hulk_color_mod = rgb(48,224,40) - var/plant_color_mod = rgb(144,224,144) + //var/plant_color_mod = rgb(144,224,144) var/necrosis_color_mod = rgb(10,50,0) var/husk = (HUSK in src.mutations) //100% unnecessary -Agouri //nope, do you really want to iterate through src.mutations repeatedly? -Pete var/fat = (FAT in src.mutations) var/hulk = (HULK in src.mutations) var/skeleton = (SKELETON in src.mutations) - var/plant = (PLANT in src.mutations) + var/plant = (PLANT in src.mutations || (dna && dna.mutantrace == "plant")) var/g = "m" if(gender == FEMALE) g = "f" @@ -240,8 +240,8 @@ proc/get_damage_icon_part(damage_state, body_part) else if(hulk) var/list/TONE = ReadRGB(hulk_color_mod) stand_icon.MapColors(rgb(TONE[1],0,0),rgb(0,TONE[2],0),rgb(0,0,TONE[3])) - else if(plant) - stand_icon.ColorTone(plant_color_mod) + //else if(plant) + // stand_icon.ColorTone(plant_color_mod) var/datum/organ/external/head = get_organ("head") var/has_head = 0 @@ -269,8 +269,8 @@ proc/get_damage_icon_part(damage_state, body_part) else if(hulk) var/list/TONE = ReadRGB(hulk_color_mod) temp.MapColors(rgb(TONE[1],0,0),rgb(0,TONE[2],0),rgb(0,0,TONE[3])) - else if(plant) - temp.ColorTone(plant_color_mod) + //else if(plant) + // temp.ColorTone(plant_color_mod) //That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST //And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part) @@ -320,7 +320,7 @@ proc/get_damage_icon_part(damage_state, body_part) stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) //Underwear - if(underwear >0 && underwear < 12 && (src.dna.mutantrace != "vox" && src.dna.mutantrace != "kidan")) + if(underwear >0 && underwear < 12 && (src.dna.mutantrace != "vox" && src.dna.mutantrace != "plant" && src.dna.mutantrace != "kidan")) if(!fat && !skeleton) stand_icon.Blend(new /icon('icons/mob/human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) @@ -440,11 +440,12 @@ proc/get_damage_icon_part(damage_state, body_part) if("skrell") race_icon = 'icons/mob/human_races/r_skrell.dmi' deform_icon = 'icons/mob/human_races/r_def_skrell.dmi' - if("vox") race_icon = 'icons/mob/human_races/r_vox.dmi' deform_icon = 'icons/mob/human_races/r_def_vox.dmi' - + if("plant") + race_icon = 'icons/mob/human_races/r_plant.dmi' + deform_icon = 'icons/mob/human_races/r_def_plant.dmi' else race_icon = 'icons/mob/human_races/r_human.dmi' deform_icon = 'icons/mob/human_races/r_def_human.dmi' @@ -459,12 +460,12 @@ proc/get_damage_icon_part(damage_state, body_part) // if("lizard","tajaran","skrell") // overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l") // overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s") - if("plant") - if(stat == DEAD) //TODO - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d") - else - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_l") - overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s") + // if("plant") + // if(stat == DEAD) //TODO + // overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d") + // else + // overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_l") + // overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s") else overlays_lying[MUTANTRACE_LAYER] = null overlays_standing[MUTANTRACE_LAYER] = null diff --git a/icons/mob/human_races/r_def_plant.dmi b/icons/mob/human_races/r_def_plant.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1fe04e70ff2a779b0b5dc0ea72a5393658b77f53 GIT binary patch literal 14630 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 literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/r_plant.dmi b/icons/mob/human_races/r_plant.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1fe04e70ff2a779b0b5dc0ea72a5393658b77f53 GIT binary patch literal 14630 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 literal 0 HcmV?d00001