Merge branch 'master' of https://github.com/PolarisSS13/Polaris into sink

This commit is contained in:
Leshana
2016-05-30 22:43:05 -04:00
34 changed files with 487 additions and 479 deletions

View File

@@ -0,0 +1 @@
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()

View File

@@ -2,144 +2,55 @@
name = "None"
always_last = TRUE
/datum/category_item/underwear/bottom/briefs_white
name = "Briefs, white"
icon_state = "b1"
/datum/category_item/underwear/bottom/briefs
name = "Briefs"
icon_state = "briefs"
has_color = TRUE
/datum/category_item/underwear/bottom/briefs_white/is_default(var/gender)
/datum/category_item/underwear/bottom/briefs/is_default(var/gender)
return gender != FEMALE
/datum/category_item/underwear/bottom/briefs_grey
name = "Briefs, grey"
icon_state = "b2"
/datum/category_item/underwear/bottom/briefs_green
name = "Briefs, green"
icon_state = "b3"
/datum/category_item/underwear/bottom/briefs_blue
name = "Briefs, blue"
icon_state = "b4"
/datum/category_item/underwear/bottom/briefs_black
name = "Briefs, black"
icon_state = "b5"
/datum/category_item/underwear/bottom/panties_noback
name = "Panties, noback"
icon_state = "b6"
/datum/category_item/underwear/bottom/boxers_loveheart
name = "Boxers, Loveheart"
icon_state = "b7"
icon_state = "boxers_loveheart"
/datum/category_item/underwear/bottom/boxers_black
name = "Boxers, black"
icon_state = "b8"
/datum/category_item/underwear/bottom/boxers_grey
name = "Boxers, grey"
icon_state = "b9"
/datum/category_item/underwear/bottom/boxers
name = "Boxers"
icon_state = "boxers"
has_color = TRUE
/datum/category_item/underwear/bottom/boxers_green_and_blue
name = "Boxers, green & blue striped"
icon_state = "b10"
icon_state = "boxers_green_and_blue"
/datum/category_item/underwear/bottom/panties_red
name = "Panties, red"
icon_state = "b11"
/datum/category_item/underwear/bottom/panties
name = "Panties"
icon_state = "panties"
has_color = TRUE
/datum/category_item/underwear/bottom/panties_white
name = "Panties, white"
icon_state = "b12"
/datum/category_item/underwear/bottom/panties_white/is_default(var/gender)
/datum/category_item/underwear/bottom/panties/is_default(var/gender)
return gender == FEMALE
/datum/category_item/underwear/bottom/panties_yellow
name = "Panties, yellow"
icon_state = "b13"
/datum/category_item/underwear/bottom/lacy_thong
name = "Lacy thong"
icon_state = "lacy_thong"
/datum/category_item/underwear/bottom/panties_blue
name = "Panties, blue"
icon_state = "b14"
/datum/category_item/underwear/bottom/lacy_thong_alt
name = "Lacy thong, alt"
icon_state = "lacy_thong_alt"
has_color = TRUE
/datum/category_item/underwear/bottom/panties_light_black
name = "Panties, light-black"
icon_state = "b15"
/datum/category_item/underwear/bottom/panties_alt
name = "Panties, alt"
icon_state = "panties_alt"
has_color = TRUE
/datum/category_item/underwear/bottom/compression_shorts
name = "Compression shorts"
icon_state = "compression_shorts"
has_color = TRUE
/datum/category_item/underwear/bottom/thong
name = "Thong"
icon_state = "b16"
/datum/category_item/underwear/bottom/panties_black
name = "Panties, black"
icon_state = "b17"
/datum/category_item/underwear/bottom/panties_white_alt
name = "Bra, white alt"
icon_state = "b18"
/datum/category_item/underwear/bottom/compression_shorts_black
name = "Compression shorts, black"
icon_state = "b19"
/datum/category_item/underwear/bottom/compression_shorts_white
name = "Compression shorts, white"
icon_state = "b20"
/datum/category_item/underwear/bottom/compression_shorts_baby_blue
name = "Compression shorts, baby-blue"
icon_state = "b21"
/datum/category_item/underwear/bottom/panties_green
name = "Panties, green"
icon_state = "b22"
/datum/category_item/underwear/bottom/compression_shorts_pink
name = "Compression shorts, pink"
icon_state = "b23"
/datum/category_item/underwear/bottom/thong_violet
name = "Thong, violet"
icon_state = "b24"
/datum/category_item/underwear/bottom/thong_alt
name = "Thong, alt"
icon_state = "b25"
/datum/category_item/underwear/bottom/thong_violet_alt
name = "Thong, violet alt"
icon_state = "b26"
/datum/category_item/underwear/bottom/alt_thong_black
name = "Alt. thong, black"
icon_state = "b27"
/datum/category_item/underwear/bottom/alt_thong_blue
name = "Alt. thong, blue"
icon_state = "b28"
/datum/category_item/underwear/bottom/alt_thong_green
name = "Alt. thong, green"
icon_state = "b29"
/datum/category_item/underwear/bottom/alt_thong_purple
name = "Alt. thong, purple"
icon_state = "b30"
/datum/category_item/underwear/bottom/alt_thong_red
name = "Alt. thong, red"
icon_state = "b31"
/datum/category_item/underwear/bottom/alt_thong_teal
name = "Alt. thong, teal"
icon_state = "b32"
/datum/category_item/underwear/bottom/alt_thong_violet
name = "Alt. thong, violet"
icon_state = "b33"
/datum/category_item/underwear/bottom/alt_thong_white
name = "Alt. thong, white"
icon_state = "b34"
icon_state = "thong"
has_color = TRUE

View File

