Merge remote-tracking branch 'upstream/master' into goonchem-reagent-temperature

This commit is contained in:
Fox McCloud
2019-03-22 14:07:46 -04:00
23 changed files with 300 additions and 122 deletions
+4
View File
@@ -70,6 +70,10 @@
changeNext_click(1)
var/list/modifiers = params2list(params)
var/dragged = modifiers["drag"]
if(dragged && !modifiers[dragged])
return
if(modifiers["middle"] && modifiers["shift"] && modifiers["ctrl"])
MiddleShiftControlClickOn(A)
return
+5
View File
@@ -2,6 +2,8 @@
var/server_name = null // server name (for world name / status)
var/server_suffix = 0 // generate numeric suffix based on server port
var/minimum_client_build = 1421 // Build 1421 due to the middle mouse button exploit
var/nudge_script_path = "nudge.py" // where the nudge.py script is located
var/log_ooc = 0 // log OOC channel
@@ -382,6 +384,9 @@
if("serversuffix")
config.server_suffix = 1
if("minimum_client_build")
config.minimum_client_build = text2num(value)
if("nudge_script_path")
config.nudge_script_path = value
+21
View File
@@ -149,6 +149,27 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
access = access_hydroponics
announce_beacons = list("Hydroponics" = list("Hydroponics"))
/datum/supply_packs/emergency/voxsupport
name = "Vox Life Support Supplies"
contains = list(/obj/item/clothing/mask/breath/vox,
/obj/item/clothing/mask/breath/vox,
/obj/item/tank/emergency_oxygen/vox,
/obj/item/tank/emergency_oxygen/vox)
cost = 50
containertype = /obj/structure/closet/crate/medical
containername = "vox life support supplies crate"
/datum/supply_packs/emergency/plasmamansupport
name = "Plasmaman Life Support Supplies"
contains = list(/obj/item/clothing/mask/breath,
/obj/item/tank/emergency_oxygen/plasma,
/obj/item/clothing/suit/space/eva/plasmaman,
/obj/item/clothing/head/helmet/space/eva/plasmaman)
cost = 75
containertype = /obj/structure/closet/crate/secure/plasma
containername = "plasmaman life support supplies crate"
access = access_eva
/datum/supply_packs/emergency/specialops
name = "Special Ops Supplies"
contains = list(/obj/item/storage/box/emps,
+2 -3
View File
@@ -113,9 +113,8 @@
else
reagents.add_reagent("spore", 8)
// Attach the smoke spreader and setup/start it.
S.attach(location)
S.set_up(reagents, 1, 1, location, 15, 1) // only 1-2 smoke cloud
// Setup up the smoke spreader and start it.
S.set_up(reagents, location, TRUE)
S.start()
qdel(src)
@@ -182,7 +182,7 @@
if(adminseal || override)//if it's an admin-spawned guardian without a host it can still talk normally
return ..(message)
Communicate(message)
/mob/living/simple_animal/hostile/guardian/proc/ToggleMode()
to_chat(src, "<span class='danger'>You dont have another mode!</span>")
@@ -261,7 +261,7 @@
var/failure_message = "..And draw a card! It's...blank? Maybe you should try again later."
var/ling_failure = "The deck refuses to respond to a souless creature such as you."
var/list/possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive", "Assassin", "Lightning", "Charger", "Protector")
var/random = TRUE
var/random = FALSE
var/color_list = list("Pink" = "#FFC0CB",
"Red" = "#FF0000",
"Orange" = "#FFA500",
@@ -358,7 +358,7 @@
G.icon_state = "[theme][color]"
G.icon_dead = "[theme][color]"
to_chat(user, "[G.magic_fluff_string].")
/obj/item/guardiancreator/choose
random = FALSE
@@ -2,6 +2,9 @@
/obj/effect/proc_holder/spell/proc/shadowling_check(var/mob/living/carbon/human/H)
if(!H || !istype(H)) return
if(H.incorporeal_move == 1)
to_chat(usr, "<span class='warning'>You can't use abilities affecting others while you are traversing between worlds!</span>")
return FALSE
if(isshadowling(H) && is_shadow(H))
return 1
if(isshadowlinglesser(H) && is_thrall(H))
@@ -411,11 +414,9 @@
B.icon_state = null //Invisible
B.reagents.add_reagent("blindness_smoke", 10)
var/datum/effect_system/smoke_spread/chem/S = new
S.attach(B)
if(S)
S.set_up(B.reagents, 10, 0, B.loc)
S.set_up(B.reagents, B.loc, TRUE)
S.start(4)
sleep(10)
qdel(B)
/datum/reagent/shadowling_blindness_smoke //Blinds non-shadowlings, heals shadowlings/thralls
+2 -1
View File
@@ -411,7 +411,8 @@
/datum/spellbook_entry/item/tarotdeck
name = "Tarot Deck"
desc = "A deck of tarot cards that can be used to summon a spirit companion for the wizard."
desc = "A deck of guardian tarot cards, capable of binding a personal guardian to your body. There are multiple types of guardian available, but all of them will transfer some amount of damage to you. \
It would be wise to avoid buying these with anything capable of causing you to swap bodies with others."
item_path = /obj/item/guardiancreator
log_name = "TD"
limit = 1
@@ -0,0 +1,122 @@
/////////////////////////////////////////////
// Chem smoke
/////////////////////////////////////////////
/obj/effect/particle_effect/chem_smoke
icon = 'icons/goonstation/effects/64x64.dmi'
icon_state = "smoke"
density = FALSE
opacity = FALSE
animate_movement = NO_STEPS
var/matrix/first = matrix()
var/matrix/second = matrix()
var/matrix/third = matrix()
var/first_scale = 0.1
var/second_scale = 5
var/third_scale = 2
var/spread_amount = 96
/obj/effect/particle_effect/chem_smoke/New(location, chem_color)
..()
color = chem_color
pixel_x += -16 + rand(-3, 3)
pixel_y += -16 + rand(-3, 3)
first = turn(first, rand(-90, 90))
first.Scale(first_scale, first_scale)
transform = first
second = first
second.Scale(second_scale, second_scale)
third.Scale(third_scale, third_scale)
animate(src,transform = second, time = 5, alpha = 200)
animate(transform = third, time = 20, pixel_y = rand(-spread_amount, spread_amount), pixel_x = rand(-spread_amount, spread_amount), alpha = 1)
QDEL_IN(src, 26)
/obj/effect/particle_effect/chem_smoke/small
first_scale = 0.05
second_scale = 2.5
third_scale = 1
spread_amount = 48
/datum/effect_system/smoke_spread/chem
var/obj/chemholder
var/list/smoked_atoms = list()
/datum/effect_system/smoke_spread/chem/New()
..()
chemholder = new
chemholder.create_reagents(1000)
chemholder.reagents.set_reacting(FALSE) // Just in case
/datum/effect_system/smoke_spread/chem/Destroy()
QDEL_NULL(chemholder)
smoked_atoms.Cut()
return ..()
/datum/effect_system/smoke_spread/chem/set_up(datum/reagents/carry = null, loca, silent = FALSE)
if(isturf(loca))
location = loca
else
location = get_turf(loca)
carry.copy_to(chemholder, carry.total_volume)
if(!silent)
var/contained = ""
for(var/reagent in carry.reagent_list)
contained += " [reagent] "
if(contained)
contained = "\[[contained]\]"
var/area/A = get_area(location)
var/where = "[A.name] | [location.x], [location.y]"
var/whereLink = "<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>[where]</a>"
if(carry && carry.my_atom)
if(carry.my_atom.fingerprintslast)
var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast)
var/more = ""
if(M)
more = " "
msg_admin_attack("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [carry.my_atom.fingerprintslast][more].", ATKLOG_FEW)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
else
msg_admin_attack("A chemical smoke reaction has taken place in ([whereLink]). No associated key.", ATKLOG_FEW)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
else
msg_admin_attack("A chemical smoke reaction has taken place in ([whereLink]). No associated key. CODERS: carry.my_atom may be null.", ATKLOG_FEW)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key. CODERS: carry.my_atom may be null.")
/datum/effect_system/smoke_spread/chem/start(effect_range = 2)
set waitfor = FALSE
var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
for(var/x in 0 to 99)
for(var/i = 0, i < rand(2, 6), i++)
if(effect_range < 3)
new /obj/effect/particle_effect/chem_smoke/small(location, color)
else
new /obj/effect/particle_effect/chem_smoke(location, color)
if(x % 10 == 0) //Once every 10 ticks.
SmokeEm(effect_range)
sleep(1)
qdel(src)
/datum/effect_system/smoke_spread/chem/proc/SmokeEm(effect_range = 2)
for(var/atom/A in view(effect_range, get_turf(location)))
if(A in smoked_atoms)
continue
smoked_atoms += A
chemholder.reagents.reaction(A)
if(iscarbon(A))
var/mob/living/carbon/C = A
if(C.can_breathe_gas())
chemholder.reagents.copy_to(C, chemholder.reagents.total_volume)
@@ -207,99 +207,4 @@
return 1
/datum/effect_system/smoke_spread/sleeping
effect_type = /obj/effect/particle_effect/smoke/sleeping
/////////////////////////////////////////////
// Chem smoke
/////////////////////////////////////////////
/obj/effect/particle_effect/smoke/chem
icon = 'icons/effects/chemsmoke.dmi'
opacity = 0
lifetime = 10
/datum/effect_system/smoke_spread/chem
effect_type = /obj/effect/particle_effect/smoke/chem
var/obj/chemholder
/datum/effect_system/smoke_spread/chem/New()
..()
chemholder = new/obj()
var/datum/reagents/R = new/datum/reagents(500)
chemholder.reagents = R
R.my_atom = chemholder
/datum/effect_system/smoke_spread/chem/Destroy()
QDEL_NULL(chemholder)
return ..()
/datum/effect_system/smoke_spread/chem/set_up(datum/reagents/carry = null, n = 5, c = 0, loca, direct, silent = 0)
if(n > 20)
n = 20
number = n
cardinals = c
if(isturf(loca))
location = loca
else
location = get_turf(loca)
if(direct)
direction = direct
carry.copy_to(chemholder, carry.total_volume)
if(!silent)
var/contained = ""
for(var/reagent in carry.reagent_list)
contained += " [reagent] "
if(contained)
contained = "\[[contained]\]"
var/area/A = get_area(location)
var/where = "[A.name] | [location.x], [location.y]"
var/whereLink = "<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>[where]</a>"
if(carry && carry.my_atom)
if(carry.my_atom.fingerprintslast)
var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast)
var/more = ""
if(M)
more = " "
msg_admin_attack("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [carry.my_atom.fingerprintslast][more].", ATKLOG_FEW)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
else
msg_admin_attack("A chemical smoke reaction has taken place in ([whereLink]). No associated key.", ATKLOG_FEW)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
else
msg_admin_attack("A chemical smoke reaction has taken place in ([whereLink]). No associated key. CODERS: carry.my_atom may be null.", ATKLOG_FEW)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key. CODERS: carry.my_atom may be null.")
/datum/effect_system/smoke_spread/chem/start(effect_range = 2)
var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
var/obj/effect/particle_effect/smoke/chem/smokeholder = new effect_type(location)
for(var/atom/A in view(effect_range, smokeholder))
chemholder.reagents.reaction(A)
if(iscarbon(A))
var/mob/living/carbon/C = A
if(C.can_breathe_gas())
chemholder.reagents.copy_to(C, chemholder.reagents.total_volume)
qdel(smokeholder)
for(var/i=0, i<number, i++)
if(holder)
location = get_turf(holder)
var/obj/effect/particle_effect/smoke/chem/S = new effect_type(location)
if(!direction)
if(cardinals)
S.direction = pick(cardinal)
else
S.direction = pick(alldirs)
else
S.direction = direction
S.steps = pick(0,1,1,1,2,2,2,3)
if(color)
S.icon += color // give the smoke color, if it has any to begin with
else
// if no color, just use the old smoke icon
S.icon = 'icons/effects/96x96.dmi'
S.icon_state = "smoke"
S.process()
effect_type = /obj/effect/particle_effect/smoke/sleeping
+4
View File
@@ -290,6 +290,10 @@
return null
if(byond_version < MIN_CLIENT_VERSION) // Too out of date to play at all. Unfortunately, we can't send them a message here.
return null
if(byond_build < config.minimum_client_build)
alert(src, "You are using a byond build which is not supported by this server. Please use a build version of atleast [config.minimum_client_build].", "Incorrect build", "OK")
del(src)
return
if(byond_version < SUGGESTED_CLIENT_VERSION) // Update is suggested, but not required.
to_chat(src,"<span class='userdanger'>Your BYOND client (v: [byond_version]) is out of date. This can cause glitches. We highly suggest you download the latest client from http://www.byond.com/ before playing. </span>")
+1 -1
View File
@@ -29,7 +29,7 @@
R.add_reagent(pick(gunk), 50)
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, rand(1, 2), 0, vent, 0, silent = 1)
smoke.set_up(R, vent, TRUE)
playsound(vent.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
smoke.start(3)
qdel(R)
+1 -2
View File
@@ -409,8 +409,7 @@
var/datum/effect_system/smoke_spread/chem/S = new
var/splat_location = get_turf(target)
var/smoke_amount = round(sqrt(G.seed.potency * 0.1), 1)
S.attach(splat_location)
S.set_up(G.reagents, 2, 0, splat_location)
S.set_up(G.reagents, splat_location)
S.start(smoke_amount)
if(G && G.reagents)
G.reagents.clear_reagents()
+4 -4
View File
@@ -132,13 +132,13 @@ datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/livi
if(D.hand)
if(istype(D.l_hand, /obj/item))
var/obj/item/I = D.l_hand
D.drop_item()
A.put_in_hands(I)
if(D.drop_item())
A.put_in_hands(I)
else
if(istype(D.r_hand, /obj/item))
var/obj/item/I = D.r_hand
D.drop_item()
A.put_in_hands(I)
if(D.drop_item())
A.put_in_hands(I)
D.visible_message("<span class='danger'>[A] has disarmed [D]!</span>", \
"<span class='userdanger'>[A] has disarmed [D]!</span>")
playsound(D, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+2 -2
View File
@@ -246,8 +246,8 @@
syllables = list("hs","zt","kr","st","sh")
/datum/language/diona/get_random_name()
var/new_name = "[pick(list("To Sleep Beneath", "Wind Over", "Embrace of", "Dreams of", "Witnessing", "To Walk Beneath", "Approaching the", "Glimmer of", "The Ripple of", "Colors of", "The Still of", "Silence of", "Gentle Breeze of", "Glistening Waters under", "Child of", "Blessed Plant-ling of", "Grass-Walker of", "Element of", "Spawn of"))]"
new_name += " [pick(list("the Void", "the Sky", "Encroaching Night", "Planetsong", "Starsong", "the Wandering Star", "the Empty Day", "Daybreak", "Nightfall", "the Rain", "the Stars", "the Waves", "Dusk", "Night", "the Wind", "the Summer Wind", "the Blazing Sun", "the Scorching Sun", "Eternal Fields", "the Soothing Plains", "the Undying Fiona", "Mother Nature's Bousum"))]"
var/new_name = "[pick(list("To Sleep Beneath", "Wind Over", "Embrace Of", "Dreams Of", "Witnessing", "To Walk Beneath", "Approaching The", "Glimmer Of", "The Ripple Of", "Colors Of", "The Still Of", "Silence Of", "Gentle Breeze Of", "Glistening Waters Under", "Child Of", "Blessed Plant-Ling Of", "Grass-Walker Of", "Element Of", "Spawn Of"))]"
new_name += " [pick(list("The Void", "The Sky", "Encroaching Night", "Planetsong", "Starsong", "The Wandering Star", "The Empty Day", "Daybreak", "Nightfall", "The Rain", "The Stars", "The Waves", "Dusk", "Night", "The Wind", "The Summer Wind", "The Blazing Sun", "The Scorching Sun", "Eternal Fields", "The Soothing Plains", "The Undying Fiona", "Mother Nature's Bousum"))]"
return new_name
/datum/language/trinary
@@ -684,6 +684,73 @@
//////END POLARIS HAIRSTYLES///////
//////////////////////////////////
//////////////////////
////Ume hairstyles////
//////////////////////
/datum/sprite_accessory/hair/eighties_ponytail
name = "80's ponytail"
icon_state = "80_ponytail"
/datum/sprite_accessory/hair/eighties_ponytailalt
name = "80's ponytail alt"
icon_state = "80_ponytail_alt"
/datum/sprite_accessory/hair/big_bow
name = "Big bow"
icon_state = "big_bow"
/datum/sprite_accessory/hair/buns
name = "Buns"
icon_state = "buns"
/datum/sprite_accessory/hair/himecut_long
name = "Himecut long"
icon_state = "himecut_long"
/datum/sprite_accessory/hair/himecut_long_ponytail
name = "Himecut long ponytail"
icon_state = "himecut_long_ponytail"
/datum/sprite_accessory/hair/himecut_ponytail
name = "Himecut ponytail"
icon_state = "himecut_ponytail"
/datum/sprite_accessory/hair/ombre_twintails
name = "Ombre twintails"
icon_state = "ombre_twintails"
/datum/sprite_accessory/hair/ombre_twintails_alt
name = "Ombre twintails alt"
icon_state = "ombre_twintails_alt"
/datum/sprite_accessory/hair/sailor
name = "Sailor"
icon_state = "sailor"
/datum/sprite_accessory/hair/amanita_short
name = "Amanita short"
icon_state = "amanita_short"
/datum/sprite_accessory/hair/long_curls
name = "Long curls"
icon_state = "long_curls"
/datum/sprite_accessory/hair/long_curls_alt
name = "Long curls alt"
icon_state = "long_curls_alt"
/datum/sprite_accessory/hair/long_buns
name = "Long buns"
icon_state = "long_buns"
/datum/sprite_accessory/hair/low_twins
name = "Low twins"
icon_state = "low_twins"
///Ume hairs end here///
///Fluff HairStyles//
/datum/sprite_accessory/hair/fluff/pinapple_fluff_hair //Pineapple Salad hair fluff its for a slime..has to go under human
name = "Sasook Hair"
@@ -265,14 +265,12 @@ datum/chemical_reaction/flash_powder
/datum/chemical_reaction/smoke/on_reaction(datum/reagents/holder, created_volume)
for(var/f_reagent in forbidden_reagents)
if(holder.has_reagent(f_reagent))
holder.remove_reagent(f_reagent, holder.get_reagent_amount(f_reagent))
holder.del_reagent(f_reagent)
var/location = get_turf(holder.my_atom)
var/datum/effect_system/smoke_spread/chem/S = new
S.attach(location)
playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
if(S)
S.set_up(holder, 10, 0, location)
S.set_up(holder, location)
if(created_volume < 5)
S.start(1)
if(created_volume >=5 && created_volume < 10)
+3 -3
View File
@@ -318,7 +318,7 @@
R.add_reagent(chosenchem , 15)
investigate_log("Experimentor has released [chosenchem] smoke.", "experimentor")
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, 1, 0, src, 0, silent = 1)
smoke.set_up(R, src, TRUE)
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
smoke.start()
qdel(R)
@@ -330,7 +330,7 @@
R.my_atom = src
R.add_reagent(chosenchem , 15)
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, 1, 0, src, 0, silent = 1)
smoke.set_up(R, src, TRUE)
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
smoke.start()
qdel(R)
@@ -417,7 +417,7 @@
R.add_reagent("frostoil" , 15)
investigate_log("Experimentor has released frostoil gas.", "experimentor")
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, 1, 0, src, 0, silent = 1)
smoke.set_up(R, src, TRUE)
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
smoke.start()
qdel(R)
+3
View File
@@ -7,6 +7,9 @@ ADMIN_LEGACY_SYSTEM
## Add a # infront of this if you want to use the SQL based banning system. The legacy systems use the files in the data folder. You need to set up your database to use the SQL based system.
BAN_LEGACY_SYSTEM
## Add a # infront of this to unlimit the builds used to play. Advised is to keep it atleast 1421 due to the middle mouse button locking exploit
MINIMUM_CLIENT_BUILD 1421
## Add a # here if you wish to use the setup where jobs have more access. This is intended for servers with low populations - where there are not enough players to fill all roles, so players need to do more than just one job. Also for servers where they don't want people to hide in their own departments.
JOBS_HAVE_MINIMAL_ACCESS
+29
View File
@@ -56,6 +56,35 @@
-->
<div class="commit sansserif">
<h2 class="date">22 March 2019</h2>
<h3 class="author">Arkatos updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Updated Tarot Deck description in Wizard's spellbook, credits to /tg/station13</li>
</ul>
<h3 class="author">Fox McCloud updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Smoke now has much better sprites and has a new area of denial behavior</li>
</ul>
<h3 class="author">Mitchs98 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixed Dionae names so "Embrace of Starsong (as Embrace Of Starsong)" will no longer happen when renaming ID's at a ID Console.</li>
</ul>
<h3 class="author">Quantum-M updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Vox Cargo Crate - Contains two vox tanks and two vox masks. Costs 50 cargo points.</li>
<li class="rscadd">Plasmaman Cargo Crate - Contains a Orange plasmaman space suit and helmet, along with a breathing mask and a emergency plasmaman tank. Costs 75 cargo points and requires EVA access.</li>
</ul>
<h2 class="date">20 March 2019</h2>
<h3 class="author">Dave-TH updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Krav Maga gloves can no longer steal the unstealable.</li>
</ul>
<h3 class="author">farie82 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixed the middle mousebutton locking exploit</li>
</ul>
<h2 class="date">17 March 2019</h2>
<h3 class="author">AffectedArc07 and Alonefromhell updated:</h3>
<ul class="changes bgimages16">
+19
View File
@@ -9390,3 +9390,22 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- tweak: Adds a confirmation to the start now verb. Make it ansari proof
- bugfix: The invisible bumping into something should be fixed now
- bugfix: Fixes the atmos bug
2019-03-20:
Dave-TH:
- bugfix: Krav Maga gloves can no longer steal the unstealable.
farie82:
- bugfix: Fixed the middle mousebutton locking exploit
2019-03-22:
Arkatos:
- tweak: Updated Tarot Deck description in Wizard's spellbook, credits to /tg/station13
Fox McCloud:
- rscadd: Smoke now has much better sprites and has a new area of denial behavior
Mitchs98:
- bugfix: Fixed Dionae names so "Embrace of Starsong (as Embrace Of Starsong)" will
no longer happen when renaming ID's at a ID Console.
Quantum-M:
- rscadd: Vox Cargo Crate - Contains two vox tanks and two vox masks. Costs 50 cargo
points.
- rscadd: Plasmaman Cargo Crate - Contains a Orange plasmaman space suit and helmet,
along with a breathing mask and a emergency plasmaman tank. Costs 75 cargo points
and requires EVA access.
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 69 KiB

+1
View File
@@ -786,6 +786,7 @@
#include "code\game\objects\effects\decals\Cleanable\robots.dm"
#include "code\game\objects\effects\decals\Cleanable\tracks.dm"
#include "code\game\objects\effects\effect_system\effect_system.dm"
#include "code\game\objects\effects\effect_system\effects_chem_smoke.dm"
#include "code\game\objects\effects\effect_system\effects_explosion.dm"
#include "code\game\objects\effects\effect_system\effects_foam.dm"
#include "code\game\objects\effects\effect_system\effects_other.dm"