Merge pull request #4140 from Zuhayr/dev

Adds ghost writing, config options, redid blood paths/xenoblood.
This commit is contained in:
Chinsky
2013-12-29 05:54:27 -08:00
33 changed files with 248 additions and 123 deletions
@@ -1,53 +1,30 @@
// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code.
/obj/effect/decal/cleanable/blood/xeno
name = "xeno blood"
desc = "It's green and acidic. It looks like... <i>blood?</i>"
icon = 'icons/effects/blood.dmi'
icon_state = "xfloor1"
basecolor = "#05EE05"
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
/obj/effect/decal/cleanable/blood/xeno/proc/streak(var/list/directions)
spawn (0)
var/direction = pick(directions)
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
sleep(3)
if (i > 0)
var/obj/effect/decal/cleanable/blood/xeno/b = new /obj/effect/decal/cleanable/blood/xeno/xsplatter(src.loc)
for(var/datum/disease/D in src.viruses)
var/datum/disease/ND = D.Copy(1)
b.viruses += ND
ND.holder = b
if (step_to(src, get_step(src, direction), 0))
break
/obj/effect/decal/cleanable/blood/xeno/xsplatter
random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5")
/obj/effect/decal/cleanable/blood/xeno/xgibs
/obj/effect/decal/cleanable/blood/gibs/xeno
name = "xeno gibs"
desc = "Gnarly..."
gender = PLURAL
icon = 'icons/effects/blood.dmi'
icon_state = "xgib1"
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
basecolor = "#05EE05"
/obj/effect/decal/cleanable/blood/xeno/xgibs/up
/obj/effect/decal/cleanable/blood/gibs/xeno/up
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1")
/obj/effect/decal/cleanable/blood/xeno/xgibs/down
/obj/effect/decal/cleanable/blood/gibs/xeno/down
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibdown1","xgibdown1","xgibdown1")
/obj/effect/decal/cleanable/blood/xeno/xgibs/body
/obj/effect/decal/cleanable/blood/gibs/xeno/body
random_icon_states = list("xgibhead", "xgibtorso")
/obj/effect/decal/cleanable/blood/xeno/xgibs/limb
/obj/effect/decal/cleanable/blood/gibs/xeno/limb
random_icon_states = list("xgibleg", "xgibarm")
/obj/effect/decal/cleanable/blood/xeno/xgibs/core
/obj/effect/decal/cleanable/blood/gibs/xeno/core
random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3")
/obj/effect/decal/cleanable/blood/xtracks
icon_state = "xtracks"
random_icon_states = null
basecolor = "#05EE05"
@@ -25,7 +25,7 @@ var/global/list/image/splatter_cache=list()
/obj/effect/decal/cleanable/blood/New()
..()
color = basecolor
update_icon()
if(istype(src, /obj/effect/decal/cleanable/blood/gibs))
return
if(istype(src, /obj/effect/decal/cleanable/blood/tracks))
@@ -116,13 +116,16 @@ var/global/list/image/splatter_cache=list()
/obj/effect/decal/cleanable/blood/writing/New()
..()
for(var/obj/effect/decal/cleanable/blood/writing/W in loc)
random_icon_states.Remove(W.icon_state)
icon_state = pick(random_icon_states)
if(random_icon_states.len)
for(var/obj/effect/decal/cleanable/blood/writing/W in loc)
random_icon_states.Remove(W.icon_state)
icon_state = pick(random_icon_states)
else
icon_state = "writing1"
/obj/effect/decal/cleanable/blood/writing/examine()
..()
usr << "It reads: <font color='basecolor'>\"[message]\"<font>"
usr << "It reads: <font color='[basecolor]'>\"[message]\"<font>"
/obj/effect/decal/cleanable/blood/gibs
name = "gibs"
@@ -135,6 +138,12 @@ var/global/list/image/splatter_cache=list()
icon_state = "gibbl5"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
/obj/effect/decal/cleanable/blood/gibs/update_icon()
color = "#FFFFFF"
//overlays.Cut()
//..()
//overlays += image(icon, src, "[icon_state]_flesh")
/obj/effect/decal/cleanable/blood/gibs/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
@@ -159,6 +168,7 @@ var/global/list/image/splatter_cache=list()
if (i > 0)
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
b.basecolor = src.basecolor
b.update_icon()
for(var/datum/disease/D in src.viruses)
var/datum/disease/ND = D.Copy(1)
b.viruses += ND
@@ -16,6 +16,13 @@
icon_state = "ash"
anchored = 1
/obj/effect/decal/cleanable/ash/attack_hand(mob/user as mob)
user << "<span class='notice'>[src] sifts through your fingers.</span>"
var/turf/simulated/floor/F = get_turf(src)
if (istype(F))
F.dirt += 4
del(src)
/obj/effect/decal/cleanable/greenglow
New()
@@ -1,29 +1,23 @@
// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code.
/obj/effect/decal/cleanable/blood/robot
/obj/effect/decal/cleanable/blood/gibs/robot
name = "robot debris"
desc = "It's a useless heap of junk... <i>or is it?</i>"
icon = 'icons/mob/robots.dmi'
icon_state = "gib1"
basecolor="#2B2B2B"
basecolor="#030303"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
/obj/effect/decal/cleanable/blood/robot/dry() //pieces of robots do not dry up like
/obj/effect/decal/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like
return
/obj/effect/decal/cleanable/blood/robot/update_icon()
color = "#FFFFFF"
return
/obj/effect/decal/cleanable/blood/robot/proc/streak(var/list/directions)
/obj/effect/decal/cleanable/blood/gibs/robot/streak(var/list/directions)
spawn (0)
var/direction = pick(directions)
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
sleep(3)
if (i > 0)
if (prob(40))
/*var/obj/effect/decal/cleanable/oil/o =*/
new /obj/effect/decal/cleanable/blood/oil/streak(src.loc)
var/obj/effect/decal/cleanable/blood/oil/streak = new(src.loc)
streak.update_icon()
else if (prob(10))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
@@ -31,22 +25,23 @@
if (step_to(src, get_step(src, direction), 0))
break
/obj/effect/decal/cleanable/blood/robot/limb
/obj/effect/decal/cleanable/blood/gibs/robot/limb
random_icon_states = list("gibarm", "gibleg")
/obj/effect/decal/cleanable/blood/robot/up
/obj/effect/decal/cleanable/blood/gibs/robot/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup1","gibup1") //2:7 is close enough to 1:4
/obj/effect/decal/cleanable/blood/robot/down
/obj/effect/decal/cleanable/blood/gibs/robot/down
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown1","gibdown1") //2:7 is close enough to 1:4
/obj/effect/decal/cleanable/blood/oil
name = "motor oil"
desc = "It's black and greasy. Looks like Beepsky made another mess."
basecolor="#3B3B3B"
icon = 'icons/mob/robots.dmi'
icon_state = "floor1"
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
basecolor="#030303"
/obj/effect/decal/cleanable/blood/oil/dry()
return
/obj/effect/decal/cleanable/blood/oil/streak
random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5")
random_icon_states = list("mgibbl1", "mgibbl2", "mgibbl3", "mgibbl4", "mgibbl5")
amount = 2
@@ -17,7 +17,7 @@
..()
xeno
gibtypes = list(/obj/effect/decal/cleanable/blood/xeno/xgibs/up,/obj/effect/decal/cleanable/blood/xeno/xgibs/down,/obj/effect/decal/cleanable/blood/xeno/xgibs,/obj/effect/decal/cleanable/blood/xeno/xgibs,/obj/effect/decal/cleanable/blood/xeno/xgibs/body,/obj/effect/decal/cleanable/blood/xeno/xgibs/limb,/obj/effect/decal/cleanable/blood/xeno/xgibs/core)
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/up,/obj/effect/decal/cleanable/blood/gibs/xeno/down,/obj/effect/decal/cleanable/blood/gibs/xeno,/obj/effect/decal/cleanable/blood/gibs/xeno,/obj/effect/decal/cleanable/blood/gibs/xeno/body,/obj/effect/decal/cleanable/blood/gibs/xeno/limb,/obj/effect/decal/cleanable/blood/gibs/xeno/core)
gibamounts = list(1,1,1,1,1,1,1)
New()
@@ -27,7 +27,7 @@
robot
sparks = 1
gibtypes = list(/obj/effect/decal/cleanable/blood/robot/up,/obj/effect/decal/cleanable/blood/robot/down,/obj/effect/decal/cleanable/blood/robot,/obj/effect/decal/cleanable/blood/robot,/obj/effect/decal/cleanable/blood/robot,/obj/effect/decal/cleanable/blood/robot/limb)
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/robot/up,/obj/effect/decal/cleanable/blood/gibs/robot/down,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot/limb)
gibamounts = list(1,1,1,1,1,1)
New()
+14 -4
View File
@@ -7,8 +7,10 @@ A list of items and costs is stored under the datum of every game mode, alongsid
*/
/obj/item/device/uplink
var/welcome // Welcoming menu message
var/items // List of items
var/valid_items = list()
var/item_data // raw item text
var/list/ItemList // Parsed list of items
var/uses // Numbers of crystals
@@ -58,6 +60,12 @@ A list of items and costs is stored under the datum of every game mode, alongsid
//Halfassed fix for href exploit ~Z
for(var/D in ItemList)
var/list/O = stringsplit(D, ":")
if(O.len>0)
valid_items += O[1]
//Let's build a menu!
/obj/item/device/uplink/proc/generate_menu()
@@ -87,7 +95,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
continue
path_text = O[1]
cost = text2num(O[2])
cost = Clamp(text2num(O[2]),1,20) //Another halfassed fix for href exploit ~Z
if(cost>uses)
continue
@@ -378,7 +386,12 @@ A list of items and costs is stored under the datum of every game mode, alongsid
return 1
if(..(href, href_list) == 1)
if(!(href_list["buy_item"] in valid_items))
return
var/path_obj = text2path(href_list["buy_item"])
var/obj/I = new path_obj(get_turf(usr))
if(ishuman(usr))
var/mob/living/carbon/human/A = usr
@@ -427,6 +440,3 @@ A list of items and costs is stored under the datum of every game mode, alongsid
..()
hidden_uplink = new(src)
hidden_uplink.uses = 10