@@ -2,57 +2,49 @@
always_last = TRUE
name = "None"
/datum/category_item/underwear/socks/white_normal
name = "Normal, white"
icon_state = "white_norm"
/datum/category_item/underwear/socks/normal
name = "Normal"
icon_state = "socks_norm"
has_color = TRUE
/datum/category_item/underwear/socks/white_short
name = "Short, white"
icon_state = "white_short"
/datum/category_item/underwear/socks/short
name = "Short"
icon_state = "socks_short"
has_color = TRUE
/datum/category_item/underwear/socks/white_knee
name = "Knee, white"
icon_state = "white_knee"
/datum/category_item/underwear/socks/thigh
name = "Thigh"
icon_state = "socks_thigh"
has_color = TRUE
/datum/category_item/underwear/socks/white_thigh
name = "Thigh, white"
icon_state = "white_thigh"
/datum/category_item/underwear/socks/knee
name = "Knee"
icon_state = "socks_knee"
has_color = TRUE
/datum/category_item/underwear/socks/black_normal
name = "Normal, black"
icon_state = "black_norm"
/datum/category_item/underwear/socks/striped_knee
name = "Knee, striped"
icon_state = "striped_knee"
has_color = TRUE
/datum/category_item/underwear/socks/black_short
name = "Short, black"
icon_state = "black_short"
/datum/category_item/underwear/socks/black_knee
name = "Knee, black"
icon_state = "black_knee"
/datum/category_item/underwear/socks/black_thigh
name = "Thigh, black"
icon_state = "black_thigh"
/datum/category_item/underwear/socks/thin_knee
name = "Knee, thin"
icon_state = "thin_knee"
/datum/category_item/underwear/socks/thin_thigh
name = "Thigh, thin"
icon_state = "thin_thigh"
/datum/category_item/underwear/socks/striped_thigh
name = "Thigh, striped"
icon_state = "striped_thigh"
has_color = TRUE
/datum/category_item/underwear/socks/pantyhose
name = "Pantyhose"
icon_state = "pantyhose"
/datum/category_item/underwear/socks/striped_thigh
name = "Thigh, striped"
icon_state = "striped_thigh"
/datum/category_item/underwear/socks/thin_thigh
name = "Thigh, thin"
icon_state = "thin_thigh"
has_color = TRUE
/datum/category_item/underwear/socks/striped_knee
name = "Knee, striped"
icon_state = "striped_knee"
/datum/category_item/underwear/socks/thin_knee
name = "Knee, thin"
icon_state = "thin_knee"
has_color = TRUE
/datum/category_item/underwear/socks/rainbow_thigh
name = "Thigh, rainbow"
@@ -65,11 +57,3 @@
/datum/category_item/underwear/socks/fishnet
name = "Fishnet"
icon_state = "fishnet"
/datum/category_item/underwear/socks/thinwhite_thigh
name = "Thigh, thin white"
icon_state = "thinwhite_thigh"
/datum/category_item/underwear/socks/thinwhite_knee
name = "Knee, thin white"
icon_state = "thinwhite_knee"

View File

@@ -5,102 +5,39 @@
/datum/category_item/underwear/top/none/is_default(var/gender)
return gender != FEMALE
/datum/category_item/underwear/top/bra_red
name = "Bra, red"
icon_state = "t1"
/datum/category_item/underwear/top/bra_white
/datum/category_item/underwear/top/bra
is_default = TRUE
name = "Bra, white"
icon_state = "t2"
name = "Bra"
icon_state = "bra"
has_color = TRUE
/datum/category_item/underwear/top/bra_white/is_default(var/gender)
/datum/category_item/underwear/top/bra/is_default(var/gender)
return gender == FEMALE
/datum/category_item/underwear/top/bra_yellow
name = "Bra, yellow"
icon_state = "t3"
/datum/category_item/underwear/top/sports_bra
name = "Sports bra"
icon_state = "sports_bra"
has_color = TRUE
/datum/category_item/underwear/top/bra_blue
name = "Bra, blue"
icon_state = "t4"
/datum/category_item/underwear/top/bra_black
name = "Bra, black"
icon_state = "t5"
/datum/category_item/underwear/top/sports_bra_alt
name = "Sports bra, alt"
icon_state = "sports_bra_alt"
has_color = TRUE
/datum/category_item/underwear/top/lacy_bra
name = "Lacy bra"
icon_state = "t6"
/datum/category_item/underwear/top/sports_bra_black
name = "Sports bra, black"
icon_state = "t7"
/datum/category_item/underwear/top/sports_bra_white
name = "Sports bra, white"
icon_state = "t8"
/datum/category_item/underwear/top/sports_bra_black_alt
name = "Sports bra, black alt"
icon_state = "t9"
/datum/category_item/underwear/top/sports_bra_white_alt
name = "Sports bra, white alt"
icon_state = "t10"
/datum/category_item/underwear/top/bra_baby_blue
name = "Bra, baby blue"
icon_state = "t11"
/datum/category_item/underwear/top/bra_green
name = "Bra, green"
icon_state = "t12"
/datum/category_item/underwear/top/bra_pink
name = "Bra, pink"
icon_state = "t13"
/datum/category_item/underwear/top/bra_violet
name = "Bra, violet"
icon_state = "t14"
icon_state = "lacy_bra"
/datum/category_item/underwear/top/lacy_bra_alt
name = "Lacy bra, alt"
icon_state = "t15"
icon_state = "lacy_bra_alt"
has_color = TRUE
/datum/category_item/underwear/top/bra_lacy_violet
name = "Lacy bra, violet"
icon_state = "t16"
/datum/category_item/underwear/top/lacy_bra_alt_stripe
name = "Lacy bra, alt, stripe"
icon_state = "lacy_bra_alt_stripe"
/datum/category_item/underwear/top/halterneck_bra_black
name = "Halterneck bra, black"
icon_state = "t17"
/datum/category_item/underwear/top/halterneck_bra_blue
name = "Halterneck bra, blue"
icon_state = "t18"
/datum/category_item/underwear/top/halterneck_bra_green
name = "Halterneck bra, green"
icon_state = "t19"
/datum/category_item/underwear/top/halterneck_bra_purple
name = "Halterneck bra, purple"
icon_state = "t20"
/datum/category_item/underwear/top/halterneck_bra_red
name = "Halterneck bra, red"
icon_state = "t21"
/datum/category_item/underwear/top/halterneck_bra_teal
name = "Halterneck bra, teal"
icon_state = "t22"
/datum/category_item/underwear/top/halterneck_bra_violet
name = "Halterneck bra, violet"
icon_state = "t23"
/datum/category_item/underwear/top/halterneck_bra_white
name = "Halterneck bra, white"
icon_state = "t24"
/datum/category_item/underwear/top/halterneck_bra
name = "Halterneck bra"
icon_state = "halterneck_bra"
has_color = TRUE

