From 4eb3e16f72f74db78fffb164c5604e90a4386950 Mon Sep 17 00:00:00 2001 From: RKF45 Date: Sun, 1 Feb 2015 01:34:39 +0100 Subject: [PATCH] Reviewing paint recipes All recipes make "paint" and have different colours via var/resultcolor White paint can also be made non-ghettoly. --- code/game/objects/items/weapons/paint.dm | 3 +- code/modules/reagents/Chemistry-Holder.dm | 42 +++++++++++++++---- code/modules/reagents/Chemistry-Reagents.dm | 6 +-- code/modules/reagents/Chemistry-Recipes.dm | 45 +++++++++++++++------ 4 files changed, 72 insertions(+), 24 deletions(-) diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index 2c0e1d812dc..0b993db633c 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -171,7 +171,7 @@ var/global/list/cached_icons = list() target.icon = initial(target.icon) return */ - +/* datum/reagent/paint name = "Paint" id = "paint_" @@ -235,3 +235,4 @@ datum/reagent/paint_remover if(istype(T) && T.icon != initial(T.icon)) T.icon = initial(T.icon) return +*/ \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 78a48cf8e0e..8b2cf82041e 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -79,9 +79,9 @@ datum if(A.volume > the_volume) the_volume = A.volume the_reagent = A - + return the_reagent - + get_master_reagent_name() var/the_name = null var/the_volume = 0 @@ -353,8 +353,14 @@ datum if(C.result) feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]") multiplier = max(multiplier, 1) //this shouldnt happen ... - add_reagent(C.result, C.result_amount*multiplier) - set_data(C.result, preserved_data) + world << "chemical_reaction [C.result]|[C.result_amount*multiplier][C.resultcolor]" + if(!isnull(C.resultcolor)) + world << "Paint made with colour [C.resultcolor]" + add_reagent(C.result, C.result_amount*multiplier, C.resultcolor) + else + add_reagent(C.result, C.result_amount*multiplier) + world << "This happened? [preserved_data]" + set_data(C.result, preserved_data) //add secondary products for(var/S in C.secondary_results) @@ -458,7 +464,7 @@ datum else R.reaction_obj(A, R.volume+volume_modifier) return - add_reagent(var/reagent, var/amount, var/list/data=null, var/safety = 0) + add_reagent(var/reagent, var/amount, var/data=null, var/safety = 0) if(!isnum(amount)) return 1 update_total() if(total_volume + amount > maximum_volume) amount = (maximum_volume - total_volume) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen. @@ -469,7 +475,6 @@ datum if (R.id == reagent) R.volume += amount update_total() - my_atom.on_reagent_change() // mix dem viruses if(R.id == "blood" && reagent == "blood") @@ -495,9 +500,25 @@ datum if(!istype(D, /datum/disease/advance)) preserve += D R.data["viruses"] = preserve - + if(R.id == "paint" && reagent == "paint") + if(R.color && data) + var/list/mix = new /list(2) + //fill the list + var/datum/reagent/paint/P1 = chemical_reagents_list["paint"] + P1.color = R.color + P1.volume = R.volume - amount //since we just increased that + world << "First paint [P1.color] vol [P1.volume]" + var/datum/reagent/paint/P2 = chemical_reagents_list["paint"] + P2.color = data + P2.volume = amount + world << "Second paint [P2.color] vol [P2.volume]" + mix += P1 + mix += P2 + R.color = mix_color_from_reagents(mix) + world << "Eventual mixed colour [R.color]" if(!safety) handle_reactions() + my_atom.on_reagent_change() return 0 var/datum/reagent/D = chemical_reagents_list[reagent] @@ -507,7 +528,11 @@ datum reagent_list += R R.holder = src R.volume = amount - SetViruses(R, data) // Includes setting data + if(reagent == "paint") + R.color = data + world << "The paint is given [data] colour" + else + SetViruses(R, data) // Includes setting data for blood //debug //world << "Adding data" @@ -611,6 +636,7 @@ datum my_atom.reagents = null copy_data(var/datum/reagent/current_reagent) + if (current_reagent.id == "paint") return current_reagent.color if (!current_reagent || !current_reagent.data) return null if (!istype(current_reagent.data, /list)) return current_reagent.data diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 714ff96b586..efd4bb2064f 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -88,7 +88,7 @@ datum on_new(var/data) return - // Called when two reagents of the same are mixing. + // Called when two reagents of the same are mixing. <-- Blatant lies on_merge(var/data) return @@ -1575,7 +1575,7 @@ datum reagent_state = LIQUID color = "#808080" overdose = 15 - +/* //Paints corresponding to crayons are hardcoded red id = "paint_red" @@ -1616,7 +1616,7 @@ datum white id = "paint_white" color = "#F0F8FF" - +*/ //////////////////////////Poison stuff/////////////////////// diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 2aaaeec2fce..4d6b44fb84d 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -4,6 +4,7 @@ datum var/name = null var/id = null var/result = null + var/resultcolor = null //for paint var/list/required_reagents = new/list() var/list/required_catalysts = new/list() @@ -1350,56 +1351,64 @@ datum red_paint name = "Red paint" id = "red_paint" - result = "paint_red" + result = "paint" + resultcolor = "#FE191A" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_red" = 1) result_amount = 5 orange_paint name = "Orange paint" id = "orange_paint" - result = "paint_orange" + result = "paint" + resultcolor = "#FFBE4F" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_orange" = 1) result_amount = 5 yellow_paint name = "Yellow paint" id = "yellow_paint" - result = "paint_yellow" + result = "paint" + resultcolor = "#FDFE7D" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_yellow" = 1) result_amount = 5 green_paint name = "Green paint" id = "green_paint" - result = "paint_green" + result = "paint" + resultcolor = "#18A31A" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_green" = 1) result_amount = 5 blue_paint name = "Blue paint" id = "blue_paint" - result = "paint_blue" + result = "paint" + resultcolor = "#247CFF" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_blue" = 1) result_amount = 5 purple_paint name = "Purple paint" id = "purple_paint" - result = "paint_purple" + result = "paint" + resultcolor = "#CC0099" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_purple" = 1) result_amount = 5 - grey_paint + grey_paint //mime name = "Grey paint" id = "grey_paint" - result = "paint_grey" + result = "paint" + resultcolor = "#808080" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_grey" = 1) result_amount = 5 brown_paint name = "Brown paint" id = "brown_paint" - result = "paint_brown" + result = "paint" + resultcolor = "#846F35" required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_brown" = 1) result_amount = 5 @@ -1408,24 +1417,36 @@ datum blood_paint name = "Blood paint" id = "blood_paint" - result = "paint_red" + result = "paint" + resultcolor = "#FE191A" required_reagents = list("plasticide" = 1, "water" = 3, "blood" = 2) result_amount = 5 milk_paint name = "Milk paint" id = "milk_paint" - result = "paint_white" + result = "paint" + resultcolor = "#F0F8FF" required_reagents = list("plasticide" = 1, "water" = 3, "milk" = 5) result_amount = 5 carbon_paint name = "Carbon paint" id = "carbon_paint" - result = "paint_black" + result = "paint" + resultcolor = "#333333" required_reagents = list("plasticide" = 1, "water" = 3, "carbon" = 1) result_amount = 5 +//Aluminum "non-ghetto" white paint + + aluminum_paint + name = "Aluminum paint" + id = "aluminum_paint" + result = "paint" + resultcolor = "#F0F8FF" + required_reagents = list("plasticide" = 1, "water" = 3, "aluminum" = 1) + result_amount = 5 //////////////////////////////////////////FOOD MIXTURES////////////////////////////////////