This commit is contained in:
zerothebigboy
2021-06-13 18:16:08 -04:00
38 changed files with 129 additions and 67 deletions

View File

@@ -12,12 +12,9 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"workbench.editorAssociations": [
{
"filenamePattern": "*.dmi",
"viewType": "imagePreview.previewEditor"
}
],
"workbench.editorAssociations": {
"*.dmi": "imagePreview.previewEditor"
},
"files.eol": "\n",
"gitlens.advanced.blame.customArguments": ["-w"],
"tgstationTestExplorer.project.resultsType": "json",

View File

@@ -18,8 +18,6 @@ GLOBAL_LIST_INIT(meteorsB, list(/obj/effect/meteor/meaty=5, /obj/effect/meteor/m
GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
GLOBAL_LIST_INIT(meteorsCat, list(/obj/effect/meteor/cat)) //for cat meteors
///////////////////////////////
//Meteor spawning global procs
@@ -347,17 +345,6 @@ GLOBAL_LIST_INIT(meteorsCat, list(/obj/effect/meteor/cat)) //for cat meteors
..()
if(prob(20))
explosion(src.loc,2,4,6,8)
/obj/effect/meteor/cat
name = "space cat"
icon_state = "catmeteor"
desc = "Meow."
hits = 1
heavy = FALSE
meteorsound = 'sound/effects/meow1.ogg'
meteordrop = list(/mob/living/simple_animal/pet/cat/space)
threat = 0
dropamt = 1
//////////////////////////
//Spookoween meteors

View File

@@ -1,7 +1,10 @@
/obj/machinery/computer/bank_machine
name = "bank machine"
desc = "A machine used to deposit and withdraw station funds."
icon = 'goon/icons/obj/goon_terminals.dmi'
icon = 'icons/obj/computer.dmi'
icon_state = "computer"
icon_screen = "vault"
icon_keyboard = "security_key"
idle_power_usage = 100
var/siphoning = FALSE

View File

@@ -3,7 +3,7 @@
desc = "A culinary marvel that uses matter-to-energy conversion to store dishes and shards. Convenient! \
Additional features include a vacuum function to suck in nearby dishes, and an automatic transfer beam that empties its contents into nearby disposal bins every now and then. \
Or you can just drop your plates on the floor, like civilized folk."
icon = 'goon/icons/obj/kitchen.dmi'
icon = 'icons/obj/kitchen.dmi'
icon_state = "synthesizer"
idle_power_usage = 8 //5 with default parts
active_power_usage = 13 //10 with default parts

View File

@@ -1,7 +1,7 @@
/obj/item/singularityhammer
name = "singularity hammer"
desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows."
icon_state = "mjollnir0"
icon_state = "singularity_hammer0"
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
flags_1 = CONDUCT_1
@@ -25,7 +25,7 @@
/obj/item/singularityhammer/ComponentInitialize()
. = ..()
AddComponent(/datum/component/two_handed, force_multiplier=4, icon_wielded="mjollnir1")
AddComponent(/datum/component/two_handed, force_multiplier=4, icon_wielded="singularity_hammer1")
/// triggered on wield of two handed item
/obj/item/singularityhammer/proc/on_wield(obj/item/source, mob/user)
@@ -36,7 +36,7 @@
wielded = FALSE
/obj/item/singularityhammer/update_icon_state()
icon_state = "mjollnir0"
icon_state = "singularity_hammer0"
/obj/item/singularityhammer/Destroy()
STOP_PROCESSING(SSobj, src)

View File

@@ -13,15 +13,16 @@
return 0
. = ..()
// Exists to work around the minimum 700 cr price for goodies / small items
/obj/structure/closet/secure_closet/goodies
// Exists to work around the minimum 700 cr price for goodies / small items / materials
/obj/structure/closet/secure_closet/cargo
name = "cargo locker"
icon_state = "goodies"
desc = "A sturdier card-locked storage unit used for bulky shipments."
max_integrity = 500 // Same as crates.
melee_min_damage = 25 // Idem.
/obj/structure/closet/secure_closet/goodies/owned
name = "private locker"
/obj/structure/closet/secure_closet/cargo/owned
name = "private cargo locker"
desc = "A locker designed to only open for who purchased its contents."
///Account of the person buying the crate if private purchasing.
var/datum/bank_account/buyer_account
@@ -32,18 +33,18 @@
///Is the crate being bought by a person, or a budget card?
var/department_purchase = FALSE
/obj/structure/closet/secure_closet/goodies/owned/examine(mob/user)
/obj/structure/closet/secure_closet/cargo/owned/examine(mob/user)
. = ..()
. += "<span class='notice'>It's locked with a privacy lock, and can only be unlocked by the buyer's ID.</span>"
/obj/structure/closet/secure_closet/goodies/owned/Initialize(mapload, datum/bank_account/_buyer_account)
/obj/structure/closet/secure_closet/cargo/owned/Initialize(mapload, datum/bank_account/_buyer_account)
. = ..()
buyer_account = _buyer_account
if(istype(buyer_account, /datum/bank_account/department))
department_purchase = TRUE
department_account = buyer_account
/obj/structure/closet/secure_closet/goodies/owned/togglelock(mob/living/user, silent)
/obj/structure/closet/secure_closet/cargo/owned/togglelock(mob/living/user, silent)
if(privacy_lock)
if(!broken)
var/obj/item/card/id/id_card = user.get_idcard(TRUE)

View File

@@ -96,7 +96,7 @@
var/static/list/blacklisted_error = typecacheof(list(
/obj/structure/closet/crate/secure,
/obj/structure/closet/crate/large,
/obj/structure/closet/secure_closet/goodies
/obj/structure/closet/secure_closet/cargo
))
if(is_type_in_list(container, blacklisted_error))
P.errors &= ~MANIFEST_ERROR_ITEM

View File

@@ -22,8 +22,8 @@
/datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account)
var/obj/structure/closet/crate/C
if(paying_account)
if(ispath(crate_type, /obj/structure/closet/secure_closet/goodies)) // lets ensure private orders don't come in crates when the original one comes in lockers
C = new /obj/structure/closet/secure_closet/goodies/owned(A, paying_account) // that would lead to infinite money exploits
if(ispath(crate_type, /obj/structure/closet/secure_closet/cargo)) // lets ensure private orders don't come in crates when the original one comes in lockers
C = new /obj/structure/closet/secure_closet/cargo/owned(A, paying_account) // that would lead to infinite money exploits
else
C = new /obj/structure/closet/crate/secure/owned(A, paying_account)
C.name = "[crate_name] - Purchased by [paying_account.account_holder]"

View File

@@ -14,56 +14,56 @@
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/materials/cardboard50
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "50 Cardboard Sheets"
desc = "Create a bunch of boxes."
cost = 300 //thrice their export value
contains = list(/obj/item/stack/sheet/cardboard/fifty)
/datum/supply_pack/materials/glass50
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "50 Glass Sheets"
desc = "Let some nice light in with fifty glass sheets!"
cost = 300 //double their export value
contains = list(/obj/item/stack/sheet/glass/fifty)
/datum/supply_pack/materials/metal50
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "50 Metal Sheets"
desc = "Any construction project begins with a good stack of fifty metal sheets!"
cost = 300 //double their export value
contains = list(/obj/item/stack/sheet/metal/fifty)
/datum/supply_pack/materials/plasteel20
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "20 Plasteel Sheets"
desc = "Reinforce the station's integrity with twenty plasteel sheets!"
cost = 4000
contains = list(/obj/item/stack/sheet/plasteel/twenty)
/datum/supply_pack/materials/plastic50
crate_type = /obj/structure/closet/secure_closet/goodies
name = "50 Plastic Sheets"
/datum/supply_pack/materials/plastic20
crate_type = /obj/structure/closet/secure_closet/cargo
name = "20 Plastic Sheets"
desc = "Build a limitless amount of toys with fifty plastic sheets!"
cost = 200 // double their export
contains = list(/obj/item/stack/sheet/plastic/twenty)
/datum/supply_pack/materials/sandstone30
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "30 Sandstone Blocks"
desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
cost = 150 // five times their export
contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
/datum/supply_pack/materials/wood20
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "20 Wood Planks"
desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with twenty wooden planks!"
cost = 400 // 6-7 planks shy from having equal import/export prices
contains = list(/obj/item/stack/sheet/mineral/wood/twenty)
/datum/supply_pack/materials/rcdammo
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "Large RCD ammo Single-Pack"
desc = "A single large compressed RCD matter pack, to help with any holes or projects people might be working on."
cost = 600

View File

@@ -370,7 +370,7 @@
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/misc/carpet
crate_type = /obj/structure/closet/secure_closet/goodies
crate_type = /obj/structure/closet/secure_closet/cargo
name = "Classic Carpet Single-Pack"
desc = "Plasteel floor tiles getting on your nerves? This 50 units stack of extra soft carpet will tie any room together."
cost = 200

View File

@@ -56,7 +56,7 @@
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
icon_state = "tactifool"
item_state = "bl_suit"
has_sensor = TRUE
has_sensor = HAS_SENSORS
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5)
/obj/item/clothing/under/syndicate/cosmetic/skirt
@@ -64,6 +64,7 @@
icon_state = "tactifool_skirt"
fitted = FEMALE_UNIFORM_TOP
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
can_adjust = FALSE
/obj/item/clothing/under/syndicate/sniper
name = "Tactical turtleneck suit"