View File

@@ -3,74 +3,25 @@
name = "None"
always_last = TRUE
/datum/category_item/underwear/undershirt/tank_top_white
name = "Tank top, white"
icon_state = "u1"
/datum/category_item/underwear/undershirt/shirt
name = "Shirt"
icon_state = "undershirt"
has_color = TRUE
/datum/category_item/underwear/undershirt/tank_top_white_alt
name = "Tank top, white alt"
icon_state = "tank_white_s"
/datum/category_item/underwear/undershirt/tank_top
name = "Tank top"
icon_state = "tanktop"
has_color = TRUE
/datum/category_item/underwear/undershirt/tank_top_black
name = "Tank top, black"
icon_state = "u2"
/datum/category_item/underwear/undershirt/tank_top_red
name = "Tank top, red"
icon_state = "tank_red_s"
/datum/category_item/underwear/undershirt/tank_top_alt
name = "Tank top, alt"
icon_state = "tanktop_alt"
has_color = TRUE
/datum/category_item/underwear/undershirt/tank_top_fire
name = "Tank top, fire"
icon_state = "tank_fire_s"
/datum/category_item/underwear/undershirt/shirt_black
name = "Shirt, black"
icon_state = "u3"
/datum/category_item/underwear/undershirt/shirt_black_alt
name = "Shirt, black alt"
icon_state = "shirt_black_s"
/datum/category_item/underwear/undershirt/shirt_white
name = "Shirt, white"
icon_state = "u4"
/datum/category_item/underwear/undershirt/shirt_white_alt
name = "Shirt, white alt"
icon_state = "shirt_white_s"
/datum/category_item/underwear/undershirt/shirt_grey
name = "Shirt, grey"
icon_state = "shirt_grey_s"
/datum/category_item/underwear/undershirt/shirt_blue
name = "Shirt, blue"
icon_state = "blueshirt_s"
/datum/category_item/underwear/undershirt/shirt_blue_alt
name = "Shirt, blue alt"
icon_state = "shirt_blue_s"
/datum/category_item/underwear/undershirt/shirt_red
name = "Shirt, red"
icon_state = "redshirt_s"
/datum/category_item/underwear/undershirt/shirt_red_alt
name = "Shirt, red alt"
icon_state = "shirt_red_s"
/datum/category_item/underwear/undershirt/shirt_yellow
name = "Shirt, yellow"
icon_state = "yellowshirt_s"
/datum/category_item/underwear/undershirt/shirt_green
name = "Shirt, green"
icon_state = "greenshirt_s"
/datum/category_item/underwear/undershirt/shirt_green_alt
name = "Shirt, green alt"
icon_state = "shirt_green_s"
/datum/category_item/underwear/undershirt/shirt_heart
name = "Shirt, heart"
icon_state = "lover_s"
@@ -80,44 +31,18 @@
icon_state = "shirt_nano_s"
/datum/category_item/underwear/undershirt/shirt_love_nt
name = "Shirt, I<3NT"
name = "Shirt, I<3NT"
icon_state = "lover_s"
/datum/category_item/underwear/undershirt/shortsleeve_shirt_white
name = "Shortsleeve shirt, white"
icon_state = "whiteshortsleeve_s"
/datum/category_item/underwear/undershirt/shortsleeve_shirt
name = "Shortsleeve shirt"
icon_state = "shortsleeve"
has_color = TRUE
/datum/category_item/underwear/undershirt/shortsleeve_shirt_purple
name = "Shortsleeve shirt, purple"
icon_state = "purpleshortsleeve_s"
/datum/category_item/underwear/undershirt/shortsleeve_shirt_blue
name = "Shortsleeve shirt, blue"
icon_state = "blueshortsleeve_s"
/datum/category_item/underwear/undershirt/shortsleeve_shirt_green
name = "Shortsleeve shirt, green"
icon_state = "greenshortsleeve_s"
/datum/category_item/underwear/undershirt/shortsleeve_shirt_black
name = "Shortsleeve shirt, black"
icon_state = "blackshortsleeve_s"
/datum/category_item/underwear/undershirt/polo_shirt_blue
name = "Polo shirt, blue"
icon_state = "bluepolo_s"
/datum/category_item/underwear/undershirt/polo_shirt_red
name = "Polo shirt, red"
icon_state = "redpolo_s"
/datum/category_item/underwear/undershirt/polo_shirt_white
name = "Polo shirt, white"
icon_state = "whitepolo_s"
/datum/category_item/underwear/undershirt/polo_shirt_grey_yellow
name = "Polo shirt, grey and yellow"
icon_state = "grayyellowpolo_s"
/datum/category_item/underwear/undershirt/polo_shirt
name = "Polo shirt"
icon_state = "polo"
has_color = TRUE
/datum/category_item/underwear/undershirt/sport_shirt_green
name = "Sport shirt, green"

View File

@@ -41,6 +41,12 @@ datum/category_group/underwear/dd_SortValue()
var/is_default = FALSE // Should this entry be considered the default for its type?
var/icon = 'icons/mob/human.dmi' // Which icon to get the underwear from
var/icon_state // And the particular item state
var/list/tweaks = list() // Underwear customizations.
var/has_color = FALSE
/datum/category_item/underwear/New()
if(has_color)
tweaks += gear_tweak_free_color_choice
/datum/category_item/underwear/dd_SortValue()
if(always_last)
@@ -50,7 +56,11 @@ datum/category_group/underwear/dd_SortValue()
/datum/category_item/underwear/proc/is_default(var/gender)
return is_default
/datum/category_item/underwear/proc/apply_to_icon(var/icon/I)
/datum/category_item/underwear/proc/generate_image(var/list/metadata)
if(!icon_state)
return
I.Blend(new /icon('icons/mob/human.dmi', icon_state), ICON_OVERLAY)
var/image/I = image(icon = 'icons/mob/human.dmi', icon_state = icon_state)
for(var/datum/gear_tweak/gt in tweaks)
gt.tweak_item(I, metadata && metadata["[gt]"] ? metadata["[gt]"] : gt.get_default())
return I

