Skip to content

Commit

Permalink
Merge branch 'TauCetiStation:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Ro2tCrab committed Sep 13, 2024
2 parents b4f1a5e + b182b05 commit 4707498
Show file tree
Hide file tree
Showing 117 changed files with 1,049 additions and 856 deletions.
6 changes: 6 additions & 0 deletions code/__DEFINES/colors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -210,3 +210,9 @@
0, 0, 0, 1, \
0, 0, 0, 0)


#define PAINKILLERS_FILTER list(1.25, 0, 0, 0, \
0, 1.25, 0, 0, \
0, 0, 1.25, 0, \
0, 0, 0, 1, \
-0.05,-0.05,-0.05, 0)
6 changes: 6 additions & 0 deletions code/__DEFINES/combat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,9 @@
#define MOVESET_TYPE "moveset_type"
#define MOVESET_ROLES "moveset_role"
#define MOVESET_QUALITY "moveset_quality"

//Painkiller effectiveness (for get_painkiller_effect() comparison)
#define PAINKILLERS_EFFECT_SLIGHT 0.95 //all painkillers.
#define PAINKILLERS_EFFECT_MEDIUM 0.75 //weak painkillers, allow you to ignore minor pain and not see pain() messages.
#define PAINKILLERS_EFFECT_HEAVY 0.6 //powerful painkillers, allow you to not see custom_pain() messages.
#define PAINKILLERS_EFFECT_VERY_HEAVY 0.5 //very powerful painkillers that does not allow the user to determine the location of the injury.
1 change: 1 addition & 0 deletions code/__DEFINES/gamemodes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
#define REPLICATOR "Replicator"
#define PIRATE "Pirate"
#define PRISONER "Prisoner"
#define THIEF "Thief"

////////////////////// GREETS /////////////////////////
#define GREET_DEFAULT "default"
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/messages.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#define MAX_BOOK_MESSAGE_LEN 27648
#define MAX_NAME_LEN 26
#define MAX_LNAME_LEN 64
#define MAX_REV_REASON_LEN 255
#define MAX_MEDAL_REASON_LEN 128

//#define SHOWMSG_SELF
#define SHOWMSG_VISUAL (1<<0)
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -262,3 +262,11 @@
#define LOGOUT_GHOST 2
#define LOGOUT_REENTER 3
#define LOGOUT_SWAP 4 // not so safe, check other things if available

// traumatic shock levels
#define TRAUMATIC_SHOCK_MINOR 10
#define TRAUMATIC_SHOCK_SERIOUS 30
#define TRAUMATIC_SHOCK_INTENSE 50
#define TRAUMATIC_SHOCK_MIND_SHATTERING 80
#define TRAUMATIC_SHOCK_CRITICAL 100

1 change: 1 addition & 0 deletions code/__DEFINES/religion.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@

// Religion Techs
#define RTECH_MEMORIZE_RUNE "Memorize Rune"
#define RTECH_COOLDOWN_REDUCTION "Cooldown Reduction"
#define RTECH_REUSABLE_RUNE "Reusable Rune"
#define RTECH_BUILD_EVERYWHERE "Build Everywhere"
#define RTECH_MORE_RUNES "More Runes"
Expand Down
126 changes: 126 additions & 0 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,132 @@
if(gender==FEMALE) return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
else return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))

/proc/random_eye_color()
var/red
var/green
var/blue

var/col = pick ("black", "grey", "brown", "chestnut", "blue", "lightblue", "green", "albino")
switch(col)
if("black")
red = 0
green = 0
blue = 0
if("grey")
red = rand (100, 200)
green = red
blue = red
if("brown")
red = 102
green = 51
blue = 0
if("chestnut")
red = 153
green = 102
blue = 0
if("blue")
red = 51
green = 102
blue = 204
if("lightblue")
red = 102
green = 204
blue = 255
if("green")
red = 0
green = 102
blue = 0
if("albino")
red = rand (200, 255)
green = rand (0, 150)
blue = rand (0, 150)

return list(red, green, blue)

/proc/random_hair_color()
var/red
var/green
var/blue

var/col = pick ("blonde", "black", "chestnut", "copper", "brown", "wheat", "old", "punk")
switch(col)
if("blonde")
red = 255
green = 255
blue = 0
if("black")
red = 0
green = 0
blue = 0
if("chestnut")
red = 153
green = 102
blue = 51
if("copper")
red = 255
green = 153
blue = 0
if("brown")
red = 102
green = 51
blue = 0
if("wheat")
red = 255
green = 255
blue = 153
if("old")
red = rand (100, 255)
green = red
blue = red
if("punk")
red = rand (0, 255)
green = rand (0, 255)
blue = rand (0, 255)

return list(red, green, blue)

/proc/random_skin_color() // for species who has skin_color flag
var/red
var/green
var/blue

var/col = pick ("black", "grey", "brown", "chestnut", "blue", "lightblue", "green", "albino")
switch(col)
if("black")
red = 0
green = 0
blue = 0
if("grey")
red = rand (100, 200)
green = red
blue = red
if("brown")
red = 102
green = 51
blue = 0
if("chestnut")
red = 153
green = 102
blue = 0
if("blue")
red = 51
green = 102
blue = 204
if("lightblue")
red = 102
green = 204
blue = 255
if("green")
red = 0
green = 102
blue = 0
if("albino")
red = rand (200, 255)
green = rand (0, 150)
blue = rand (0, 150)

