Skip to content

Commit

Permalink
Merge remote-tracking branch 'cmss13-devs/master' into project/ares/t…
Browse files Browse the repository at this point in the history
…m_holder
  • Loading branch information
realforest2001 committed Apr 3, 2024
2 parents 022f48d + 1dadbc2 commit f9ef1b0
Show file tree
Hide file tree
Showing 44 changed files with 3,811 additions and 4,012 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define STATUS_HUD_XENO_CULTIST "24" // Whether they are a xeno cultist or not
#define HUNTER_CLAN "25" //Displays a colored icon to represent ingame Hunter Clans
#define HUNTER_HUD "26" //Displays various statuses on mobs for Hunters to identify targets
#define HOLOCARD_HUD "27" //Displays the holocards set by medical personnel

//data HUD (medhud, sechud) defines
#define MOB_HUD_SECURITY_BASIC 1
Expand Down
13 changes: 10 additions & 3 deletions code/datums/keybinding/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,18 @@
if(.)
return

// Get the user's marine helmet (if they're wearing one)
var/mob/living/carbon/human/human_user = user.mob
var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user?.head
var/cycled_hud = marine_helmet?.cycle_huds(human_user)
var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user.head
if(!istype(marine_helmet))
// If their hat isn't a marine helmet, or is null, return.
return

// Cycle the HUD on the helmet.
var/cycled_hud = marine_helmet.cycle_huds(human_user)

// Update the helmet's 'cycle hud' action button
var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in marine_helmet.actions
cycle_action.set_action_overlay(cycled_hud)
cycle_action?.set_action_overlay(cycled_hud)

return TRUE
10 changes: 8 additions & 2 deletions code/datums/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(

//Factions
/datum/mob_hud/faction
hud_icons = list(FACTION_HUD, ORDER_HUD)
hud_icons = list(FACTION_HUD, ORDER_HUD, HOLOCARD_HUD)
var/faction_to_check = FACTION_MARINE

/datum/mob_hud/faction/add_to_single_hud(mob/user, mob/target)
Expand All @@ -209,7 +209,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
faction_to_check = FACTION_PMC

/datum/mob_hud/faction/observer
hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN)
hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN, HOLOCARD_HUD)

///////// MOB PROCS //////////////////////////////:

Expand Down Expand Up @@ -753,7 +753,13 @@ GLOBAL_DATUM(hud_icon_hudfocus, /image)
holder.overlays += GLOB.hud_icon_hudfocus
hud_list[ORDER_HUD] = holder

/mob/proc/hud_set_holocard()
return

// HOLOCARD HUD
/mob/living/carbon/human/hud_set_holocard()
var/image/holder = hud_list[HOLOCARD_HUD]
holder.icon_state = holo_card_color ? "holo_card_[holo_card_color]" : "hudblank"

// Xeno "hostile" HUD
/mob/living/carbon/human/proc/update_xeno_hostile_hud()
Expand Down
107 changes: 38 additions & 69 deletions code/game/area/BigRed.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
//Areas for BigRed - Minijar
// old icon state no longer in use. ("hydro","heads_quarters")
/area/bigred
can_build_special = TRUE
powernet_name = "ground"
Expand Down Expand Up @@ -251,44 +252,50 @@
name = "\improper Corporate Saferoom"
icon_state = "vault"

/area/bigred/uground/lambda_labs/
minimap_color = MINIMAP_AREA_RESEARCH_CAVE
/area/bigred/uground/lambda_labs/airlock
name = "\improper Lambda Labs Airlock"
icon_state = "decontamination"

/area/bigred/uground/lambda_labs/lobby
name = "\improper Lambda Labs Reception"
icon_state = "bluenew"

/area/bigred/uground/lambda_labs/office
name = "\improper Lambda Labs Administration"
icon_state = "heads_quarters"
// Lambda areas below:

