From ae109b459130e5fbc579a72b3b688b8088c07429 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 27 Dec 2012 01:35:54 +1000 Subject: [PATCH] xenoarch finds, updated dme Signed-off-by: Cael_Aislinn --- baystation12.dme | 2 +- .../modules/research/xenoarchaeology/finds.dm | 335 ++++++++++++++++++ 2 files changed, 336 insertions(+), 1 deletion(-) diff --git a/baystation12.dme b/baystation12.dme index 38201fe54ba..a0326d8c6e2 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1092,11 +1092,11 @@ #include "code\modules\research\xenoarchaeology\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\chemistry.dm" #include "code\modules\research\xenoarchaeology\core_sampler.dm" -#include "code\modules\research\xenoarchaeology\crystal.dm" #include "code\modules\research\xenoarchaeology\finds.dm" #include "code\modules\research\xenoarchaeology\fossils.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" #include "code\modules\research\xenoarchaeology\readme.dm" +#include "code\modules\research\xenoarchaeology\talking_item.dm" #include "code\modules\research\xenoarchaeology\tools.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm index 2521f8bcf4f..4298057d10a 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds.dm @@ -83,3 +83,338 @@ M.show_message("\blue The acid splashes harmlessly off the rock, nothing else interesting happens.",1) return 1 */ + +/obj/item/weapon/archaeological_find + name = "object" + icon = 'xenoarchaeology.dmi' + icon_state = "ano01" + var/find_type = 0 + +/obj/item/weapon/archaeological_find/New() + if(find_type < 1 || find_type > 25) + find_type = 0 + if(!find_type) + find_type = rand(1, 25) + + var/item_type = "object" + icon_state = "unknown[rand(1,4)]" + var/additional_desc = "" + var/obj/item/weapon/new_item + var/source_material = "" + var/apply_material_decorations = 1 + var/apply_image_decorations = 0 + var/material_descriptor = "" + if(prob(40)) + material_descriptor = pick("rusted ","dusty ","archaic ","fragile ") + source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") + + var/talkative = 0 + if(prob(5)) + talkative = 1 + + //for all items here: + //icon_state + //item_state + if(prob(90)) + switch(find_type) + if(1) + item_type = "bowl" + new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "bowl" + apply_image_decorations = 1 + if(prob(20)) + additional_desc = "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains inside." + if(2) + item_type = "urn" + new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "urn" + apply_image_decorations = 1 + if(prob(20)) + additional_desc = "It [pick("whispers faintly","makes a quiet roaring sound","whistles softly","thrums quietly"<"throbs")] if you put it to your ear." + if(3) + item_type = "[pick("fork","spoon","knife")]" + if(prob(25)) + new_item = new /obj/item/weapon/kitchen/utensil/fork(src.loc) + else if(prob(50)) + new_item = new /obj/item/weapon/kitchen/utensil/knife(src.loc) + else + new_item = new /obj/item/weapon/kitchen/utensil/spoon(src.loc) + additional_desc = "[pick("It's like no [item_type] you've ever seen before",\ + "It's a mystery how anyone is supposed to eat with this",\ + "You wonder what the creator's mouth was shaped like")]." + if(4) + item_type = "statuette" + icon_state = "statuette" + additional_desc = "It depicts a [pick("small","ferocious","wild","pleasing","hulking")] \ + [pick("alien humanoid figure","rodent-like creature","reptilian alien","primate","unidentifiable object")] \ + [pick("performing unspeakable acts","posing heroically","in a feotal position","cheering","sobbing","making a plaintive gesture","making a rude gesture")]." + if(5) + item_type = "instrument" + icon_state = "instrument" + additional_desc = "[pick("You're not sure how anyone could have played this",\ + "You wonder how many mouths the creator had",\ + "You wonder what it sounds like",\ + "You wonder what kind of music was made with it")]." + if(prob(30)) + apply_image_decorations = 1 + if(6) + item_type = "[pick("bladed knife","serrated blade","sharp cutting implement")]" + new_item = new /obj/item/weapon/kitchenknife(src.loc) + additional_desc = "[pick("It doesn't look safe.",\ + "It looks wickedly jagged",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along the edges")]." + if(7) + //assuming there are 10 types of coins + var/chance = 10 + for(var/type in typesof(/obj/item/weapon/coin)) + if(prob(chance)) + new_item = new type(src.loc) + break + chance += 10 + + item_type = new_item.name + apply_material_decorations = 0 + apply_image_decorations = 1 + if(8) + item_type = "chained loops" + new_item = new /obj/item/weapon/handcuffs(src.loc) + additional_desc = "[pick("They appear to be for securing two things together","Looks kinky","Doesn't seem like a children's toy")]." + if(9) + item_type = "[pick("wicked","evil","byzantine","dangerous")] looking [pick("device","contraption","thing","trap")]" + new_item = new /obj/item/weapon/legcuffs/beartrap(src.loc) + additional_desc = "[pick("It looks like it could take a limb off",\ + "Could be some kind of animal trap",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along part of it")]." + if(10) + item_type = "small [pick("cylinder","tank","chamber")]" + new_item = new /obj/item/weapon/lighter(src.loc) + additional_desc = "There is a tiny device attached." + if(prob(30)) + apply_image_decorations = 1 + if(11) + item_type = "box" + new_item = new /obj/item/weapon/storage/box(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "box" + if(prob(30)) + apply_image_decorations = 1 + if(12) + item_type = "[pick("cylinder","tank","chamber")]" + if(prob(25)) + new_item = new /obj/item/weapon/tank/air(src.loc) + else if(prob(50)) + new_item = new /obj/item/weapon/tank/anesthetic(src.loc) + else + new_item = new /obj/item/weapon/tank/plasma(src.loc) + icon_state = pick("oxygen","oxygen_fr","oxygen_f","plasma","anesthetic") + additional_desc = "It [pick("gloops","sloshes")] slightly when you shake it." + if(13) + item_type = "strange tool" + if(prob(25)) + new_item = new /obj/item/weapon/wrench(src.loc) + else if(prob(25)) + new_item = new /obj/item/weapon/crowbar(src.loc) + else + new_item = new /obj/item/weapon/screwdriver(src.loc) + additional_desc = "[pick("It doesn't look safe.",\ + "You wonder what it was used for",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains on it")]." + if(14) + apply_material_decorations = 0 + var/list/possible_spawns = list() + possible_spawns += /obj/item/stack/sheet/metal + possible_spawns += /obj/item/stack/sheet/plasma + possible_spawns += /obj/item/stack/sheet/plasteel + possible_spawns += /obj/item/stack/sheet/mythril + possible_spawns += /obj/item/stack/sheet/gold + possible_spawns += /obj/item/stack/sheet/silver + possible_spawns += /obj/item/stack/sheet/glass + possible_spawns += /obj/item/stack/sheet/rglass + possible_spawns += /obj/item/stack/sheet/enruranium + possible_spawns += /obj/item/stack/sheet/sandstone + possible_spawns += /obj/item/stack/sheet/silver + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + new_item:amount = rand(5,45) + del(src) + return //nothing fancy here + if(15) + if(prob(75)) + new_item = new /obj/item/weapon/pen(src.loc) + else + new_item = new /obj/item/weapon/pen/sleepypen(src.loc) + if(prob(30)) + apply_image_decorations = 1 + if(16) + item_type = "smooth green crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "Green lump" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(17) + item_type = "irregular purple crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "Phazon" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(18) + new_item = new /obj/item/device/radio/beacon(src.loc) + talkative = 0 + new_item.icon_state = "unknown[rand(1,4)]" + new_item.icon = 'xenoarchaeology.dmi' + new_item.desc = "" + if(19) + new_item = new /obj/item/weapon/claymore(src.loc) + name = new_item.name + desc = new_item.desc + apply_material_decorations = 0 + if(20) + //arcane clothing + var/list/possible_spawns = list(/obj/item/clothing/head/culthood, + /obj/item/clothing/head/magus, + /obj/item/clothing/head/culthood/alt, + /obj/item/clothing/head/helmet/space/cult) + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(21) + //the dangerous stuff: low chance of turning up + var/list/possible_spawns = list(/obj/item/weapon/veilrender, + /obj/item/device/soulstone, + /obj/item/weapon/melee/cultblade) + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(22) + new_item = new /obj/item/weapon/shard(src.loc) + del(src) + return + if(23) + new_item = new /obj/item/stack/rods(src.loc) + del(src) + return + if(24) + var/list/possible_spawns = list() + possible_spawns += typesof(/obj/item/weapon/stock_parts) + possible_spawns -= /obj/item/weapon/stock_parts + possible_spawns -= /obj/item/weapon/stock_parts/subspace + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(25) + new_item = new /obj/item/weapon/katana(src.loc) + name = new_item.name + desc = new_item.desc + apply_material_decorations = 0 + + else if(prob(40)) + apply_image_decorations = 1 + + var/decorations = "" + source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") + if(apply_material_decorations) + desc = "A [material_descriptor ? "[material_descriptor] " : ""][item_type] made of [source_material], all craftsmanship is of [pick("the lowest","low","average","high","the highest")] quality." + + var/list/descriptors = list() + if(prob(30)) + descriptors.Add("is encrusted with [pick("","synthetic ","multi-faceted ","uncut ","sparkling ") + pick("rubies","emeralds","diamonds","crystals","lapiz lazuli")]") + if(prob(30)) + descriptors.Add("is studded with [pick("gold","silver","aluminium","titanium")]") + if(prob(30)) + descriptors.Add("is encircled with bands of [pick("quadrinium","cordite","ferritic-alloy","plasteel","duranium")]") + if(prob(30)) + descriptors.Add("menaces with spikes of [pick("solid plasma","uranium","white pearl","black steel")]") + if(descriptors.len > 0) + decorations = "It " + for(var/index=1, index <= descriptors.len, index++) + if(index > 1) + if(index == descriptors.len) + decorations += " and " + else + decorations += ", " + decorations += descriptors[index] + decorations += "." + if(decorations) + desc += " " + decorations + + var/engravings = "" + if(apply_image_decorations) + engravings = "[pick("Engraved","Carved","Etched")] on the item is [pick("an image of","a frieze of","a depiction of")] \ + [pick("an alien humanoid","an amorphic blob","a short, hairy being","a rodent-like creature","a robot","a primate","a reptilian alien","an unidentifiable object","a statue","a starship","unusual devices","a structure")] \ + [pick("surrounded by","being held aloft by","being struck by","being examined by","communicating with")] \ + [pick("alien humanoids","amorphic blobs","short, hairy beings","rodent-like creatures","robots","primates","reptilian aliens")]" + if(prob(50)) + engravings += ", [pick("they seem to be enjoying themselves","they seem extremely angry","they look pensive","they are making gestures of supplication","the scene is one of subtle horror","the scene conveys a sense of desperation","the scene is completely bizarre")]" + engravings += "." + + if(desc) + desc += " " + desc += engravings + + name = "[item_type]" + if(desc) + desc += " " + desc += additional_desc + if(!desc) + desc = "This item is completely [pick("alien","bizarre")]." + + //icon and icon_state should have already been set + if(new_item) + new_item.name = src.name + new_item.desc = src.desc + + if(talkative) + new_item.listening_to_players = 1 + if(prob(25)) + new_item.speaking_to_players = 1 + spawn(100) + new_item.process_talking() + del(src) + + else if(talkative) + listening_to_players = 1 + if(prob(25)) + speaking_to_players = 1 + spawn(100) + process_talking() + +//legacy crystal +/obj/item/weapon/crystal + name = "Crystal" + icon = 'mining.dmi' + icon_state = "crystal" + +//large finds + /* + /obj/item/clothing/suit/cultrobes + /obj/item/clothing/suit/cultrobes/alt + /obj/item/clothing/suit/magusred + /obj/item/clothing/suit/space/cult + /obj/machinery/syndicate_beacon + /obj/machinery/wish_granter + if(18) + item_type = "jagged green crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(19) + item_type = "jagged pink crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal2" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + */ \ No newline at end of file