Merge pull request #8071 from RKF45/newpaint

Generic Paint II: Fun with Paint
This commit is contained in:
PsiOmegaDelta
2015-02-10 06:48:32 +01:00
8 changed files with 127 additions and 122 deletions

View File

@@ -898,10 +898,9 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/weapon/reagent_containers/glass/paint/green, /obj/item/weapon/reagent_containers/glass/paint/green,
/obj/item/weapon/reagent_containers/glass/paint/blue, /obj/item/weapon/reagent_containers/glass/paint/blue,
/obj/item/weapon/reagent_containers/glass/paint/yellow, /obj/item/weapon/reagent_containers/glass/paint/yellow,
/obj/item/weapon/reagent_containers/glass/paint/violet, /obj/item/weapon/reagent_containers/glass/paint/purple,
/obj/item/weapon/reagent_containers/glass/paint/black, /obj/item/weapon/reagent_containers/glass/paint/black,
/obj/item/weapon/reagent_containers/glass/paint/white, /obj/item/weapon/reagent_containers/glass/paint/white,
/obj/item/weapon/reagent_containers/glass/paint/remover,
/obj/item/weapon/contraband/poster, /obj/item/weapon/contraband/poster,
/obj/item/weapon/wrapping_paper, /obj/item/weapon/wrapping_paper,
/obj/item/weapon/wrapping_paper, /obj/item/weapon/wrapping_paper,

View File

@@ -409,6 +409,7 @@ its easier to just keep the beam vertical.
/atom/proc/clean_blood() /atom/proc/clean_blood()
src.color = initial(src.color) //paint
src.germ_level = 0 src.germ_level = 0
if(istype(blood_DNA, /list)) if(istype(blood_DNA, /list))
del(blood_DNA) del(blood_DNA)

View File

@@ -114,6 +114,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
hologram.anchored = 1//So space wind cannot drag it. hologram.anchored = 1//So space wind cannot drag it.
hologram.name = "[A.name] (Hologram)"//If someone decides to right click. hologram.name = "[A.name] (Hologram)"//If someone decides to right click.
hologram.SetLuminosity(2) //hologram lighting hologram.SetLuminosity(2) //hologram lighting
hologram.color = color //painted holopad gives coloured holograms
SetLuminosity(2) //pad lighting SetLuminosity(2) //pad lighting
icon_state = "holopad1" icon_state = "holopad1"
A.holo = src A.holo = src

View File

@@ -380,6 +380,10 @@
viewers(user) << "\red <b>[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.</b>" viewers(user) << "\red <b>[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.</b>"
return (BRUTELOSS|OXYLOSS) return (BRUTELOSS|OXYLOSS)
New()
name = "[colourName] crayon"
..()
/* /*
* Snap pops * Snap pops
*/ */

View File

