mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
Merge remote-tracking branch 'upstream/master' into goonchem-reagent-temperature
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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>")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user