return list(red, green, blue)

/proc/random_skin_tone()
switch(pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino"))
if("caucasian") . = -10
Expand Down
2 changes: 1 addition & 1 deletion code/_globalvars/lists/mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ var/global/list/gods_list = list()

//feel free to add shit to lists below
var/global/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine", "ambrosium", "jenkem") //increase heart rate
var/global/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs", "stoxin") //decrease heart rate
var/global/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs", "stoxin", "tramadol", "oxycodone") //decrease heart rate
var/global/list/heartstopper = list("potassium_phorochloride", "zombie_powder") //this stops the heart
var/global/list/cheartstopper = list("potassium_chloride") //this stops the heart when overdose is met -- c = conditional
6 changes: 3 additions & 3 deletions code/controllers/configuration.dm
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@ var/global/bridge_secret = null
//game_options.txt configs

var/health_threshold_softcrit = 0
var/health_threshold_crit = 0
var/health_threshold_crit = -50
var/health_threshold_dead = -100

var/organ_health_multiplier = 1
var/organ_regeneration_multiplier = 1
var/organ_regeneration_multiplier = 0.75

var/revival_pod_plants = 1
var/revival_cloning = 1
Expand Down Expand Up @@ -195,7 +195,7 @@ var/global/bridge_secret = null
// The object used for the clickable stat() button.
var/obj/effect/statclick/statclick

var/craft_recipes_visibility = FALSE // If false, then users won't see crafting recipes in personal crafting menu until they have all required components and then it will show up.
var/craft_recipes_visibility = TRUE // Show all recipes (TRUE) or only these that have all required components around (FALSE) in craft menu.
var/nightshift = FALSE

var/list/maplist = list()
Expand Down
9 changes: 8 additions & 1 deletion code/controllers/subsystem/ticker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ SUBSYSTEM_DEF(ticker)

var/atom/movable/screen/cinematic = null
var/datum/station_state/start_state = null

var/list/medal_list = list()
var/station_was_nuked = FALSE //see nuclearbomb.dm and malfunction.dm
var/explosion_in_progress = FALSE //sit back and relax
var/nar_sie_has_risen = FALSE //check, if there is already one god in the world who was summoned (only for tomes)
Expand Down Expand Up @@ -637,6 +637,13 @@ SUBSYSTEM_DEF(ticker)

return text

/datum/controller/subsystem/ticker/proc/show_medals()
var/text = "<br><FONT size = 5><b>Были выданы следующие медали:</b></FONT>"
for(var/datum/medal/medal as anything in medal_list)
var/award_text = "<b>[medal.key]</b> as <b>[medal.target_name]</b> was awarded \"<b>[medal.medal_name]</b>\" for \"<b>[medal.reason]</b>\" by <b>[medal.parent_name]</b>!"
text += "<br>[bicon(medal.image)] [award_text]"
return text

/datum/controller/subsystem/ticker/proc/start_now()
if(SSticker.current_state != GAME_STATE_PREGAME)
return FALSE
Expand Down
6 changes: 2 additions & 4 deletions code/datums/components/gamemodes/syndicate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -201,8 +201,8 @@
return

var/obj/item/I = find_syndicate_uplink(traitor_mob)
if(I?.hidden_uplink)
QDEL_NULL(I.hidden_uplink)
if(I)
QDEL_NULL(I)

/datum/component/gamemode/syndicate/OnPostSetup(datum/source, laterole)
equip_traitor()
Expand Down Expand Up @@ -248,6 +248,4 @@

if(href_list["removeuplink"])
take_uplink(M.current)
var/datum/role/role = parent
role.antag.memory = null
to_chat(M.current, "<span class='warning'>You have been stripped of your uplink.</span>")
20 changes: 9 additions & 11 deletions code/datums/components/mood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -355,22 +355,20 @@
return
var/mob/living/carbon/C = parent

if(C.shock_stage <= 0)
if(C.traumatic_shock < 10)
clear_event(null, "pain")
else
add_event(null, "pain", /datum/mood_event/mild_pain)

if(!C.traumatic_shock)
clear_event(null, "pain")
return

switch(C.shock_stage)
if(0 to 30)
switch(C.traumatic_shock)
if(0 to TRAUMATIC_SHOCK_MINOR)
add_event(null, "pain", /datum/mood_event/mild_pain)
if(TRAUMATIC_SHOCK_MINOR to TRAUMATIC_SHOCK_SERIOUS)
add_event(null, "pain", /datum/mood_event/moderate_pain)
if(30 to 60)
if(TRAUMATIC_SHOCK_SERIOUS to TRAUMATIC_SHOCK_INTENSE)
add_event(null, "pain", /datum/mood_event/intense_pain)
if(60 to 120)
if(TRAUMATIC_SHOCK_INTENSE to TRAUMATIC_SHOCK_MIND_SHATTERING)
add_event(null, "pain", /datum/mood_event/unspeakable_pain)
if(120 to INFINITY)
if(TRAUMATIC_SHOCK_MIND_SHATTERING to INFINITY)
add_event(null, "pain", /datum/mood_event/agony)

/datum/component/mood/proc/check_area_mood(datum/source, area/A, atom/OldLoc)
Expand Down
7 changes: 3 additions & 4 deletions code/datums/helper_datums/teleport.dm
Original file line number Diff line number Diff line change
Expand Up @@ -177,10 +177,9 @@
if(T.density)
return FALSE
if(dest_checkdensity == TELE_CHECK_ALL)
T.Enter(teleatom) //We want do normal bumping/checks with teleatom first (maybe we got access to that door or to push the atom on the other side),
var/obj/effect/E = new(center) //then we do the real check (if we can enter from destination turf onto target turf).
E.invisibility = INVISIBILITY_ABSTRACT //Because, checking this with teleatom - won't give us accurate data, since teleatom is far away at this time.
if(!T.Enter(E)) //That's why we test this with the "fake dummy".
var/obj/effect/E = new(center) //Because checking this with teleatom won't give us accurate data, since teleatom is far away at this time.
E.invisibility = INVISIBILITY_ABSTRACT //That's why we test this with the "fake dummy".
if(!can_enter_turf(E, T))
qdel(E)
return FALSE
qdel(E)
Expand Down
10 changes: 6 additions & 4 deletions code/datums/outfits/jobs/assistant.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,15 @@
suit = /obj/item/clothing/suit/leathercoat
l_pocket = /obj/item/weapon/lighter/zippo

/datum/outfit/job/assistant/reporter
name = OUTFIT_JOB_NAME("Reporter")
/datum/outfit/job/assistant/journalist
name = OUTFIT_JOB_NAME("Journalist")

uniform = /obj/item/clothing/under/lawyer/black
uniform = /obj/item/clothing/under/lawyer/red
shoes = /obj/item/clothing/shoes/black
belt = /obj/item/device/pda/reporter
l_pocket = /obj/item/device/camera/polar
l_pocket = /obj/item/weapon/spacecash/c10
r_pocket = /obj/item/weapon/spacecash/c10
backpack_contents = list(/obj/item/device/camera)

/datum/outfit/job/assistant/test_subject
name = OUTFIT_JOB_NAME("Test Subject")
Expand Down
2 changes: 0 additions & 2 deletions code/datums/qualities/negativeish.dm
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,6 @@
H.dyed_b_facial = dirt_b
H.facial_painted = TRUE

H.apply_recolor()
H.update_body()
H.regenerate_icons()


Expand Down
2 changes: 1 addition & 1 deletion code/datums/qualities/positiveish.dm
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@

/datum/quality/positiveish/cqc
name = "CQC"
desc = "Вы прошли курсы единоборств и теперь знаете на несколько приёмов больше."
desc = "Ты прошёл курсы единоборств и теперь знаешь на несколько приёмов больше."
requirement = "Нет."

/datum/quality/positiveish/cqc/add_effect(mob/living/carbon/human/H)
Expand Down
20 changes: 19 additions & 1 deletion code/datums/qualities/quirkieish.dm
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@
name = "Prisoner"
desc = "Ты загремел в каталажку за какое-то серьёзное преступление и, конечно, не собираешься исправляться."

requirement = "Подопытный."
requirement = "Подопытный. Включённая опция \"Быть предателем\"."

/datum/quality/quirkieish/prisoner/satisfies_requirements(mob/living/carbon/human/H, latespawn)
return H.mind.role_alt_title == "Test Subject"
Expand Down Expand Up @@ -426,3 +426,21 @@
var/obj/item/weapon/stamp/centcomm/S = new
S.stamp_paper(P)
H.equip_or_collect(P, SLOT_L_HAND)

/datum/quality/quirkieish/thief
name = "Thief"
desc = "Ты задумал кое-что украсть..."
requirement = "Все, кроме охраны и глав. Включённая опция \"Быть предателем\"."
var/list/restricted_jobs = list("Security Officer", "Security Cadet", "Head of Security", "Forensic Technician", "Detective", "Captain", "Warden", "Head of Personnel", "Blueshield Officer", "Research Director", "Chief Engineer", "Chief Medical Officer", "Internal Affairs Agent")

/datum/quality/quirkieish/thief/satisfies_requirements(mob/living/carbon/human/H, latespawn)
return !(H.mind.assigned_role in restricted_jobs)

/datum/quality/quirkieish/thief/add_effect(mob/living/carbon/human/H, latespawn)
if(jobban_isbanned(H, "Syndicate") || !(ROLE_TRAITOR in H.client.prefs.be_role))
return

create_and_setup_role(/datum/role/thief, H)

to_chat(H, "<span class='notice'>В твоей сумке лежат особые перчатки, они позволят тебе незаметно красть вещи у людей.</span>")
H.equip_or_collect(new /obj/item/clothing/gloves/black/strip(H), SLOT_IN_BACKPACK)
Loading

0 comments on commit 4707498

Please sign in to comment.