@@ -1,4 +1,5 @@
//NEVER USE THIS IT SUX -PETETHEGOAT //NEVER USE THIS IT SUX -PETETHEGOAT
//THE GOAT WAS RIGHT - RKF
var/global/list/cached_icons = list() var/global/list/cached_icons = list()
@@ -11,10 +12,10 @@ var/global/list/cached_icons = list()
matter = list("metal" = 200) matter = list("metal" = 200)
w_class = 3.0 w_class = 3.0
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
possible_transfer_amounts = list(10,20,30,50,70) possible_transfer_amounts = list(10,20,30,60)
volume = 60 volume = 60
flags = OPENCONTAINER flags = OPENCONTAINER
var/paint_type = "" var/paint_type = "red"
afterattack(turf/simulated/target, mob/user, proximity) afterattack(turf/simulated/target, mob/user, proximity)
if(!proximity) return if(!proximity) return
@@ -28,24 +29,19 @@ var/global/list/cached_icons = list()
return ..() return ..()
New() New()
if(paint_type == "remover") if(paint_type && lentext(paint_type) > 0)
name = "paint remover bucket"
else if(paint_type && lentext(paint_type) > 0)
name = paint_type + " " + name name = paint_type + " " + name
..() ..()
reagents.add_reagent("water", volume*3/5) reagents.add_reagent("water", volume*3/5)
reagents.add_reagent("plasticide", volume/5) reagents.add_reagent("plasticide", volume/5)
if(paint_type == "white") //why don't white crayons exist if(paint_type == "white") //why don't white crayons exist
reagents.add_reagent("aluminum", volume/5) reagents.add_reagent("aluminum", volume/5)
else if (paint_type == "black")
reagents.add_reagent("carbon", volume/5)
else else
reagents.add_reagent("crayon_dust_[paint_type]", volume/5) reagents.add_reagent("crayon_dust_[paint_type]", volume/5)
reagents.handle_reactions() reagents.handle_reactions()
on_reagent_change() //Until we have a generic "paint", this will give new colours to all paints in the can
var/mixedcolor = mix_color_from_reagents(reagents.reagent_list)
for(var/datum/reagent/paint/P in reagents.reagent_list)
P.color = mixedcolor
red red
icon_state = "paint_red" icon_state = "paint_red"
paint_type = "red" paint_type = "red"
@@ -62,110 +58,15 @@ var/global/list/cached_icons = list()
icon_state = "paint_blue" icon_state = "paint_blue"
paint_type = "blue" paint_type = "blue"
violet purple
icon_state = "paint_violet" icon_state = "paint_violet"
paint_type = "purple" paint_type = "purple"
black black
icon_state = "paint_black" icon_state = "paint_black"
paint_type = "gray" paint_type = "black"
white white
icon_state = "paint_white" icon_state = "paint_white"
paint_type = "white" paint_type = "white"
remover
paint_type = "remover"
/*
/obj/item/weapon/paint
gender= PLURAL
name = "paint"
desc = "Used to recolor floors and walls. Can not be removed by the janitor."
icon = 'icons/obj/items.dmi'
icon_state = "paint_neutral"
color = "FFFFFF"
item_state = "paintcan"
w_class = 3.0
/obj/item/weapon/paint/afterattack(turf/target, mob/user as mob, proximity)
if(!proximity) return
if(!istype(target) || istype(target, /turf/space))
return
var/ind = "[initial(target.icon)][color]"
if(!cached_icons[ind])
var/icon/overlay = new/icon(initial(target.icon))
overlay.Blend("#[color]",ICON_MULTIPLY)
overlay.SetIntensity(1.4)
target.icon = overlay
cached_icons[ind] = target.icon
else
target.icon = cached_icons[ind]
return
/obj/item/weapon/paint/paint_remover
gender = PLURAL
name = "paint remover"
icon_state = "paint_neutral"
afterattack(turf/target, mob/user as mob)
if(istype(target) && target.icon != initial(target.icon))
target.icon = initial(target.icon)
return
*/
/*
datum/reagent/paint
name = "Paint"
id = "paint_"
reagent_state = 2
color = "#808080"
description = "This paint will only adhere to floor tiles."
red
name = "Red Paint"
id = "paint_red"
color = "#FE191A"
green
name = "Green Paint"
color = "#18A31A"
id = "paint_green"
blue
name = "Blue Paint"
color = "#247CFF"
id = "paint_blue"
yellow
name = "Yellow Paint"
color = "#FDFE7D"
id = "paint_yellow"
violet
name = "Violet Paint"
color = "#CC0099"
id = "paint_violet"
black
name = "Black Paint"
color = "#333333"
id = "paint_black"
white
name = "White Paint"
color = "#F0F8FF"
id = "paint_white"
datum/reagent/paint_remover
name = "Paint Remover"
id = "paint_remover"
description = "Paint remover is used to remove floor paint from floor tiles."
reagent_state = 2
color = "#808080"
reaction_turf(var/turf/T, var/volume)
if(istype(T) && T.icon != initial(T.icon))
T.icon = initial(T.icon)
return
*/

View File