View File

@@ -6,10 +6,10 @@
Shocking someone costs ten chemicals per use."
enhancedtext = "Shocking biologicals without grabbing only requires five chemicals, and has more disabling power."
genomecost = 2
verbpath = /mob/proc/changeling_bioelectrogenesis
verbpath = /mob/living/carbon/human/proc/changeling_bioelectrogenesis
//Recharge whatever's in our hand, or shock people.
/mob/proc/changeling_bioelectrogenesis()
/mob/living/carbon/human/proc/changeling_bioelectrogenesis()
set category = "Changeling"
set name = "Bioelectrogenesis (20 + 10/shock)"
set desc = "Recharges anything in your hand, or shocks people."
@@ -33,19 +33,28 @@
return 0
else
// Handle glove conductivity.
var/obj/item/clothing/gloves/gloves = src.gloves
var/siemens = 1
if(gloves)
siemens = gloves.siemens_coefficient
//If we're grabbing someone, electrocute them.
if(istype(held_item,/obj/item/weapon/grab))
var/obj/item/weapon/grab/G = held_item
if(G.affecting)
G.affecting.electrocute_act(10,src,1.0,BP_TORSO)
var/agony = 80 //Does more than if hit with an electric hand, since grabbing is slower.
G.affecting.electrocute_act(10 * siemens,src,1.0,BP_TORSO)
var/agony = 80 * siemens //Does more than if hit with an electric hand, since grabbing is slower.
G.affecting.stun_effect_act(0, agony, BP_TORSO, src)
msg_admin_attack("[key_name(src)] shocked [key_name(G.affecting)] with the [src].")
if(siemens)
visible_message("<span class='warning'>Arcs of electricity strike [G.affecting]!</span>",
"<span class='warning'>Our hand channels raw electricity into [G.affecting].</span>",
"<span class='italics'>You hear sparks!</span>")
else
src << "<span class='warning'>Our gloves block us from shocking \the [G.affecting].</span>"
src.mind.changeling.chem_charges -= 10
return 1
@@ -69,11 +78,13 @@
"<span class='warning'>Our hand channels raw electricity into \the [held_item].</span>",
"<span class='italics'>You hear sparks!</span>")
var/i = 10
if(siemens)
while(i)
cell.charge += 100 //This should be a nice compromise between recharging guns and other batteries.
cell.charge += 100 * siemens //This should be a nice compromise between recharging guns and other batteries.
if(cell.charge > cell.maxcharge)
cell.charge = cell.maxcharge
break
if(siemens)
var/T = get_turf(src)
new /obj/effect/effect/sparks(T)
held_item.update_icon()
@@ -113,11 +124,18 @@
if(src)
qdel(src)
/obj/item/weapon/electric_hand/afterattack(var/atom/target, var/mob/living/user, proximity)
/obj/item/weapon/electric_hand/afterattack(var/atom/target, var/mob/living/carbon/human/user, proximity)
if(!target)
return
if(!proximity)
return
// Handle glove conductivity.
var/obj/item/clothing/gloves/gloves = user.gloves
var/siemens = 1
if(gloves)
siemens = gloves.siemens_coefficient
//Excuse the copypasta.
if(istype(target,/mob/living/carbon))
var/mob/living/carbon/C = target
@@ -126,14 +144,17 @@
src << "<span class='warning'>We require more chemicals to electrocute [C]!</span>"
return 0
C.electrocute_act(electrocute_amount,src,1.0,BP_TORSO)
C.stun_effect_act(0, agony_amount, BP_TORSO, src)
C.electrocute_act(electrocute_amount * siemens,src,1.0,BP_TORSO)
C.stun_effect_act(0, agony_amount * siemens, BP_TORSO, src)
msg_admin_attack("[key_name(user)] shocked [key_name(C)] with the [src].")
if(siemens)
visible_message("<span class='warning'>Arcs of electricity strike [C]!</span>",
"<span class='warning'>Our hand channels raw electricity into [C]</span>",
"<span class='italics'>You hear sparks!</span>")
else
src << "<span class='warning'>Our gloves block us from shocking \the [C].</span>"
//qdel(src) //Since we're no longer a one hit stun, we need to stick around.
user.mind.changeling.chem_charges -= shock_cost
return 1
@@ -145,7 +166,8 @@
src << "<span class='warning'>We require more chemicals to electrocute [S]!</span>"
return 0
S.electrocute_act(60,src,1.0) //If only they had surge protectors.
S.electrocute_act(60 * siemens,src,1.0) //If only they had surge protectors.
if(siemens)
visible_message("<span class='warning'>Arcs of electricity strike [S]!</span>",
"<span class='warning'>Our hand channels raw electricity into [S]</span>",
"<span class='italics'>You hear sparks!</span>")
@@ -164,13 +186,15 @@
"<span class='warning'>Our hand channels raw electricity into \the [target].</span>",
"<span class='italics'>You hear sparks!</span>")
var/i = 10
if(siemens)
while(i)
cell.charge += 100 //This should be a nice compromise between recharging guns and other batteries.
cell.charge += 100 * siemens //This should be a nice compromise between recharging guns and other batteries.
if(cell.charge > cell.maxcharge)
cell.charge = cell.maxcharge
break //No point making sparks if the cell's full.
// if(!Adjacent(T))
// break
if(siemens)
var/Turf = get_turf(src)
new /obj/effect/effect/sparks(Turf)
T.update_icon()

View File

@@ -18,14 +18,13 @@
var/mob/living/carbon/C = src
if(changeling.max_geneticpoints < 0) //Absorbed by another ling
src << "<span class='danger'>You have no genomes, not even your own, and cannot regenerate.</span>"
src << "<span class='danger'>We have no genomes, not even our own, and cannot regenerate.</span>"
return 0
if(!C.stat && alert("Are we sure we wish to fake our death?",,"Yes","No") == "No")//Confirmation for living changelings if they want to fake their death
if(!C.stat && alert("Are we sure we wish to regenerate? We will appear to be dead while doing so.","Revival","Yes","No") == "No")
return
C << "<span class='notice'>We will attempt to regenerate our form.</span>"
C.status_flags |= FAKEDEATH //play dead
C.update_canmove()
C.remove_changeling_powers()
@@ -33,13 +32,12 @@
C.suiciding = 0
if(C.stat != DEAD)
C.emote("deathgasp")
C.tod = worldtime2text()
C.adjustOxyLoss(C.maxHealth * 2)
spawn(rand(800,2000))
//The ling will now be able to choose when to revive
src.verbs += /mob/proc/changeling_revive
src << "<span class='notice'>We are ready to rise. Use the Revive verb when you are ready.</span>"
src << "<span class='notice'><font size='5'>We are ready to rise. Use the <b>Revive</b> verb when you are ready.</font></span>"
feedback_add_details("changeling_powers","FD")
return 1

