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
BasiaBelov authored Jun 25, 2024
2 parents 0a4ac82 + 1bd2892 commit bf2f261
Show file tree
Hide file tree
Showing 27 changed files with 203 additions and 163 deletions.
4 changes: 2 additions & 2 deletions code/datums/announcements/centcomm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@
name = "Central Command Higher Dimensional Affairs"
subtitle = "Центральное Командование"
sound = "portal"
/datum/announcement/centcomm/narsie_summon/New(mob/user, area/A)
message = "Зафиксирована блюспейс аномалия в [CASE(A, PREPOSITIONAL_CASE)], возможно раскрытие неизвестного портала."
/datum/announcement/centcomm/narsie_summon/New(mob/user)
message = "Зафиксирована блюспейс аномалия в [CASE((get_area(user)), PREPOSITIONAL_CASE)], возможно раскрытие неизвестного портала."
2 changes: 1 addition & 1 deletion code/game/area/station_areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -921,7 +921,7 @@ ADD_TO_GLOBAL_LIST(/area/station, the_station_areas)

/area/station/aisat
name = "AI Satellite Exterior"
cases = list("внешний перемитр спутника ИИ", "внешниго перемитра спутника ИИ", "внешнему перемитру спутника ИИ", "внешний перемитр спутника ИИ", "внешним перемитром спутника ИИ", "внешнем перемитре спутника ИИ")
cases = list("внешний периметр спутника ИИ", "внешнего периметра спутника ИИ", "внешнему периметру спутника ИИ", "внешний периметр спутника ИИ", "внешним периметром спутника ИИ", "внешнем периметре спутника ИИ")
icon_state = "storage"
looped_ambience = 'sound/ambience/loop_aisatelite.ogg'
sound_environment = SOUND_AREA_LARGE_METALLIC
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/modes_gameplays/nuclear/nuclearbomb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ var/global/bomb_set
else
bomb_set = TRUE //So long as there is one nuke timing, it means one nuke is armed.
timeleft = max(timeleft - 2, 0) // 2 seconds per process()
playsound(src, 'sound/items/timer.ogg', VOL_EFFECTS_MASTER, 30, FALSE)
playsound(src, 'sound/items/timer.ogg', VOL_EFFECTS_MISC, 30, FALSE)
if(timeleft <= 120 && COOLDOWN_FINISHED(global, nuclear_siren_cooldown))
for(var/mob/M in player_list)
if(!isnewplayer(M))
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/weapons/disks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
forceMove(targetturf) //move the disc, so ghosts remain orbitting it even if it's "destroyed"
message_admins("[src] has been destroyed in ([COORD(diskturf)] - [ADMIN_JMP(diskturf)]). Moving it to ([COORD(targetturf)] - [ADMIN_JMP(targetturf)]).")
log_game("[src] has been destroyed in [COORD(diskturf)]. Moving it to [COORD(targetturf)].")

update_world_icon()
return QDEL_HINT_LETMELIVE //Cancel destruction regardless of success

#undef TIMER_MIN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
else
new /obj/item/weapon/gun/energy/gun/head(src)

new /obj/item/clothing/accessory/armor(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/suit/captunic/capjacket(src)
new /obj/item/clothing/head/helmet/cap(src)
Expand Down
7 changes: 7 additions & 0 deletions code/game/objects/structures/janicart.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,13 @@
to_chat(user, "<span class='notice'>You take [mybag] from [src].</span>")
mybag = null
if("bucket")
if(mybucket && mymop)
mybucket.update_icon()
mybucket.forceMove(get_turf(src))
user.put_in_hands(mymop)
to_chat(user, "<span class='notice'>You unmount [mybucket] and take [mymop] from [src].</span>")
mybucket = null
mymop = null
if(mybucket)
mybucket.update_icon()
mybucket.forceMove(get_turf(src))
Expand Down
2 changes: 2 additions & 0 deletions code/modules/clothing/spacesuits/rig/rig.dm
Original file line number Diff line number Diff line change
Expand Up @@ -784,11 +784,13 @@
armor = combat_armor
canremove = FALSE
flags |= (HEADCOVERSEYES | HEADCOVERSMOUTH)
flags_pressure &= ~STOPS_PRESSUREDMAGE
usr.visible_message("<span class='notice'>[usr] moves faceplate of their helmet into combat position, covering their visor and extending cameras.</span>")
else
armor = space_armor
canremove = TRUE
flags &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
flags_pressure |= STOPS_PRESSUREDMAGE
usr.visible_message("<span class='notice'>[usr] pulls up faceplate from helmet's visor, retracting cameras</span>")
checklight()
update_icon(usr)
Expand Down
9 changes: 4 additions & 5 deletions code/modules/clothing/suits/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,18 @@
//Captain
/obj/item/clothing/suit/captunic
name = "captain's parade tunic"
desc = "Worn by a Captain to show their class."
desc = "Worn by a Captain to show their class. Also has some space for armor plate."
icon_state = "captunic"
item_state = "bio_suit"
valid_accessory_slots = list("armband", "decor", "armor")
restricted_accessory_slots = list("armband", "armor")
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEJUMPSUIT

/obj/item/clothing/suit/captunic/capjacket
name = "captain's uniform jacket"
desc = "A less formal jacket for everyday captain use."
desc = "A less formal jacket for everyday captain use. Also has some space for armor plate."
icon_state = "capjacket"
item_state = "bio_suit"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
flags_inv = HIDEJUMPSUIT

//Chaplain
/obj/item/clothing/suit/chaplain_hoodie
Expand Down
3 changes: 2 additions & 1 deletion code/modules/holidays/new_year/clothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@
name = "captain's winter coat"
icon_state = "coatcaptain"
hoodtype = /obj/item/clothing/head/wintercoat/captain
armor = list(melee = 35, bullet = 25, laser = 20, energy = 10, bomb = 15, bio = 0, rad = 0)
valid_accessory_slots = list("armband", "decor", "armor")
restricted_accessory_slots = list("armband", "armor")
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/gun/plasma,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/telebaton)

