Merge branch 'master' into wound-port

This commit is contained in:
Timothy Teakettle
2020-07-21 01:10:51 +01:00
committed by GitHub
105 changed files with 695 additions and 263 deletions
+1 -1
View File
@@ -1453,7 +1453,7 @@
/area/ruin/space/has_grav/hotel/guestroom/room_2)
"eu" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/wood,
/area/ruin/space/has_grav/hotel/guestroom/room_2)
"ev" = (
@@ -5371,7 +5371,7 @@
/area/awaymission/research/interior/dorm)
"kS" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/plasteel,
/area/awaymission/research/interior/dorm)
"kT" = (
+2 -2
View File
@@ -350,7 +350,7 @@
/area/security/prison)
"aaV" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/plasteel,
/area/security/prison)
"aaW" = (
@@ -54870,7 +54870,7 @@
/area/engine/atmos)
"hgO" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice{
/obj/item/storage/box/dice{
pixel_x = 4;
pixel_y = 4
},
@@ -20379,7 +20379,7 @@
/area/security/prison)
"aND" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -21075,7 +21075,7 @@
/area/crew_quarters/bar/atrium)
"aOJ" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -73504,7 +73504,7 @@
/area/library)
"ctL" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/machinery/computer/security/telescreen/entertainment{
pixel_y = -32
},
@@ -95510,7 +95510,7 @@
/area/medical/medbay/central)
"deG" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/structure/sign/poster/official/help_others{
pixel_x = -32
},
@@ -116948,7 +116948,7 @@
/area/library/abandoned)
"dQx" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/carpet,
/area/library/abandoned)
"dQy" = (
@@ -123190,7 +123190,7 @@
/area/hallway/secondary/exit/departure_lounge)
"ecH" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+4 -4
View File
@@ -922,7 +922,7 @@
/area/security/prison)
"acb" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/plasteel,
/area/security/prison)
"acc" = (
@@ -15603,7 +15603,7 @@
/area/crew_quarters/dorms)
"aDZ" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"aEa" = (
@@ -21182,7 +21182,7 @@
/area/crew_quarters/locker)
"aPI" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aPJ" = (
@@ -42467,7 +42467,7 @@
dir = 10
},
/obj/structure/table/wood/poker,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/wood,
/area/crew_quarters/bar)
"bFt" = (
@@ -22059,7 +22059,7 @@
/area/hallway/primary/starboard)
"aJa" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/machinery/firealarm{
dir = 4;
pixel_x = -24
@@ -26945,7 +26945,7 @@
"aTf" = (
/obj/structure/table/wood,
/obj/item/clipboard,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -2190,7 +2190,7 @@
/turf/open/floor/plasteel/dark,
/area/security/prison)
"afp" = (
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/structure/table,
/turf/open/floor/plasteel/dark,
/area/security/prison)
@@ -10736,7 +10736,7 @@
/area/crew_quarters/dorms)
"ayo" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"ayq" = (
+2 -2
View File
@@ -8429,7 +8429,7 @@
/area/centcom/ferry)
"tx" = (
/obj/structure/table/wood,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/turf/open/floor/plasteel/grimy,
/area/centcom/ferry)
"ty" = (
@@ -10217,7 +10217,7 @@
/area/wizard_station)
"xy" = (
/obj/structure/table/wood/fancy,
/obj/item/storage/pill_bottle/dice{
/obj/item/storage/box/dice{
icon_state = "magicdicebag"
},
/turf/open/floor/carpet,
+1 -1
View File
@@ -307,7 +307,7 @@
"D" = (
/obj/structure/table/reinforced,
/obj/item/folder,
/obj/item/storage/pill_bottle/dice,
/obj/item/storage/box/dice,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
+1 -1
View File
@@ -237,7 +237,7 @@
/area/shuttle/arrival)
"C" = (
/obj/structure/table/reinforced,
/obj/item/storage/pill_bottle/dice{
/obj/item/storage/box/dice{
pixel_x = -2;
pixel_y = 8
},
+1
View File
@@ -78,6 +78,7 @@
#define ADMIN_PUNISHMENT_BLEED ":B:loodless"
#define ADMIN_PUNISHMENT_SCARIFY "Scarify"
#define ADMIN_PUNISHMENT_PICKLE "Pickle-ify"
#define ADMIN_PUNISHMENT_FRY "Fry"
#define AHELP_ACTIVE 1
#define AHELP_CLOSED 2
+1 -1
View File
@@ -216,7 +216,7 @@ GLOBAL_LIST_INIT(pointed_types, typecacheof(list(
#define isgun(A) (istype(A, /obj/item/gun))
#define isfood(A) (istype(A, /obj/item/reagent_containers/food))
#define isfood(A) (istype(A, /obj/item/reagent_containers/food/snacks))
//Assemblies
#define isassembly(O) (istype(O, /obj/item/assembly))
-1
View File
@@ -1437,7 +1437,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/obj/item/reagent_containers/food/snacks/grown,
/obj/item/reagent_containers/food/snacks/grown/mushroom,
/obj/item/reagent_containers/food/snacks/grown/nettle, // base type
/obj/item/reagent_containers/food/snacks/deepfryholder,
/obj/item/reagent_containers/food/snacks/grown/shell,
/obj/item/reagent_containers/food/snacks/clothing,
/obj/item/reagent_containers/food/snacks/store/bread
+52 -1
View File
@@ -15,6 +15,8 @@ SUBSYSTEM_DEF(vote)
var/vote_system = PLURALITY_VOTING
var/question = null
var/list/choices = list()
/// List of choice = object for statclick objects for statpanel voting
var/list/choice_statclicks = list()
var/list/scores = list()
var/list/choice_descs = list() // optional descriptions
var/list/voted = list()
@@ -47,7 +49,33 @@ SUBSYSTEM_DEF(vote)
client_popup.open(0)
next_pop = world.time+VOTE_COOLDOWN
/**
* Renders a statpanel. Directly uses statpanel/stat calls since this is called from base of mob/Stat().
*/
/datum/controller/subsystem/vote/proc/render_statpanel(mob/M)
if(!mode) // check if vote is running
return
if(!statpanel("Status")) // don't bother if they're not focused on this panel
return
var/static/list/supported = list(PLURALITY_VOTING, APPROVAL_VOTING)
stat("Vote active!", "There is currently a vote running. Question: [question]")
if(!(vote_system in supported))
stat("<STATPANEL VOTING DISABLED>", "The current vote system is not supported by statpanel rendering. Please vote manually by opening the vote popup using the action button or chat link.")
return
stat("Time Left:", "[round(end_time - world.time)] seconds")
stat(null, null)
stat("Choices:", null)
stat(null, null)
for(var/i in 1 to choice_statclicks.len)
var/choice = choice_statclicks[i]
var/ivotedforthis = FALSE
switch(vote_system)
if(APPROVAL_VOTING)
ivotedforthis = voted[usr.ckey] && (i in voted[usr.ckey])
if(PLURALITY_VOTING)
ivotedforthis = voted[usr.ckey] == i
stat(ivotedforthis? "\[X\]" : "\[ \]", choice_statclicks[choice])
stat(null, null)
/datum/controller/subsystem/vote/proc/reset()
initiator = null
@@ -59,9 +87,26 @@ SUBSYSTEM_DEF(vote)
voted.Cut()
voting.Cut()
scores.Cut()
cleanup_statclicks()
display_votes = initial(display_votes) //CIT CHANGE - obfuscated votes
remove_action_buttons()
/datum/controller/subsystem/vote/proc/cleanup_statclicks()
for(var/choice in choice_statclicks)
qdel(choice_statclicks[choice])
choice_statclicks = list()
/obj/effect/statclick/vote
name = "ERROR"
var/choice
/obj/effect/statclick/vote/Click()
SSvote.submit_vote(choice)
/obj/effect/statclick/vote/New(loc, choice, name)
src.choice = choice
src.name = name
/datum/controller/subsystem/vote/proc/get_result()
//get the highest number of votes
var/greatest_votes = 0
@@ -536,6 +581,12 @@ SUBSYSTEM_DEF(vote)
vp = CONFIG_GET(number/vote_period)
to_chat(world, "\n<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=[REF(src)]'>here</a> to place your votes.\nYou have [DisplayTimeText(vp)] to vote.</font>")
end_time = started_time+vp
// generate statclick list
cleanup_statclicks()
for(var/i in 1 to choices.len)
var/choice = choices[i]
choice_statclicks[choice] = new /obj/effect/statclick/vote(null, i, choice)
//
for(var/c in GLOB.clients)
SEND_SOUND(c, sound('sound/misc/server-ready.ogg'))
var/client/C = c
+2 -1
View File
@@ -51,7 +51,8 @@ Behavior that's still missing from this component that original food items had t
var/atom/owner = parent
owner.create_reagents(volume, INJECTABLE)
if(!owner.reagents) //we don't want to override what's in the item if it possibly contains reagents already
owner.create_reagents(volume, INJECTABLE)
if(initial_reagents)
for(var/rid in initial_reagents)
+107
View File
@@ -0,0 +1,107 @@
/*!
This component essentially encapsulates frying and utilizes the edible component
This means fried items can work like regular ones, and generally the code is far less messy
*/
/datum/component/fried
var/fry_power //how powerfully was this item fried
var/atom/owner //the atom it is owned by
var/stored_name //name of the owner when the component was first added
var/frying_examine_text = "the coders messed frying code up, report this!"
/datum/component/fried/Initialize(frying_power)
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine)
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/restore) //basically, unfry people who are being cleaned (badmemes fried someone)
fry_power = frying_power
owner = parent
stored_name = owner.name
setup_fried_item()
//some stuff to do with the contents of fried junk
GLOBAL_VAR_INIT(frying_hardmode, TRUE)
GLOBAL_VAR_INIT(frying_bad_chem_add_volume, TRUE)
GLOBAL_LIST_INIT(frying_bad_chems, list(
/datum/reagent/toxin/bad_food = 1,
/datum/reagent/toxin = 1,
/datum/reagent/lithium = 1,
/datum/reagent/mercury = 1,
))
/datum/component/fried/proc/examine(datum/source, mob/user, list/examine_list)
examine_list += "[parent] has been [frying_examine_text]"
/datum/component/fried/proc/setup_fried_item() //sets the name, colour and examine text and edibility up
//first we do some checks depending on the type of item being fried
var/list/fried_tastes = list("crispy")
var/fried_foodtypes = FRIED
var/fried_junk = FALSE
if(!isfood(owner) && GLOB.frying_hardmode && GLOB.frying_bad_chems.len && !owner.reagents) //you fried some junk, it's not gonna taste great
fried_junk = TRUE
fried_foodtypes |= TOXIC // junk tastes toxic too
else
if(isfood(owner))
var/obj/item/reagent_containers/food/snacks/food_item = owner
fried_tastes += food_item.tastes
fried_foodtypes |= food_item.foodtype
var/fried_eat_time = 0
if(isturf(owner))
fried_eat_time = 30 //we want turfs to be eaten slowly
var/colour_priority = FIXED_COLOUR_PRIORITY
if(ismob(owner))
colour_priority = WASHABLE_COLOUR_PRIORITY //badmins fried someone and we want to let them wash the fry colour off
//lets heavily hint at how to undo their frying
to_chat(owner, "<span class='warning'>You've been coated in hot cooking oil! You should probably go wash it off at the showers.</span>")
else
owner.AddComponent(/datum/component/edible, foodtypes = fried_tastes, tastes = fried_tastes, eat_time = fried_eat_time) //we don't want mobs to get the edible component
switch(fry_power)
if(0 to 15)
owner.name = "lightly fried [owner.name]"
owner.add_atom_colour(rgb(166,103,54), colour_priority)
frying_examine_text = "lightly fried"
if(16 to 49)
owner.name = "fried [owner.name]"
owner.add_atom_colour(rgb(103,63,24), colour_priority)
frying_examine_text = "moderately fried"
if(50 to 59)
owner.name = "deep fried [owner.name]"
owner.add_atom_colour(rgb(63,23,4), colour_priority)
frying_examine_text = "deeply fried"
else
owner.name = "the physical manifestation of fried foods"
owner.add_atom_colour(rgb(33,19,9), colour_priority)
frying_examine_text = "incomprehensibly fried to a crisp"
//adding the edible component gives it reagents meaning we can now add the bad frying reagents if it's junk
if(fried_junk && owner.reagents) //check again just incase
var/R = rand(1, GLOB.frying_bad_chems.len)
var/bad_chem = GLOB.frying_bad_chems[R]
var/bad_chem_amount = max(4,GLOB.frying_bad_chems[bad_chem] * (fry_power/12.5)) //4u of bad chem reached when deeply fried
owner.reagents.add_reagent(bad_chem, bad_chem_amount)
/datum/component/fried/proc/restore_name() //restore somethings name
//we do string manipulation and not restoring their name to real_name because some things hide your real_name and we want to maintain that
if(copytext(owner.name,1,14) == "lightly fried ")
owner.name = copytext(owner.name,15)
else
if(copytext(owner.name,1,6) == "fried ")
owner.name = copytext(owner.name,7)
else
if(copytext(owner.name,1,11) == "deep fried ")
owner.name = copytext(owner.name, 12)
else
if(owner.name == "the physical manifestation of fried foods") //if the name is still this, their name hasn't changed, so we can safely restore their stored name
owner.name = stored_name
/datum/component/fried/proc/restore() //restore a fried mob to being not-fried
if(ismob(owner))
//restore the name, the colour should wash off itself, and then remove the component
restore_name()
RemoveComponent()
+18
View File
@@ -452,3 +452,21 @@ GLOBAL_LIST_EMPTY(family_heirlooms)
mob_trait = TRAIT_COLDBLOODED
gain_text = "<span class='notice'>You feel cold-blooded.</span>"
lose_text = "<span class='notice'>You feel more warm-blooded.</span>"
/datum/quirk/monophobia
name = "Monophobia"
desc = "You will become increasingly stressed when not in company of others, triggering panic reactions ranging from sickness to heart attacks."
value = -3 // Might change it to 4.
gain_text = "<span class='danger'>You feel really lonely...</span>"
lose_text = "<span class='notice'>You feel like you could be safe on your own.</span>"
medical_record_text = "Patient feels sick and distressed when not around other people, leading to potentially lethal levels of stress."
/datum/quirk/monophobia/post_add()
. = ..()
var/mob/living/carbon/human/H = quirk_holder
H.gain_trauma(/datum/brain_trauma/severe/monophobia, TRAUMA_RESILIENCE_ABSOLUTE)
/datum/quirk/monophobia/remove()
. = ..()
var/mob/living/carbon/human/H = quirk_holder
H?.cure_trauma_type(/datum/brain_trauma/severe/monophobia, TRAUMA_RESILIENCE_ABSOLUTE)
+6 -1
View File
@@ -516,7 +516,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
used_environ += amount
/area/Entered(atom/movable/M)
/area/Entered(atom/movable/M, atom/OldLoc)
set waitfor = FALSE
SEND_SIGNAL(src, COMSIG_AREA_ENTERED, M)
SEND_SIGNAL(M, COMSIG_ENTER_AREA, src) //The atom that enters the area
@@ -524,6 +524,11 @@ GLOBAL_LIST_EMPTY(teleportlocs)
return
var/mob/living/L = M
var/turf/oldTurf = get_turf(OldLoc)
var/area/A = oldTurf?.loc
if(A && (A.has_gravity != has_gravity))
L.update_gravity(L.mob_has_gravity())
if(!L.ckey)
return
+2
View File
@@ -543,6 +543,8 @@
/datum/game_mode/proc/get_remaining_days(client/C)
if(!C)
return 0
if(C.prefs?.db_flags & DB_FLAG_EXEMPT)
return 0
if(!CONFIG_GET(flag/use_age_restriction_for_jobs))
return 0
if(!isnum(C.player_age))
+31
View File
@@ -845,6 +845,37 @@ GLOBAL_LIST_EMPTY(possible_items_special)
/datum/objective/destroy/internal
var/stolen = FALSE //Have we already eliminated this target?
/datum/objective/steal_five_of_type
name = "steal five of"
explanation_text = "Steal at least five items!"
var/list/wanted_items = list(/obj/item)
/datum/objective/steal_five_of_type/New()
..()
wanted_items = typecacheof(wanted_items)
/datum/objective/steal_five_of_type/summon_guns
name = "steal guns"
explanation_text = "Steal at least five guns!"
wanted_items = list(/obj/item/gun)
/datum/objective/steal_five_of_type/summon_magic
name = "steal magic"
explanation_text = "Steal at least five magical artefacts!"
wanted_items = list(/obj/item/spellbook, /obj/item/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/scrying, /obj/item/antag_spawner/contract, /obj/item/necromantic_stone)
/datum/objective/steal_five_of_type/check_completion()
var/list/datum/mind/owners = get_owners()
var/stolen_count = 0
for(var/datum/mind/M in owners)
if(!isliving(M.current))
continue
var/list/all_items = M.current.GetAllContents() //this should get things in cheesewheels, books, etc.
for(var/obj/I in all_items) //Check for wanted items
if(is_type_in_typecache(I, wanted_items))
stolen_count++
return stolen_count >= 5
//Created by admin tools
/datum/objective/custom
name = "custom"
+5 -4
View File
@@ -18,9 +18,6 @@
/obj/machinery/turnstile/CanAtmosPass(turf/T)
return TRUE
/obj/machinery/turnstile/bullet_act(obj/item/projectile/P, def_zone)
return BULLET_ACT_FORCE_PIERCE //Pass through!
/obj/machinery/turnstile/proc/allowed_access(var/mob/B)
if(B.pulledby && ismob(B.pulledby))
return allowed(B.pulledby) | allowed(B)
@@ -28,6 +25,8 @@
return allowed(B)
/obj/machinery/turnstile/CanPass(atom/movable/AM, turf/T)
if(istype(AM, /obj/item/projectile))
return TRUE
if(ismob(AM))
var/mob/B = AM
if(isliving(AM))
@@ -60,6 +59,8 @@
return FALSE
/obj/machinery/turnstile/CheckExit(atom/movable/AM as mob|obj, target)
if(istype(AM, /obj/item/projectile))
return TRUE
if(isliving(AM))
var/mob/living/M = AM
var/outdir = dir
@@ -81,4 +82,4 @@
M.last_bumped = world.time
return canexit
else
return TRUE
return TRUE
@@ -466,7 +466,7 @@
/obj/effect/spawner/lootdrop/cigars_cases/no_turf = 2,
/obj/effect/spawner/lootdrop/space_cash/no_turf = 5,
/obj/item/reagent_containers/food/snacks/grown/cannabis = 5,
/obj/item/storage/pill_bottle/dice = 5,
/obj/item/storage/box/dice = 5,
/obj/item/toy/cards/deck = 5,
/obj/effect/spawner/lootdrop/druggie_pill/no_turf = 5
)
@@ -485,7 +485,7 @@
/obj/effect/spawner/lootdrop/cig_packs/no_turf = 10,
/obj/effect/spawner/lootdrop/cigars_cases/no_turf = 5,
/obj/item/reagent_containers/food/snacks/grown/cannabis = 5,
/obj/item/storage/pill_bottle/dice = 5,
/obj/item/storage/box/dice = 5,
/obj/item/toy/cards/deck = 5,
/obj/effect/spawner/lootdrop/druggie_pill/no_turf = 5,
/obj/item/kitchen/knife = 5,
+1
View File
@@ -69,6 +69,7 @@
if(prob(50))
to_chat(mover, "<span class='danger'>You get stuck in \the [src] for a moment.</span>")
return FALSE
return TRUE
else if(istype(mover, /obj/item/projectile))
return prob(30)
+7 -5
View File
@@ -26,6 +26,7 @@ RSF
/obj/item/rsf/cyborg
matter = 30
/obj/item/rsf/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/rcd_ammo))
if((matter + 10) > 30)
@@ -64,15 +65,16 @@ RSF
return
if (!(istype(A, /obj/structure/table) || isfloorturf(A)))
return
if(matter < 1)
to_chat(user, "<span class='warning'>\The [src] doesn't have enough matter left.</span>")
return
if(iscyborg(user))
matter = 30 //borgs dont actually use the matter so this is mostly just so it doesnt fail the next check incase of shennanigans
var/mob/living/silicon/robot/R = user
if(!R.cell || R.cell.charge < 200)
to_chat(user, "<span class='warning'>You do not have enough power to use [src].</span>")
return
if(matter < 1)
to_chat(user, "<span class='warning'>\The [src] doesn't have enough matter left.</span>")
return
var/turf/T = get_turf(A)
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
@@ -91,7 +93,7 @@ RSF
use_matter(50, user)
if(4)
to_chat(user, "Dispensing Dice Pack...")
new /obj/item/storage/pill_bottle/dice(T)
new /obj/item/storage/box/dice(T)
use_matter(200, user)
if(5)
to_chat(user, "Dispensing Cigarette...")
+2 -2
View File
@@ -183,7 +183,7 @@
/obj/item/airlock_painter/decal/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "decal_painter", name, 500, 400, master_ui, state)
ui = new(user, src, ui_key, "DecalPainter", name, 500, 400, master_ui, state)
ui.open()
/obj/item/airlock_painter/decal/ui_data(mob/user)
@@ -233,4 +233,4 @@
/obj/item/airlock_painter/decal/debug/Initialize()
. = ..()
ink = new /obj/item/toner/extreme(src)
ink = new /obj/item/toner/extreme(src)
@@ -18,6 +18,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_BELT
rad_flags = RAD_NO_CONTAMINATE
custom_materials = list(/datum/material/iron = 150, /datum/material/glass = 150)
var/grace = RAD_GRACE_PERIOD
+3 -3
View File
@@ -1,10 +1,10 @@
/obj/item/storage/pill_bottle/dice
/obj/item/storage/box/dice
name = "bag of dice"
desc = "Contains all the luck you'll ever need."
icon = 'icons/obj/dice.dmi'
icon_state = "dicebag"
/obj/item/storage/pill_bottle/dice/Initialize()
/obj/item/storage/box/dice/Initialize()
. = ..()
var/special_die = pick("1","2","fudge","space","00","8bd20","4dd6","100")
if(special_die == "1")
@@ -30,7 +30,7 @@
if(special_die == "100")
new /obj/item/dice/d100(src)
/obj/item/storage/pill_bottle/dice/suicide_act(mob/user)
/obj/item/storage/box/dice/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is gambling with death! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return (OXYLOSS)
+6
View File
@@ -446,6 +446,12 @@ obj/item/shield/riot/bullet_proof
return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT
return ..()
/obj/item/shield/energy/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction)
if((attack_type & ATTACK_TYPE_PROJECTILE) && is_energy_reflectable_projectile(object))
block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT
return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT
return ..()
/obj/item/shield/energy/attack_self(mob/living/carbon/human/user)
if(clumsy_check && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
to_chat(user, "<span class='userdanger'>You beat yourself in the head with [src]!</span>")
+1
View File
@@ -11,6 +11,7 @@
w_class = WEIGHT_CLASS_TINY
full_w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
grind_results = list(/datum/reagent/cellulose = 10)
var/value = 0
/obj/item/stack/spacecash/Initialize()
+62
View File
@@ -204,6 +204,16 @@
/obj/item/stack/medical/suture/one
amount = 1
/obj/item/stack/medical/suture/medicated
name = "medicated suture"
icon_state = "suture_purp"
desc = "A suture infused with drugs that speed up wound healing of the treated laceration."
heal_brute = 15
grind_results = list(/datum/reagent/medicine/polypyr = 2)
/obj/item/stack/medical/suture/one
amount = 1
/obj/item/stack/medical/suture/heal(mob/living/M, mob/user)
. = ..()
if(M.stat == DEAD)
@@ -274,12 +284,30 @@
/obj/item/stack/medical/mesh/one
amount = 1
/obj/item/stack/medical/mesh/advanced
name = "advanced regenerative mesh"
desc = "An advanced mesh made with aloe extracts and sterilizing chemicals, used to treat burns."
gender = PLURAL
singular_name = "advanced regenerative mesh"
icon_state = "aloe_mesh"
heal_burn = 15
grind_results = list(/datum/reagent/consumable/aloejuice = 1)
/obj/item/stack/medical/mesh/advanced/one
amount = 1
/obj/item/stack/medical/mesh/Initialize()
. = ..()
if(amount == max_amount) //only seal full mesh packs
is_open = FALSE
update_icon()
/obj/item/stack/medical/mesh/advanced/update_icon_state()
if(!is_open)
icon_state = "aloe_mesh_closed"
else
return ..()
/obj/item/stack/medical/mesh/update_icon_state()
if(!is_open)
icon_state = "regen_mesh_closed"
@@ -368,3 +396,37 @@
custom_materials = null
is_cyborg = 1
cost = 250
/obj/item/stack/medical/aloe
name = "aloe cream"
desc = "A healing paste you can apply on wounds."
icon_state = "aloe_paste"
self_delay = 20
other_delay = 10
novariants = TRUE
amount = 20
max_amount = 20
var/heal = 3
grind_results = list(/datum/reagent/consumable/aloejuice = 1)
/obj/item/stack/medical/aloe/heal(mob/living/M, mob/user)
. = ..()
if(M.stat == DEAD)
to_chat(user, "<span class='warning'>[M] is dead! You can not help [M.p_them()].</span>")
return FALSE
if(iscarbon(M))
return heal_carbon(M, user, heal, heal)
if(isanimal(M))
var/mob/living/simple_animal/critter = M
if (!(critter.healable))
to_chat(user, "<span class='warning'>You cannot use \the [src] on [M]!</span>")
return FALSE
else if (critter.health == critter.maxHealth)
to_chat(user, "<span class='notice'>[M] is at full health.</span>")
return FALSE
user.visible_message("<span class='green'>[user] applies \the [src] on [M].</span>", "<span class='green'>You apply \the [src] on [M].</span>")
M.heal_bodypart_damage(heal, heal)
return TRUE
to_chat(user, "<span class='warning'>You can't heal [M] with the \the [src]!</span>")
@@ -288,7 +288,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
merge_type = /obj/item/stack/sheet/mineral/wood
novariants = TRUE
material_type = /datum/material/wood
grind_results = list(/datum/reagent/carbon = 20)
grind_results = list(/datum/reagent/cellulose = 20)
walltype = /turf/closed/wall/mineral/wood
/obj/item/stack/sheet/mineral/wood/attackby(obj/item/W, mob/user, params) // NOTE: sheet_types.dm is where the WOOD stack lives. Maybe move this over there.
@@ -350,7 +350,7 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/mineral/bamboo
grind_results = list(/datum/reagent/carbon = 5)
grind_results = list(/datum/reagent/cellulose = 10)
material_type = /datum/material/bamboo
/obj/item/stack/sheet/mineral/bamboo/get_main_recipes()
+1
View File
@@ -14,6 +14,7 @@
max_amount = 5
resistance_flags = FLAMMABLE
splint_factor = 0.8
grind_results = list(/datum/reagent/cellulose = 5)
var/list/conferred_embed = EMBED_HARMLESS
var/overwrite_existing = FALSE
+1
View File
@@ -35,6 +35,7 @@
amount = 25
max_amount = 25
resistance_flags = FLAMMABLE
grind_results = list(/datum/reagent/cellulose = 5)
/obj/item/stack/packageWrap/suicide_act(mob/living/user)
user.visible_message("<span class='suicide'>[user] begins wrapping [user.p_them()]self in \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -506,7 +506,6 @@
new /obj/item/surgicaldrill/advanced(src)
new /obj/item/bonesetter(src)
new /obj/item/surgical_drapes(src)
new /obj/item/storage/firstaid/tactical(src)
new /obj/item/clothing/suit/straight_jacket(src)
new /obj/item/clothing/mask/muzzle(src)
new /obj/item/mmi/syndie(src)
@@ -245,6 +245,25 @@
STR.click_gather = TRUE
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/dice))
/obj/item/storage/pill_bottle/AltClick(mob/living/carbon/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
if(!length(user.get_empty_held_indexes()))
to_chat(user, "<span class='warning'>Your hands are full!</span>")
return
var/obj/item/reagent_containers/pill/P = locate() in contents
if(P)
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_TAKE, P, user)
if(!user.put_in_hands(P))
P.forceMove(user.drop_location()) // make sure it's not stuck in the user if the put in hands somehow fails
to_chat(user, "<span class='warning'>[P] drops to the floor!</span>")
else
to_chat(user, "<span class='notice'>You take \a [P] out of [src].</span>")
else
to_chat(user, "<span class='notice'>There are no pills left in the bottle.</span>")
return TRUE
/obj/item/storage/pill_bottle/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is trying to get the cap off [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return (TOXLOSS)
+13 -4
View File
@@ -133,10 +133,13 @@
else
to_chat(user, "<span class='warning'>The plating is going to need some support! Place metal rods first.</span>")
/turf/open/space/Entered(atom/movable/A)
..()
if ((!(A) || src != A.loc))
return
/turf/open/space/Entered(atom/movable/A, atom/OldLoc)
. = ..()
var/turf/old = get_turf(OldLoc)
if(!isspaceturf(old) && ismob(A))
var/mob/M = A
M.update_gravity(M.mob_has_gravity())
if(destination_z && destination_x && destination_y && !(A.pulledby || !A.can_be_z_moved))
var/tx = destination_x
@@ -170,6 +173,12 @@
stoplag()//Let a diagonal move finish, if necessary
A.newtonian_move(A.inertia_dir)
/turf/open/space/Exited(atom/movable/AM, atom/OldLoc)
. = ..()
var/turf/old = get_turf(OldLoc)
if(!isspaceturf(old) && ismob(AM))
var/mob/M = AM
M.update_gravity(M.mob_has_gravity())
/turf/open/space/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
+2 -2
View File
@@ -666,8 +666,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
obj_count_finished = select_refs
var/n = 0
for(var/i in found)
if(++n == 20000)
text_list += "<br><font color='red'><b>TRUNCATED - 20000 OBJECT LIMIT HIT</b></font>"
if(++n == 2500)
text_list += "<br><font color='red'><b>TRUNCATED - 2500 OBJECT LIMIT HIT</b></font>"
SDQL_print(i, text_list, print_nulls)
select_refs[REF(i)] = TRUE
SDQL2_TICK_CHECK
+20 -2
View File
@@ -1269,7 +1269,23 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
if(!check_rights(R_ADMIN) || !check_rights(R_FUN))
return
var/list/punishment_list = list(ADMIN_PUNISHMENT_PIE, ADMIN_PUNISHMENT_CUSTOM_PIE, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_SUPPLYPOD_QUICK, ADMIN_PUNISHMENT_SUPPLYPOD, ADMIN_PUNISHMENT_MAZING, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_CRACK, ADMIN_PUNISHMENT_BLEED, ADMIN_PUNISHMENT_SCARIFY, ADMIN_PUNISHMENT_PICKLE)
var/list/punishment_list = list(ADMIN_PUNISHMENT_PIE,
ADMIN_PUNISHMENT_CUSTOM_PIE,
ADMIN_PUNISHMENT_FIREBALL,
ADMIN_PUNISHMENT_LIGHTNING,
ADMIN_PUNISHMENT_BRAINDAMAGE,
ADMIN_PUNISHMENT_BSA,
ADMIN_PUNISHMENT_GIB,
ADMIN_PUNISHMENT_SUPPLYPOD_QUICK,
ADMIN_PUNISHMENT_SUPPLYPOD,
ADMIN_PUNISHMENT_MAZING,
ADMIN_PUNISHMENT_ROD,
ADMIN_PUNISHMENT_PICKLE,
ADMIN_PUNISHMENT_FRY,
ADMIN_PUNISHMENT_CRACK,
ADMIN_PUNISHMENT_BLEED,
ADMIN_PUNISHMENT_SCARIFY)
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list
@@ -1376,7 +1392,9 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
to_chat(C, "<span class='warning'>You feel your body grow jaded and torn...</span>")
if(ADMIN_PUNISHMENT_PICKLE)
target.turn_into_pickle()
if(ADMIN_PUNISHMENT_FRY)
target.fry()
punish_log(target, punishment)
/client/proc/punish_log(var/whom, var/punishment)
@@ -110,7 +110,7 @@
if (bloodsuckerdatum && bloodsuckerdatum.coffin == src)
bloodsuckerdatum.coffin = null
bloodsuckerdatum.lair = null
to_chat(resident, "<span class='danger'><span class='italics'>You sense that the link with your coffin, your sacred place of rest, has been brokem! You will need to seek another.</span></span>")
to_chat(resident, "<span class='danger'><span class='italics'>You sense that the link with your coffin, your sacred place of rest, has been broken! You will need to seek another.</span></span>")
resident = null // Remove resident. Because this object isnt removed from the game immediately (GC?) we need to give them a way to see they don't have a home anymore.
/obj/structure/closet/crate/coffin/can_open(mob/living/user)
@@ -23,6 +23,18 @@
/datum/antagonist/survivalist/guns
greet_message = "Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, and don't let anyone take them!"
/datum/antagonist/survivalist/guns/forge_objectives()
var/datum/objective/steal_five_of_type/summon_guns/guns = new
guns.owner = owner
objectives += guns
..()
/datum/antagonist/survivalist/magic
name = "Amateur Magician"
greet_message = "This magic stuff is... so powerful. You want more. More! They want your power. They can't have it! Don't let them have it!"
/datum/antagonist/survivalist/magic/forge_objectives()
var/datum/objective/steal_five_of_type/summon_magic/magic = new
magic.owner = owner
objectives += magic
..()
+1 -1
View File
@@ -486,7 +486,7 @@
var/obj/O = target
if(O.resistance_flags & INDESTRUCTIBLE)
return FALSE
for(var/mob/living/L in GetAllContents())
for(var/mob/living/L in target.GetAllContents())
if(!ispAI(L) && !isbrain(L))
to_chat(src, "<span class='warning'>An organism has been detected inside this object. Aborting.</span>")
return FALSE
@@ -503,6 +503,7 @@
name = "Summon Guns"
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!"
dynamic_requirement = 60
limit = 1
/datum/spellbook_entry/summon/guns/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
@@ -521,6 +522,7 @@
name = "Summon Magic"
desc = "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time."
dynamic_requirement = 60
limit = 1
/datum/spellbook_entry/summon/magic/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
+4 -2
View File
@@ -188,7 +188,8 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
target = null
dest.deactivate(src)
QDEL_NULL(portal)
use_power = IDLE_POWER_USE
if(use_power == ACTIVE_POWER_USE)
use_power = IDLE_POWER_USE
update_icon()
/obj/machinery/gateway/process()
@@ -216,7 +217,8 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
target = D
target.activate(destination)
generate_bumper()
use_power = ACTIVE_POWER_USE
if(use_power == IDLE_POWER_USE)
use_power = ACTIVE_POWER_USE
update_icon()
/obj/machinery/gateway/proc/Transfer(atom/movable/AM)
+1 -1
View File
@@ -2,7 +2,7 @@
/datum/round_event_control/stray_cargo
name = "Stray Cargo Pod"
typepath = /datum/round_event/stray_cargo
weight = 20
weight = 5
max_occurrences = 4
earliest_start = 10 MINUTES
+11 -1
View File
@@ -21,7 +21,7 @@ Food formatting and crafting examples.
icon_state = "saltychip" //Refers to an icon, usually in food.dmi
bitesize = 3 //How many reagents are consumed in each bite.
list_reagents = list(/datum/reagent/consumable/nutriment = 6, //What's inside the snack, but only if spawned. For example, from a chemical reaction, vendor, or slime core spawn.
/datum/reagent/consumable/nutriment/vitamin = 2)
/datum/reagent/consumable/nutriment/vitamin = 2)
bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, //What's -added- to the food, in addition to the reagents contained inside the foods used to craft it. Basically, a reward for cooking.
/datum/reagent/consumable/nutriment/vitamin = 1) ^^For example. Egg+Egg = 2Egg + Bonus Reagents.
filling_color = "#F4A460" //What color it will use if put in a custom food.
@@ -406,3 +406,13 @@ All foods are distributed among various categories. Use common sense.
TB.MouseDrop(over)
else
return ..()
// //////////////////////////////////////////////Frying////////////////////////////////////////
/atom/proc/fry(cook_time = 30) //you can truly fry anything
//don't fry reagent containers that aren't food items, indestructable items, or items that are already fried
if(isitem(src))
var/obj/item/fried_item = src
if(fried_item.resistance_flags & INDESTRUCTIBLE)
return
if(!GetComponent(/datum/component/fried) && (!reagents || isfood(src) || ismob(src)))
AddComponent(/datum/component/fried, frying_power = cook_time)
@@ -191,93 +191,6 @@
tastes = list("bread" = 1, "garlic" = 1, "butter" = 1)
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/deepfryholder
name = "Deep Fried Foods Holder Obj"
desc = "If you can see this description the code for the deep fryer fucked up."
icon = 'icons/obj/food/food.dmi'
icon_state = ""
bitesize = 2
var/fried_garbage = FALSE //did you really fry a fire extinguisher?
GLOBAL_VAR_INIT(frying_hardmode, TRUE)
GLOBAL_VAR_INIT(frying_bad_chem_add_volume, TRUE)
GLOBAL_LIST_INIT(frying_bad_chems, list(
/datum/reagent/toxin/bad_food = 3,
/datum/reagent/drug/aranesp = 2,
/datum/reagent/toxin = 2,
/datum/reagent/lithium = 2,
/datum/reagent/mercury = 2,
))
/obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried)
. = ..()
name = fried.name //We'll determine the other stuff when it's actually removed
appearance = fried.appearance
layer = initial(layer)
plane = initial(plane)
lefthand_file = fried.lefthand_file
righthand_file = fried.righthand_file
item_state = fried.item_state
desc = fried.desc
w_class = fried.w_class
slowdown = fried.slowdown
equip_delay_self = fried.equip_delay_self
equip_delay_other = fried.equip_delay_other
strip_delay = fried.strip_delay
species_exception = fried.species_exception
item_flags = fried.item_flags
obj_flags = fried.obj_flags
if(isfood(fried))
fried.reagents.trans_to(src, fried.reagents.total_volume)
qdel(fried)
else
fried.forceMove(src)
trash = fried
fried_garbage = TRUE
/obj/item/reagent_containers/food/snacks/deepfryholder/Destroy()
if(trash)
QDEL_NULL(trash)
. = ..()
/obj/item/reagent_containers/food/snacks/deepfryholder/On_Consume(mob/living/eater)
if(fried_garbage && GLOB.frying_hardmode && GLOB.frying_bad_chems.len)
var/R = rand(1, GLOB.frying_bad_chems.len)
var/bad_chem = GLOB.frying_bad_chems[R]
var/bad_chem_amount = GLOB.frying_bad_chems[bad_chem]
eater.reagents.add_reagent(bad_chem, bad_chem_amount)
//All fried inedible items also get condensed cooking oil added, which induces minor vomiting and heart damage
eater.reagents.add_reagent(/datum/reagent/toxin/condensed_cooking_oil, 2)
if(trash)
QDEL_NULL(trash)
..()
/obj/item/reagent_containers/food/snacks/deepfryholder/proc/fry(cook_time = 30)
switch(cook_time)
if(0 to 15)
add_atom_colour(rgb(166,103,54), FIXED_COLOUR_PRIORITY)
name = "lightly-fried [name]"
desc = "[desc] It's been lightly fried in a deep fryer."
adjust_food_quality(food_quality - 5)
if(16 to 49)
add_atom_colour(rgb(103,63,24), FIXED_COLOUR_PRIORITY)
name = "fried [name]"
desc = "[desc] It's been fried, increasing its tastiness value by [rand(1, 75)]%."
adjust_food_quality(food_quality - 10)
if(50 to 59)
add_atom_colour(rgb(63,23,4), FIXED_COLOUR_PRIORITY)
name = "deep-fried [name]"
desc = "[desc] Deep-fried to perfection."
adjust_food_quality(food_quality) //we shouldn't punish perfection in the fried arts
if(60 to INFINITY)
add_atom_colour(rgb(33,19,9), FIXED_COLOUR_PRIORITY)
name = "the physical manifestation of the very concept of fried foods"
desc = "A heavily-fried...something. Who can tell anymore?"
adjust_food_quality(0) //good job, you're truly the best cook.
filling_color = color
foodtype |= FRIED
/obj/item/reagent_containers/food/snacks/butteredtoast
name = "buttered toast"
desc = "Butter lightly spread over a piece of toast."
@@ -29,7 +29,7 @@ God bless America.
use_power = IDLE_POWER_USE
idle_power_usage = 5
layer = BELOW_OBJ_LAYER
var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW?
var/obj/item/frying //What's being fried RIGHT NOW?
var/cook_time = 0
var/oil_use = 0.05 //How much cooking oil is used per tick
var/fry_speed = 1 //How quickly we fry food
@@ -91,25 +91,21 @@ God bless America.
if(I.resistance_flags & INDESTRUCTIBLE)
to_chat(user, "<span class='warning'>You don't feel it would be wise to fry [I]...</span>")
return
if(istype(I, /obj/item/reagent_containers/food/snacks/deepfryholder))
if(I.GetComponent(/datum/component/fried))
to_chat(user, "<span class='userdanger'>Your cooking skills are not up to the legendary Doublefry technique.</span>")
return
if(default_unfasten_wrench(user, I))
return
else if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off" ,I)) //where's the open maint panel icon?!
return
else if(I.reagents && !isfood(I))
return
else
if(is_type_in_typecache(I, deepfry_blacklisted_items) || HAS_TRAIT(I, TRAIT_NODROP) || (I.item_flags & (ABSTRACT | DROPDEL)))
return ..()
else if(!frying && user.transferItemToLoc(I, src))
frying = I
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
frying = new/obj/item/reagent_containers/food/snacks/deepfryholder(src, I)
//setup food quality for item depending on if it's edible or not
if(isfood(I))
var/obj/item/reagent_containers/food/original_food = I
frying.adjust_food_quality(original_food.food_quality) //food quality remains unchanged until degree of frying is calculated
else
frying.adjust_food_quality(10) //inedible fried item has low quality
icon_state = "fryer_on"
fry_loop.start()
+2 -2
View File
@@ -107,8 +107,8 @@
icon_state = "orang"
filling_color = "#FFA500"
juice_results = list(/datum/reagent/consumable/orangejuice = 0)
distill_reagent = /datum/reagent/consumable/ethanol/triple_sec
tastes = list("polygons" = 1, "oranges" = 1)
distill_reagent = /datum/reagent/toxin/mindbreaker
tastes = list("polygons" = 1, "bluespace" = 1, "the true nature of reality" = 1)
/obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d/pickup(mob/user)
. = ..()
+1
View File
@@ -38,6 +38,7 @@
throwforce = 0
throw_speed = 3
throw_range = 7
grind_results = list(/datum/reagent/cellulose = 10)
/obj/item/grown/corncob/attackby(obj/item/grown/W, mob/user, params)
if(W.get_sharpness())
+31
View File
@@ -504,3 +504,34 @@
prime()
if(!QDELETED(src))
qdel(src)
/obj/item/seeds/aloe
name = "pack of aloe seeds"
desc = "These seeds grow into aloe."
icon_state = "seed-aloe"
species = "aloe"
plantname = "Aloe"
product = /obj/item/reagent_containers/food/snacks/grown/aloe
lifespan = 60
endurance = 25
maturation = 4
production = 4
yield = 6
growthstages = 5
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/aloe
seed = /obj/item/seeds/aloe
name = "aloe"
desc = "Cut leaves from the aloe plant."
icon_state = "aloe"
filling_color = "#90EE90"
bitesize_mod = 5
foodtype = VEGETABLES
juice_results = list(/datum/reagent/consumable/aloejuice = 0)
distill_reagent = /datum/reagent/consumable/ethanol/tequila
/obj/item/reagent_containers/food/snacks/grown/aloe/microwave_act(obj/machinery/microwave/M)
new /obj/item/stack/medical/aloe(drop_location(), 2)
qdel(src)
@@ -16,6 +16,7 @@
icon_dead = "towercap-dead"
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list(/obj/item/seeds/tower/steel)
reagents_add = list(/datum/reagent/cellulose = 0.05)
/obj/item/seeds/tower/steel
name = "pack of steel-cap mycelium"
@@ -25,6 +26,7 @@
plantname = "Steel Caps"
product = /obj/item/grown/log/steel
mutatelist = list()
reagents_add = list(/datum/reagent/cellulose = 0.05, /datum/reagent/iron = 0.05)
rarity = 20
/obj/item/grown/log
+2 -2
View File
@@ -157,12 +157,12 @@
/datum/plant_gene/reagent/polypyr
name = "Polypyrylium Oligomers"
reagent_id = "polypyr"
reagent_id = /datum/reagent/medicine/polypyr
rate = 0.15
/datum/plant_gene/reagent/liquidelectricity
name = "Liquid Electricity"
reagent_id = "liquidelectricity"
reagent_id = /datum/reagent/consumable/liquidelectricity
rate = 0.1
// Various traits affecting the product. Each must be somehow useful.
@@ -204,7 +204,7 @@
var/obj/item/reagent_containers/food/snacks/donkpocket/warm/W = new(src)
load(W)
if(prob(50))
var/obj/item/storage/pill_bottle/dice/D = new(src)
var/obj/item/storage/box/dice/D = new(src)
load(D)
else
var/obj/item/instrument/guitar/G = new(src)
@@ -781,9 +781,8 @@
/obj/item/toy/crayon/spraycan/borg,
/obj/item/hand_labeler/borg,
/obj/item/razor,
/obj/item/rsf,
/obj/item/instrument/violin,
/obj/item/instrument/guitar,
/obj/item/rsf/cyborg,
/obj/item/instrument/piano_synth,
/obj/item/reagent_containers/dropper,
/obj/item/lighter,
/obj/item/storage/bag/tray,
+2
View File
@@ -589,6 +589,8 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
/mob/Stat()
..()
SSvote?.render_statpanel(src)
//This is only called from client/Stat(), let's assume client exists.
if(statpanel("Status"))
+1
View File
@@ -71,6 +71,7 @@
resistance_flags = FLAMMABLE
max_integrity = 50
dog_fashion = /datum/dog_fashion/head
grind_results = list(/datum/reagent/cellulose = 3)
color = "white"
/// What's actually written on the paper.
var/info = ""
@@ -999,3 +999,18 @@
glass_name = "glass of bungo juice"
glass_desc = "Exotic! You feel like you are on vacation already."
value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/aloejuice
name = "Aloe Juice"
color = "#A3C48B"
description = "A healthy and refreshing juice."
taste_description = "vegetable"
glass_icon_state = "glass_yellow"
glass_name = "glass of aloe juice"
glass_desc = "A healthy and refreshing juice."
/datum/reagent/consumable/aloejuice/on_mob_life(mob/living/M)
if(M.getToxLoss() && prob(30))
M.adjustToxLoss(-1, 0)
..()
. = TRUE
@@ -115,11 +115,11 @@
/datum/reagent/consumable/cooking_oil/reaction_obj(obj/O, reac_volume)
if(holder && holder.chem_temp >= fry_temperature)
if(isitem(O) && !istype(O, /obj/item/reagent_containers/food/snacks/deepfryholder) && !(O.resistance_flags & (FIRE_PROOF|INDESTRUCTIBLE)))
if(isitem(O) && !O.GetComponent(/datum/component/fried) && !(O.resistance_flags & (FIRE_PROOF|INDESTRUCTIBLE)) && (!O.reagents || isfood(O))) //don't fry stuff we shouldn't
O.loc.visible_message("<span class='warning'>[O] rapidly fries as it's splashed with hot oil! Somehow.</span>")
var/obj/item/reagent_containers/food/snacks/deepfryholder/F = new(O.drop_location(), O)
F.fry(volume)
F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume)
O.fry(volume)
if(O.reagents)
O.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume)
/datum/reagent/consumable/cooking_oil/reaction_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(!istype(M))
@@ -141,10 +141,9 @@
/datum/reagent/consumable/cooking_oil/reaction_turf(turf/open/T, reac_volume)
if(!istype(T) || isgroundlessturf(T))
return
if(reac_volume >= 5)
if(reac_volume >= 5 && holder && holder.chem_temp >= fry_temperature)
T.MakeSlippery(TURF_WET_LUBE, min_wet_time = 10 SECONDS, wet_time_to_add = reac_volume * 1.5 SECONDS)
T.name = "deep-fried [initial(T.name)]"
T.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY)
T.fry(reac_volume/4)
/datum/reagent/consumable/sugar
name = "Sugar"
@@ -2329,3 +2329,10 @@
wounded_part.heal_damage(0.25, 0.25)
M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen
..()
/datum/reagent/cellulose
name = "Cellulose Fibers"
description = "A crystaline polydextrose polymer, plants swear by this stuff."
reagent_state = SOLID
color = "#E6E6DA"
taste_mult = 0
@@ -525,25 +525,6 @@
taste_description = "bad cooking"
value = REAGENT_VALUE_NONE
/datum/reagent/toxin/condensed_cooking_oil
name = "Condensed Cooking Oil"
description = "Taste the consequences of your mistakes."
reagent_state = LIQUID
color = "#d6d6d8"
metabolization_rate = 0.25 * REAGENTS_METABOLISM
toxpwr = 0
taste_mult = -2
taste_description = "awful cooking"
value = REAGENT_VALUE_NONE
/datum/reagent/toxin/condensed_cooking_oil/on_mob_life(mob/living/carbon/M)
if(prob(5))
M.vomit()
else
if(prob(40))
M.adjustOrganLoss(ORGAN_SLOT_HEART, 0.5) //For reference, bungotoxin does 3
..()
/datum/reagent/toxin/itching_powder
name = "Itching Powder"
description = "A powder that induces itching upon contact with the skin. Causes the victim to scratch at their itches and has a very low chance to decay into Histamine."
@@ -318,3 +318,19 @@
id = /datum/reagent/medicine/psicodine
results = list(/datum/reagent/medicine/psicodine = 5)
required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1)
/datum/chemical_reaction/medsuture
required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/toxin/formaldehyde = 20, /datum/reagent/medicine/polypyr = 15) //This might be a bit much, reagent cost should be reviewed after implementation.
/datum/chemical_reaction/medsuture/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/stack/medical/suture/medicated(location)
/datum/chemical_reaction/medmesh
required_reagents = list(/datum/reagent/cellulose = 20, /datum/reagent/consumable/aloejuice = 20, /datum/reagent/space_cleaner/sterilizine = 10)
/datum/chemical_reaction/medmesh/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/stack/medical/mesh/advanced(location)
@@ -833,3 +833,8 @@
required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/iron = 1, /datum/reagent/stable_plasma = 1)
mix_message = "The mixture congeals and gives off a faint copper scent."
required_temp = 350
/datum/chemical_reaction/cellulose_carbonization
results = list(/datum/reagent/carbon = 1)
required_reagents = list(/datum/reagent/cellulose = 1)
required_temp = 512
@@ -165,10 +165,7 @@
var/chosen = getbork()
var/obj/B = new chosen(T)
if(prob(5))//Fry it!
var/obj/item/reagent_containers/food/snacks/deepfryholder/fried
fried = new(T, B)
fried.fry() // actually set the name and colour it
B = fried
B.fry() // actually set the name and colour it
if(prob(50))
for(var/j in 1 to rand(1, 3))
step(B, pick(NORTH,SOUTH,EAST,WEST))
@@ -36,15 +36,19 @@
var/reagentlist = pretty_string_from_reagent_list(reagents)
var/log_object = "a damp rag containing [reagentlist]"
if(user.a_intent == INTENT_HARM && !C.is_mouth_covered())
reagents.reaction(C, INGEST)
reagents.trans_to(C, 5)
C.visible_message("<span class='danger'>[user] has smothered \the [C] with \the [src]!</span>", "<span class='userdanger'>[user] has smothered you with \the [src]!</span>", "<span class='italics'>You hear some struggling and muffled cries of surprise.</span>")
log_combat(user, C, "smothered", log_object)
C.visible_message("<span class='danger'>[user] is trying to smother \the [C] with \the [src]!</span>", "<span class='userdanger'>[user] is trying to smother you with \the [src]!</span>", "<span class='italics'>You hear some struggling and muffled cries of surprise.</span>")
if(do_after(user, 20, target = C))
reagents.reaction(C, INGEST)
reagents.trans_to(C, 5)
C.visible_message("<span class='danger'>[user] has smothered \the [C] with \the [src]!</span>", "<span class='userdanger'>[user] has smothered you with \the [src]!</span>", "<span class='italics'>You hear some struggling and a heavy breath taken.</span>")
log_combat(user, C, "smothered", log_object)
else
reagents.reaction(C, TOUCH)
reagents.remove_all(5)
C.visible_message("<span class='notice'>[user] has touched \the [C] with \the [src].</span>")
log_combat(user, C, "touched", log_object)
C.visible_message("<span class='notice'>[user] is trying to wipe \the [C] with \the [src].</span>")
if(do_after(user, 20, target = C))
reagents.reaction(C, TOUCH)
reagents.remove_all(5)
C.visible_message("<span class='notice'>[user] has wiped \the [C] with \the [src].</span>")
log_combat(user, C, "touched", log_object)
else if(istype(A) && (src in user))
user.visible_message("[user] starts to wipe down [A] with [src]!", "<span class='notice'>You start to wipe down [A] with [src]...</span>")
+1 -1
View File
@@ -371,7 +371,7 @@
if(isliving(hit_atom))
var/mob/living/M = hit_atom
if(!M.anti_magic_check())
M.electrocute_act(80, src, SHOCK_ILLUSION)
M.electrocute_act(80, src, null, SHOCK_ILLUSION)
qdel(src)
/obj/item/spellpacket/lightningbolt/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
@@ -230,10 +230,9 @@
/datum/uplink_item/device_tools/surgerybag_adv
name = "Advanced Syndicate Surgery Duffel Bag"
desc = "The Syndicate surgery duffel bag is a toolkit containing all advanced surgery tools, surgical drapes, \
a Syndicate brand MMI, a straitjacket, a muzzle, and an outdated, yet still useful Combat Medic Kit."
desc = "A Syndicate surgery duffel bag, with a set of upgraded surgery tools to boot."
item = /obj/item/storage/backpack/duffelbag/syndie/surgery_adv
cost = 10
cost = 6
/datum/uplink_item/device_tools/brainwash_disk
name = "Brainwashing Surgery Program"
+1 -1
View File
@@ -4,7 +4,7 @@
product_ads = "Escape to a fantasy world!;Fuel your gambling addiction!;Ruin your friendships!;Roll for initiative!;Elves and dwarves!;Paranoid computers!;Totally not satanic!;Fun times forever!"
icon_state = "games"
products = list(/obj/item/toy/cards/deck = 5,
/obj/item/storage/pill_bottle/dice = 10,
/obj/item/storage/box/dice = 10,
/obj/item/toy/cards/deck/cas = 3,
/obj/item/toy/cards/deck/cas/black = 3,
/obj/item/toy/cards/deck/unum = 3)
+2 -1
View File
@@ -4,7 +4,8 @@
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!"
icon_state = "seeds"
products = list(/obj/item/seeds/ambrosia = 3,
products = list(/obj/item/seeds/aloe = 3,
/obj/item/seeds/ambrosia = 3,
/obj/item/seeds/apple = 3,
/obj/item/seeds/banana = 3,
/obj/item/seeds/berry = 3,
+54
View File
@@ -50,6 +50,60 @@
-->
<div class="commit sansserif">
<h2 class="date">20 July 2020</h2>
<h3 class="author">lolman360 updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Service borgs now have synthesizers instead of a violin and guitar.</li>
<li class="bugfix">borg RSF</li>
</ul>
<h2 class="date">19 July 2020</h2>
<h3 class="author">Arturlang updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">TGUI 3.0 and enables all the UIs, plus the smart asset cache, and all the things required for them</li>
</ul>
<h3 class="author">EmeraldSundisk updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds a pool to Delta Station</li>
<li class="rscadd">Adds light fixtures to specified areas</li>
<li class="tweak">Relocates objects in impacted areas of Delta's starboard maintenance</li>
</ul>
<h3 class="author">MrJWhit updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds a small light next to the kitchen counter</li>
</ul>
<h3 class="author">Putnam3145 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Pen uplinks no longer broken</li>
</ul>
<h3 class="author">TheObserver-sys updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds a new reaction: Slime Extractification. Take 30u Slime Jelly, 5u Frost Oil, and 5u plasma to generate a fresh grey slime extract.</li>
</ul>
<h3 class="author">Yakumo Chen updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Hierophant club now checks for friendly fire by default.</li>
</ul>
<h3 class="author">b1tt3r1n0 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added the updated circle game</li>
</ul>
<h3 class="author">silicons updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Unarmed parry is now a thing.</li>
</ul>
<h3 class="author">timothyteakettle updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">plushies in the loadout have been replaced with a box that lets you choose one instead</li>
<li class="bugfix">wrestling should no longer have the ability to permanently rotate people</li>
<li class="rscadd">you can now select to wear a snail shell as your backpack in the customization menu</li>
</ul>
<h3 class="author">zeroisthebiggay updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">martial arts twenty minpop</li>
<li class="bugfix">records</li>
</ul>
<h2 class="date">17 July 2020</h2>
<h3 class="author">ShizCalev, Fikou updated:</h3>
<ul class="changes bgimages16">
+34
View File
@@ -26387,3 +26387,37 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: fixes a small pickle related issue
- rscadd: recent culinary and scientific advancements have brought forth new pickle
related technologies
2020-07-19:
Arturlang:
- rscadd: TGUI 3.0 and enables all the UIs, plus the smart asset cache, and all
the things required for them
EmeraldSundisk:
- rscadd: Adds a pool to Delta Station
- rscadd: Adds light fixtures to specified areas
- tweak: Relocates objects in impacted areas of Delta's starboard maintenance
MrJWhit:
- rscadd: Adds a small light next to the kitchen counter
Putnam3145:
- bugfix: Pen uplinks no longer broken
TheObserver-sys:
- rscadd: 'Adds a new reaction: Slime Extractification. Take 30u Slime Jelly, 5u
Frost Oil, and 5u plasma to generate a fresh grey slime extract.'
Yakumo Chen:
- tweak: Hierophant club now checks for friendly fire by default.
b1tt3r1n0:
- rscadd: Added the updated circle game
silicons:
- rscadd: Unarmed parry is now a thing.
timothyteakettle:
- rscadd: plushies in the loadout have been replaced with a box that lets you choose
one instead
- bugfix: wrestling should no longer have the ability to permanently rotate people
- rscadd: you can now select to wear a snail shell as your backpack in the customization
menu
zeroisthebiggay:
- tweak: martial arts twenty minpop
- bugfix: records
2020-07-20:
lolman360:
- tweak: Service borgs now have synthesizers instead of a violin and guitar.
- bugfix: borg RSF
@@ -1,4 +0,0 @@
author: "Arturlang"
delete-after: True
changes:
- rscadd: "TGUI 3.0 and enables all the UIs, plus the smart asset cache, and all the things required for them"
@@ -0,0 +1,5 @@
author: "Chiirno"
delete-after: True
changes:
- rscadd: "Alt-click pill bottles places top-most pill into active hand."
- tweak: "Moved dice bags from pill_bottle/dice to box/dice to avoid dice bags being affected from medical specific pill bottle changes."
@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- rscadd: "Unarmed parry is now a thing."
@@ -0,0 +1,4 @@
author: "silicons"
delete-after: True
changes:
- rscadd: "voting can now be done from the stat panel if the system is plurality and approval"
@@ -1,4 +0,0 @@
author: "TheObserver-sys"
delete-after: True
changes:
- rscadd: "Adds a new reaction: Slime Extractification. Take 30u Slime Jelly, 5u Frost Oil, and 5u plasma to generate a fresh grey slime extract."
@@ -0,0 +1,4 @@
author: "TheSpaghetti"
delete-after: True
changes:
- rscadd: "new snowflake trait"
@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "plushies in the loadout have been replaced with a box that lets you choose one instead"
@@ -1,4 +0,0 @@
author: "MrJWhit"
delete-after: True
changes:
- rscadd: "Adds a small light next to the kitchen counter"
@@ -1,4 +0,0 @@
author: "Yakumo Chen"
delete-after: True
changes:
- tweak: "Hierophant club now checks for friendly fire by default."
@@ -1,6 +0,0 @@
author: "EmeraldSundisk"
delete-after: True
changes:
- rscadd: "Adds a pool to Delta Station"
- rscadd: "Adds light fixtures to specified areas"
- tweak: "Relocates objects in impacted areas of Delta's starboard maintenance"
@@ -1,4 +0,0 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- tweak: "martial arts twenty minpop"
@@ -1,4 +0,0 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- bugfix: "records"
@@ -0,0 +1,4 @@
author: "silicons"
delete-after: True
changes:
- imageadd: ":dsmile: :dfrown: :dhsmile: :dpog: :dneutral:"
@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- bugfix: "wrestling should no longer have the ability to permanently rotate people"
@@ -1,4 +0,0 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "you can now select to wear a snail shell as your backpack in the customization menu"
@@ -1,4 +0,0 @@
author: "b1tt3r1n0"
delete-after: True
changes:
- rscadd: "Added the updated circle game"
@@ -0,0 +1,6 @@
author: "silicons"
delete-after: True
changes:
- tweak: "survivalists (from summon guns/magic) are proper objective'd pseudoantagonists again"
- tweak: "summon guns/magic can only be used once each"
- tweak: "summon guns/magic now only cost one point each"
@@ -0,0 +1,6 @@
author: "CameronWoof"
delete-after: True
changes:
- rscadd: "Adds aloe, a new growable plant"
- rscadd: "Adds medicated sutures and advanced regenerative meshes"
- bugfix: "Polypyrylium oligomers and liquid electricity now correctly populate"
@@ -0,0 +1,4 @@
author: "DeltaFire15"
delete-after: True
changes:
- bugfix: "Swarmers can once again eat items as long as there's nothing living in them."
@@ -0,0 +1,4 @@
author: "Arturlang"
delete-after: True
changes:
- bugfix: "Decal painter ui now works, yay?"
@@ -0,0 +1,4 @@
author: "SiliconMain"
delete-after: True
changes:
- tweak: "Geigers can no longer be contaminated"
@@ -0,0 +1,4 @@
author: "kappa-sama"
delete-after: True
changes:
- tweak: "quartered the weight of the stray cargo pod event from 2x normal to 1/2 normal"
@@ -0,0 +1,4 @@
author: "kappa-sama"
delete-after: True
changes:
- balance: "advanced surgery duffel bag no longer comes with a nukie medkit. it costs 4 less telecrystals to make up for this colossal nerf."
@@ -1,4 +0,0 @@
author: "Putnam3145"
delete-after: True
changes:
- bugfix: "Pen uplinks no longer broken"
@@ -0,0 +1,4 @@
author: "silicons"
delete-after: True
changes:
- bugfix: "gravity should update for mobs a fair bit faster"
@@ -0,0 +1,4 @@
author: "Kraseo"
delete-after: True
changes:
- balance: "Damp rags no longer instantly apply their chemicals onto someone."
@@ -0,0 +1,5 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "new fried component used for frying objects"
- bugfix: "various frying bugs fixed such as being able to unfry items and frying turfs with cold cooking oil"
@@ -0,0 +1,4 @@
author: "Funce"
delete-after: True
changes:
- bugfix: "Genetics spiderwebs are no longer impassable walls"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Some files were not shown because too many files have changed in this diff Show More