View File

@@ -25,8 +25,6 @@
C.SetStunned(0)
C.SetWeakened(0)
C.radiation = 0
C.halloss = 0
C.shock_stage = 0 //Pain
C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
C.reagents.clear_reagents()
C.restore_all_organs(ignore_prosthetic_prefs=1) //Covers things like fractures and other things not covered by the above.
@@ -36,8 +34,13 @@
H.mutations.Remove(HUSK)
H.status_flags -= DISFIGURED
H.update_body(1)
for(var/limb in H.organs_by_name)
var/obj/item/organ/external/current_limb = H.organs_by_name[limb]
current_limb.undislocate()
C.halloss = 0
C.shock_stage = 0 //Pain
C << "<span class='notice'>We have regenerated.</span>"
C.status_flags &= ~FAKEDEATH
C.update_canmove()
C.mind.changeling.purchased_powers -= C
feedback_add_details("changeling_powers","CR")

View File

@@ -13,23 +13,18 @@
minimal_access = list() //See /datum/job/assistant/get_access()
alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Visitor", "Resident")
/datum/job/assistant/equip(var/mob/living/carbon/human/H)
/datum/job/assistant/equip(var/mob/living/carbon/human/H, var/alt_title)
if(!H) return 0
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back)
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
if (H.mind.role_alt_title)
switch(H.mind.role_alt_title)
if("Visitor") //I doubt someone visiting the station would want to wear an ugly grey uniform
if(has_alt_title(H, alt_title,"Visitor")) //I doubt someone visiting the station would want to wear an ugly grey uniform
H.equip_to_slot_or_del(new /obj/item/clothing/under/assistantformal(H), slot_w_uniform)
if("Resident")
else if(has_alt_title(H, alt_title,"Resident"))
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
return 1

View File

@@ -7,7 +7,7 @@ obj/machinery/recharger
anchored = 1
use_power = 1
idle_power_usage = 4
active_power_usage = 15000 //15 kW
active_power_usage = 40000 //40 kW
var/obj/item/charging = null
var/list/allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/laptop, /obj/item/weapon/cell)
var/icon_state_charged = "recharger2"

View File

@@ -6,9 +6,9 @@
name = "space heater"
desc = "Made by Space Amish using traditional space techniques, this heater is guaranteed not to set the station on fire."
var/obj/item/weapon/cell/cell
var/cell_type = /obj/item/weapon/cell/apc
var/cell_type = /obj/item/weapon/cell/high
var/on = 0
var/set_temperature = T0C + 50 //K
var/set_temperature = T0C + 20 //K
var/heating_power = 40000

View File

@@ -101,6 +101,78 @@ LINEN BINS
icon_state = "sheetbrown"
item_state = "sheetbrown"
/obj/item/weapon/bedsheet/ian
icon_state = "sheetian"
item_state = "bedsheet"
/obj/item/weapon/bedsheet/double
icon_state = "doublesheet"
item_state = "bedsheet"
/obj/item/weapon/bedsheet/bluedouble
icon_state = "doublesheetblue"
item_state = "sheetblue"
/obj/item/weapon/bedsheet/greendouble
icon_state = "doublesheetgreen"
item_state = "sheetgreen"
/obj/item/weapon/bedsheet/orangedouble
icon_state = "doublesheetorange"
item_state = "sheetorange"
/obj/item/weapon/bedsheet/purpledouble
icon_state = "doublesheetpurple"
item_state = "sheetpurple"
/obj/item/weapon/bedsheet/doublerainbow //all the way across the sky.
icon_state = "doublesheetrainbow"
item_state = "sheetrainbow"
/obj/item/weapon/bedsheet/doublered
icon_state = "doublesheetred"
item_state = "sheetred"
/obj/item/weapon/bedsheet/doubleyellow
icon_state = "doublesheetyellow"
item_state = "sheetyellow"
/obj/item/weapon/bedsheet/doublemime
icon_state = "doublesheetmime"
item_state = "sheetmime"
/obj/item/weapon/bedsheet/doubleclown
icon_state = "doublesheetclown"
item_state = "sheetclown"
/obj/item/weapon/bedsheet/doublecaptain
icon_state = "doublesheetcaptain"
item_state = "sheetcaptain"
/obj/item/weapon/bedsheet/doublerd
icon_state = "doublesheetrd"
item_state = "sheetrd"
/obj/item/weapon/bedsheet/doublehos
icon_state = "doublesheethos"
item_state = "sheethos"
/obj/item/weapon/bedsheet/doublehop
icon_state = "doublesheethop"
item_state = "sheethop"
/obj/item/weapon/bedsheet/doublece
icon_state = "doublesheetce"
item_state = "sheetce"
/obj/item/weapon/bedsheet/doublebrown
icon_state = "doublesheetbrown"
item_state = "sheetbrown"
/obj/item/weapon/bedsheet/doubleian
icon_state = "doublesheetian"
item_state = "bedsheet"
/obj/structure/bedsheetbin
name = "linen bin"

View File

@@ -176,6 +176,19 @@
/obj/structure/bed/alien/New(var/newloc)
..(newloc,"resin")
/obj/structure/bed/double
name = "double bed"
icon_state = "doublebed"
base_icon = "doublebed"
/obj/structure/bed/double/post_buckle_mob(mob/living/M as mob)
if(M == buckled_mob)
M.pixel_y = 13
M.old_y = 13
else
M.pixel_y = 0
M.old_y = 0
/*
* Roller beds
*/

View File