/obj/item/clothing/head/wintercoat/captain
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/human/life.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1154,7 +1154,7 @@ var/global/list/tourette_bad_words= list(
if(health < config.health_threshold_softcrit)// health 0 makes you immediately collapse
shock_stage = max(shock_stage, 61)

if(traumatic_shock >= 80)
if(traumatic_shock >= 80 && shock_stage <= 150)
shock_stage += 1
else if(health < config.health_threshold_softcrit)
shock_stage = max(shock_stage, 61)
Expand Down
7 changes: 5 additions & 2 deletions code/modules/mob/living/carbon/monkey/update_icons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,13 @@
remove_standing_overlay(M_MASK_LAYER)

if( wear_mask && istype(wear_mask, /obj/item/clothing/mask) )
var/image/mask_layer
if(wear_mask:icon_custom)
overlays_standing[M_MASK_LAYER] = image("icon" = wear_mask:icon_custom, "icon_state" = "[wear_mask.icon_state]_mob", layer = -M_MASK_LAYER)
mask_layer = image("icon" = wear_mask:icon_custom, "icon_state" = "[wear_mask.icon_state]_mob", layer = -M_MASK_LAYER)
else
overlays_standing[M_MASK_LAYER] = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]", layer = -M_MASK_LAYER)
mask_layer = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]", layer = -M_MASK_LAYER)
mask_layer.pixel_y = -3
overlays_standing[M_MASK_LAYER] = mask_layer
wear_mask.screen_loc = ui_monkey_mask
else
overlays_standing[M_MASK_LAYER] = null
Expand Down
56 changes: 34 additions & 22 deletions code/modules/mob/living/carbon/shock.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,60 +4,72 @@

// proc to find out in how much pain the mob is at the moment
/mob/living/carbon/proc/updateshock()
src.traumatic_shock = \
traumatic_shock = \
1 * getOxyLoss() + \
0.7 * getToxLoss() + \
1.5 * getFireLoss() + \
1.2 * getBruteLoss() + \
1.7 * getCloneLoss() + \
2 * src.halloss
2 * halloss

var/painkiller_effectiveness = 1.0
if(reagents.has_reagent("prismaline"))
painkiller_effectiveness = 0.3