View File

@@ -1,11 +0,0 @@
/datum/round_event_control/meteor_wave/cat
name = "Meteor Wave: CATastrophic"
typepath = /datum/round_event/meteor_wave/cat
weight = 10
max_occurrences = 1
/datum/round_event/meteor_wave/cat
wave_name = "cat"
/datum/round_event/meteor_wave/cat/announce(fake)
priority_announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", "meteors")

View File

@@ -56,8 +56,6 @@
wave_type = GLOB.meteorsC
if("halloween")
wave_type = GLOB.meteorsSPOOKY
if("cat")
wave_type = GLOB.meteorsCat
else
WARNING("Wave name of [wave_name] not recognised.")
kill()

View File

@@ -213,7 +213,7 @@
)
result = /obj/item/reagent_containers/food/snacks/salad/gumbo
subcategory = CAT_MEAT
/datum/crafting_recipe/food/goliathcalamari
name = "Goliath Calamari"
reqs = list(
@@ -221,4 +221,4 @@
/datum/reagent/consumable/cooking_oil = 10
)
result = /obj/item/reagent_containers/food/snacks/goliathcalamari
subcategory = CAT_MEAT

View File

@@ -126,7 +126,8 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
var/value = 0
var/purchases = 0
var/list/goodies_by_buyer = list() // if someone orders more than GOODY_FREE_SHIPPING_MAX goodies, we upcharge to a normal crate so they can't carry around 20 combat shotties
// var/list/lockers_by_buyer = list() // TODO, combine orders that come in lockers into a single locker to not crowd the shuttle
var/list/lockers_by_buyer = list() // used to combine orders that come in lockers into a single locker to not crowd the shuttle
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
if(!empty_turfs.len)
break
@@ -147,11 +148,15 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
D.bank_card_talk("Goody order size exceeds free shipping limit: Assessing [CRATE_TAX] credit S&H fee.")
else
D = SSeconomy.get_dep_account(ACCOUNT_CAR)
if(D)
if(!D.adjust_money(-price))
if(SO.paying_account)
D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]")
continue
else if(ispath(SO.pack.crate_type, /obj/structure/closet/secure_closet/cargo))
LAZYADD(lockers_by_buyer[D], SO)
if(SO.paying_account)
if(SO.pack.goody)
@@ -164,7 +169,7 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
SSshuttle.orderhistory += SO
QDEL_NULL(SO.applied_coupon)
if(!SO.pack.goody) //we handle goody crates below
if(!SO.pack.goody && !ispath(SO.pack.crate_type, /obj/structure/closet/secure_closet/cargo)) //we handle goody crates and material closets below
SO.generate(pick_n_take(empty_turfs))
SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]"))
@@ -198,6 +203,33 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
misc_contents[buyer] += item
misc_order_num[buyer] = "[misc_order_num[buyer]]#[our_order.id] "
// handling locker bundles
for(var/D in lockers_by_buyer)
var/list/buying_account_orders = lockers_by_buyer[D]
var/buyer
if(!istype(D, /datum/bank_account/department)) // department accounts break the secure closet for some reason
var/obj/structure/closet/secure_closet/cargo/owned/our_closet = new /obj/structure/closet/secure_closet/cargo/owned(pick_n_take(empty_turfs))
var/datum/bank_account/buying_account = D
buyer = buying_account.account_holder
our_closet.buyer_account = buying_account
our_closet.name = "private cargo locker - purchased by [buyer]"
miscboxes[buyer] = our_closet
else
var/obj/structure/closet/secure_closet/cargo/our_closet = new /obj/structure/closet/secure_closet/cargo(pick_n_take(empty_turfs))
buyer = "Cargo"
miscboxes[buyer] = our_closet
misc_contents[buyer] = list()
for(var/O in buying_account_orders)
var/datum/supply_order/our_order = O
for(var/item in our_order.pack.contains)
misc_contents[buyer] += item
misc_order_num[buyer] = "[misc_order_num[buyer]]#[our_order.id] "
for(var/I in miscboxes)
var/datum/supply_order/SO = new/datum/supply_order()
SO.id = misc_order_num[I]

