Coonflict fiiixeeess

This commit is contained in:
Artur
2020-05-13 12:56:17 +03:00
261 changed files with 3312 additions and 1483 deletions

View File

@@ -81,6 +81,8 @@
/datum/config_entry/flag/disable_peaceborg
/datum/config_entry/flag/economy //money money money money money money money money money money money money
/datum/config_entry/number/minimum_secborg_alert //Minimum alert level for secborgs to be chosen.
config_entry_value = 3

View File

@@ -0,0 +1,139 @@
SUBSYSTEM_DEF(economy)
name = "Economy"
wait = 5 MINUTES
init_order = INIT_ORDER_ECONOMY
runlevels = RUNLEVEL_GAME
var/roundstart_paychecks = 5
var/budget_pool = 35000
var/list/department_accounts = list(ACCOUNT_CIV = ACCOUNT_CIV_NAME,
ACCOUNT_ENG = ACCOUNT_ENG_NAME,
ACCOUNT_SCI = ACCOUNT_SCI_NAME,
ACCOUNT_MED = ACCOUNT_MED_NAME,
ACCOUNT_SRV = ACCOUNT_SRV_NAME,
ACCOUNT_CAR = ACCOUNT_CAR_NAME,
ACCOUNT_SEC = ACCOUNT_SEC_NAME)
var/list/generated_accounts = list()
var/full_ancap = FALSE // Enables extra money charges for things that normally would be free, such as sleepers/cryo/cloning.
//Take care when enabling, as players will NOT respond well if the economy is set up for low cash flows.
var/alive_humans_bounty = 100
var/crew_safety_bounty = 1500
var/monster_bounty = 150
var/mood_bounty = 100
var/techweb_bounty = 250
var/slime_bounty = list("grey" = 10,
// tier 1
"orange" = 100,
"metal" = 100,
"blue" = 100,
"purple" = 100,
// tier 2
"dark purple" = 500,
"dark blue" = 500,
"green" = 500,
"silver" = 500,
"gold" = 500,
"yellow" = 500,
"red" = 500,
"pink" = 500,
// tier 3
"cerulean" = 750,
"sepia" = 750,
"bluespace" = 750,
"pyrite" = 750,
"light pink" = 750,
"oil" = 750,
"adamantine" = 750,
// tier 4
"rainbow" = 1000)
var/list/bank_accounts = list() //List of normal accounts (not department accounts)
var/list/dep_cards = list()
/datum/controller/subsystem/economy/Initialize(timeofday)
var/budget_to_hand_out = round(budget_pool / department_accounts.len)
for(var/A in department_accounts)
new /datum/bank_account/department(A, budget_to_hand_out)
return ..()
/datum/controller/subsystem/economy/fire(resumed = 0)
eng_payout() // Payout based on nothing. What will replace it? Surplus power, powered APC's, air alarms? Who knows.
sci_payout() // Payout based on slimes.
secmedsrv_payout() // Payout based on crew safety, health, and mood.
civ_payout() // Payout based on ??? Profit
car_payout() // Cargo's natural gain in the cash moneys.
for(var/A in bank_accounts)
var/datum/bank_account/B = A
B.payday(1)
/datum/controller/subsystem/economy/proc/get_dep_account(dep_id)
for(var/datum/bank_account/department/D in generated_accounts)
if(D.department_id == dep_id)
return D
/datum/controller/subsystem/economy/proc/eng_payout()
var/engineering_cash = 3000
var/datum/bank_account/D = get_dep_account(ACCOUNT_ENG)
if(D)
D.adjust_money(engineering_cash)
/datum/controller/subsystem/economy/proc/car_payout()
var/cargo_cash = 500
var/datum/bank_account/D = get_dep_account(ACCOUNT_CAR)
if(D)
D.adjust_money(cargo_cash)
/datum/controller/subsystem/economy/proc/secmedsrv_payout()
var/crew
var/alive_crew
var/dead_monsters
var/cash_to_grant
for(var/mob/m in GLOB.mob_list)
if(isnewplayer(m))
continue
if(m.mind)
if(isbrain(m) || iscameramob(m))
continue
if(ishuman(m))
var/mob/living/carbon/human/H = m
crew++
if(H.stat != DEAD)
alive_crew++
var/datum/component/mood/mood = H.GetComponent(/datum/component/mood)
var/medical_cash = (H.health / H.maxHealth) * alive_humans_bounty
if(mood)
var/datum/bank_account/D = get_dep_account(ACCOUNT_SRV)
if(D)
var/mood_dosh = (mood.mood_level / 9) * mood_bounty
D.adjust_money(mood_dosh)
medical_cash *= (mood.sanity / 100)
var/datum/bank_account/D = get_dep_account(ACCOUNT_MED)
if(D)
D.adjust_money(medical_cash)
if(ishostile(m))
var/mob/living/simple_animal/hostile/H = m
if(H.stat == DEAD && (H.z in SSmapping.levels_by_trait(ZTRAIT_STATION)))
dead_monsters++
CHECK_TICK
var/living_ratio = alive_crew / crew
cash_to_grant = (crew_safety_bounty * living_ratio) + (monster_bounty * dead_monsters)
var/datum/bank_account/D = get_dep_account(ACCOUNT_SEC)
if(D)
D.adjust_money(min(cash_to_grant, MAX_GRANT_SECMEDSRV))
/datum/controller/subsystem/economy/proc/sci_payout()
var/science_bounty = 0
for(var/mob/living/simple_animal/slime/S in GLOB.mob_list)
if(S.stat == DEAD)
continue
science_bounty += slime_bounty[S.colour]
var/datum/bank_account/D = get_dep_account(ACCOUNT_SCI)
if(D)
D.adjust_money(min(science_bounty, MAX_GRANT_SCI))
/datum/controller/subsystem/economy/proc/civ_payout()
var/civ_cash = (rand(1,5) * 500)
var/datum/bank_account/D = get_dep_account(ACCOUNT_CIV)
if(D)
D.adjust_money(min(civ_cash, MAX_GRANT_CIV))