if(reagents.has_reagent("alkysine"))
src.traumatic_shock -= 10 * painkiller_effectiveness
traumatic_shock -= 10 * painkiller_effectiveness
shock_stage -= 1 * painkiller_effectiveness
if(reagents.has_reagent("dextromethorphan"))
src.traumatic_shock -= 10 * painkiller_effectiveness
traumatic_shock -= 10 * painkiller_effectiveness
shock_stage -= 1 * painkiller_effectiveness
if(reagents.has_reagent("jenkem"))
src.traumatic_shock -= 15 * painkiller_effectiveness
traumatic_shock -= 15 * painkiller_effectiveness
shock_stage -= 1.5 * painkiller_effectiveness
if(reagents.has_reagent("inaprovaline"))
src.traumatic_shock -= 25 * painkiller_effectiveness
traumatic_shock -= 25 * painkiller_effectiveness
shock_stage -= 2.5 * painkiller_effectiveness
if(reagents.has_reagent("ambrosium"))
src.traumatic_shock -= 30 * painkiller_effectiveness
traumatic_shock -= 30 * painkiller_effectiveness
shock_stage -= 3 * painkiller_effectiveness
if(reagents.has_reagent("synaptizine"))
src.traumatic_shock -= 40 * painkiller_effectiveness
traumatic_shock -= 40 * painkiller_effectiveness
shock_stage -= 4 * painkiller_effectiveness
if(reagents.has_reagent("paracetamol"))
src.traumatic_shock -= 50 * painkiller_effectiveness
traumatic_shock -= 50 * painkiller_effectiveness
shock_stage -= 5 * painkiller_effectiveness
if(reagents.has_reagent("space_drugs"))
src.traumatic_shock -= 60 * painkiller_effectiveness
traumatic_shock -= 60 * painkiller_effectiveness
shock_stage -= 6 * painkiller_effectiveness
if(reagents.has_reagent("tramadol"))
src.traumatic_shock -= 80 * painkiller_effectiveness
traumatic_shock -= 80 * painkiller_effectiveness
shock_stage -= 8 * painkiller_effectiveness
if(reagents.has_reagent("oxycodone"))
src.traumatic_shock -= 200 * painkiller_effectiveness
if(src.slurring && drunkenness > DRUNKENNESS_SLUR)
src.traumatic_shock -= min(drunkenness - DRUNKENNESS_SLUR, 40)
if(src.analgesic && !reagents.has_reagent("prismaline"))
src.traumatic_shock = 0
traumatic_shock -= 200 * painkiller_effectiveness
shock_stage -= 20 * painkiller_effectiveness
if(slurring && drunkenness > DRUNKENNESS_SLUR)
traumatic_shock -= min(drunkenness - DRUNKENNESS_SLUR, 40)
shock_stage -= min(drunkenness - DRUNKENNESS_SLUR, 40)
if(analgesic && !reagents.has_reagent("prismaline"))
traumatic_shock = 0
shock_stage = 0

// broken or ripped off bodyparts will add quite a bit of pain
if(ishuman(src))
var/mob/living/carbon/human/M = src
for(var/obj/item/organ/external/BP in M.bodyparts)
if(BP.is_stump)
src.traumatic_shock += 60
traumatic_shock += 60
else if((BP.status & ORGAN_BROKEN) || BP.open)
src.traumatic_shock += 30
traumatic_shock += 30
if(BP.status & ORGAN_SPLINTED)
src.traumatic_shock -= 25
traumatic_shock -= 25

if(src.traumatic_shock < 0)
src.traumatic_shock = 0
if(traumatic_shock < 0)
traumatic_shock = 0

play_pain_sound()

return src.traumatic_shock
return traumatic_shock

/mob/living/carbon/human/updateshock()
if (species && species.flags[NO_PAIN])
Expand Down
18 changes: 15 additions & 3 deletions code/modules/mob/living/carbon/species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1827,8 +1827,8 @@