View File

@@ -0,0 +1,7 @@
/datum/unit_test/crafting_recipes/Run()
for(var/i in GLOB.crafting_recipes)
var/datum/crafting_recipe/R = i
if(!R.subcategory)
Fail("Invalid subcategory on [R] ([R.type]).")
if(!R.category && (R.cateogry != CAT_NONE))
Fail("Invalid category on [R] ([R.type])")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -50,6 +50,12 @@
-->
<div class="commit sansserif">
<h2 class="date">12 June 2021</h2>
<h3 class="author">silicons updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">xenos are now truly immune to stamina damage.</li>
</ul>
<h2 class="date">10 June 2021</h2>
<h3 class="author">Arturlang updated:</h3>
<ul class="changes bgimages16">

View File

@@ -29443,3 +29443,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
zeroisthebiggay:
- bugfix: Fixed an exploit allowing you to grab people from anywhere with a clowncar.
- balance: revenant essence objective reduced
2021-06-12:
silicons:
- bugfix: xenos are now truly immune to stamina damage.

View File

@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- bugfix: "xenos are now truly immune to stamina damage."

View File

@@ -0,0 +1,4 @@
author: "SandPoot"
delete-after: True
changes:
- bugfix: "The cosmetic turtleneck and skirtleneck no longer start with broken sensors."