/area/bigred/uground/lambda_labs/laser_lab
name = "\improper Lambda Laser Laboratory"
icon_state = "toxmisc"
// Laboratory proper
/area/bigredv2/caves/lambda
ceiling = CEILING_UNDERGROUND_METAL_BLOCK_CAS
ceiling_muffle = FALSE
ambience_exterior = AMBIENCE_ALMAYER
sound_environment = SOUND_ENVIRONMENT_ROOM
soundscape_playlist = list()
minimap_color = MINIMAP_AREA_RESEARCH

/area/bigred/uground/lambda_labs/hydro_office
name = "\improper Lambda Labs Bio-Dome"
icon_state = "hydro"
/area/bigredv2/caves/lambda/virology
name = "\improper Lambda Virology"
icon_state = "lam_virology"

/area/bigred/uground/lambda_labs/hydro_lab
name = "\improper Lambda Labs Hydrophonics"
icon_state = "garden"
/area/bigredv2/caves/lambda/research
name = "\improper Lambda Research"
icon_state = "lam_research"

/area/bigred/uground/lambda_labs/fridge
name = "\improper Lambda Labs Refrigeration"
icon_state = "kitchen"
/area/bigredv2/caves/lambda/breakroom
name = "\improper Lambda Breakroom"
icon_state = "lam_break"

/area/bigred/uground/lambda_labs/maintenance
name = "\improper Unknown Area"
icon_state = "yellow"
/area/bigredv2/caves/lambda/xenobiology
name = "\improper Lambda Xenobiology"
icon_state = "lam_xeno"

/area/bigred/uground/lambda_labs/maintenance2
name = "\improper Unknown Area"
icon_state = "blue"
// cave around the laboratory.
/area/bigredv2/caves_lambda
name = "\improper Lambda Lab Caves"
icon_state = "caves_lambda"
ceiling = CEILING_UNDERGROUND_BLOCK_CAS
sound_environment = SOUND_ENVIRONMENT_AUDITORIUM
ceiling_muffle = FALSE
ambience_exterior = AMBIENCE_CAVE
soundscape_playlist = SCAPE_PL_CAVE
base_muffle = MUFFLE_HIGH

// serve for the security checkpoint.
/area/bigredv2/outside/lambda_cave_cas
name = "\improper Lambda Lockdown Caves Entrance"
icon_state = "decontamination"
ceiling = CEILING_UNDERGROUND_ALLOW_CAS
minimap_color = MINIMAP_AREA_SEC

//Big Red V2
/area/bigredv2
Expand Down Expand Up @@ -551,29 +558,6 @@
icon_state = "party"
ceiling = CEILING_METAL

/area/bigredv2/caves/lambda
ceiling = CEILING_UNDERGROUND_METAL_BLOCK_CAS
ceiling_muffle = FALSE
ambience_exterior = AMBIENCE_ALMAYER
sound_environment = SOUND_ENVIRONMENT_ROOM
soundscape_playlist = list()

/area/bigredv2/caves/lambda/virology
name = "\improper Lambda Virology"
icon_state = "lam_virology"

/area/bigredv2/caves/lambda/research
name = "\improper Lambda Research"
icon_state = "lam_research"

/area/bigredv2/caves/lambda/breakroom
name = "\improper Lambda Breakroom"
icon_state = "lam_break"

/area/bigredv2/caves/lambda/xenobiology
name = "\improper Lambda Xenobiology"
icon_state = "lam_xeno"

/area/bigredv2/outside/general_offices
name = "\improper General Offices"
icon_state = "storage"
Expand Down Expand Up @@ -630,16 +614,6 @@
soundscape_playlist = SCAPE_PL_CAVE
base_muffle = MUFFLE_HIGH

/area/bigredv2/caves_lambda
name = "\improper Lambda Lab Caves"
icon_state = "caves_lambda"
ceiling = CEILING_UNDERGROUND_BLOCK_CAS
sound_environment = SOUND_ENVIRONMENT_AUDITORIUM
ceiling_muffle = FALSE
ambience_exterior = AMBIENCE_CAVE
soundscape_playlist = SCAPE_PL_CAVE
base_muffle = MUFFLE_HIGH