/datum/species/serpentid
name = SERPENTID
icobase = 'icons/mob/human_races/r_serpentid.dmi'
deform = 'icons/mob/human_races/r_serpentid.dmi'
icobase = 'icons/mob/human_races/r_serpentid_grey.dmi'
deform = 'icons/mob/human_races/r_serpentid_grey.dmi'
damage_mask = FALSE
has_gendered_icons = FALSE
eyes_icon = 'icons/mob/serpentid_face.dmi'
Expand Down Expand Up @@ -1856,6 +1856,7 @@
NO_SLIP = TRUE,
NO_MINORCUTS = TRUE,
NO_MED_HEALTH_SCAN = TRUE,
HAS_SKIN_COLOR = TRUE,
)
has_organ = list(
O_HEART = /obj/item/organ/internal/heart
Expand Down Expand Up @@ -1912,7 +1913,18 @@
..()
H.real_name = pick(global.serpentid_names)
H.name = H.real_name
H.r_eyes = 255
var/list/color_variables = list("#003300",
"#333300",
"#663300",
"#800000",
"#000066",
"#660033",
"#003366")
var/color_gain = pick(color_variables)
H.r_skin = hex2num(copytext(color_gain, 2, 4))
H.g_skin = hex2num(copytext(color_gain, 4, 6))
H.b_skin = hex2num(copytext(color_gain, 6, 8))
H.apply_recolor()
H.update_hair()
RegisterSignal(H, COMSIG_PARENT_ATTACKBY, PROC_REF(try_eat_item))
RegisterSignal(H, COMSIG_S_CLICK_GRAB, PROC_REF(try_tear_body))
Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/living/simple_animal/friendly/spiderbot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,8 @@

var/list/items = list()
for(var/obj/item/I in view(1,src))
if(istype(I, /obj/item/weapon/disk/nuclear))
continue
if(I.loc != src && I.w_class <= SIZE_TINY)
items.Add(I)

Expand Down
32 changes: 20 additions & 12 deletions code/modules/reagents/reagent_containers/spray.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,12 @@

if(reagents.total_volume >= reagents.maximum_volume)
to_chat(user, "<span class='notice'>\The [src] is full.</span>")
update_icon()
return FALSE

var/trans = RD.reagents.trans_to(src, RD.amount_per_transfer_from_this)
to_chat(user, "<span class='notice'>You fill \the [src] with [trans] units of the contents of \the [RD].</span>")
update_icon()
return FALSE

if(reagents.total_volume < amount_per_transfer_from_this)
Expand Down Expand Up @@ -386,16 +388,16 @@
if(reagents.total_volume > 200)
item_state_world = "cleaner_world"
item_state_inventory = "cleaner"
if(reagents.total_volume < 200)
else if(reagents.total_volume > 125)
item_state_world = "cleaner75_world"
item_state_inventory = "cleaner75"
if(reagents.total_volume < 125)
else if(reagents.total_volume > 75)
item_state_world = "cleaner50_world"
item_state_inventory = "cleaner50"
if(reagents.total_volume < 75)
else if(reagents.total_volume > 0)
item_state_world = "cleaner25_world"
item_state_inventory = "cleaner25"
if(reagents.total_volume == 0)
else
item_state_world = "cleaner_empty_world"
item_state_inventory = "cleaner_empty"
update_world_icon()
Expand All @@ -409,16 +411,19 @@ ADD_TO_GLOBAL_LIST(/obj/item/weapon/reagent_containers/spray/cleaner, cleaners_l
item_state_inventory = "cleaner"

/obj/item/weapon/reagent_containers/spray/cleaner/update_icon()
if(reagents.total_volume < 200)
if(reagents.total_volume > 200)
item_state_world = "cleaner_world"
item_state_inventory = "cleaner"
else if(reagents.total_volume > 125)
item_state_world = "cleaner75_world"
item_state_inventory = "cleaner75"
if(reagents.total_volume < 125)
else if(reagents.total_volume > 75)
item_state_world = "cleaner50_world"
item_state_inventory = "cleaner50"
if(reagents.total_volume < 75)
else if(reagents.total_volume > 0)
item_state_world = "cleaner25_world"
item_state_inventory = "cleaner25"
if(reagents.total_volume == 0)
else
item_state_world = "cleaner_empty_world"
item_state_inventory = "cleaner_empty"
update_world_icon()
Expand Down Expand Up @@ -543,16 +548,19 @@ ADD_TO_GLOBAL_LIST(/obj/item/weapon/reagent_containers/spray/cleaner, cleaners_l
reagents.add_reagent("lube", 150)

/obj/item/weapon/reagent_containers/spray/lube/update_icon()
if(reagents.total_volume < 200)
if(reagents.total_volume > 200)
item_state_world = "cleaner_world"
item_state_inventory = "cleaner"
else if(reagents.total_volume > 125)
item_state_world = "cleaner75_world"
item_state_inventory = "cleaner75"
if(reagents.total_volume < 125)
else if(reagents.total_volume > 75)
item_state_world = "cleaner50_world"
item_state_inventory = "cleaner50"
if(reagents.total_volume < 75)
else if(reagents.total_volume > 0)
item_state_world = "cleaner25_world"
item_state_inventory = "cleaner25"
if(reagents.total_volume == 0)
else
item_state_world = "cleaner_empty_world"
item_state_inventory = "cleaner_empty"
update_world_icon()
Expand Down
2 changes: 1 addition & 1 deletion code/modules/virus2/disease2.dm
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@

/datum/disease2/disease/proc/activate_symptom(atom/A)
//Moving to the next stage
if(clicks > stage * 100 && prob(10) && stage < effects.len)
if(clicks > stage * 100 && prob(stageprob) && stage < effects.len)
stage++

//Do nasty effects
Expand Down
7 changes: 7 additions & 0 deletions code/modules/virus2/helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,13 @@
if(!can_be_infected(source))
return
var/datum/disease2/disease/D = source.getcopy()
//boost growing in hydroponic tray
D.stageprob *= 10
D.speed *= 10
D.cooldown_mul *= 10
for(var/datum/disease2/effectholder/holder in D.effects)
holder.chance *= 10

virus2["[D.uniqueID]"] = D
D.register_host(src)

Expand Down
Binary file modified icons/mob/head.dmi
Binary file not shown.
Binary file removed icons/mob/human_races/r_serpentid.dmi
Binary file not shown.
Binary file modified icons/mob/human_races/r_serpentid_grey.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/items_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/items_righthand.dmi
Binary file not shown.
Binary file modified icons/mob/monkey.dmi
Binary file not shown.
Binary file modified icons/mob/serpentid_face.dmi
Binary file not shown.
Loading

0 comments on commit bf2f261

Please sign in to comment.