@@ -8,6 +8,7 @@
var/list/greencolor = new /list(contents) var/list/greencolor = new /list(contents)
var/list/bluecolor = new /list(contents) var/list/bluecolor = new /list(contents)
var/i var/i
//fill the list of weights //fill the list of weights
for(i=1; i<=contents; i++) for(i=1; i<=contents; i++)
var/datum/reagent/re = reagent_list[i] var/datum/reagent/re = reagent_list[i]
@@ -16,6 +17,7 @@
reagentweight *= 20 //Paint colours a mixture twenty times as much reagentweight *= 20 //Paint colours a mixture twenty times as much
weight[i] = reagentweight weight[i] = reagentweight
//fill the lists of colours //fill the lists of colours
for(i=1; i<=contents; i++) for(i=1; i<=contents; i++)
var/datum/reagent/re = reagent_list[i] var/datum/reagent/re = reagent_list[i]

View File

@@ -1580,21 +1580,27 @@ datum
paint paint
name = "Paint" name = "Paint"
id = "paint" id = "paint"
description = "This paint will stick to almost any object" description = "This paint will stick to almost any object."
reagent_state = LIQUID reagent_state = LIQUID
color = "#808080" color = "#808080"
overdose = 15 overdose = 15
reaction_turf(var/turf/T, var/volume) reaction_turf(var/turf/T, var/volume)
if(!istype(T) || istype(T, /turf/space)) ..()
return if(istype(T) && !istype(T, /turf/space))
T.color = color T.color = color
reaction_obj(var/obj/O, var/volume) reaction_obj(var/obj/O, var/volume)
..() ..()
if(istype(O,/obj/item/weapon/light)) if(istype(O,/obj))
O.color = color O.color = color
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
..()
if(istype(M,/mob) && !istype(M,/mob/dead))
//painting ghosts: not allowed
M.color = color
//////////////////////////Poison stuff/////////////////////// //////////////////////////Poison stuff///////////////////////
@@ -2631,7 +2637,7 @@ datum
name = "Carrot juice" name = "Carrot juice"
id = "carrotjuice" id = "carrotjuice"
description = "It is just like a carrot but without crunching." description = "It is just like a carrot but without crunching."
color = "#973800" // rgb: 151, 56, 0 color = "#FF8C00" // rgb: 255, 140, 0
glass_icon_state = "carrotjuice" glass_icon_state = "carrotjuice"
glass_name = "glass of carrot juice" glass_name = "glass of carrot juice"
@@ -2701,7 +2707,7 @@ datum
name = "Watermelon Juice" name = "Watermelon Juice"
id = "watermelonjuice" id = "watermelonjuice"
description = "Delicious juice made from watermelon." description = "Delicious juice made from watermelon."
color = "#863333" // rgb: 134, 51, 51 color = "#B83333" // rgb: 184, 51, 51
glass_icon_state = "glass_red" glass_icon_state = "glass_red"
glass_name = "glass of watermelon juice" glass_name = "glass of watermelon juice"
@@ -2711,7 +2717,7 @@ datum
name = "Lemon Juice" name = "Lemon Juice"
id = "lemonjuice" id = "lemonjuice"
description = "This juice is VERY sour." description = "This juice is VERY sour."
color = "#863333" // rgb: 175, 175, 0 color = "#AFAF00" // rgb: 175, 175, 0
glass_icon_state = "lemonjuice" glass_icon_state = "lemonjuice"
glass_name = "glass of lemon juice" glass_name = "glass of lemon juice"
@@ -2721,7 +2727,7 @@ datum
name = "Banana Juice" name = "Banana Juice"
id = "banana" id = "banana"
description = "The raw essence of a banana." description = "The raw essence of a banana."
color = "#863333" // rgb: 175, 175, 0 color = "#C3AF00" // rgb: 195, 175, 0
glass_icon_state = "banana" glass_icon_state = "banana"
glass_name = "glass of banana juice" glass_name = "glass of banana juice"

View File

