Merge pull request #7930 from RKF45/newpaint

Generic paint
This commit is contained in:
Chinsky
2015-02-03 18:15:42 +03:00
7 changed files with 243 additions and 96 deletions
@@ -8,7 +8,6 @@
var/list/greencolor = new /list(contents)
var/list/bluecolor = new /list(contents)
var/i
//fill the list of weights
for(i=1; i<=contents; i++)
var/datum/reagent/re = reagent_list[i]
@@ -17,7 +16,6 @@
reagentweight *= 20 //Paint colours a mixture twenty times as much
weight[i] = reagentweight
//fill the lists of colours
for(i=1; i<=contents; i++)
var/datum/reagent/re = reagent_list[i]
+28 -8
View File
@@ -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,11 @@ 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)
if(!isnull(C.resultcolor)) //paints
add_reagent(C.result, C.result_amount*multiplier, C.resultcolor)
else
add_reagent(C.result, C.result_amount*multiplier)
set_data(C.result, preserved_data)
//add secondary products
for(var/S in C.secondary_results)
@@ -458,7 +461,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 +472,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 +497,23 @@ 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/P = chemical_reagents_list["paint"]
var/datum/reagent/paint/P1 = new P.type()
P1.color = R.color
P1.volume = R.volume - amount //since we just increased that
var/datum/reagent/paint/P2 = new P.type()
P2.color = data
P2.volume = amount
mix[1] = P1
mix[2] = P2
R.color = mix_color_from_reagents(mix)
if(!safety)
handle_reactions()
my_atom.on_reagent_change()
return 0
var/datum/reagent/D = chemical_reagents_list[reagent]
@@ -507,7 +523,10 @@ datum
reagent_list += R
R.holder = src
R.volume = amount
SetViruses(R, data) // Includes setting data
if(reagent == "paint")
R.color = data
else
SetViruses(R, data) // Includes setting data for blood
//debug
//world << "Adding data"
@@ -611,6 +630,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
+19 -1
View File
@@ -851,7 +851,10 @@
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
/obj/item/weapon/reagent_containers/pill = list(),
/obj/item/weapon/reagent_containers/food = list()
/obj/item/weapon/reagent_containers/food = list(),
//Crayons
/obj/item/toy/crayon = list()
)
var/list/juice_items = list (
@@ -1186,6 +1189,21 @@
break
remove_object(O)
//crayons
for (var/obj/item/toy/crayon/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
var/amount = round(O.uses/3) //full crayon gives 10 juice
var/dustcolour = "red"
if (O.colourName == "mime")
dustcolour = "grey" //black+white
else if (O.colourName == "rainbow")
dustcolour = "brown" //mix of all colours
else if (!isnull(O.colourName)) //all other defined colours
dustcolour = O.colourName
beaker.reagents.add_reagent("crayon_dust_[dustcolour]",amount)
remove_object(O)
//Everything else - Transfers reagents from it into beaker
for (var/obj/item/weapon/reagent_containers/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
+73 -1
View File
@@ -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
@@ -1515,6 +1515,78 @@ datum
..()
return
//////////////////////////Ground crayons/////////////////////
crayon_dust
name = "Crayon dust"
id = "crayon_dust"
description = "Intensely coloured powder obtained by grinding crayons."
reagent_state = LIQUID
color = "#888888"
overdose = 5
red
name = "Red crayon dust"
id = "crayon_dust_red"
color = "#FE191A"
orange
name = "Orange crayon dust"
id = "crayon_dust_orange"
color = "#FFBE4F"
yellow
name = "Yellow crayon dust"
id = "crayon_dust_yellow"
color = "#FDFE7D"
green
name = "Green crayon dust"
id = "crayon_dust_green"
color = "#18A31A"
blue
name = "Blue crayon dust"
id = "crayon_dust_blue"
color = "#247CFF"
purple
name = "Purple crayon dust"
id = "crayon_dust_purple"
color = "#CC0099"
grey //Mime
name = "Grey crayon dust"
id = "crayon_dust_grey"
color = "#808080"
brown //Rainbow
name = "Brown crayon dust"
id = "crayon_dust_brown"
color = "#846F35"
//////////////////////////Paint//////////////////////////////
paint
name = "Paint"
id = "paint"
description = "This paint will stick to almost any object"
reagent_state = LIQUID
color = "#808080"
overdose = 15
reaction_turf(var/turf/T, var/volume)
if(!istype(T) || istype(T, /turf/space))
return
T.color = color
reaction_obj(var/obj/O, var/volume)
..()
if(istype(O,/obj/item/weapon/light))
O.color = color
//////////////////////////Poison stuff///////////////////////
toxin
+105 -1
View File
@@ -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()
@@ -131,7 +132,7 @@ datum
name = "Water"
id = "water"
result = "water"
required_reagents = list("oxygen" = 2, "hydrogen" = 1)
required_reagents = list("oxygen" = 1, "hydrogen" = 2)
result_amount = 1
thermite
@@ -1344,6 +1345,109 @@ datum
var/obj/effect/golemrune/Z = new /obj/effect/golemrune
Z.loc = get_turf(holder.my_atom)
Z.announce_to_ghosts()
//////////////////////////////////////////PAINT///////////////////////////////////////////
//Crayon dust -> paint
red_paint
name = "Red paint"
id = "red_paint"
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"
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"
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"
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"
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"
resultcolor = "#CC0099"
required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_purple" = 1)
result_amount = 5
grey_paint //mime
name = "Grey paint"
id = "grey_paint"
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"
resultcolor = "#846F35"
required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_brown" = 1)
result_amount = 5
//Ghetto reactions
blood_paint
name = "Blood paint"
id = "blood_paint"
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"
resultcolor = "#F0F8FF"
required_reagents = list("plasticide" = 1, "water" = 3, "milk" = 5)
result_amount = 5
carbon_paint
name = "Carbon paint"
id = "carbon_paint"
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////////////////////////////////////
tofu