mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
[MIRROR] Arconomy: The bigger balance PR (REVISED EDITION) [MDB IGNORE] (#13164)
* Arconomy: The bigger balance PR (REVISED EDITION) * yes * wew * Update multitool.dm * yers Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
This commit is contained in:
@@ -68,3 +68,5 @@
|
||||
|
||||
/// Global signal sent when a light mechanism is completed (try_id)
|
||||
#define COMSIG_GLOB_LIGHT_MECHANISM_COMPLETED "!light_mechanism_completed"
|
||||
///Global Signal sent when the crew wins the revolution (No arguments).
|
||||
#define COMSIG_GLOB_REVOLUTION_TAX_REMOVAL "!revolution_tax_removal"
|
||||
|
||||
+18
-13
@@ -1,28 +1,33 @@
|
||||
/// Number of paychecks jobs start with at the creation of a new bank account for a player (So at shift-start or game join, but not a blank new account.)
|
||||
#define STARTING_PAYCHECKS 7
|
||||
#define STARTING_PAYCHECKS 5
|
||||
/// How much mail the Economy SS will create per minute, regardless of firing time.
|
||||
#define MAX_MAIL_PER_MINUTE 3
|
||||
/// Probability of using letters of envelope sprites on all letters.
|
||||
#define FULL_CRATE_LETTER_ODDS 70
|
||||
|
||||
//Experimental change: These are subject to tweaking based on the /tg/ economy overhaul.
|
||||
//Current design direction: Higher paying jobs are vastly outnumbered by lower paying jobs, so anything above medium hurts inflation, common jobs help inflation
|
||||
#define PAYCHECK_PRISONER 25
|
||||
#define PAYCHECK_ASSISTANT 50
|
||||
#define PAYCHECK_MINIMAL 55
|
||||
#define PAYCHECK_EASY 60
|
||||
#define PAYCHECK_MEDIUM 75
|
||||
#define PAYCHECK_HARD 100
|
||||
#define PAYCHECK_COMMAND 200
|
||||
|
||||
//Current Paycheck values. Altering these changes both the cost of items meant for each paygrade, as well as the passive/starting income of each job.
|
||||
///Default paygrade for the Unassigned Job/Unpaid job assignments.
|
||||
#define PAYCHECK_ZERO 0
|
||||
///Paygrade for Prisoners and Assistants.
|
||||
#define PAYCHECK_LOWER 25
|
||||
///Paygrade for all regular crew not belonging to PAYGRADE_LOWER or PAYGRADE_COMMAND.
|
||||
#define PAYCHECK_CREW 50
|
||||
///Paygrade for Heads of Staff.
|
||||
#define PAYCHECK_COMMAND 100
|
||||
|
||||
//How many credits a player is charged if they print something from a departmental lathe they shouldn't have access to.
|
||||
#define LATHE_TAX 10
|
||||
//How much POWER a borg's cell is taxed if they print something from a departmental lathe.
|
||||
#define SILICON_LATHE_TAX 2000
|
||||
|
||||
#define STATION_TARGET_BUFFER 25
|
||||
|
||||
|
||||
#define STATION_TARGET_BUFFER 40
|
||||
|
||||
#define MAX_GRANT_DPT 500
|
||||
|
||||
//What should vending machines charge when you buy something in-department.
|
||||
#define VENDING_DISCOUNT 0.2
|
||||
#define DEPARTMENT_DISCOUNT 0.2
|
||||
|
||||
#define ACCOUNT_CIV "CIV"
|
||||
#define ACCOUNT_CIV_NAME "Civil Budget"
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#define PAYCHECK_CYCLE_WAIT 6 //How many cycles of SSeconomy firing we're waiting till we get a paycheck. Each cycle is 5 minutes.
|
||||
#define PAYCHECK_CYCLE_AMOUNT 4 //How many paychecks we get when we finally do get it
|
||||
@@ -13,9 +13,8 @@ SUBSYSTEM_DEF(economy)
|
||||
ACCOUNT_MED = ACCOUNT_MED_NAME,
|
||||
ACCOUNT_SRV = ACCOUNT_SRV_NAME,
|
||||
ACCOUNT_CAR = ACCOUNT_CAR_NAME,
|
||||
ACCOUNT_SEC = ACCOUNT_SEC_NAME,
|
||||
ACCOUNT_CMD = ACCOUNT_CMD_NAME, // SKYRAT EDIT
|
||||
)
|
||||
ACCOUNT_SEC = ACCOUNT_SEC_NAME)
|
||||
var/list/generated_accounts = list()
|
||||
/**
|
||||
* Enables extra money charges for things that normally would be free, such as sleepers/cryo/beepsky.
|
||||
@@ -48,7 +47,6 @@ SUBSYSTEM_DEF(economy)
|
||||
var/bounty_modifier = 1
|
||||
///The modifier multiplied to the value of cargo pack prices.
|
||||
var/pack_price_modifier = 1
|
||||
var/fire_counter_for_paycheck = 0 //SKYRAT EDIT ADDITION
|
||||
/**
|
||||
* A list of strings containing a basic transaction history of purchases on the station.
|
||||
* Added to any time when player accounts purchase something.
|
||||
@@ -82,7 +80,6 @@ SUBSYSTEM_DEF(economy)
|
||||
dep_cards = SSeconomy.dep_cards
|
||||
|
||||
/datum/controller/subsystem/economy/fire(resumed = 0)
|
||||
fire_counter_for_paycheck++ //SKYRAT EDIT ADDITION
|
||||
var/temporary_total = 0
|
||||
var/delta_time = wait / (5 MINUTES)
|
||||
departmental_payouts()
|
||||
@@ -90,17 +87,10 @@ SUBSYSTEM_DEF(economy)
|
||||
station_target_buffer += STATION_TARGET_BUFFER
|
||||
for(var/account in bank_accounts_by_id)
|
||||
var/datum/bank_account/bank_account = bank_accounts_by_id[account]
|
||||
//SKYRAT EDIT ADDITION BEGIN
|
||||
if(fire_counter_for_paycheck >= PAYCHECK_CYCLE_WAIT)
|
||||
bank_account.payday(PAYCHECK_CYCLE_AMOUNT)
|
||||
//SKYRAT EDIT ADDITION END
|
||||
if(bank_account?.account_job && !ispath(bank_account.account_job))
|
||||
temporary_total += (bank_account.account_job.paycheck * STARTING_PAYCHECKS)
|
||||
bank_account.payday(1)
|
||||
station_total += bank_account.account_balance
|
||||
//SKYRAT EDIT ADDITION BEGIN
|
||||
if(fire_counter_for_paycheck >= PAYCHECK_CYCLE_WAIT) //30 minutes per each paycheck
|
||||
fire_counter_for_paycheck = 0
|
||||
//SKYRAT EDIT ADDITION END
|
||||
station_target = max(round(temporary_total / max(bank_accounts_by_id.len * 2, 1)) + station_target_buffer, 1)
|
||||
if(!HAS_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING))
|
||||
price_update()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#define PAINTINGS_DATA_FORMAT_VERSION 2
|
||||
|
||||
// Patronage thresholds for paintings. Different cosmetic frames become available as more credits are spent on the patronage.
|
||||
#define PATRONAGE_OK_FRAME PAYCHECK_ASSISTANT * 3 // 150 credits, as of early 2022
|
||||
#define PATRONAGE_OK_FRAME PAYCHECK_CREW * 3 // 150 credits, as of march 2022
|
||||
#define PATRONAGE_NICE_FRAME PATRONAGE_OK_FRAME * 2.5
|
||||
#define PATRONAGE_GREAT_FRAME PATRONAGE_NICE_FRAME * 2
|
||||
#define PATRONAGE_EXCELLENT_FRAME PATRONAGE_GREAT_FRAME * 2
|
||||
|
||||
@@ -17,47 +17,130 @@
|
||||
var/transaction_style = "Clinical"
|
||||
///Who's getting paid?
|
||||
var/datum/bank_account/target_acc
|
||||
///Does this payment component respect same-department-discount?
|
||||
var/department_discount = FALSE
|
||||
///A static typecache of all the money-based items that can be actively used as currency.
|
||||
var/static/list/allowed_money = typecacheof(list(
|
||||
/obj/item/stack/spacecash,
|
||||
/obj/item/holochip,
|
||||
/obj/item/coin))
|
||||
|
||||
/datum/component/payment/Initialize(_cost, _target, _style)
|
||||
target_acc = _target
|
||||
if(!target_acc)
|
||||
target_acc = SSeconomy.get_dep_account(ACCOUNT_CIV)
|
||||
|
||||
cost = _cost
|
||||
transaction_style = _style
|
||||
RegisterSignal(parent, COMSIG_OBJ_ATTEMPT_CHARGE, .proc/attempt_charge)
|
||||
RegisterSignal(parent, COMSIG_OBJ_ATTEMPT_CHARGE_CHANGE, .proc/change_cost)
|
||||
RegisterSignal(parent, COMSIG_GLOB_REVOLUTION_TAX_REMOVAL, .proc/clean_up)
|
||||
|
||||
/datum/component/payment/proc/attempt_charge(datum/source, atom/movable/target, extra_fees = 0)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(!cost) //In case a free variant of anything is made it'll skip charging anyone.
|
||||
if(!cost && !extra_fees) //In case a free variant of anything is made it'll skip charging anyone.
|
||||
return
|
||||
var/total_cost = cost + extra_fees
|
||||
if(!ismob(target))
|
||||
return COMPONENT_OBJ_CANCEL_CHARGE
|
||||
var/mob/living/user = target
|
||||
if(issilicon(user)) //They have evolved beyond the need for mere credits
|
||||
return
|
||||
var/obj/item/card/id/card
|
||||
if(istype(user))
|
||||
card = user.get_idcard(TRUE)
|
||||
if(!card)
|
||||
switch(transaction_style)
|
||||
if(PAYMENT_FRIENDLY)
|
||||
to_chat(user, span_warning("ID not detected, sorry [user]!"))
|
||||
if(PAYMENT_ANGRY)
|
||||
to_chat(user, span_warning("WHERE IS YOUR GOD DAMN CARD! GOD DAMNIT!"))
|
||||
if(PAYMENT_CLINICAL)
|
||||
to_chat(user, span_warning("ID card not present. Aborting."))
|
||||
return COMPONENT_OBJ_CANCEL_CHARGE
|
||||
if(!card.registered_account)
|
||||
if(!card && istype(user.pulling, /obj/item/card/id))
|
||||
card = user.pulling
|
||||
if(handle_card(user, card, total_cost))
|
||||
return //Only breaks here if the card can handle the cost of purchasing with someone's ID.
|
||||
if(handle_cardless(user, total_cost)) //Here we attempt to handle the purchase physically, with held money first. Otherwise we default to below.
|
||||
return
|
||||
return COMPONENT_OBJ_CANCEL_CHARGE
|
||||
|
||||
/**
|
||||
* Proc that changes the base cost of the interaction.
|
||||
*
|
||||
* * source: Datum source of the thing changing the cost.
|
||||
* * new_cost: the int value of the attempted new_cost to replace the cost value.
|
||||
*/
|
||||
/datum/component/payment/proc/change_cost(datum/source, new_cost)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(!isnum(new_cost))
|
||||
CRASH("change_cost called with variable new_cost as not a number.")
|
||||
cost = new_cost
|
||||
|
||||
/**
|
||||
* Attempts to charge the mob, user, an integer number of credits, total_cost, without the use of an ID card to directly draw upon.
|
||||
*/
|
||||
/datum/component/payment/proc/handle_cardless(mob/living/user, total_cost)
|
||||
//Here is all the possible non-ID payment methods.
|
||||
var/list/counted_money = list()
|
||||
var/physical_cash_total = 0
|
||||
for(var/obj/item/credit in typecache_filter_list(user.get_all_contents(), allowed_money)) //Coins, cash, and credits.
|
||||
if(physical_cash_total > total_cost)
|
||||
break
|
||||
physical_cash_total += credit.get_item_credit_value()
|
||||
counted_money += credit
|
||||
|
||||
if(is_type_in_typecache(user.pulling, allowed_money) && (physical_cash_total < total_cost)) //Coins(Pulled).
|
||||
var/obj/item/counted_credit = user.pulling
|
||||
physical_cash_total += counted_credit.get_item_credit_value()
|
||||
counted_money += counted_credit
|
||||
|
||||
if(physical_cash_total < total_cost)
|
||||
var/armless //Suggestions for those with no arms/simple animals.
|
||||
if(!ishuman(user) && !istype(user, /mob/living/simple_animal/slime))
|
||||
armless = TRUE
|
||||
else
|
||||
var/mob/living/carbon/human/harmless_armless = user
|
||||
if(!harmless_armless.get_bodypart(BODY_ZONE_L_ARM) && !harmless_armless.get_bodypart(BODY_ZONE_R_ARM))
|
||||
armless = TRUE
|
||||
|
||||
if(armless)
|
||||
if(!user.pulling || !iscash(user.pulling) && !istype(user.pulling, /obj/item/card/id))
|
||||
to_chat(user, span_notice("Try pulling a valid ID, space cash, holochip or coin while using \the [parent]!"))
|
||||
return FALSE
|
||||
return FALSE
|
||||
|
||||
if(physical_cash_total < total_cost)
|
||||
to_chat(user, span_notice("Insufficient funds. Aborting."))
|
||||
return FALSE
|
||||
for(var/obj/cash_object in counted_money)
|
||||
qdel(cash_object)
|
||||
physical_cash_total -= total_cost
|
||||
|
||||
if(physical_cash_total > 0)
|
||||
var/obj/item/holochip/holochange = new /obj/item/holochip(user.loc) //Change is made in holocredits exclusively.
|
||||
holochange.credits = physical_cash_total
|
||||
holochange.name = "[holochange.credits] credit holochip"
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/paying_customer = user
|
||||
if(!INVOKE_ASYNC(paying_customer, /mob.proc/put_in_hands, holochange))
|
||||
user.pulling = holochange
|
||||
else
|
||||
user.pulling = holochange
|
||||
log_econ("[total_cost] credits were spent on [parent] by [user].")
|
||||
to_chat(user, span_notice("Purchase completed with held credits."))
|
||||
playsound(user, 'sound/effects/cashregister.ogg', 20, TRUE)
|
||||
return TRUE
|
||||
|
||||
/**
|
||||
* Attempts to charge a mob, user, an integer number of credits, total_cost, directly from an ID card/bank account.
|
||||
*/
|
||||
/datum/component/payment/proc/handle_card(mob/living/user, obj/item/card/id/idcard, total_cost)
|
||||
if(!idcard)
|
||||
return FALSE
|
||||
if(!idcard?.registered_account)
|
||||
switch(transaction_style)
|
||||
if(PAYMENT_FRIENDLY)
|
||||
to_chat(user, span_warning("There's no account detected on your ID, how mysterious!"))
|
||||
if(PAYMENT_ANGRY)
|
||||
to_chat(user, span_warning("ARE YOU JOKING. YOU DON'T HAVE A BANK ACCOUNT ON YOUR ID YOU IDIOT."))
|
||||
if(PAYMENT_CLINICAL)
|
||||
to_chat(user, span_warning("ID Card lacks a bank account. Aborting."))
|
||||
return COMPONENT_OBJ_CANCEL_CHARGE
|
||||
if(!(card.registered_account.has_money(cost + extra_fees)))
|
||||
to_chat(user, span_warning("ID Card lacks a bank account. Advancing."))
|
||||
return FALSE
|
||||
|
||||
if(!(idcard.registered_account.has_money(total_cost)))
|
||||
switch(transaction_style)
|
||||
if(PAYMENT_FRIENDLY)
|
||||
to_chat(user, span_warning("I'm so sorry... You don't seem to have enough money."))
|
||||
@@ -65,14 +148,22 @@
|
||||
to_chat(user, span_warning("YOU MORON. YOU ABSOLUTE BAFOON. YOU INSUFFERABLE TOOL. YOU ARE POOR."))
|
||||
if(PAYMENT_CLINICAL)
|
||||
to_chat(user, span_warning("ID Card lacks funds. Aborting."))
|
||||
return COMPONENT_OBJ_CANCEL_CHARGE
|
||||
target_acc.transfer_money(card.registered_account, cost + extra_fees)
|
||||
card.registered_account.bank_card_talk("[cost + extra_fees] credits deducted from your account.")
|
||||
user.balloon_alert(user, "Cost: [total_cost] credits.")
|
||||
return FALSE
|
||||
target_acc.transfer_money(idcard.registered_account, total_cost)
|
||||
log_econ("[total_cost] credits were spent on [parent] by [user] via [idcard.registered_account.account_holder]'s card.")
|
||||
idcard.registered_account.bank_card_talk("[total_cost] credits deducted from your account.")
|
||||
playsound(src, 'sound/effects/cashregister.ogg', 20, TRUE)
|
||||
SSeconomy.track_purchase(card.registered_account, cost + extra_fees, parent)
|
||||
SSeconomy.track_purchase(idcard.registered_account, total_cost, parent)
|
||||
return TRUE
|
||||
|
||||
/datum/component/payment/proc/change_cost(datum/source, new_cost)
|
||||
/**
|
||||
* Attempts to remove the payment component, currently when the crew wins a revolution.
|
||||
* * datum/source: source of the signal.
|
||||
*/
|
||||
/datum/component/payment/proc/clean_up(datum/source)
|
||||
SIGNAL_HANDLER
|
||||
if(!isnum(new_cost))
|
||||
CRASH("change_cost called with variable new_cost as not a number.")
|
||||
cost = new_cost
|
||||
target_acc = null
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
/obj/machinery/autolathe/Initialize(mapload)
|
||||
AddComponent(/datum/component/material_container, SSmaterials.materials_by_category[MAT_CATEGORY_ITEM_MATERIAL], 0, MATCONTAINER_EXAMINE, _after_insert = CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
. = ..()
|
||||
|
||||
wires = new /datum/wires/autolathe(src)
|
||||
stored_research = new /datum/techweb/specialized/autounlocking/autolathe
|
||||
matching_designs = list()
|
||||
|
||||
@@ -227,7 +227,7 @@ RLD
|
||||
worn_icon_state = "RCD"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
custom_premium_price = PAYCHECK_HARD * 10
|
||||
custom_premium_price = PAYCHECK_COMMAND * 10
|
||||
max_matter = 160
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
item_flags = NO_MAT_REDEMPTION | NOBLUDGEON
|
||||
|
||||
@@ -685,7 +685,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
heat = 1500
|
||||
resistance_flags = FIRE_PROOF
|
||||
grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/fuel/oil = 5)
|
||||
custom_price = PAYCHECK_ASSISTANT * 1.1
|
||||
custom_price = PAYCHECK_CREW * 1.1
|
||||
light_system = MOVABLE_LIGHT
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
|
||||
@@ -508,7 +508,7 @@
|
||||
/obj/item/circuitboard/machine/vendor
|
||||
name = "Custom Vendor (Machine Board)"
|
||||
desc = "You can turn the \"brand selection\" dial using a screwdriver."
|
||||
custom_premium_price = PAYCHECK_ASSISTANT * 1.5
|
||||
custom_premium_price = PAYCHECK_CREW * 1.5
|
||||
build_path = /obj/machinery/vending/custom
|
||||
req_components = list(/obj/item/vending_refill/custom = 1)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/flashlight
|
||||
name = "flashlight"
|
||||
desc = "A hand-held emergency light."
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon = 'icons/obj/lighting.dmi'
|
||||
icon_state = "flashlight"
|
||||
inhand_icon_state = "flashlight"
|
||||
@@ -456,7 +456,7 @@
|
||||
/obj/item/flashlight/glowstick
|
||||
name = "glowstick"
|
||||
desc = "A military-grade glowstick."
|
||||
custom_price = PAYCHECK_PRISONER
|
||||
custom_price = PAYCHECK_LOWER
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
light_range = 4
|
||||
light_system = MOVABLE_LIGHT
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
drop_sound = 'sound/items/handling/multitool_drop.ogg'
|
||||
pickup_sound = 'sound/items/handling/multitool_pickup.ogg'
|
||||
custom_materials = list(/datum/material/iron=50, /datum/material/glass=20)
|
||||
custom_premium_price = PAYCHECK_HARD * 3
|
||||
toolspeed = 0.7 //SKYRAT EDIT CHANGE - ORIGINAL: 1
|
||||
custom_premium_price = PAYCHECK_COMMAND * 3
|
||||
toolspeed = 1
|
||||
usesound = 'sound/weapons/empty.ogg'
|
||||
var/obj/machinery/buffer // simple machine buffer for device linkage
|
||||
var/mode = 0
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
custom_premium_price = PAYCHECK_HARD * 1.25
|
||||
custom_premium_price = PAYCHECK_COMMAND * 1.25
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE
|
||||
|
||||
/// Spam alert prevention
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
equip_sound = 'sound/items/equip/toolbelt_equip.ogg'
|
||||
custom_price = PAYCHECK_MEDIUM * 10
|
||||
custom_premium_price = PAYCHECK_MEDIUM * 14
|
||||
custom_price = PAYCHECK_CREW * 10
|
||||
custom_premium_price = PAYCHECK_CREW * 14
|
||||
|
||||
var/obj/item/reagent_containers/beaker = null ///Creating an empty slot for a beaker that can be added to dispense into
|
||||
var/amount = 30 ///The amount of reagent that is to be dispensed currently
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/analyzer
|
||||
desc = "A hand-held environmental scanner which reports current gas levels."
|
||||
name = "gas analyzer"
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.9
|
||||
custom_price = PAYCHECK_LOWER * 0.9
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "analyzer"
|
||||
inhand_icon_state = "analyzer"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
var/mode = SCANNER_VERBOSE
|
||||
var/scanmode = SCANMODE_HEALTH
|
||||
var/advanced = FALSE
|
||||
custom_price = PAYCHECK_HARD
|
||||
custom_price = PAYCHECK_COMMAND
|
||||
|
||||
/obj/item/healthanalyzer/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/t_scanner
|
||||
name = "\improper T-ray scanner"
|
||||
desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.7
|
||||
custom_price = PAYCHECK_LOWER * 0.7
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "t-ray0"
|
||||
var/on = FALSE
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
worn_icon_state = "electronic"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
custom_price = PAYCHECK_MEDIUM * 5
|
||||
custom_premium_price = PAYCHECK_MEDIUM * 6
|
||||
custom_price = PAYCHECK_CREW * 5
|
||||
custom_premium_price = PAYCHECK_CREW * 6
|
||||
|
||||
/obj/item/sensor_device/attack_self(mob/user)
|
||||
GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
desc = "The cornerstone of every nutritious breakfast."
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
|
||||
foodtypes = GRAIN | MEAT
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.8
|
||||
custom_price = PAYCHECK_CREW * 0.8
|
||||
venue_value = FOOD_PRICE_CHEAP
|
||||
|
||||
/obj/item/food/burger/plain/Initialize(mapload)
|
||||
@@ -325,7 +325,7 @@
|
||||
icon_state = "baseball"
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
|
||||
foodtypes = GRAIN | GROSS
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.8
|
||||
custom_price = PAYCHECK_CREW * 0.8
|
||||
venue_value = FOOD_PRICE_NORMAL
|
||||
|
||||
/obj/item/food/burger/baconburger
|
||||
@@ -335,7 +335,7 @@
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
|
||||
tastes = list("bacon" = 4, "bun" = 2)
|
||||
foodtypes = GRAIN | MEAT
|
||||
custom_premium_price = PAYCHECK_ASSISTANT * 1.6
|
||||
custom_premium_price = PAYCHECK_CREW * 1.6
|
||||
venue_value = FOOD_PRICE_NORMAL
|
||||
|
||||
/obj/item/food/burger/empoweredburger
|
||||
|
||||
@@ -762,7 +762,7 @@
|
||||
name = "\improper Activin 12 Hour medicated gum packet"
|
||||
desc = "Stay awake during long shifts in the maintenance tunnels with Activin! The approval seal of the Mothic Nomad Fleet is emblazoned on the packaging, alongside a litany of health and safety disclaimers in both Mothic and Galactic Common."
|
||||
icon_state = "bubblegum_wake_up"
|
||||
custom_premium_price = PAYCHECK_EASY * 1.5
|
||||
custom_premium_price = PAYCHECK_CREW * 1.5
|
||||
|
||||
/obj/item/storage/box/gum/wake_up/examine_more(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
reagent_flags = OPENCONTAINER
|
||||
custom_materials = list(/datum/material/glass = 500)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.6
|
||||
custom_price = PAYCHECK_CREW * 0.6
|
||||
|
||||
/obj/item/reagent_containers/glass/bowl/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
bite_consumption = 10
|
||||
tastes = list("candy" = 5, "weight loss" = 4, "insect larva" = 1)
|
||||
foodtypes = JUNKFOOD | RAW | GROSS
|
||||
custom_price = PAYCHECK_ASSISTANT * 1.6 //Joke adjusted for inflation
|
||||
custom_price = PAYCHECK_CREW * 1.6 //Joke adjusted for inflation
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
var/revelation = FALSE
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
tastes = list("dried raisins" = 1)
|
||||
foodtypes = JUNKFOOD | FRUIT | SUGAR
|
||||
food_flags = FOOD_FINGER_FOOD
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.7
|
||||
custom_price = PAYCHECK_CREW * 0.7
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/food/no_raisin/healthy
|
||||
@@ -130,7 +130,7 @@
|
||||
junkiness = 25
|
||||
foodtypes = JUNKFOOD | GRAIN | SUGAR
|
||||
food_flags = FOOD_FINGER_FOOD
|
||||
custom_price = PAYCHECK_PRISONER
|
||||
custom_price = PAYCHECK_LOWER
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/food/candy_trash
|
||||
@@ -188,7 +188,7 @@
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment = 2)
|
||||
tastes = list("peanuts" = 4, "anger" = 1)
|
||||
foodtypes = JUNKFOOD | NUTS
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.8 //nuts are expensive in real life, and this is the best food in the vendor.
|
||||
custom_price = PAYCHECK_CREW * 0.8 //nuts are expensive in real life, and this is the best food in the vendor.
|
||||
junkiness = 10 //less junky than other options, since peanuts are a decently healthy snack option
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
grind_results = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/cooking_oil = 2)
|
||||
@@ -321,7 +321,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types())
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) //a healthy but expensive snack
|
||||
tastes = list("pistachios" = 4, "subtle sweetness" = 1)
|
||||
foodtypes = JUNKFOOD | NUTS
|
||||
custom_price = PAYCHECK_MEDIUM//pistachios are even more expensive.
|
||||
custom_price = PAYCHECK_CREW//pistachios are even more expensive.
|
||||
junkiness = 10 //on par with peanuts
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
grind_results = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/cooking_oil = 2)
|
||||
@@ -334,7 +334,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types())
|
||||
food_reagents = list(/datum/reagent/consumable/cornoil = 1, /datum/reagent/consumable/salt = 6) //1 cornoil is equal to 1.33 nutriment
|
||||
tastes = list("sunflowers" = 5)
|
||||
foodtypes = JUNKFOOD | NUTS
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.4 //sunflowers are cheap in real life.
|
||||
custom_price = PAYCHECK_LOWER * 0.4 //sunflowers are cheap in real life.
|
||||
bite_consumption = 1
|
||||
junkiness = 25
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
@@ -356,7 +356,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types())
|
||||
bite_consumption = 2
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/consumable/salt = 3)
|
||||
junkiness = 20
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.8 //we are filled to the brim with flavor
|
||||
custom_price = PAYCHECK_LOWER * 0.8 //we are filled to the brim with flavor
|
||||
tastes = list("fried corn" = 1)
|
||||
foodtypes = JUNKFOOD | FRIED
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
var/flashbang_range = 1 //how many tiles away the mob will be stunned.
|
||||
shrapnel_type = /obj/projectile/bullet/pellet/stingball
|
||||
shrapnel_radius = 5
|
||||
custom_premium_price = PAYCHECK_HARD * 3.5 // mostly gotten through cargo, but throw in one for the sec vendor ;)
|
||||
custom_premium_price = PAYCHECK_COMMAND * 3.5 // mostly gotten through cargo, but throw in one for the sec vendor ;)
|
||||
|
||||
/obj/item/grenade/stingbang/mega
|
||||
name = "mega stingbang"
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
custom_materials = list(/datum/material/iron=500)
|
||||
breakouttime = 1 MINUTES
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50)
|
||||
custom_price = PAYCHECK_HARD * 0.35
|
||||
custom_price = PAYCHECK_COMMAND * 0.35
|
||||
///Sound that plays when starting to put handcuffs on someone
|
||||
var/cuffsound = 'sound/weapons/handcuffs.ogg'
|
||||
///If set, handcuffs will be destroyed on application and leave behind whatever this is set to.
|
||||
@@ -504,7 +504,7 @@
|
||||
hitsound = 'sound/weapons/taserhit.ogg'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
breakouttime = 6 SECONDS
|
||||
custom_price = PAYCHECK_HARD * 0.35
|
||||
custom_price = PAYCHECK_COMMAND * 0.35
|
||||
|
||||
/obj/item/restraints/legcuffs/bola/energy/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
sharpness = SHARP_POINTY
|
||||
var/datum/reagent/forkload //used to eat omelette
|
||||
custom_price = PAYCHECK_PRISONER
|
||||
custom_price = PAYCHECK_LOWER
|
||||
|
||||
/obj/item/kitchen/fork/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -69,7 +69,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
custom_materials = list(/datum/material/plastic=80)
|
||||
custom_price = PAYCHECK_PRISONER * 2
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
|
||||
/obj/item/kitchen/fork/plastic/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -92,7 +92,7 @@
|
||||
attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes")
|
||||
attack_verb_simple = list("prod", "whiff", "scratch", "poke")
|
||||
sharpness = SHARP_EDGED
|
||||
custom_price = PAYCHECK_PRISONER * 2
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
|
||||
/obj/item/knife/plastic/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -111,7 +111,7 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
attack_verb_continuous = list("bashes", "batters", "bludgeons", "thrashes", "whacks")
|
||||
attack_verb_simple = list("bash", "batter", "bludgeon", "thrash", "whack")
|
||||
custom_price = PAYCHECK_EASY * 1.5
|
||||
custom_price = PAYCHECK_CREW * 1.5
|
||||
tool_behaviour = TOOL_ROLLINGPIN
|
||||
|
||||
/obj/item/kitchen/rollingpin/suicide_act(mob/living/carbon/user)
|
||||
@@ -132,7 +132,7 @@
|
||||
attack_verb_continuous = list("whacks", "spoons", "taps")
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
custom_materials = list(/datum/material/iron=120)
|
||||
custom_price = PAYCHECK_PRISONER * 5
|
||||
custom_price = PAYCHECK_LOWER * 5
|
||||
tool_behaviour = TOOL_MINING
|
||||
toolspeed = 25 // Literally 25 times worse than the base pickaxe
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
icon_state = "plastic_spoon"
|
||||
force = 0
|
||||
custom_materials = list(/datum/material/plastic=120)
|
||||
custom_price = PAYCHECK_PRISONER * 2
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
toolspeed = 75 // The plastic spoon takes 5 minutes to dig through a single mineral turf... It's one, continuous, breakable, do_after...
|
||||
|
||||
/obj/item/kitchen/spoon/plastic/Initialize(mapload)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
attack_verb_continuous = list("cleaves", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
||||
attack_verb_simple = list("cleave", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
custom_price = PAYCHECK_EASY * 5
|
||||
custom_price = PAYCHECK_CREW * 5
|
||||
wound_bonus = 15
|
||||
|
||||
/obj/item/knife/hunting
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
desc = "A strange box containing wood working tools and an instruction paper to turn stun batons into something else."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "uk"
|
||||
custom_price = PAYCHECK_HARD * 4.5
|
||||
custom_price = PAYCHECK_COMMAND * 4.5
|
||||
|
||||
/obj/item/melee/baton/telescopic
|
||||
name = "telescopic baton"
|
||||
|
||||
@@ -90,8 +90,8 @@
|
||||
desc = "A handheld tracking device that points to crew suit sensors."
|
||||
icon_state = "pinpointer_crew"
|
||||
worn_icon_state = "pinpointer_crew"
|
||||
custom_price = PAYCHECK_MEDIUM * 4
|
||||
custom_premium_price = PAYCHECK_MEDIUM * 6
|
||||
custom_price = PAYCHECK_CREW * 4
|
||||
custom_premium_price = PAYCHECK_CREW * 6
|
||||
var/has_owner = FALSE
|
||||
var/pinpointer_owner = null
|
||||
var/ignore_suit_sensor_level = FALSE /// Do we find people even if their suit sensors are turned off
|
||||
@@ -167,7 +167,7 @@
|
||||
desc = "A handheld tracking device that displays its proximity to crew suit sensors."
|
||||
icon_state = "pinpointer_crewprox"
|
||||
worn_icon_state = "pinpointer_prox"
|
||||
custom_price = PAYCHECK_MEDIUM * 3
|
||||
custom_price = PAYCHECK_CREW * 3
|
||||
|
||||
/obj/item/pinpointer/crew/prox/get_direction_icon(here, there)
|
||||
var/size = ""
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
max_amount = 12
|
||||
amount = 6
|
||||
grind_results = list(/datum/reagent/cellulose = 2)
|
||||
custom_price = PAYCHECK_ASSISTANT * 2
|
||||
custom_price = PAYCHECK_CREW * 2
|
||||
absorption_rate = 0.125
|
||||
absorption_capacity = 5
|
||||
splint_factor = 0.7
|
||||
|
||||
@@ -104,5 +104,5 @@
|
||||
prefix = "surgical"
|
||||
conferred_embed = list("embed_chance" = 30, "pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE)
|
||||
splint_factor = 0.5
|
||||
custom_price = PAYCHECK_MEDIUM
|
||||
custom_price = PAYCHECK_CREW
|
||||
merge_type = /obj/item/stack/sticky_tape/surgical
|
||||
|
||||
@@ -324,7 +324,7 @@
|
||||
flags_1 = CONDUCT_1
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
custom_materials = list(/datum/material/iron=3000)
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.6
|
||||
custom_price = PAYCHECK_CREW * 0.6
|
||||
|
||||
/obj/item/storage/bag/tray/ComponentInitialize()
|
||||
. = ..()
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
inhand_icon_state = "utility"
|
||||
worn_icon_state = "utility"
|
||||
content_overlays = TRUE
|
||||
custom_premium_price = PAYCHECK_MEDIUM * 2
|
||||
custom_premium_price = PAYCHECK_CREW * 2
|
||||
drop_sound = 'sound/items/handling/toolbelt_drop.ogg'
|
||||
pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg'
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
inhand_icon_state = "securitywebbing"
|
||||
worn_icon_state = "securitywebbing"
|
||||
content_overlays = FALSE
|
||||
custom_premium_price = PAYCHECK_HARD * 3
|
||||
custom_premium_price = PAYCHECK_COMMAND * 3
|
||||
|
||||
/obj/item/storage/belt/security/webbing/ComponentInitialize()
|
||||
. = ..()
|
||||
@@ -721,7 +721,7 @@
|
||||
inhand_icon_state = "fannypack_leather"
|
||||
worn_icon_state = "fannypack_leather"
|
||||
dying_key = DYE_REGISTRY_FANNYPACK
|
||||
custom_price = PAYCHECK_ASSISTANT * 2
|
||||
custom_price = PAYCHECK_CREW * 2
|
||||
|
||||
/obj/item/storage/belt/fannypack/ComponentInitialize()
|
||||
. = ..()
|
||||
|
||||
@@ -721,7 +721,7 @@
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
drop_sound = 'sound/items/handling/matchbox_drop.ogg'
|
||||
pickup_sound = 'sound/items/handling/matchbox_pickup.ogg'
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.4
|
||||
custom_price = PAYCHECK_CREW * 0.4
|
||||
base_icon_state = "matchbox"
|
||||
illustration = null
|
||||
|
||||
@@ -1123,7 +1123,7 @@
|
||||
/obj/item/storage/box/dishdrive
|
||||
name = "DIY Dish Drive Kit"
|
||||
desc = "Contains everything you need to build your own Dish Drive!"
|
||||
custom_premium_price = PAYCHECK_EASY * 3
|
||||
custom_premium_price = PAYCHECK_CREW * 3
|
||||
|
||||
/obj/item/storage/box/dishdrive/PopulateContents()
|
||||
var/static/items_inside = list(
|
||||
@@ -1246,7 +1246,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
illustration = null
|
||||
foldable = null
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/storage/box/gum/ComponentInitialize()
|
||||
. = ..()
|
||||
@@ -1262,7 +1262,7 @@
|
||||
name = "nicotine gum packet"
|
||||
desc = "Designed to help with nicotine addiction and oral fixation all at once without destroying your lungs in the process. Mint flavored!"
|
||||
icon_state = "bubblegum_nicotine"
|
||||
custom_premium_price = PAYCHECK_EASY * 1.5
|
||||
custom_premium_price = PAYCHECK_CREW * 1.5
|
||||
|
||||
/obj/item/storage/box/gum/nicotine/PopulateContents()
|
||||
for(var/i in 1 to 4)
|
||||
@@ -1272,8 +1272,8 @@
|
||||
name = "HP+ gum packet"
|
||||
desc = "A seemingly homemade packaging with an odd smell. It has a weird drawing of a smiling face sticking out its tongue."
|
||||
icon_state = "bubblegum_happiness"
|
||||
custom_price = PAYCHECK_HARD * 3
|
||||
custom_premium_price = PAYCHECK_HARD * 3
|
||||
custom_price = PAYCHECK_COMMAND * 3
|
||||
custom_premium_price = PAYCHECK_COMMAND * 3
|
||||
|
||||
/obj/item/storage/box/gum/happiness/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
spawn_type = /obj/item/food/donut/plain
|
||||
is_open = TRUE
|
||||
appearance_flags = KEEP_TOGETHER
|
||||
custom_premium_price = PAYCHECK_HARD * 1.75
|
||||
custom_premium_price = PAYCHECK_COMMAND * 1.75
|
||||
contents_tag = "donut"
|
||||
|
||||
/obj/item/storage/fancy/donut_box/ComponentInitialize()
|
||||
@@ -184,7 +184,7 @@
|
||||
throwforce = 0
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
|
||||
custom_price = PAYCHECK_MEDIUM
|
||||
custom_price = PAYCHECK_CREW
|
||||
age_restricted = TRUE
|
||||
contents_tag = "cigarette"
|
||||
///for cigarette overlay
|
||||
@@ -386,7 +386,7 @@
|
||||
base_icon_state = "cig_paper_pack"
|
||||
contents_tag = "rolling paper"
|
||||
spawn_type = /obj/item/rollingpaper
|
||||
custom_price = PAYCHECK_PRISONER
|
||||
custom_price = PAYCHECK_LOWER
|
||||
|
||||
/obj/item/storage/fancy/rollingpapers/ComponentInitialize()
|
||||
. = ..()
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
desc = "An advanced kit to help deal with advanced wounds."
|
||||
icon_state = "medkit_advanced"
|
||||
inhand_icon_state = "medkit-rad"
|
||||
custom_premium_price = PAYCHECK_HARD * 6
|
||||
custom_premium_price = PAYCHECK_COMMAND * 6
|
||||
damagetype_healed = "all"
|
||||
|
||||
/obj/item/storage/medkit/advanced/PopulateContents()
|
||||
@@ -531,7 +531,7 @@
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
custom_premium_price = PAYCHECK_MEDIUM * 4
|
||||
custom_premium_price = PAYCHECK_CREW * 4
|
||||
/// var to prevent it freezing the same things over and over
|
||||
var/cooling = FALSE
|
||||
|
||||
|
||||
@@ -156,8 +156,7 @@
|
||||
|
||||
/obj/item/storage/secure/briefcase/syndie/PopulateContents()
|
||||
..()
|
||||
var/datum/component/storage/storage_space = GetComponent(/datum/component/storage)
|
||||
for(var/i in 1 to storage_space.max_items - 2)
|
||||
for(var/iterator in 1 to 5)
|
||||
new /obj/item/stack/spacecash/c1000(src)
|
||||
|
||||
///Secure Safe
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
desc = "A janitorial cleaner backpack with nozzle to clean blood and graffiti."
|
||||
icon_state = "waterbackpackjani"
|
||||
inhand_icon_state = "waterbackpackjani"
|
||||
custom_price = PAYCHECK_EASY * 5
|
||||
custom_price = PAYCHECK_CREW * 5
|
||||
|
||||
/obj/item/watertank/janitor/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -178,7 +178,7 @@
|
||||
icon = 'icons/obj/hydroponics/equipment.dmi'
|
||||
icon_state = "pepperbackpacksec"
|
||||
inhand_icon_state = "pepperbackpacksec"
|
||||
custom_price = PAYCHECK_MEDIUM * 2
|
||||
custom_price = PAYCHECK_CREW * 2
|
||||
volume = 1000
|
||||
|
||||
/obj/item/watertank/pepperspray/Initialize(mapload)
|
||||
|
||||
@@ -309,7 +309,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
|
||||
icon = 'icons/obj/tcgmisc.dmi'
|
||||
icon_state = "cardback_nt"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
custom_price = PAYCHECK_ASSISTANT * 1.5 //Effectively expensive as long as you're not a very high paying job... in which case, why are you playing trading card games?
|
||||
custom_price = PAYCHECK_CREW * 2 //Effectively expensive as long as you're not a very high paying job... in which case, why are you playing trading card games?
|
||||
///The card series to look in
|
||||
var/series = "MEME"
|
||||
///Chance of the pack having a coin in it out of 10
|
||||
|
||||
@@ -90,4 +90,4 @@
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
custom_materials = list(/datum/material/iron=50, /datum/material/glass=50)
|
||||
grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10)
|
||||
custom_price = PAYCHECK_EASY * 0.5
|
||||
custom_price = PAYCHECK_CREW * 0.5
|
||||
|
||||
@@ -616,7 +616,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
icon_state = "skateboard2"
|
||||
inhand_icon_state = "skateboard2"
|
||||
board_item_type = /obj/vehicle/ridden/scooter/skateboard/pro
|
||||
custom_premium_price = PAYCHECK_HARD * 5
|
||||
custom_premium_price = PAYCHECK_COMMAND * 5
|
||||
|
||||
/obj/item/melee/skateboard/hoverboard
|
||||
name = "hoverboard"
|
||||
|
||||
@@ -193,4 +193,4 @@
|
||||
plunge_mod = 0.5
|
||||
layer_mode_sprite = "reinforced_plunger_layer"
|
||||
|
||||
custom_premium_price = PAYCHECK_MEDIUM * 8
|
||||
custom_premium_price = PAYCHECK_CREW * 8
|
||||
|
||||
@@ -434,7 +434,7 @@
|
||||
if (. == STATION_VICTORY)
|
||||
// If the revolution was quelled, make rev heads unable to be revived through pods
|
||||
for (var/datum/mind/rev_head as anything in ex_headrevs)
|
||||
if(!isnull(rev_head.current))
|
||||
if(!isnull(rev_head.current))
|
||||
ADD_TRAIT(rev_head.current, TRAIT_DEFIB_BLACKLISTED, REF(src))
|
||||
rev_head.current.med_hud_set_status()
|
||||
|
||||
@@ -455,6 +455,8 @@
|
||||
to_chat(headrev_mind.current, span_hear("You hear something crackle in your ears for a moment before a voice speaks. \
|
||||
\"Please stand by for a message from your benefactor. Message as follows, provocateur. \
|
||||
<b>You have been chosen out of your fellow provocateurs to rename the station. Choose wisely.</b> Message ends.\""))
|
||||
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_REVOLUTION_TAX_REMOVAL)
|
||||
|
||||
for (var/mob/living/player as anything in GLOB.player_list)
|
||||
var/datum/mind/player_mind = player.mind
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
base_pixel_x = 11
|
||||
base_pixel_y = 10
|
||||
|
||||
custom_premium_price = PAYCHECK_MEDIUM
|
||||
custom_premium_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/canvas/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -399,7 +399,7 @@
|
||||
pixels_per_unit = 20
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
|
||||
custom_premium_price = PAYCHECK_HARD * 1.25
|
||||
custom_premium_price = PAYCHECK_CREW * 1.25
|
||||
|
||||
/obj/item/canvas/thirtysix_twentyfour/Initialize()
|
||||
. = ..()
|
||||
@@ -422,7 +422,7 @@
|
||||
pixels_per_unit = 18
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
|
||||
custom_premium_price = PAYCHECK_HARD * 1.75
|
||||
custom_premium_price = PAYCHECK_CREW * 1.75
|
||||
|
||||
/obj/item/canvas/fortyfive_twentyseven/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -41,19 +41,27 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
||||only by meta_gas_list(). ||||
|
||||
\*||||||||||||||||||||||||||||||||||||||||*/
|
||||
|
||||
//This is a plot created using the values for gas exports. Each gas has a value that works as it's kind of soft-cap, which limits you from making billions of credits per sale, based on the base_value variable on the gasses themselves. Most of these gasses as a result have a rather low value when sold, like nitrogen and oxygen at 1500 and 600 respectively at their maximum value. The
|
||||
/datum/gas
|
||||
var/id = ""
|
||||
var/specific_heat = 0
|
||||
var/name = ""
|
||||
var/gas_overlay = "" //icon_state in icons/effects/atmospherics.dmi
|
||||
///icon_state in icons/effects/atmospherics.dmi
|
||||
var/gas_overlay = ""
|
||||
var/moles_visible = null
|
||||
var/dangerous = FALSE //currently used by canisters
|
||||
var/fusion_power = 0 //How much the gas accelerates a fusion reaction
|
||||
var/rarity = 0 // relative rarity compared to other gases, used when setting up the reactions list.
|
||||
///currently used by canisters
|
||||
var/dangerous = FALSE
|
||||
///How much the gas accelerates a fusion reaction
|
||||
var/fusion_power = 0
|
||||
/// relative rarity compared to other gases, used when setting up the reactions list.
|
||||
var/rarity = 0
|
||||
///Can gas of this type can purchased through cargo?
|
||||
var/purchaseable = FALSE
|
||||
///How does a single mole of this gas sell for? Formula to calculate maximum value is in code\modules\cargo\exports\large_objects.dm. Doesn't matter for roundstart gasses.
|
||||
var/base_value = 0
|
||||
var/desc
|
||||
|
||||
|
||||
/datum/gas/oxygen
|
||||
id = "o2"
|
||||
specific_heat = 20
|
||||
@@ -90,7 +98,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
dangerous = TRUE
|
||||
rarity = 800
|
||||
base_value = 2
|
||||
base_value = 1.5
|
||||
desc = "A flammable gas with many other curious properties. It's research is one of NT's primary objective."
|
||||
|
||||
/datum/gas/water_vapor
|
||||
@@ -114,7 +122,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
dangerous = TRUE
|
||||
fusion_power = 10
|
||||
rarity = 50
|
||||
base_value = 5
|
||||
base_value = 2.5
|
||||
desc = "The most noble gas of them all. High quantities of hyper-noblium actively prevents reactions from occuring."
|
||||
|
||||
/datum/gas/nitrous_oxide
|
||||
@@ -127,7 +135,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
dangerous = TRUE
|
||||
rarity = 600
|
||||
purchaseable = TRUE
|
||||
base_value = 3
|
||||
base_value = 1.5
|
||||
desc = "Causes drowsiness, euphoria, and eventually unconsciousness."
|
||||
|
||||
/datum/gas/nitrium
|
||||
@@ -139,7 +147,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
dangerous = TRUE
|
||||
rarity = 1
|
||||
base_value = 100
|
||||
base_value = 6
|
||||
desc = "An experimental performance enhancing gas. Nitrium can have amplified effects as more of it gets into your bloodstream."
|
||||
|
||||
/datum/gas/tritium
|
||||
@@ -151,7 +159,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
dangerous = TRUE
|
||||
fusion_power = 5
|
||||
rarity = 300
|
||||
base_value = 5
|
||||
base_value = 2.5
|
||||
desc = "A highly flammable and radioctive gas."
|
||||
|
||||
/datum/gas/bz
|
||||
@@ -162,7 +170,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
fusion_power = 8
|
||||
rarity = 400
|
||||
purchaseable = TRUE
|
||||
base_value = 2
|
||||
base_value = 1.5
|
||||
desc = "A powerful hallucinogenic nerve agent able to induce cognitive damage."
|
||||
|
||||
/datum/gas/pluoxium
|
||||
@@ -171,7 +179,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
name = "Pluoxium"
|
||||
fusion_power = -10
|
||||
rarity = 200
|
||||
base_value = 5
|
||||
base_value = 2.5
|
||||
desc = "A gas that could supply even more oxygen to the bloodstream when inhaled, without being an oxidizer."
|
||||
|
||||
/datum/gas/miasma
|
||||
@@ -182,7 +190,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
gas_overlay = "miasma"
|
||||
moles_visible = MOLES_GAS_VISIBLE * 60
|
||||
rarity = 250
|
||||
base_value = 2
|
||||
base_value = 1
|
||||
desc = "Not necessarily a gas, miasma refers to biological pollutants found in the atmosphere."
|
||||
|
||||
/datum/gas/freon
|
||||
@@ -194,7 +202,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
moles_visible = MOLES_GAS_VISIBLE *30
|
||||
fusion_power = -5
|
||||
rarity = 10
|
||||
base_value = 15
|
||||
base_value = 5
|
||||
desc = "A coolant gas. Mainly used for it's endothermic reaction with oxygen."
|
||||
|
||||
/datum/gas/hydrogen
|
||||
@@ -215,7 +223,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
gas_overlay = "healium"
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
rarity = 300
|
||||
base_value = 19
|
||||
base_value = 5.5
|
||||
desc = "Causes deep, regenerative sleep."
|
||||
|
||||
/datum/gas/proto_nitrate
|
||||
@@ -226,7 +234,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
gas_overlay = "proto_nitrate"
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
rarity = 200
|
||||
base_value = 5
|
||||
base_value = 2.5
|
||||
desc = "A very volatile gas that reacts differently with various gases."
|
||||
|
||||
/datum/gas/zauker
|
||||
@@ -237,7 +245,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
gas_overlay = "zauker"
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
rarity = 1
|
||||
base_value = 100
|
||||
base_value = 7
|
||||
desc = "A highly toxic gas, it's production is highly regulated on top of being difficult. It also breaks down when in contact with nitrogen."
|
||||
|
||||
/datum/gas/halon
|
||||
@@ -248,7 +256,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
gas_overlay = "halon"
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
rarity = 300
|
||||
base_value = 9
|
||||
base_value = 4
|
||||
desc = "A potent fire supressant. Removes oxygen from high temperature fires and cools down the area"
|
||||
|
||||
/datum/gas/helium
|
||||
@@ -257,7 +265,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
name = "Helium"
|
||||
fusion_power = 7
|
||||
rarity = 50
|
||||
base_value = 6
|
||||
base_value = 3.5
|
||||
desc = "A very inert gas produced by the fusion of hydrogen and it's derivatives."
|
||||
|
||||
/datum/gas/antinoblium
|
||||
|
||||
@@ -96,6 +96,19 @@
|
||||
unit_name = "security barrier"
|
||||
export_types = list(/obj/item/grenade/barrier, /obj/structure/barricade/security)
|
||||
|
||||
/**
|
||||
* Gas canister exports.
|
||||
* I'm going to put a quick aside here as this has been a pain to balance for several years now, and I'd like to at least break how to keep gas exports tame.
|
||||
* So: Gasses are sold in canisters below, which have a variable amount of maximum pressure before they start to break. The largest of which is 9.2e13 kPa.
|
||||
* This means we can determine a theoretical maximum value for gas sale prices using the ideal gas laws, as we know we have a minimum gas temperature of 2.7 kelvin.
|
||||
*
|
||||
* Additional note on base value. Gasses are soft capped to limit how much they're worth at large quantities, and time and time again players will find new ways to break your gasses.
|
||||
* so please, *PLEASE* try not to go too much further past 10.
|
||||
|
||||
* * AUTHORS NOTE: This means the theoretical, insane madman number of moles of a single gas in a can sits at a horrifying 4,098,150,709.4 moles.
|
||||
* * Use this as you will, and when someone makes a quinquadrillion credits using gas exports, use these metrics as a way to balance the bejesus out of them.
|
||||
* * For more information, see code\modules\atmospherics\machinery\portable\canister.dm.
|
||||
*/
|
||||
/datum/export/large/gas_canister
|
||||
cost = CARGO_CRATE_VALUE * 0.05 //Base cost of canister. You get more for nice gases inside.
|
||||
unit_name = "Gas Canister"
|
||||
|
||||
@@ -7,69 +7,69 @@
|
||||
/datum/supply_pack/goody/dumdum38
|
||||
name = ".38 DumDum Speedloader"
|
||||
desc = "Contains one speedloader of .38 DumDum ammunition, good for embedding in soft targets."
|
||||
cost = PAYCHECK_MEDIUM * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
access_view = ACCESS_BRIG
|
||||
contains = list(/obj/item/ammo_box/c38/dumdum)
|
||||
|
||||
/datum/supply_pack/goody/match38
|
||||
name = ".38 Match Grade Speedloader"
|
||||
desc = "Contains one speedloader of match grade .38 ammunition, perfect for showing off trickshots."
|
||||
cost = PAYCHECK_MEDIUM * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
access_view = ACCESS_BRIG
|
||||
contains = list(/obj/item/ammo_box/c38/match)
|
||||
|
||||
/datum/supply_pack/goody/rubber
|
||||
name = ".38 Rubber Speedloader"
|
||||
desc = "Contains one speedloader of bouncy rubber .38 ammunition, for when you want to bounce your shots off anything and everything."
|
||||
cost = PAYCHECK_MEDIUM * 1.5
|
||||
cost = PAYCHECK_CREW * 1.5
|
||||
access_view = ACCESS_BRIG
|
||||
contains = list(/obj/item/ammo_box/c38/match/bouncy)
|
||||
|
||||
/datum/supply_pack/goody/mars_single
|
||||
name = "Colt Detective Special Single-Pack"
|
||||
desc = "The HoS took your gun and your badge? No problem! Just pay the absurd taxation fee and you too can be reunited with the lethal power of a .38!"
|
||||
cost = PAYCHECK_HARD * 40 //they really mean a premium here
|
||||
cost = PAYCHECK_CREW * 40 //they really mean a premium here
|
||||
access_view = ACCESS_FORENSICS
|
||||
contains = list(/obj/item/gun/ballistic/revolver/detective)
|
||||
*/ //SKYRAT EDIT END
|
||||
/datum/supply_pack/goody/stingbang
|
||||
name = "Stingbang Single-Pack"
|
||||
desc = "Contains one \"stingbang\" grenade, perfect for playing meanhearted pranks."
|
||||
cost = PAYCHECK_HARD * 2.5
|
||||
cost = PAYCHECK_COMMAND * 2.5
|
||||
access_view = ACCESS_BRIG
|
||||
contains = list(/obj/item/grenade/stingbang)
|
||||
|
||||
/datum/supply_pack/goody/Survivalknives_single
|
||||
name = "Survival Knife Single-Pack"
|
||||
desc = "Contains one sharpened survival knive. Guaranteed to fit snugly inside any Nanotrasen-standard boot. Weapons permit not included." //SKYRAT EDIT - CONTRABAND CLARIFICATION
|
||||
cost = PAYCHECK_HARD * 1.75
|
||||
desc = "Contains one sharpened survival knive. Guaranteed to fit snugly inside any Nanotrasen-standard boot."
|
||||
cost = PAYCHECK_COMMAND * 1.75
|
||||
contains = list(/obj/item/knife/combat/survival)
|
||||
/* //SKYRAT EDIT START - GUN CARGO
|
||||
/datum/supply_pack/goody/ballistic_single
|
||||
name = "Combat Shotgun Single-Pack"
|
||||
desc = "For when the enemy absolutely needs to be replaced with lead. Contains one Aussec-designed Combat Shotgun, and one Shotgun Bandolier."
|
||||
cost = PAYCHECK_HARD * 15
|
||||
cost = PAYCHECK_COMMAND * 15
|
||||
access_view = ACCESS_ARMORY
|
||||
contains = list(/obj/item/gun/ballistic/shotgun/automatic/combat, /obj/item/storage/belt/bandolier)
|
||||
|
||||
/datum/supply_pack/goody/energy_single
|
||||
name = "Energy Gun Single-Pack"
|
||||
desc = "Contains one energy gun, capable of firing both nonlethal and lethal blasts of light."
|
||||
cost = PAYCHECK_HARD * 12
|
||||
cost = PAYCHECK_COMMAND * 12
|
||||
access_view = ACCESS_ARMORY
|
||||
contains = list(/obj/item/gun/energy/e_gun)
|
||||
|
||||
/datum/supply_pack/goody/hell_single
|
||||
name = "Hellgun Kit Single-Pack"
|
||||
desc = "Contains one hellgun degradation kit, an old pattern of laser gun infamous for its ability to horribly disfigure targets with burns. Technically violates the Space Geneva Convention when used on humanoids."
|
||||
cost = PAYCHECK_MEDIUM * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
access_view = ACCESS_ARMORY
|
||||
contains = list(/obj/item/weaponcrafting/gunkit/hellgun)
|
||||
|
||||
/datum/supply_pack/goody/thermal_single
|
||||
name = "Thermal Pistol Holster Single-Pack"
|
||||
desc = "Contains twinned thermal pistols in a holster, ready for use in the field."
|
||||
cost = PAYCHECK_HARD * 15
|
||||
cost = PAYCHECK_COMMAND * 15
|
||||
access_view = ACCESS_ARMORY
|
||||
contains = list(/obj/item/storage/belt/holster/thermal)
|
||||
*/ //SKYRAT EDIT END
|
||||
@@ -77,73 +77,73 @@
|
||||
/datum/supply_pack/goody/sologamermitts
|
||||
name = "Insulated Gloves Single-Pack"
|
||||
desc = "The backbone of modern society. Barely ever ordered for actual engineering."
|
||||
cost = PAYCHECK_MEDIUM * 8
|
||||
cost = PAYCHECK_CREW * 8
|
||||
contains = list(/obj/item/clothing/gloves/color/yellow)
|
||||
|
||||
/datum/supply_pack/goody/gripper_single
|
||||
name = "Gripper Gloves Single-Pack"
|
||||
desc = "A spare pair of gripper gloves. Perfect for when the security vendor is empty (or when you're not actually a security officer). Contraband permit not included." //SKYRAT EDIT - CONTRABAND CLARIFICATION
|
||||
cost = PAYCHECK_HARD * 6
|
||||
desc = "A spare pair of gripper gloves. Perfect for when the security vendor is empty (or when you're not actually a security officer)."
|
||||
cost = PAYCHECK_COMMAND * 6
|
||||
contains = list(/obj/item/clothing/gloves/tackler)
|
||||
|
||||
/datum/supply_pack/goody/firstaidbruises_single
|
||||
name = "Bruise Treatment Kit Single-Pack"
|
||||
desc = "A single brute medkit, perfect for recovering from being crushed in an airlock. Did you know people get crushed in airlocks all the time? Interesting..."
|
||||
cost = PAYCHECK_MEDIUM * 4
|
||||
cost = PAYCHECK_CREW * 4
|
||||
contains = list(/obj/item/storage/medkit/brute)
|
||||
|
||||
/datum/supply_pack/goody/firstaidburns_single
|
||||
name = "Burn Treatment Kit Single-Pack"
|
||||
desc = "A single burn medkit. The advertisement displays a winking atmospheric technician giving a thumbs up, saying \"Mistakes happen!\""
|
||||
cost = PAYCHECK_MEDIUM * 4
|
||||
cost = PAYCHECK_CREW * 4
|
||||
contains = list(/obj/item/storage/medkit/fire)
|
||||
|
||||
/datum/supply_pack/goody/firstaid_single
|
||||
name = "First Aid Kit Single-Pack"
|
||||
desc = "A single medkit, fit for healing most types of bodily harm."
|
||||
cost = PAYCHECK_MEDIUM * 3
|
||||
cost = PAYCHECK_CREW * 3
|
||||
contains = list(/obj/item/storage/medkit/regular)
|
||||
|
||||
/datum/supply_pack/goody/firstaidoxygen_single
|
||||
name = "Oxygen Deprivation Kit Single-Pack"
|
||||
desc = "A single oxygen deprivation medkit, marketed heavily to those with crippling fears of asphyxiation."
|
||||
cost = PAYCHECK_MEDIUM * 4
|
||||
cost = PAYCHECK_CREW * 4
|
||||
contains = list(/obj/item/storage/medkit/o2)
|
||||
|
||||
/datum/supply_pack/goody/firstaidtoxins_single
|
||||
name = "Toxin Treatment Kit Single-Pack"
|
||||
desc = "A single first aid kit focused on healing damage dealt by heavy toxins."
|
||||
cost = PAYCHECK_MEDIUM * 4
|
||||
cost = PAYCHECK_CREW * 4
|
||||
contains = list(/obj/item/storage/medkit/toxin)
|
||||
|
||||
/datum/supply_pack/goody/toolbox // mostly just to water down coupon probability
|
||||
name = "Mechanical Toolbox"
|
||||
desc = "A fully stocked mechanical toolbox, for when you're too lazy to just print them out."
|
||||
cost = PAYCHECK_MEDIUM * 3
|
||||
cost = PAYCHECK_CREW * 3
|
||||
contains = list(/obj/item/storage/toolbox/mechanical)
|
||||
|
||||
/datum/supply_pack/goody/valentine
|
||||
name = "Valentine Card"
|
||||
desc = "Make an impression on that special someone! Comes with one valentine card and a free candy heart!"
|
||||
cost = PAYCHECK_ASSISTANT * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
contains = list(/obj/item/valentine, /obj/item/food/candyheart)
|
||||
|
||||
/datum/supply_pack/goody/beeplush
|
||||
name = "Bee Plushie"
|
||||
desc = "The most important thing you could possibly spend your hard-earned money on."
|
||||
cost = PAYCHECK_EASY * 4
|
||||
cost = PAYCHECK_CREW * 4
|
||||
contains = list(/obj/item/toy/plush/beeplushie)
|
||||
/* SKYRAT EDIT REMOVAL
|
||||
/datum/supply_pack/goody/dyespray
|
||||
name = "Hair Dye Spray"
|
||||
desc = "A cool spray to dye your hair with awesome colors!"
|
||||
cost = PAYCHECK_EASY * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
contains = list(/obj/item/dyespray)
|
||||
*/
|
||||
/datum/supply_pack/goody/beach_ball
|
||||
name = "Beach Ball"
|
||||
// uses desc from item
|
||||
cost = PAYCHECK_MEDIUM
|
||||
cost = PAYCHECK_CREW
|
||||
contains = list(/obj/item/toy/beach_ball/branded)
|
||||
|
||||
/datum/supply_pack/goody/beach_ball/New()
|
||||
@@ -154,17 +154,17 @@
|
||||
/datum/supply_pack/goody/medipen_twopak
|
||||
name = "Medipen Two-Pak"
|
||||
desc = "Contains one standard epinephrine medipen and one standard emergency medkit medipen. For when you want to prepare for the worst."
|
||||
cost = PAYCHECK_MEDIUM * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
contains = list(/obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/hypospray/medipen/ekit)
|
||||
|
||||
/datum/supply_pack/goody/mothic_rations
|
||||
name = "Surplus Mothic Ration Pack"
|
||||
desc = "A single surplus ration pack from the Mothic Fleet. Comes with 3 random sustenance bars, and a package of Activin chewing gum."
|
||||
cost = PAYCHECK_HARD * 2
|
||||
cost = PAYCHECK_COMMAND * 2
|
||||
contains = list(/obj/item/storage/box/mothic_rations)
|
||||
|
||||
/datum/supply_pack/goody/ready_donk
|
||||
name = "Ready-Donk Single Meal"
|
||||
desc = "A complete meal package for the terminally lazy. Contains one Ready-Donk meal."
|
||||
cost = PAYCHECK_MEDIUM * 2
|
||||
cost = PAYCHECK_CREW * 2
|
||||
contains = list(/obj/item/food/ready_donk)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
strip_delay = 15
|
||||
equip_delay_other = 25
|
||||
resistance_flags = FLAMMABLE
|
||||
custom_price = PAYCHECK_HARD * 1.5
|
||||
custom_price = PAYCHECK_COMMAND * 1.5
|
||||
|
||||
/obj/item/clothing/ears/earmuffs/ComponentInitialize()
|
||||
. = ..()
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
resistance_flags = NONE
|
||||
custom_price = PAYCHECK_MEDIUM * 10
|
||||
custom_price = PAYCHECK_CREW * 10
|
||||
custom_premium_price = PAYCHECK_COMMAND * 6
|
||||
cut_type = /obj/item/clothing/gloves/cut
|
||||
clothing_traits = list(TRAIT_CHUNKYFINGERS)
|
||||
@@ -136,7 +136,7 @@
|
||||
equip_delay_other = 20
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
custom_price = PAYCHECK_ASSISTANT * 1.5
|
||||
custom_price = PAYCHECK_CREW * 1.5
|
||||
undyeable = TRUE
|
||||
clothing_traits = list(TRAIT_FINGERPRINT_PASSTHROUGH)
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
desc = "These look pretty fancy."
|
||||
icon_state = "white"
|
||||
inhand_icon_state = "wgloves"
|
||||
custom_price = PAYCHECK_MINIMAL
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/gloves/kim
|
||||
name = "aerostatic gloves"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
custom_premium_price = PAYCHECK_HARD * 3.5
|
||||
custom_premium_price = PAYCHECK_COMMAND * 3.5
|
||||
clothing_traits = list(TRAIT_FINGERPRINT_PASSTHROUGH)
|
||||
/// For storing our tackler datum so we can remove it after
|
||||
var/datum/component/tackler
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
name = "white beanie"
|
||||
desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads."
|
||||
icon_state = "beanie" //Default white
|
||||
custom_price = PAYCHECK_ASSISTANT * 1.2
|
||||
custom_price = PAYCHECK_CREW * 1.2
|
||||
|
||||
/obj/item/clothing/head/beanie/black
|
||||
name = "black beanie"
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
desc = "A reliable, blue tinted helmet reminding you that you <i>still</i> owe that engineer a beer."
|
||||
icon_state = "blueshift"
|
||||
inhand_icon_state = "blueshift"
|
||||
custom_premium_price = PAYCHECK_HARD
|
||||
custom_premium_price = PAYCHECK_COMMAND
|
||||
|
||||
/obj/item/clothing/head/helmet/riot
|
||||
name = "riot helmet"
|
||||
@@ -234,7 +234,7 @@
|
||||
desc = "A british looking helmet."
|
||||
icon_state = "constable"
|
||||
inhand_icon_state = "constable"
|
||||
custom_price = PAYCHECK_HARD * 1.5
|
||||
custom_price = PAYCHECK_COMMAND * 1.5
|
||||
worn_y_offset = 4
|
||||
|
||||
/obj/item/clothing/head/helmet/swat/nanotrasen
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
desc = "A bunch of hair without a head attached. This one changes color to match the hair of the wearer. Nothing natural about that."
|
||||
color = "#FFFFFF"
|
||||
adjustablecolor = FALSE
|
||||
custom_price = PAYCHECK_HARD
|
||||
custom_price = PAYCHECK_COMMAND
|
||||
|
||||
/obj/item/clothing/head/wig/natural/Initialize(mapload)
|
||||
hairstyle = pick(GLOB.hairstyles_list - "Bald")
|
||||
|
||||
@@ -191,7 +191,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
|
||||
icon_state = "whistle"
|
||||
inhand_icon_state = "whistle"
|
||||
slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_NECK
|
||||
custom_price = PAYCHECK_HARD * 1.5
|
||||
custom_price = PAYCHECK_COMMAND * 1.5
|
||||
actions_types = list(/datum/action/item_action/halt)
|
||||
|
||||
/obj/item/clothing/mask/whistle/ui_action_click(mob/user, action)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
icon_state = "bluetie"
|
||||
inhand_icon_state = "" //no inhands
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/neck/tie/blue
|
||||
name = "blue tie"
|
||||
@@ -101,7 +101,7 @@
|
||||
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/neck/scarf/black
|
||||
name = "black scarf"
|
||||
@@ -165,17 +165,17 @@
|
||||
/obj/item/clothing/neck/stripedredscarf
|
||||
name = "striped red scarf"
|
||||
icon_state = "stripedredscarf"
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.2
|
||||
custom_price = PAYCHECK_CREW * 0.2
|
||||
|
||||
/obj/item/clothing/neck/stripedgreenscarf
|
||||
name = "striped green scarf"
|
||||
icon_state = "stripedgreenscarf"
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.2
|
||||
custom_price = PAYCHECK_CREW * 0.2
|
||||
|
||||
/obj/item/clothing/neck/stripedbluescarf
|
||||
name = "striped blue scarf"
|
||||
icon_state = "stripedbluescarf"
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.2
|
||||
custom_price = PAYCHECK_CREW * 0.2
|
||||
|
||||
/obj/item/clothing/neck/petcollar
|
||||
name = "pet collar"
|
||||
@@ -238,7 +238,7 @@
|
||||
icon = 'icons/obj/clothing/neck.dmi'
|
||||
icon_state = "beads"
|
||||
color = "#ffffff"
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.2
|
||||
custom_price = PAYCHECK_CREW * 0.2
|
||||
custom_materials = (list(/datum/material/plastic = 500))
|
||||
|
||||
/obj/item/clothing/neck/beads/Initialize(mapload)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "cowboy_brown"
|
||||
permeability_coefficient = 0.05 //these are quite tall
|
||||
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
var/list/occupants = list()
|
||||
var/max_occupants = 4
|
||||
can_be_tied = FALSE
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
resistance_flags = NONE
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 40, ACID = 75)
|
||||
can_be_bloody = FALSE
|
||||
custom_price = PAYCHECK_EASY * 3
|
||||
custom_price = PAYCHECK_CREW * 3
|
||||
can_be_tied = FALSE
|
||||
|
||||
/obj/item/clothing/shoes/galoshes/dry
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/obj/item/clothing/shoes/sneakers/black
|
||||
name = "black shoes"
|
||||
desc = "A pair of black shoes."
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
cold_protection = FEET
|
||||
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
worn_icon_state = "rollerskates"
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/rollerskates
|
||||
custom_premium_price = PAYCHECK_EASY * 5
|
||||
custom_price = PAYCHECK_EASY * 5
|
||||
custom_premium_price = PAYCHECK_CREW * 5
|
||||
custom_price = PAYCHECK_CREW * 5
|
||||
|
||||
/obj/item/clothing/shoes/wheelys/skishoes
|
||||
name = "ski shoes"
|
||||
@@ -77,5 +77,5 @@
|
||||
worn_icon_state = "skishoes"
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/skishoes
|
||||
custom_premium_price = PAYCHECK_EASY * 1.6
|
||||
custom_price = PAYCHECK_EASY * 1.6
|
||||
custom_premium_price = PAYCHECK_CREW * 1.6
|
||||
custom_price = PAYCHECK_CREW * 1.6
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
desc = "A large, yet comfortable piece of armor, protecting you from some threats."
|
||||
icon_state = "blueshift"
|
||||
inhand_icon_state = "blueshift"
|
||||
custom_premium_price = PAYCHECK_HARD
|
||||
custom_premium_price = PAYCHECK_COMMAND
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/cuirass
|
||||
name = "cuirass"
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
icon_state = "constable"
|
||||
inhand_icon_state = "constable"
|
||||
can_adjust = FALSE
|
||||
custom_price = PAYCHECK_HARD
|
||||
custom_price = PAYCHECK_COMMAND
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/security/warden
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
icon_state = "overalls"
|
||||
inhand_icon_state = "lb_suit"
|
||||
can_adjust = FALSE
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/under/misc/assistantformal
|
||||
name = "assistant's formal uniform"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
body_parts_covered = GROIN|LEGS
|
||||
female_sprite_flags = NO_FEMALE_UNIFORM
|
||||
can_adjust = FALSE
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon = 'icons/obj/clothing/under/shorts_pants.dmi'
|
||||
worn_icon = 'icons/mob/clothing/under/shorts_pants.dmi'
|
||||
species_exception = list(/datum/species/golem)
|
||||
@@ -17,7 +17,7 @@
|
||||
name = "Must Hang jeans"
|
||||
desc = "Made in the finest space jeans factory this side of Alpha Centauri."
|
||||
icon_state = "jeansmustang"
|
||||
custom_price = PAYCHECK_EASY * 3
|
||||
custom_price = PAYCHECK_CREW * 3
|
||||
|
||||
/obj/item/clothing/under/pants/blackjeans
|
||||
name = "black jeans"
|
||||
|
||||
@@ -55,21 +55,21 @@
|
||||
desc = "A blue, casual skirt."
|
||||
icon_state = "blueskirt"
|
||||
inhand_icon_state = "b_suit"
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/under/dress/skirt/red
|
||||
name = "red skirt"
|
||||
desc = "A red, casual skirt."
|
||||
icon_state = "redskirt"
|
||||
inhand_icon_state = "r_suit"
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/under/dress/skirt/purple
|
||||
name = "purple skirt"
|
||||
desc = "A purple, casual skirt."
|
||||
icon_state = "purpleskirt"
|
||||
inhand_icon_state = "p_suit"
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/under/dress/skirt/plaid
|
||||
name = "red plaid skirt"
|
||||
@@ -78,7 +78,7 @@
|
||||
inhand_icon_state = "plaid_red"
|
||||
can_adjust = TRUE
|
||||
alt_covers_chest = TRUE
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/clothing/under/dress/skirt/plaid/blue
|
||||
name = "blue plaid skirt"
|
||||
|
||||
@@ -123,6 +123,8 @@
|
||||
if(!account_job)
|
||||
return
|
||||
var/money_to_transfer = round(account_job.paycheck * payday_modifier * amt_of_paychecks)
|
||||
if(amt_of_paychecks == 1)
|
||||
money_to_transfer = clamp(money_to_transfer, 0, PAYCHECK_CREW) //We want to limit single, passive paychecks to regular crew income.
|
||||
if(free)
|
||||
adjust_money(money_to_transfer)
|
||||
SSblackbox.record_feedback("amount", "free_income", money_to_transfer)
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/ice
|
||||
name = "ice cup"
|
||||
desc = "Careful, cold ice, do not chew."
|
||||
custom_price = PAYCHECK_PRISONER * 0.6
|
||||
custom_price = PAYCHECK_LOWER * 0.6
|
||||
icon_state = "coffee"
|
||||
list_reagents = list(/datum/reagent/consumable/ice = 30)
|
||||
spillable = TRUE
|
||||
@@ -268,7 +268,7 @@
|
||||
list_reagents = list(/datum/reagent/consumable/hot_coco = 15, /datum/reagent/consumable/sugar = 5)
|
||||
foodtype = SUGAR
|
||||
resistance_flags = FREEZE_PROOF
|
||||
custom_price = PAYCHECK_ASSISTANT * 1.2
|
||||
custom_price = PAYCHECK_CREW * 1.2
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/dry_ramen
|
||||
@@ -278,7 +278,7 @@
|
||||
list_reagents = list(/datum/reagent/consumable/dry_ramen = 15, /datum/reagent/consumable/salt = 3)
|
||||
foodtype = GRAIN
|
||||
isGlass = FALSE
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.9
|
||||
custom_price = PAYCHECK_CREW * 0.9
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/waterbottle
|
||||
name = "bottle of water"
|
||||
@@ -298,7 +298,7 @@
|
||||
var/cap_lost = FALSE
|
||||
var/mutable_appearance/cap_overlay
|
||||
var/flip_chance = 10
|
||||
custom_price = PAYCHECK_PRISONER * 0.8
|
||||
custom_price = PAYCHECK_LOWER * 0.8
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/waterbottle/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -584,7 +584,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/flask
|
||||
name = "flask"
|
||||
desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go."
|
||||
custom_price = PAYCHECK_HARD * 2
|
||||
custom_price = PAYCHECK_COMMAND * 2
|
||||
icon_state = "flask"
|
||||
custom_materials = list(/datum/material/iron=250)
|
||||
volume = 60
|
||||
@@ -623,7 +623,7 @@
|
||||
reagent_flags = NONE
|
||||
spillable = FALSE
|
||||
isGlass = FALSE
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.9
|
||||
custom_price = PAYCHECK_CREW * 0.9
|
||||
obj_flags = CAN_BE_HIT
|
||||
throwforce = 12 // set to 0 upon being opened. Have you ever been domed by a soda can? Those things fucking hurt
|
||||
/// If the can hasn't been opened yet, this is the measure of how fizzed up it is from being shaken or thrown around. When opened, this is rolled as a percentage chance to burst
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
icon_state = "glassbottle"
|
||||
worn_icon_state = "bottle"
|
||||
fill_icon_thresholds = list(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
|
||||
custom_price = PAYCHECK_EASY * 1.1
|
||||
custom_price = PAYCHECK_CREW * 1.1
|
||||
amount_per_transfer_from_this = 10
|
||||
volume = 100
|
||||
force = 15 //Smashing bottles over someone's head hurts.
|
||||
@@ -29,7 +29,7 @@
|
||||
desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents."
|
||||
icon_state = "glassbottlesmall"
|
||||
volume = 50
|
||||
custom_price = PAYCHECK_EASY * 0.9
|
||||
custom_price = PAYCHECK_CREW * 0.9
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/smash(mob/living/target, mob/thrower, ranged = FALSE)
|
||||
if(bartender_check(target) && ranged)
|
||||
@@ -163,7 +163,7 @@
|
||||
volume = 30
|
||||
list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30)
|
||||
foodtype = GRAIN | ALCOHOL
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/beer/almost_empty
|
||||
list_reagents = list(/datum/reagent/consumable/ethanol/beer = 1)
|
||||
@@ -179,8 +179,8 @@
|
||||
volume = 30
|
||||
list_reagents = list(/datum/reagent/consumable/rootbeer = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
custom_price = PAYCHECK_HARD * 1.5
|
||||
custom_premium_price = PAYCHECK_HARD * 2
|
||||
custom_price = PAYCHECK_CREW * 1.5
|
||||
custom_premium_price = PAYCHECK_CREW * 2
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/ale
|
||||
name = "Magm-Ale"
|
||||
@@ -189,7 +189,7 @@
|
||||
volume = 30
|
||||
list_reagents = list(/datum/reagent/consumable/ethanol/ale = 30)
|
||||
foodtype = GRAIN | ALCOHOL
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/gin
|
||||
name = "Griffeater gin"
|
||||
@@ -256,7 +256,7 @@
|
||||
desc = "A 40 full of malt liquor. Kicks stronger than, well, a rabid bear."
|
||||
icon_state = "maltliquorbottle"
|
||||
list_reagents = list(/datum/reagent/consumable/ethanol/beer/maltliquor = 100)
|
||||
custom_price = PAYCHECK_EASY
|
||||
custom_price = PAYCHECK_CREW
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/holywater
|
||||
name = "flask of holy water"
|
||||
@@ -448,7 +448,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/orangejuice
|
||||
name = "orange juice"
|
||||
desc = "Full of vitamins and deliciousness!"
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "orangejuice"
|
||||
inhand_icon_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
@@ -461,7 +461,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/cream
|
||||
name = "milk cream"
|
||||
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "cream"
|
||||
inhand_icon_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
@@ -474,7 +474,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice
|
||||
name = "tomato juice"
|
||||
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "tomatojuice"
|
||||
inhand_icon_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
@@ -487,7 +487,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/limejuice
|
||||
name = "lime juice"
|
||||
desc = "Sweet-sour goodness."
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "limejuice"
|
||||
inhand_icon_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
@@ -500,7 +500,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/pineapplejuice
|
||||
name = "pineapple juice"
|
||||
desc = "Extremely tart, yellow juice."
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "pineapplejuice"
|
||||
inhand_icon_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
@@ -513,7 +513,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/menthol
|
||||
name = "menthol"
|
||||
desc = "Tastes naturally minty, and imparts a very mild numbing sensation."
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "mentholbox"
|
||||
inhand_icon_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
@@ -524,7 +524,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grenadine
|
||||
name = "Jester Grenadine"
|
||||
desc = "Contains 0% real cherries!"
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "grenadine"
|
||||
isGlass = TRUE
|
||||
list_reagents = list(/datum/reagent/consumable/grenadine = 100)
|
||||
@@ -534,7 +534,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/applejack
|
||||
name = "Buckin' Bronco's Applejack"
|
||||
desc = "Kicks like a horse, tastes like an apple!"
|
||||
custom_price = PAYCHECK_ASSISTANT
|
||||
custom_price = PAYCHECK_CREW
|
||||
icon_state = "applejack_bottle"
|
||||
isGlass = TRUE
|
||||
list_reagents = list(/datum/reagent/consumable/ethanol/applejack = 100)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
obj_flags = UNIQUE_RENAME
|
||||
drop_sound = 'sound/items/handling/drinkglass_drop.ogg'
|
||||
pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
|
||||
custom_price = PAYCHECK_PRISONER
|
||||
custom_price = PAYCHECK_LOWER
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(datum/reagents/holder, ...)
|
||||
. = ..()
|
||||
@@ -74,7 +74,7 @@
|
||||
fill_icon_state = "shot_glass"
|
||||
volume = 15
|
||||
custom_materials = list(/datum/material/glass=100)
|
||||
custom_price = PAYCHECK_ASSISTANT * 0.4
|
||||
custom_price = PAYCHECK_CREW * 0.4
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/update_name(updates)
|
||||
if(renamedByPlayer)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
icon_dead = "xpod-dead"
|
||||
icon_harvest = "xpod-harvest"
|
||||
growthstages = 4
|
||||
custom_premium_price = PAYCHECK_EASY * 2
|
||||
custom_premium_price = PAYCHECK_CREW * 2
|
||||
|
||||
/obj/item/seeds/random/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -269,5 +269,5 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
force = 0
|
||||
hitsound = 'sound/voice/moth/scream_moth.ogg'
|
||||
custom_price = PAYCHECK_HARD * 2.37
|
||||
custom_premium_price = PAYCHECK_HARD * 2.37
|
||||
custom_price = PAYCHECK_COMMAND * 2.37
|
||||
custom_premium_price = PAYCHECK_COMMAND * 2.37
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD
|
||||
force = 0
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
custom_price = PAYCHECK_ASSISTANT * 2.5
|
||||
custom_price = PAYCHECK_CREW * 2.5
|
||||
instrument_range = 1
|
||||
circuit_type = /obj/item/circuit_component/synth/headphones
|
||||
shell_capacity = SHELL_CAPACITY_TINY
|
||||
@@ -59,7 +59,7 @@
|
||||
slot_flags = ITEM_SLOT_EARS
|
||||
strip_delay = 100 //air pods don't fall out
|
||||
instrument_range = 0 //you're paying for quality here
|
||||
custom_premium_price = PAYCHECK_ASSISTANT * 36 //Save up 5 shifts worth of pay just to lose it down a drainpipe on the sidewalk
|
||||
custom_premium_price = PAYCHECK_CREW * 36 //Save up 5 shifts worth of pay just to lose it down a drainpipe on the sidewalk
|
||||
|
||||
/obj/item/circuit_component/synth
|
||||
display_name = "Synthesizer"
|
||||
|
||||
@@ -61,16 +61,20 @@
|
||||
/// Experience type granted by playing in this job.
|
||||
var/exp_granted_type = ""
|
||||
|
||||
var/paycheck = PAYCHECK_MINIMAL
|
||||
///How much money does this crew member make in a single paycheck? Note that passive paychecks are capped to PAYCHECK_CREW in regular gameplay after roundstart.
|
||||
var/paycheck = PAYCHECK_CREW
|
||||
///Which department does this paycheck pay from?
|
||||
var/paycheck_department = ACCOUNT_CIV
|
||||
|
||||
var/list/mind_traits // Traits added to the mind of the mob assigned this job
|
||||
/// Traits added to the mind of the mob assigned this job
|
||||
var/list/mind_traits
|
||||
|
||||
///Lazylist of traits added to the liver of the mob assigned this job (used for the classic "cops heal from donuts" reaction, among others)
|
||||
var/list/liver_traits = null
|
||||
|
||||
var/display_order = JOB_DISPLAY_ORDER_DEFAULT
|
||||
|
||||
///What types of bounty tasks can this job recieve past the default?
|
||||
var/bounty_types = CIV_JOB_BASIC
|
||||
|
||||
/// Goodies that can be received via the mail system.
|
||||
|
||||
@@ -14,7 +14,7 @@ Assistant
|
||||
exp_granted_type = EXP_TYPE_CREW
|
||||
outfit = /datum/outfit/job/assistant
|
||||
plasmaman_outfit = /datum/outfit/plasmaman
|
||||
paycheck = PAYCHECK_ASSISTANT // Get a job. Job reassignment changes your paycheck now. Get over it.
|
||||
paycheck = PAYCHECK_LOWER // Get a job. Job reassignment changes your paycheck now. Get over it.
|
||||
|
||||
paycheck_department = ACCOUNT_CIV
|
||||
display_order = JOB_DISPLAY_ORDER_ASSISTANT
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
outfit = /datum/outfit/job/atmos
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/atmospherics
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_ENG
|
||||
|
||||
liver_traits = list(TRAIT_ENGINEER_METABOLISM)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
outfit = /datum/outfit/job/bartender
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/bar
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
display_order = JOB_DISPLAY_ORDER_BARTENDER
|
||||
bounty_types = CIV_JOB_DRINK
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
outfit = /datum/outfit/job/botanist
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/botany
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
display_order = JOB_DISPLAY_ORDER_BOTANIST
|
||||
bounty_types = CIV_JOB_GROW
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
outfit = /datum/outfit/job/cargo_tech
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/cargo
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_CAR
|
||||
display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN
|
||||
bounty_types = CIV_JOB_RANDOM
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/chaplain
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/chaplain
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CHAPLAIN
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
outfit = /datum/outfit/job/chemist
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/chemist
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_MED
|
||||
|
||||
liver_traits = list(TRAIT_MEDICAL_METABOLISM)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
outfit = /datum/outfit/job/clown
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/clown
|
||||
|
||||
paycheck = PAYCHECK_MINIMAL
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
liver_traits = list(TRAIT_COMEDY_METABOLISM)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
outfit = /datum/outfit/job/cook
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/chef
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
liver_traits = list(TRAIT_CULINARY_METABOLISM)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/curator
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/curator
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_CURATOR
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/datum/job_department/security,
|
||||
)
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SEC
|
||||
|
||||
mind_traits = list(TRAIT_DONUT_LOVER, TRAIT_DETECTIVE) //SKYRAT EDIT CHANGE: EXAMINEMORE
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/datum/job_department/science,
|
||||
)
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SCI
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_GENETICIST
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
outfit = /datum/outfit/job/janitor
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/janitor
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_JANITOR
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/lawyer
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/bar
|
||||
|
||||
paycheck = PAYCHECK_EASY
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
mind_traits = list(TRAIT_DONUT_LOVER)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/doctor
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/medical
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_MED
|
||||
|
||||
liver_traits = list(TRAIT_MEDICAL_METABOLISM)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
outfit = /datum/outfit/job/mime
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/mime
|
||||
|
||||
paycheck = PAYCHECK_MINIMAL
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_MIME
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/paramedic
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/paramedic
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_MED
|
||||
|
||||
liver_traits = list(TRAIT_MEDICAL_METABOLISM)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
supervisors = "the security team"
|
||||
selection_color = "#ffe1c3"
|
||||
exp_granted_type = EXP_TYPE_CREW
|
||||
paycheck = PAYCHECK_PRISONER
|
||||
paycheck = PAYCHECK_LOWER
|
||||
|
||||
outfit = /datum/outfit/job/prisoner
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/prisoner
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/psychologist
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/psychologist
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SRV
|
||||
|
||||
liver_traits = list(TRAIT_MEDICAL_METABOLISM)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
outfit = /datum/outfit/job/quartermaster
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/cargo
|
||||
|
||||
paycheck = PAYCHECK_COMMAND //SKYRAT EDIT CHANGE - ORIGINAL: PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_COMMAND //SKYRAT EDIT CHANGE - ORIGINAL: PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_CAR
|
||||
|
||||
//liver_traits = list(TRAIT_PRETENDER_ROYAL_METABOLISM) //ORIGINAL
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/datum/job_department/science,
|
||||
)
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SCI
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_ROBOTICIST
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
outfit = /datum/outfit/job/scientist
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/science
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SCI
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SCIENTIST
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
outfit = /datum/outfit/job/security
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/security
|
||||
|
||||
paycheck = PAYCHECK_HARD
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SEC
|
||||
|
||||
mind_traits = list(TRAIT_DONUT_LOVER)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
outfit = /datum/outfit/job/miner
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/mining
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_CAR
|
||||
|
||||
display_order = JOB_DISPLAY_ORDER_SHAFT_MINER
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
outfit = /datum/outfit/job/engineer
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/engineering
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_ENG
|
||||
|
||||
liver_traits = list(TRAIT_ENGINEER_METABOLISM)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
outfit = /datum/outfit/job/virologist
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/viro
|
||||
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_MED
|
||||
|
||||
liver_traits = list(TRAIT_MEDICAL_METABOLISM)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
outfit = /datum/outfit/job/warden
|
||||
plasmaman_outfit = /datum/outfit/plasmaman/warden
|
||||
|
||||
paycheck = PAYCHECK_HARD
|
||||
paycheck = PAYCHECK_CREW
|
||||
paycheck_department = ACCOUNT_SEC
|
||||
|
||||
mind_traits = list(TRAIT_DONUT_LOVER)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
icon = 'icons/obj/card.dmi'
|
||||
icon_state = "data_3"
|
||||
custom_price = PAYCHECK_MEDIUM * 3
|
||||
custom_price = PAYCHECK_CREW * 3
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/// Traits automatically granted by this chip, optional. Lazylist.
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
max_capacity = 64
|
||||
icon_state = "ssd_mini"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
custom_price = PAYCHECK_MEDIUM * 2
|
||||
custom_price = PAYCHECK_CREW * 2
|
||||
|
||||
/obj/item/computer_hardware/hard_drive/small/install_default_programs()
|
||||
. = ..()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user