/area/bigredv2/caves_north
name = "\improper Northern Caves"
icon_state = "caves_north"
Expand Down Expand Up @@ -688,8 +662,3 @@
name = "\improper Filtration Lockdown Caves Entrance"
icon_state = "garden"
ceiling = CEILING_UNDERGROUND_ALLOW_CAS

/area/bigredv2/outside/lambda_cave_cas
name = "\improper Lambda Lockdown Caves Entrance"
icon_state = "garden"
ceiling = CEILING_UNDERGROUND_ALLOW_CAS
1 change: 1 addition & 0 deletions code/game/area/LV624.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
name ="\improper Western Jungle"
icon_state = "west"
//ambience = list('sound/ambience/jungle_amb1.ogg')
is_resin_allowed = FALSE

/area/lv624/ground/jungle/west_jungle/ceiling
ceiling = CEILING_GLASS
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/colonialmarines/colonialmarines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@
if(HS.living_xeno_queen && !should_block_game_interaction(HS.living_xeno_queen.loc))
//Some Queen is alive, we shouldn't end the game yet
return
if (HS.totalXenos <= 3)
if(length(HS.totalXenos) <= 3)
round_finished = MODE_INFESTATION_M_MAJOR
else
round_finished = MODE_INFESTATION_M_MINOR
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/bots/bots.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@
if(hasvar(W,"force") && hasvar(W,"damtype"))
switch(W.damtype)
if("fire")
src.health -= W.force * fire_dam_coeff
health -= W.force * W.demolition_mod * fire_dam_coeff
if("brute")
src.health -= W.force * brute_dam_coeff
health -= W.force * W.demolition_mod * brute_dam_coeff
..()
healthcheck()
else
Expand Down
1 change: 0 additions & 1 deletion code/game/machinery/camera/camera.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

var/list/network = list(CAMERA_NET_MILITARY)
var/c_tag = null
var/c_tag_order = 999
var/status = 1
anchored = TRUE
var/panel_open = FALSE // 0 = Closed / 1 = Open
Expand Down
8 changes: 4 additions & 4 deletions code/game/machinery/deployable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@
else
switch(W.damtype)
if("fire")
src.health -= W.force * 0.75
health -= W.force * W.demolition_mod * 0.75
if("brute")
src.health -= W.force * 0.5
if (src.health <= 0)
src.explode()
health -= W.force * W.demolition_mod * 0.5
if (health <= 0)
explode()
..()

/obj/structure/machinery/deployable/barrier/ex_act(severity)
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
var/attack_speed = 11 //+3, Adds up to 10. Added an extra 4 removed from /mob/proc/do_click()
///Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
var/list/attack_verb
/// A multiplier to an object's force when used against a stucture.
var/demolition_mod = 1

health = null

Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items/props/helmetgarb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,9 @@
shape = NVG_SHAPE_COSMETIC
garbage = TRUE

/obj/item/prop/helmetgarb/helmet_nvg/cosmetic/break_nvg(mob/living/carbon/human/user, list/slashdata, mob/living/carbon/xenomorph/Xeno)
return

/obj/item/prop/helmetgarb/helmet_nvg/marsoc //for Marine Raiders
name = "\improper Tactical M3 night vision goggles"
desc = "With an integrated self-recharging battery, nothing can stop you. Put them on your helmet and press the button and it's go-time."
Expand Down
16 changes: 12 additions & 4 deletions code/game/objects/items/reagent_containers/food/snacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,13 @@
return FALSE

if(package)
to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?"))
if(user.a_intent == INTENT_HARM)
return ..() // chunk box gaming

if(user == M)
to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?"))
else
to_chat(M, SPAN_WARNING("[user] made an endearing attempt to force feed you a snack with the packaging still on."))
return FALSE