View File

@@ -479,6 +479,10 @@ SUBSYSTEM_DEF(job)
to_chat(M, "<b>[job.custom_spawn_text]</b>")
if(CONFIG_GET(number/minimal_access_threshold))
to_chat(M, "<span class='notice'><B>As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.</B></span>")
if(ishuman(H))
var/mob/living/carbon/human/wageslave = H
to_chat(M, "<b><span class = 'big'>Your account ID is [wageslave.account_id].</span></b>")
H.add_memory("Your account ID is [wageslave.account_id].")
if(job && H)
if(job.dresscodecompliant)// CIT CHANGE - dress code compliance
equip_loadout(N, H) // CIT CHANGE - allows players to spawn with loadout items

View File

@@ -34,10 +34,8 @@ SUBSYSTEM_DEF(shuttle)
//supply shuttle stuff
var/obj/docking_port/mobile/supply/supply
var/ordernum = 1 //order number given to next order
var/points = 5000 //number of trade-points we have
var/centcom_message = "" //Remarks from CentCom on how well you checked the last order.
var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentCom, associated with their potencies
var/passive_supply_points_per_minute = 125
var/list/supply_packs = list()
var/list/shoppinglist = list()
@@ -118,9 +116,6 @@ SUBSYSTEM_DEF(shuttle)
qdel(T, force=TRUE)
CheckAutoEvac()
if(!(times_fired % CEILING(600/wait, 1)))
points += passive_supply_points_per_minute
var/esETA = emergency?.getModeStr()
emergency_shuttle_stat_text = "[esETA? "[esETA] [emergency.getTimerStr()]" : ""]"
@@ -573,7 +568,6 @@ SUBSYSTEM_DEF(shuttle)
centcom_message = SSshuttle.centcom_message
ordernum = SSshuttle.ordernum
points = SSshuttle.points
emergencyNoEscape = SSshuttle.emergencyNoEscape
emergencyCallAmount = SSshuttle.emergencyCallAmount
shuttle_purchased = SSshuttle.shuttle_purchased