@@ -17,11 +17,31 @@
for(var/datum/category_group/underwear/UWC in global_underwear.categories)
var/datum/category_item/underwear/UWI = H.all_underwear[UWC.name]
var/item_name = UWI ? UWI.name : "None"
dat += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'>[item_name]</a> <a href='?src=\ref[src];remove_underwear=[UWC.name]'>(Remove)</a><br>"
dat += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'>[item_name]</a>"
if(UWI)
for(var/datum/gear_tweak/gt in UWI.tweaks)
dat += " <a href='?src=\ref[src];underwear=[UWC.name];tweak=\ref[gt]'>[gt.get_contents(get_metadata(H, UWC.name, gt))]</a>"
dat += " <a href='?src=\ref[src];remove_underwear=[UWC.name]'>(Remove)</a><br>"
dat = jointext(dat)
dat = jointext(dat,null)
H << browse(dat, "window=wardrobe;size=400x200")
/obj/structure/undies_wardrobe/proc/get_metadata(var/mob/living/carbon/human/H, var/underwear_category, var/datum/gear_tweak/gt)
var/metadata = H.all_underwear_metadata[underwear_category]
if(!metadata)
metadata = list()
H.all_underwear_metadata[underwear_category] = metadata
var/tweak_data = metadata["[gt]"]
if(!tweak_data)
tweak_data = gt.get_default()
metadata["[gt]"] = tweak_data
return tweak_data
/obj/structure/undies_wardrobe/proc/set_metadata(var/mob/living/carbon/human/H, var/underwear_category, var/datum/gear_tweak/gt, var/new_metadata)
var/list/metadata = H.all_underwear_metadata[underwear_category]
metadata["[gt]"] = new_metadata
/obj/structure/undies_wardrobe/proc/human_who_can_use_underwear(var/mob/living/carbon/human/H)
if(!istype(H) || !H.species || !(H.species.appearance_flags & HAS_UNDERWEAR))
return FALSE
@@ -50,6 +70,18 @@
if(selected_underwear && CanUseTopic(H, default_state))
H.all_underwear[UWC.name] = selected_underwear
. = TRUE
else if(href_list["underwear"] && href_list["tweak"])
var/underwear = href_list["underwear"]
if(!(underwear in H.all_underwear))
return
var/datum/gear_tweak/gt = locate(href_list["tweak"])
if(!gt)
return
var/new_metadata = gt.get_metadata(usr, get_metadata(H, underwear, gt), "Wardrobe Underwear Selection")
if(new_metadata)
set_metadata(H, underwear, gt, new_metadata)
. = TRUE
if(.)
H.update_body(1)
H.update_underwear()
interact(H)

View File

@@ -1,5 +1,6 @@
/datum/preferences
var/list/all_underwear
var/list/all_underwear_metadata
/datum/category_item/player_setup_item/general/equipment
name = "Clothing"
@@ -7,11 +8,13 @@
/datum/category_item/player_setup_item/general/equipment/load_character(var/savefile/S)
S["all_underwear"] >> pref.all_underwear
S["all_underwear_metadata"] >> pref.all_underwear_metadata
S["backbag"] >> pref.backbag
S["pdachoice"] >> pref.pdachoice
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
S["all_underwear"] << pref.all_underwear
S["all_underwear_metadata"] << pref.all_underwear_metadata
S["backbag"] << pref.backbag
S["pdachoice"] << pref.pdachoice
@@ -27,15 +30,21 @@
pref.all_underwear[WRC.name] = WRI.name
break
if(!istype(pref.all_underwear_metadata))
pref.all_underwear_metadata = list()
for(var/underwear_category in pref.all_underwear)
var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[underwear_category]
if(!UWC)
pref.all_underwear -= UWC
pref.all_underwear -= underwear_category
else
var/datum/category_item/underwear/UWI = UWC.items_by_name[pref.all_underwear[underwear_category]]
if(!UWI)
pref.all_underwear -= UWC
pref.all_underwear -= underwear_category
for(var/underwear_metadata in pref.all_underwear_metadata)
if(!(underwear_metadata in pref.all_underwear))
pref.all_underwear_metadata -= underwear_metadata
pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag))
pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice))
@@ -44,11 +53,34 @@
. += "<b>Equipment:</b><br>"
for(var/datum/category_group/underwear/UWC in global_underwear.categories)
var/item_name = pref.all_underwear[UWC.name] ? pref.all_underwear[UWC.name] : "None"
. += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'><b>[item_name]</b></a><br>"
. += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'><b>[item_name]</b></a>"
var/datum/category_item/underwear/UWI = UWC.items_by_name[item_name]
if(UWI)
for(var/datum/gear_tweak/gt in UWI.tweaks)
. += " <a href='?src=\ref[src];underwear=[UWC.name];tweak=\ref[gt]'>[gt.get_contents(get_metadata(UWC.name, gt))]</a>"
. += "<br>"
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
. += "PDA Type: <a href='?src=\ref[src];change_pda=1'><b>[pdachoicelist[pref.pdachoice]]</b></a><br>"
return jointext(.)
return jointext(.,null)
/datum/category_item/player_setup_item/general/equipment/proc/get_metadata(var/underwear_category, var/datum/gear_tweak/gt)
var/metadata = pref.all_underwear_metadata[underwear_category]
if(!metadata)
metadata = list()
pref.all_underwear_metadata[underwear_category] = metadata
var/tweak_data = metadata["[gt]"]
if(!tweak_data)
tweak_data = gt.get_default()
metadata["[gt]"] = tweak_data
return tweak_data
/datum/category_item/player_setup_item/general/equipment/proc/set_metadata(var/underwear_category, var/datum/gear_tweak/gt, var/new_metadata)
var/list/metadata = pref.all_underwear_metadata[underwear_category]
metadata["[gt]"] = new_metadata
/datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user)
if(href_list["change_backpack"])
@@ -72,4 +104,16 @@
pref.all_underwear[UWC.name] = selected_underwear.name
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["underwear"] && href_list["tweak"])
var/underwear = href_list["underwear"]
if(!(underwear in pref.all_underwear))
return TOPIC_NOACTION
var/datum/gear_tweak/gt = locate(href_list["tweak"])
if(!gt)
return TOPIC_NOACTION
var/new_metadata = gt.get_metadata(usr, get_metadata(underwear, gt))
if(new_metadata)
set_metadata(underwear, gt, new_metadata)
return TOPIC_REFRESH_UPDATE_PREVIEW
return ..()