View File

@@ -0,0 +1,5 @@
author: "qweq12yt"
delete-after: True
changes:
- bugfix: "Locker orders now properly bundle together in a single locker (still separated by buyer)."
- bugfix: "Changed some package names to be more accurate."

View File

@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new water cooler sprite"

View File

@@ -0,0 +1,5 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new bank machine sprite"
- imagedel: "unused goon coffin sprite"

View File

@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new singularity hammer sprite"

View File

@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new singularity hammer sprite"

View File

@@ -0,0 +1,4 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "7 more round tips have been added"

View File

@@ -0,0 +1,4 @@
author: "MrJWhit"
delete-after: True
changes:
- balance: "Removes cat meteors."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View File

@@ -303,3 +303,11 @@ You do not regenerate as much stamina while in combat mode. Resting (being on th
Keybinds can be reassigned in character setup on the keybindings tab. This is extremely useful, especially if you know how to use independent binds.
If your suit sensors have been shorted out, you can use cable coil to fix them by using the coil on your suit. Your suit needs to be in proper condition, however.
Most clothing when damaged can be repaired using cloth, but there may be some clothes out there that will require different stacks of materials.
You should under no circumstances, teleport bread.
Food made from upgraded machines has a higher quality. Food with a high enough quality can give good moodlets even if your species dislikes the kind of food!
Frying something makes it edible, while still maintaining its original functionality.
Slimepeople are damaged by most things that heal toxin damage, and healed by most things that deal it. You can recognise people with this functionality through them having a cyan coloured species name when examined!
EMPs can be created by mixing uranium and iron. The power of the pulse is determined by the distance from its epicentre, and the maximum distance is determined by the volume of the reaction!
Lizards start with a disabled mutation that allows them to breath fire. This can be unlocked through the usage of genetics!
Several loadout items can be unlocked through progress in parts of the game. The progress for these can be tracked in the loadout menu.