From c0c3e45df2a9db298861edeb13b52995d344b63e Mon Sep 17 00:00:00 2001 From: Duck- Date: Thu, 28 Aug 2014 11:26:06 -0400 Subject: [PATCH] Alien hardsuits part one, goldslimes WIP alienhardsuits, waiting on sprites. Goldslime re-enabled. Blood injection WIP. --- code/game/objects/items/devices/modkit.dm | 64 +++++-- code/modules/clothing/spacesuits/alien.dm | 207 +++++++++++++++++++++ code/modules/reagents/Chemistry-Recipes.dm | 63 ++++++- data/investigate/gravity.html | 4 +- 4 files changed, 319 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index a7c221aa..1037c6af 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -7,22 +7,30 @@ desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user." icon_state = "modkit" var/parts = MODKIT_FULL - var/from_helmet = /obj/item/clothing/head/helmet/space/rig - var/from_suit = /obj/item/clothing/suit/space/rig - var/to_helmet = /obj/item/clothing/head/cardborg - var/to_suit = /obj/item/clothing/suit/cardborg + var/list/from_helmet = list(/obj/item/clothing/head/helmet/space/rig) + var/list/from_suit = list(/obj/item/clothing/suit/space/rig) + var/list/to_helmet = list(/obj/item/clothing/head/cardborg) + var/list/to_suit = list(/obj/item/clothing/suit/cardborg) /obj/item/device/modkit/afterattack(obj/O, mob/user as mob) var/flag var/to_type - if(istype(O,from_helmet)) - flag = MODKIT_HELMET - to_type = to_helmet - else if(istype(O,from_suit)) - flag = MODKIT_SUIT - to_type = to_suit - else + + for(var/i = 1, i <= from_helmet.len, i++) +// msg_scopes("[from_helmet[i]]") + if(istype(O, from_helmet[i])) + to_type = to_helmet[i] + flag = MODKIT_HELMET + break + + if(istype(O, from_suit[i])) + flag = MODKIT_SUIT + to_type = to_suit[i] + break + + if(!flag) return + if(!(parts & flag)) user << "This kit has no parts for this modification left." return @@ -33,6 +41,7 @@ user << "[O] must be safely placed on the ground for modification." return playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1) + msg_scopes("[to_type]") var/N = new to_type(O.loc) user.visible_message("\red [user] opens \the [src] and modifies \the [O] into \the [N].","\red You open \the [src] and modify \the [O] into \the [N].") del(O) @@ -43,5 +52,34 @@ /obj/item/device/modkit/tajaran name = "tajara hardsuit modification kit" desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajara." - to_helmet = /obj/item/clothing/head/helmet/space/rig/tajara - to_suit = /obj/item/clothing/suit/space/rig/tajara \ No newline at end of file + +//Keep the lists in matching orders to the relative type and keep the parents at the end. +// /obj/item/clothing/head/helmet/space/rig <- is a parent //i love you, sounds. + from_helmet = list(/obj/item/clothing/head/helmet/space/rig/security, /obj/item/clothing/head/helmet/space/rig/medical, /obj/item/clothing/head/helmet/space/rig/atmos, /obj/item/clothing/head/helmet/space/rig) + to_helmet = list(/obj/item/clothing/head/helmet/space/rig/security/tajara, /obj/item/clothing/head/helmet/space/rig/medical/tajara, /obj/item/clothing/head/helmet/space/rig/atmos/tajara, /obj/item/clothing/head/helmet/space/rig/tajara) + + from_suit = list(/obj/item/clothing/suit/space/rig/security, /obj/item/clothing/suit/space/rig/medical, /obj/item/clothing/suit/space/rig/atmos, /obj/item/clothing/suit/space/rig) + to_suit = list(/obj/item/clothing/suit/space/rig/security/tajara, /obj/item/clothing/suit/space/rig/medical/tajara, /obj/item/clothing/suit/space/rig/atmos/tajara, /obj/item/clothing/suit/space/rig/tajara) + +/obj/item/device/modkit/unathi + name = "unathi hardsuit modification kit" + desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Unathi." + + from_helmet = list(/obj/item/clothing/head/helmet/space/rig/security, /obj/item/clothing/head/helmet/space/rig/medical, /obj/item/clothing/head/helmet/space/rig/atmos, /obj/item/clothing/head/helmet/space/rig) + to_helmet = list(/obj/item/clothing/head/helmet/space/rig/security/unathi, /obj/item/clothing/head/helmet/space/rig/medical/unathi, /obj/item/clothing/head/helmet/space/rig/atmos/unathi, /obj/item/clothing/head/helmet/space/rig/unathi) + + from_suit = list(/obj/item/clothing/suit/space/rig/security, /obj/item/clothing/suit/space/rig/medical, /obj/item/clothing/suit/space/rig/atmos, /obj/item/clothing/suit/space/rig) + to_suit = list(/obj/item/clothing/suit/space/rig/security/unathi, /obj/item/clothing/suit/space/rig/medical/unathi, /obj/item/clothing/suit/space/rig/atmos/unathi, /obj/item/clothing/suit/space/rig/unathi) + +/obj/item/device/modkit/skrell + name = "skrell hardsuit modification kit" + desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Skrell." + + from_helmet = list(/obj/item/clothing/head/helmet/space/rig/security, /obj/item/clothing/head/helmet/space/rig/medical, /obj/item/clothing/head/helmet/space/rig/atmos, /obj/item/clothing/head/helmet/space/rig) + to_helmet = list(/obj/item/clothing/head/helmet/space/rig/security/skrell, /obj/item/clothing/head/helmet/space/rig/medical/skrell, /obj/item/clothing/head/helmet/space/rig/atmos/skrell, /obj/item/clothing/head/helmet/space/rig/skrell) + + from_suit = list(/obj/item/clothing/suit/space/rig/security, /obj/item/clothing/suit/space/rig/medical, /obj/item/clothing/suit/space/rig/atmos, /obj/item/clothing/suit/space/rig) + to_suit = list(/obj/item/clothing/suit/space/rig/security/skrell, /obj/item/clothing/suit/space/rig/medical/skrell, /obj/item/clothing/suit/space/rig/atmos/skrell, /obj/item/clothing/suit/space/rig/skrell) + + + diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 4e931595..381259b8 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -282,3 +282,210 @@ item_state = "syndie_hardsuit" icon_state = "rig-syndie-human" species_restricted = list("Human") + +//BEGIN NEW ALIEN HARDSUIT ATTEMPT. + + +/obj/item/clothing/suit/space/rig/security/tajara + icon_state = "rig-sec" //change this when you can stop being dumb + desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." + item_state = "sec_hardsuit" + species_restricted = list("Tajaran") + +/obj/item/clothing/suit/space/rig/security/skrell + icon_state = "rig-sec" + desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." + item_state = "sec_hardsuit" + species_restricted = list("Skrell") + +/obj/item/clothing/suit/space/rig/security/unathi + icon_state = "rig-sec" + desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." + item_state = "sec_hardsuit" + species_restricted = list("Unathi") + +/obj/item/clothing/head/helmet/space/rig/security/tajara + name = "security hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." + icon_state = "rig0-sec" + item_state = "sec_helm" + species_restricted = list("Tajaran") + +/obj/item/clothing/head/helmet/space/rig/security/unathi + name = "security hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." + icon_state = "rig0-sec" + item_state = "sec_helm" + species_restricted = list("Unathi") + +/obj/item/clothing/head/helmet/space/rig/security/skrell + name = "security hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." + icon_state = "rig0-sec" + item_state = "sec_helm" + species_restricted = list("Skrell") + +/obj/item/clothing/suit/space/rig/atmos/tajara + icon_state = "rig-atmos" //change this when you can stop being dumb + desc = "A special suit that protects against hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." + item_state = "atmos_hardsuit" + species_restricted = list("Tajaran") + +/obj/item/clothing/suit/space/rig/atmos/skrell + icon_state = "rig-atmos" + desc = "A special suit that protects against hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." + item_state = "atmos_hardsuit" + species_restricted = list("Skrell") + +/obj/item/clothing/suit/space/rig/atmos/unathi + icon_state = "rig-atmos" + desc = "A special suit that protects against hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." + item_state = "atmos_hardsuit" + species_restricted = list("Unathi") + +/obj/item/clothing/head/helmet/space/rig/atmos/tajara + desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." + name = "atmospherics hardsuit helmet" + icon_state = "rig0-atmos" + item_state = "atmos_helm" + species_restricted = list("Tajaran") + +/obj/item/clothing/head/helmet/space/rig/atmos/unathi + desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." + name = "atmospherics hardsuit helmet" + icon_state = "rig0-atmos" + item_state = "atmos_helm" + species_restricted = list("Unathi") + +/obj/item/clothing/head/helmet/space/rig/atmos/skrell + desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." + name = "atmospherics hardsuit helmet" + icon_state = "rig0-atmos" + item_state = "atmos_helm" + species_restricted = list("Skrell") + +/obj/item/clothing/suit/space/rig/medical/tajara + icon_state = "rig-medical" + name = "medical hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has minor radiation shielding." + item_state = "medical_hardsuit" + species_restricted = list("Tajaran") + +/obj/item/clothing/suit/space/rig/medical/unathi + icon_state = "rig-medical" + name = "medical hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has minor radiation shielding." + item_state = "medical_hardsuit" + species_restricted = list("Unathi") + +/obj/item/clothing/suit/space/rig/medical/skrell + icon_state = "rig-medical" + name = "medical hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has minor radiation shielding." + item_state = "medical_hardsuit" + species_restricted = list("Skrell") + +/obj/item/clothing/head/helmet/space/rig/medical/tajara + name = "medical hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has minor radiation shielding." + icon_state = "rig0-medical" + item_state = "medical_helm" + species_restricted = list("tajara") + +/obj/item/clothing/head/helmet/space/rig/medical/unathi + name = "medical hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has minor radiation shielding." + icon_state = "rig0-medical" + item_state = "medical_helm" + species_restricted = list("unathi") + +/obj/item/clothing/head/helmet/space/rig/medical/skrell + name = "medical hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has minor radiation shielding." + icon_state = "rig0-medical" + item_state = "medical_helm" + species_restricted = list("Skrell") + +/obj/item/clothing/suit/space/rig/mining/tajara + icon_state = "rig-mining" + name = "mining hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." + item_state = "mining_hardsuit" + species_restricted = list("Tajaran") + +/obj/item/clothing/suit/space/rig/mining/unathi + icon_state = "rig-mining" + name = "mining hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." + item_state = "mining_hardsuit" + species_restricted = list("Unathi") + +/obj/item/clothing/suit/space/rig/mining/skrell + icon_state = "rig-mining" + name = "mining hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." + item_state = "mining_hardsuit" + species_restricted = list("Skrell") + +/obj/item/clothing/head/helmet/space/rig/mining/tajara + name = "mining hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating." + icon_state = "rig0-mining" + item_state = "mining_helm" + species_restricted = list("Tajaran") + +/obj/item/clothing/head/helmet/space/rig/mining/unathi + name = "mining hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating." + icon_state = "rig0-mining" + item_state = "mining_helm" + species_restricted = list("Unathi") + +/obj/item/clothing/head/helmet/space/rig/mining/skrell + name = "mining hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating." + icon_state = "rig0-mining" + item_state = "mining_helm" + species_restricted = list("Skrell") +/* +/obj/item/clothing/suit/space/rig/tajara + name = "engineering hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "rig-engineering" + item_state = "eng_hardsuit" + species_restricted = list("Tajaran") +*/ +/obj/item/clothing/suit/space/rig/unathi + name = "engineering hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "rig-engineering" + item_state = "eng_hardsuit" + species_restricted = list("Unathi") + +/obj/item/clothing/suit/space/rig/skrell + name = "engineering hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "rig-engineering" + item_state = "eng_hardsuit" + species_restricted = list("Skrell") +/* +/obj/item/clothing/head/helmet/space/rig/tajara + name = "engineering hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "rig0-engineering" + item_state = "eng_helm" + species_restricted = list("Tajaran") +*/ +/obj/item/clothing/head/helmet/space/rig/unathi + name = "engineering hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "rig0-engineering" + item_state = "eng_helm" + species_restricted = list("Unathi") + +/obj/item/clothing/head/helmet/space/rig/skrell + name = "engineering hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "rig0-engineering" + item_state = "eng_helm" + species_restricted = list("Skrell") \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 6be58256..00ad5725 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1072,8 +1072,11 @@ datum required_container = /obj/item/slime_extract/gold required_other = 1 on_reaction(var/datum/reagents/holder) + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The slime extract begins to vibrate violently !"), 1) + spawn(50) - /*var/blocked = list(/mob/living/simple_animal/hostile, + var/blocked = list(/mob/living/simple_animal/hostile, /mob/living/simple_animal/hostile/pirate, /mob/living/simple_animal/hostile/pirate/ranged, /mob/living/simple_animal/hostile/russian, @@ -1105,9 +1108,61 @@ datum C.loc = get_turf_loc(holder.my_atom) if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) - step(C, pick(NORTH,SOUTH,EAST,WEST))*/ - for(var/mob/O in viewers(get_turf_loc(holder.my_atom), null)) - O.show_message(text("\red The slime core fizzles disappointingly,"), 1) + step(C, pick(NORTH,SOUTH,EAST,WEST)) +// for(var/mob/O in viewers(get_turf_loc(holder.my_atom), null)) +// O.show_message(text("\red The slime core fizzles disappointingly,"), 1) +/* + slimecritlesser + name = "Slime Crit Lesser" + id = "m_tele3" + result = null + required_reagents = list("blood" = 1) + result_amount = 1 + required_container = /obj/item/slime_extract/gold + required_other = 1 + /datum/chemical_reaction/slimecritlesser/on_reaction(var/datum/reagents/holder) + feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The slime extract begins to vibrate violently !"), 1) + spawn(50) + + if(holder && holder.my_atom) + + var/blocked = list(/mob/living/simple_animal/hostile, + /mob/living/simple_animal/hostile/pirate, + /mob/living/simple_animal/hostile/pirate/ranged, + /mob/living/simple_animal/hostile/russian, + /mob/living/simple_animal/hostile/russian/ranged, + /mob/living/simple_animal/hostile/syndicate, + /mob/living/simple_animal/hostile/syndicate/melee, + /mob/living/simple_animal/hostile/syndicate/melee/space, + /mob/living/simple_animal/hostile/syndicate/ranged, + /mob/living/simple_animal/hostile/syndicate/ranged/space, + /mob/living/simple_animal/hostile/alien/queen/large, + /mob/living/simple_animal/hostile/retaliate, + /mob/living/simple_animal/hostile/retaliate/clown, +/* /mob/living/simple_animal/hostile/mushroom, + /mob/living/simple_animal/hostile/asteroid, + /mob/living/simple_animal/hostile/asteroid/basilisk, + /mob/living/simple_animal/hostile/asteroid/goldgrub, + /mob/living/simple_animal/hostile/asteroid/goliath, + /mob/living/simple_animal/hostile/asteroid/hivelord, + /mob/living/simple_animal/hostile/asteroid/hivelordbrood, + /mob/living/simple_animal/hostile/carp/holocarp*/ + )//exclusion list for things you don't want the reaction to create. + var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs + + playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) + + for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) + + var/chosen = pick(critters) + var/mob/living/simple_animal/hostile/C = new chosen + C.faction |= "neutral" + C.loc = get_turf(holder.my_atom) +*/ //Silver slimebork diff --git a/data/investigate/gravity.html b/data/investigate/gravity.html index 04e26d92..53516da6 100644 --- a/data/investigate/gravity.html +++ b/data/investigate/gravity.html @@ -1,2 +1,2 @@ -02:02 [0x2007767] (92,152,1) || the gravitational generator has regained power.
-02:02 [0x2007767] (92,152,1) || the gravitational generator is now charging.
+11:12 [0x200775e] (92,152,1) || the gravitational generator has regained power.
+11:12 [0x200775e] (92,152,1) || the gravitational generator is now charging.