View File

@@ -17,8 +17,6 @@
* Color adjustment
*/
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
/datum/gear_tweak/color
var/list/valid_colors
@@ -32,10 +30,10 @@ var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
/datum/gear_tweak/color/get_default()
return valid_colors ? valid_colors[1] : COLOR_GRAY
/datum/gear_tweak/color/get_metadata(var/user, var/metadata)
/datum/gear_tweak/color/get_metadata(var/user, var/metadata, var/title = "Character Preference")
if(valid_colors)
return input(user, "Choose an item color.", "Character Preference", metadata) as null|anything in valid_colors
return input(user, "Choose an item color.", "Global Preference", metadata) as color|null
return input(user, "Choose a color.", title, metadata) as null|anything in valid_colors
return input(user, "Choose a color.", title, metadata) as color|null
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
if(valid_colors && !(metadata in valid_colors))

View File

@@ -53,10 +53,26 @@
display_name = "tie, blue"
path = /obj/item/clothing/accessory/blue
/datum/gear/accessory/tie/blue_clip
display_name = "tie, blue with clip"
path = /obj/item/clothing/accessory/blue_clip
/datum/gear/accessory/tie/red
display_name = "tie, red"
path = /obj/item/clothing/accessory/red
/datum/gear/accessory/tie/red_long
display_name = "tie, red long"
path = /obj/item/clothing/accessory/red_long
/datum/gear/accessory/tie/yellow
display_name = "tie, yellow"
path = /obj/item/clothing/accessory/yellow
/datum/gear/accessory/tie/navy
display_name = "tie, navy blue"
path = /obj/item/clothing/accessory/navy
/datum/gear/accessory/tie/horrible
display_name = "tie, socially disgraceful"
path = /obj/item/clothing/accessory/horrible

View File

@@ -350,10 +350,17 @@ datum/preferences
I.robotize()
character.all_underwear.Cut()
character.all_underwear_metadata.Cut()
for(var/underwear_category_name in all_underwear)
var/underwear_item_name = all_underwear[underwear_category_name]
var/datum/category_group/underwear/underwear_category = global_underwear.categories_by_name[underwear_category_name]
if(underwear_category)
var/underwear_item_name = all_underwear[underwear_category_name]
character.all_underwear[underwear_category_name] = underwear_category.items_by_name[underwear_item_name]
if(all_underwear_metadata[underwear_category_name])
character.all_underwear_metadata[underwear_category_name] = all_underwear_metadata[underwear_category_name]
else
all_underwear -= underwear_category_name
if(backbag > 4 || backbag < 1)
backbag = 1 //Same as above
@@ -367,6 +374,7 @@ datum/preferences
character.force_update_limbs()
character.update_mutations(0)
character.update_body(0)
character.update_underwear(0)
character.update_hair(0)
character.update_icons()

View File

@@ -36,6 +36,7 @@
var/datum/robolimb/synthetic //If they are a synthetic (aka synthetic torso)
var/list/all_underwear = list()
var/list/all_underwear_metadata = list()
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old.

View File

@@ -109,29 +109,30 @@ Please contact me on #coderbus IRC. ~Carn x
#define MUTATIONS_LAYER 1
#define DAMAGE_LAYER 2
#define SURGERY_LEVEL 3 //bs12 specific.
#define UNIFORM_LAYER 4
#define ID_LAYER 5
#define SHOES_LAYER 6
#define GLOVES_LAYER 7
#define BELT_LAYER 8
#define SUIT_LAYER 9
#define TAIL_LAYER 10 //bs12 specific. this hack is probably gonna come back to haunt me
#define GLASSES_LAYER 11
#define BELT_LAYER_ALT 12
#define SUIT_STORE_LAYER 13
#define BACK_LAYER 14
#define HAIR_LAYER 15 //TODO: make part of head layer?
#define EARS_LAYER 16
#define FACEMASK_LAYER 17
#define HEAD_LAYER 18
#define COLLAR_LAYER 19
#define HANDCUFF_LAYER 20
#define LEGCUFF_LAYER 21
#define L_HAND_LAYER 22
#define R_HAND_LAYER 23
#define FIRE_LAYER 24 //If you're on fire
#define TARGETED_LAYER 25 //BS12: Layer for the target overlay from weapon targeting system
#define TOTAL_LAYERS 25
#define UNDERWEAR_LAYER 4
#define UNIFORM_LAYER 5
#define ID_LAYER 6
#define SHOES_LAYER 7
#define GLOVES_LAYER 8
#define BELT_LAYER 9
#define SUIT_LAYER 10
#define TAIL_LAYER 11 //bs12 specific. this hack is probably gonna come back to haunt me
#define GLASSES_LAYER 12
#define BELT_LAYER_ALT 13
#define SUIT_STORE_LAYER 14
#define BACK_LAYER 15
#define HAIR_LAYER 16 //TODO: make part of head layer?
#define EARS_LAYER 17
#define FACEMASK_LAYER 18
#define HEAD_LAYER 19
#define COLLAR_LAYER 20
#define HANDCUFF_LAYER 21
#define LEGCUFF_LAYER 22
#define L_HAND_LAYER 23
#define R_HAND_LAYER 24
#define FIRE_LAYER 25 //If you're on fire
#define TARGETED_LAYER 26 //BS12: Layer for the target overlay from weapon targeting system
#define TOTAL_LAYERS 26
//////////////////////////////////
/mob/living/carbon/human
@@ -148,8 +149,12 @@ Please contact me on #coderbus IRC. ~Carn x
if (icon_update)
icon = stand_icon
for(var/image/I in overlays_standing)
overlays += I
for(var/entry in overlays_standing)
if(istype(entry, /image))
overlays += entry
else if(istype(entry, /list))
for(var/inner_entry in entry)
overlays += inner_entry
if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone.
var/matrix/M = matrix()
@@ -318,18 +323,24 @@ var/global/list/damage_icon_parts = list()
//END CACHED ICON GENERATION.
stand_icon.Blend(base_icon,ICON_OVERLAY)
//Underwear
if(species.appearance_flags & HAS_UNDERWEAR)
for(var/category in all_underwear)
var/datum/category_item/underwear/UW = all_underwear[category]
UW.apply_to_icon(stand_icon)
if(update_icons)
update_icons()
//tail
update_tail_showing(0)
//UNDERWEAR OVERLAY
/mob/living/carbon/human/proc/update_underwear(var/update_icons=1)
overlays_standing[UNDERWEAR_LAYER] = null
if(species.appearance_flags & HAS_UNDERWEAR)
overlays_standing[UNDERWEAR_LAYER] = list()
for(var/category in all_underwear)
var/datum/category_item/underwear/UWI = all_underwear[category]
overlays_standing[UNDERWEAR_LAYER] += UWI.generate_image(all_underwear_metadata[category])
if(update_icons) update_icons()
//HAIR OVERLAY
/mob/living/carbon/human/proc/update_hair(var/update_icons=1)
//Reset our hair
@@ -429,6 +440,7 @@ var/global/list/damage_icon_parts = list()
update_mutations(0)
update_body(0)
update_underwear(0)
update_hair(0)
update_inv_w_uniform(0)
update_inv_wear_id(0)