@@ -1414,14 +1414,17 @@ datum
//Ghetto reactions //Ghetto reactions
/* Ideally the paint should take on the blood's colour (for each of the species)
but I could not think of a way. - RKF
blood_paint blood_paint
name = "Blood paint" name = "Blood paint"
id = "blood_paint" id = "blood_paint"
result = "paint" result = "paint"
resultcolor = "#FE191A" resultcolor = "#C80000"
required_reagents = list("plasticide" = 1, "water" = 3, "blood" = 2) required_reagents = list("plasticide" = 1, "water" = 3, "blood" = 2)
result_amount = 5 result_amount = 5
*/
milk_paint milk_paint
name = "Milk paint" name = "Milk paint"
id = "milk_paint" id = "milk_paint"
@@ -1430,6 +1433,96 @@ datum
required_reagents = list("plasticide" = 1, "water" = 3, "milk" = 5) required_reagents = list("plasticide" = 1, "water" = 3, "milk" = 5)
result_amount = 5 result_amount = 5
orange_juice_paint
name = "Orange juice paint"
id = "orange_juice_paint"
result = "paint"
resultcolor = "#E78108"
required_reagents = list("plasticide" = 1, "water" = 3, "orangejuice" = 5)
result_amount = 5
tomato_juice_paint
name = "Tomato juice paint"
id = "tomato_juice_paint"
result = "paint"
resultcolor = "#731008"
required_reagents = list("plasticide" = 1, "water" = 3, "tomatojuice" = 5)
result_amount = 5
lime_juice_paint
name = "Lime juice paint"
id = "lime_juice_paint"
result = "paint"
resultcolor = "#365E30"
required_reagents = list("plasticide" = 1, "water" = 3, "limejuice" = 5)
result_amount = 5
carrot_juice_paint
name = "Carrot juice paint"
id = "carrot_juice_paint"
result = "paint"
resultcolor = "#973800"
required_reagents = list("plasticide" = 1, "water" = 3, "carrotjuice" = 5)
result_amount = 5
berry_juice_paint
name = "Berry juice paint"
id = "berry_juice_paint"
result = "paint"
resultcolor = "#990066"
required_reagents = list("plasticide" = 1, "water" = 3, "berryjuice" = 5)
result_amount = 5
grape_juice_paint
name = "Grape juice paint"
id = "grape_juice_paint"
result = "paint"
resultcolor = "#863333"
required_reagents = list("plasticide" = 1, "water" = 3, "grapejuice" = 5)
result_amount = 5
poisonberry_juice_paint
name = "Poison berry juice paint"
id = "poisonberry_juice_paint"
result = "paint"
resultcolor = "#863353"
required_reagents = list("plasticide" = 1, "water" = 3, "poisonberryjuice" = 5)
result_amount = 5
watermelon_juice_paint
name = "Watermelon juice paint"
id = "watermelon_juice_paint"
result = "paint"
resultcolor = "#B83333"
required_reagents = list("plasticide" = 1, "water" = 3, "watermelonjuice" = 5)
result_amount = 5
lemon_juice_paint
name = "Lemon juice paint"
id = "lemon_juice_paint"
result = "paint"
resultcolor = "#AFAF00"
required_reagents = list("plasticide" = 1, "water" = 3, "lemonjuice" = 5)
result_amount = 5
banana_juice_paint
name = "Banana juice paint"
id = "banana_juice_paint"
result = "paint"
resultcolor = "#C3AF00"
required_reagents = list("plasticide" = 1, "water" = 3, "banana" = 5)
result_amount = 5
potato_juice_paint
name = "Potato juice paint"
id = "potato_juice_paint"
result = "paint"
resultcolor = "#302000"
required_reagents = list("plasticide" = 1, "water" = 3, "potatojuice" = 5)
result_amount = 5
//Other paint
carbon_paint carbon_paint
name = "Carbon paint" name = "Carbon paint"
id = "carbon_paint" id = "carbon_paint"
@@ -1438,8 +1531,6 @@ datum
required_reagents = list("plasticide" = 1, "water" = 3, "carbon" = 1) required_reagents = list("plasticide" = 1, "water" = 3, "carbon" = 1)
result_amount = 5 result_amount = 5
//Aluminum "non-ghetto" white paint
aluminum_paint aluminum_paint
name = "Aluminum paint" name = "Aluminum paint"
id = "aluminum_paint" id = "aluminum_paint"