if(istype(M, /mob/living/carbon))
Expand Down Expand Up @@ -3289,8 +3295,11 @@
name = "CHUNK box"
desc = "A bar of \"The <b>CHUNK</b>\" brand chocolate. <i>\"The densest chocolate permitted to exist according to federal law. We are legally required to ask you not to use this blunt object for anything other than nutrition.\"</i>"
icon_state = "chunk"
force = 15 //LEGAL LIMIT OF CHOCOLATE
hitsound = "swing_hit"
force = 15
throwforce = 10
attack_speed = 10
demolition_mod = 0.3
bitesize = 2
wrapper = /obj/item/trash/chunk

Expand All @@ -3304,8 +3313,7 @@
desc = "A 'crate', as the marketing called it, of \"The <b>HUNK</b>\" brand chocolate. An early version of the CHUNK box, the HUNK bar was hit by a class action lawsuit and forced to go into bankruptcy and get bought out by the Company when hundreds of customers had their teeth crack from simply attempting to eat the bar."
icon_state = "hunk"
w_class = SIZE_MEDIUM
hitsound = "swing_hit"
force = 35 //ILLEGAL LIMIT OF CHOCOLATE
force = 35
throwforce = 50
bitesize = 20
wrapper = /obj/item/trash/chunk/hunk
Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@
..()

/obj/item/storage/backpack/proc/is_accessible_by(mob/user)
// If the user is already looking inside this backpack.
if(user.s_active == src)
return TRUE
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(!worn_accessible)
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/tools/surgery_tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
force = 10
sharp = IS_SHARP_ITEM_ACCURATE
edge = 1
demolition_mod = 0.1
w_class = SIZE_TINY
throwforce = 5
flags_item = CAN_DIG_SHRAPNEL
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/structures/barricade/barricade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@
take_damage(dam * burn_flame_multiplier)

/obj/structure/barricade/proc/hit_barricade(obj/item/item)
take_damage(item.force * 0.5 * brute_multiplier)
take_damage(item.force * item.demolition_mod * 0.5 * brute_multiplier)

/obj/structure/barricade/proc/take_damage(damage)
for(var/obj/structure/barricade/barricade in get_step(src,dir)) //discourage double-stacking barricades by removing health from opposing barricade
Expand Down
8 changes: 4 additions & 4 deletions code/game/objects/structures/barricade/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@
/obj/structure/barricade/snow/hit_barricade(obj/item/I)
switch(I.damtype)
if("fire")
take_damage( I.force * 0.6 )
take_damage( I.force * I.demolition_mod * 0.6 )
if("brute")
take_damage( I.force * 0.3 )
take_damage( I.force * I.demolition_mod * 0.3 )

return

Expand Down Expand Up @@ -106,6 +106,6 @@
/obj/structure/barricade/wooden/hit_barricade(obj/item/I)
switch(I.damtype)
if("fire")
take_damage( I.force * 1.5 )
take_damage( I.force * I.demolition_mod * 1.5 )
if("brute")
take_damage( I.force * 0.75 )
take_damage( I.force * I.demolition_mod * 0.75 )
2 changes: 1 addition & 1 deletion code/game/objects/structures/displaycase.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@


/obj/structure/displaycase/attackby(obj/item/W as obj, mob/user as mob)
src.health -= W.force
src.health -= W.force * W.demolition_mod
src.healthcheck()
..()
return
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/structures/fence.dm
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@
else
switch(W.damtype)
if("fire")
health -= W.force
health -= W.force * W.demolition_mod
if("brute")
health -= W.force * 0.1
health -= W.force * W.demolition_mod * 0.1
healthcheck(1, 1, user, W)
..()

Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/structures/lamarr_cage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@


/obj/structure/lamarr/attackby(obj/item/W as obj, mob/user as mob)
src.health -= W.force
src.healthcheck()
health -= W.force * W.demolition_mod
healthcheck()
..()
return

Expand Down
Loading

0 comments on commit f9ef1b0

Please sign in to comment.