View File

@@ -25,6 +25,7 @@
organ_tag = "brain"
parent_organ = BP_HEAD
vital = 1
var/brain_type = /obj/item/device/mmi
var/obj/item/device/mmi/stored_mmi
/obj/item/organ/internal/mmi_holder/Destroy()
@@ -35,8 +36,10 @@
/obj/item/organ/internal/mmi_holder/New(var/mob/living/carbon/human/new_owner, var/internal)
..(new_owner, internal)
if(!stored_mmi)
stored_mmi = new(src)
var/mob/living/carbon/human/dummy/mannequin/M = new_owner
if(istype(M))
return
stored_mmi = new brain_type(src)
sleep(-1)
update_from_mmi()
@@ -80,10 +83,8 @@
/obj/item/organ/internal/mmi_holder/posibrain
name = "positronic brain interface"
brain_type = /obj/item/device/mmi/digital/posibrain
/obj/item/organ/internal/mmi_holder/posibrain/New()
stored_mmi = new /obj/item/device/mmi/digital/posibrain(src)
..()
/obj/item/organ/internal/mmi_holder/posibrain/update_from_mmi()
..()

View File

@@ -53,6 +53,13 @@
-->
<div class="commit sansserif">
<h2 class="date">30 May 2016</h2>
<h3 class="author">EmperorJon updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Ports Baystation's setup screen changes, thanks to PsiOmegaDelta.</li>
<li class="rscadd">Includes character preview with toggleable equipment, visible loadout items, ghost character sprites, and custom colour underwear. Your underwear will have reset, so you'll need to set it back.</li>
</ul>
<h2 class="date">29 May 2016</h2>
<h3 class="author">Datraen updated:</h3>
<ul class="changes bgimages16">

View File

@@ -2337,3 +2337,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
Zuhayr:
- tweak: 'Backend change: allowed accessories to be placed on any clothing item
with the appropriate variables set.'
2016-05-30:
EmperorJon:
- rscadd: Ports Baystation's setup screen changes, thanks to PsiOmegaDelta.
- rscadd: Includes character preview with toggleable equipment, visible loadout
items, ghost character sprites, and custom colour underwear. Your underwear
will have reset, so you'll need to set it back.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -92,7 +92,7 @@ NanoBaseHelpers = function ()
return string.charAt(0).toUpperCase() + string.slice(1);
},
// Display a bar. Used to show health, capacity, etc. Use difClass if the entire display bar class should be different
displayBar: function(value, rangeMin, rangeMax, styleClass, showText, difClass) {
displayBar: function(value, rangeMin, rangeMax, styleClass, showText, difClass, direction) {
if (rangeMin < rangeMax)
{
@@ -129,12 +129,21 @@ NanoBaseHelpers = function ()
if (typeof difClass == 'undefined' || !difClass)
{
return '<div class="displayBar ' + styleClass + '"><div class="displayBarFill ' + styleClass + '" style="width: ' + percentage + '%;"></div><div class="displayBarText ' + styleClass + '">' + showText + '</div></div>';
difClass = ''
}
if(typeof direction == 'undefined' || !direction)
{
direction = 'width'
}
else
{
direction = 'height'
}
var percentage = Math.round((value - rangeMin) / (rangeMax - rangeMin) * 100);
return '<div class="' + difClass + ' ' + styleClass + '"><div class="' + difClass + 'Fill ' + styleClass + '" style="height: ' + percentage + '%;"></div><div class="' + difClass + 'Text ' + styleClass + '">' + showText + '</div></div>';
return '<div class="displayBar' + difClass + ' ' + styleClass + '"><div class="displayBar' + difClass + 'Fill ' + styleClass + '" style="' + direction + ': ' + percentage + '%;"></div><div class="displayBar' + difClass + 'Text ' + styleClass + '">' + showText + '</div></div>';
},
// Display DNA Blocks (for the DNA Modifier UI)
displayDNABlocks: function(dnaString, selectedBlock, selectedSubblock, blockSize, paramKey) {

View File

@@ -9,10 +9,10 @@ Used In File(s): \code\modules\xenobio2\machines\injector_computer.dm
<div class="itemContent" style="text-align: center; width: 100px">
{{if data.beaker}}
{{:data.reagentAmount}}u / {{:data.reagentMax}}u
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'displayBarBeaker')}}
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'Beaker', 1)}}
{{else}}
<span class='bad'><b>ERR</b></span>
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'displayBarBeaker')}}
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'Beaker', 1)}}
{{/if}}
</div>
<div style="padding-left: 110px;">

View File

@@ -45,6 +45,7 @@
#include "code\_compatibility\509\JSON Writer.dm"
#include "code\_compatibility\509\text.dm"
#include "code\_compatibility\509\type2type.dm"
#include "code\_helpers\_global_objects.dm"
#include "code\_helpers\atmospherics.dm"
#include "code\_helpers\datum_pool.dm"
#include "code\_helpers\files.dm"