Skip to content

Commit

Permalink
Merge Upstream 04.06.2024 (#1287)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Мерж апстрима

## Changelog

:cl: ParadiseSS13
add: Добавлены кнопки быстрого выбора (action buttons) для мехов
fix: Криогенные хранилища больше не могут быть перегружены (overloaded)
малф ИИ
fix: Исправлен редкий баг, из-за которого вы не могли возродиться в гост
баре
fix: Исправлено что мутации кудзу не отображались в анализаторе и не
удалялись с помощью химикатов
fix: Дым культа снова работает
fix: Конструкты в хардмоде больше не гибнут от высокой температуры и
пепельных бурь на Лаваленде
fix: Исправлено, что огнетушители с нанофростом не замораживали вещи
должным образом
tweak: Фунгус больше не нужен для лечения зомби, потому что вместо него
можно случайно сделать ковер
tweak: Зомби могут использовать свои когти, чтобы медленно разрушать
стены
tweak: У зомби больше не могут быть отсечены конечности без
хирургического вмешательства, всё, что могло бы к этому привести, теперь
будет ломать их кости
tweak: Зомби-вирус будет излечиваться быстрее, если у вас есть лекарство
tweak: У зомби теперь есть NOBREATH (они больше не дышат) 
tweak: Боеприпасы в Аплинке больше не могут иметь скидок
tweak: Кастет Синдиката в Аплинке теперь может получать скидки
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
Gaxeer committed Jun 4, 2024
2 parents c258a1e + 95d682f commit 3789051
Show file tree
Hide file tree
Showing 22 changed files with 254 additions and 143 deletions.
2 changes: 1 addition & 1 deletion code/datums/diseases/zombie_virus.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
disease_flags = CAN_CARRY
virus_heal_resistant = TRUE
stage_prob = 1
cure_chance = 20
cure_chance = 80
/// How far this particular virus is in being cured (0-4)
var/cure_stage = 0

Expand Down
236 changes: 129 additions & 107 deletions code/datums/uplink_items/uplink_general.dm

Large diffs are not rendered by default.

57 changes: 39 additions & 18 deletions code/datums/uplink_items/uplink_nuclear.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// NUCLEAR AGENT ONLY GEAR

// DANGEROUS WEAPONS
////////////////////////////////////////
// MARK: DANGEROUS WEAPONS
////////////////////////////////////////

/datum/uplink_item/dangerous/aps
name = "Stechkin APS Pistol"
Expand Down Expand Up @@ -89,7 +91,9 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0

// SUPPORT AND MECHAS
////////////////////////////////////////
// MARK: SUPPORT AND MECHAS
////////////////////////////////////////

/datum/uplink_item/support
category = "Support and Mechanized Exosuits"
Expand Down Expand Up @@ -150,7 +154,9 @@
refund_path = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur
cost = 125

// AMMUNITION
////////////////////////////////////////
// MARK: AMMUNITION
////////////////////////////////////////

/datum/uplink_item/ammo/aps
name = "Stechkin APS - 10mm Magazine"
Expand Down Expand Up @@ -337,9 +343,9 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0

// STEALTHY WEAPONS

// EXPLOSIVES
////////////////////////////////////////
// MARK: EXPLOSIVES
////////////////////////////////////////

/datum/uplink_item/explosives/c4bag
name = "Bag of C-4 explosives"
Expand Down Expand Up @@ -387,7 +393,15 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 35

// STEALTHY TOOLS
////////////////////////////////////////
// MARK: STEALTHY WEAPONS
////////////////////////////////////////

// There's no nukie only stealthy weapons right now, but if you want to add one, put it here.

////////////////////////////////////////
// MARK: STEALTHY TOOLS
////////////////////////////////////////

/datum/uplink_item/stealthy_tools/clownkit
name = "Honk Brand Infiltration Kit"
Expand All @@ -398,7 +412,9 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0

// DEVICES AND TOOLS
////////////////////////////////////////
// MARK: DEVICES AND TOOLS
////////////////////////////////////////

/datum/uplink_item/device_tools/diamond_drill
name = "Amplifying Diamond Tipped Thermal Safe Drill"
Expand Down Expand Up @@ -486,7 +502,9 @@
cost = 75
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

// SPACE SUITS
////////////////////////////////////////
// MARK: SPACE SUITS
////////////////////////////////////////

/datum/uplink_item/suits/elite_nukie
name = "Elite Syndicate MODsuit"
Expand All @@ -509,7 +527,9 @@
excludefrom = list()
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

// IMPLANTS
////////////////////////////////////////
// MARK: IMPLANTS
////////////////////////////////////////

/datum/uplink_item/bio_chips/krav_implant
name = "Krav Maga Implant"
Expand Down Expand Up @@ -582,7 +602,9 @@
surplus = 0
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

// BUNDLES
////////////////////////////////////////
// MARK: BUNDLES
////////////////////////////////////////

/datum/uplink_item/bundles_TC/bulldog
name = "Bulldog Bundle"
Expand Down Expand Up @@ -628,10 +650,9 @@
cost = 90 // normally 115
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)


// ---------------------------------
// PRICES OVERRIDE FOR TRAITOR ITEMS
// ---------------------------------
////////////////////////////////////////
// MARK: PRICES OVERRIDE FOR TRAITOR ITEMS
////////////////////////////////////////

/datum/uplink_item/stealthy_weapons/cqc/nuke
reference = "NCQC"
Expand Down Expand Up @@ -679,9 +700,9 @@
excludefrom = list()
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

// ---------------------------------
// NUKIE ONLY POINTLESS BADASSERY
// ---------------------------------
////////////////////////////////////////
// MARK: NUKIE ONLY POINTLESS BADASSERY
////////////////////////////////////////

/datum/uplink_item/badass/confettidrum
name = "Bulldog - 12g party Magazine"
Expand Down
2 changes: 2 additions & 0 deletions code/game/machinery/cryopod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
req_one_access = list(ACCESS_HEADS, ACCESS_ARMORY) //Heads of staff or the warden can go here to claim recover items from their department that people went were cryodormed with.
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags = NODECONSTRUCT
flags_2 = NO_MALF_EFFECT_2
var/mode = null
icon_screen = "cellconsole_on"
//Used for logging people entering cryosleep and important items they are carrying.
Expand Down Expand Up @@ -183,6 +184,7 @@
anchored = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags = NODECONSTRUCT
flags_2 = NO_MALF_EFFECT_2
dir = WEST
base_icon_state = "bodyscanner-open"
var/occupied_icon_state = "bodyscanner"
Expand Down
15 changes: 15 additions & 0 deletions code/game/mecha/equipment/mecha_equipment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,15 @@
if(!M.selected)
M.selected = src
update_chassis_page()
if(M.occupant)
give_targeted_action()

/obj/item/mecha_parts/mecha_equipment/proc/give_targeted_action()
if(!selectable)
return
var/datum/action/innate/mecha/select_module/select_action = new()
select_action.Grant(chassis.occupant, chassis, src)
chassis.select_actions[src] = select_action

/obj/item/mecha_parts/mecha_equipment/proc/detach(atom/moveto = null)
moveto = moveto || get_turf(chassis)
Expand All @@ -123,6 +132,12 @@
chassis = null
set_ready_state(1)

/obj/item/mecha_parts/mecha_equipment/proc/remove_targeted_action()
if(!selectable)
return
if(chassis.select_actions[src])
var/datum/action/innate/mecha/select_module/select_action = chassis.select_actions[src]
select_action.Remove(chassis.occupant)

/obj/item/mecha_parts/mecha_equipment/Topic(href,href_list)
if(href_list["detach"])
Expand Down
7 changes: 4 additions & 3 deletions code/game/mecha/mecha.dm
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,6 @@
var/phasing_energy_drain = 200
var/phase_state = "" //icon_state when phasing

hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD)

//Action datums
var/datum/action/innate/mecha/mech_eject/eject_action = new
var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new
Expand All @@ -118,6 +116,9 @@
var/datum/action/innate/mecha/mech_zoom/zoom_action = new
var/datum/action/innate/mecha/mech_toggle_phasing/phasing_action = new
var/datum/action/innate/mecha/mech_switch_damtype/switch_damtype_action = new
var/list/select_actions = list()

hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD)

/obj/mecha/Initialize()
. = ..()
Expand Down Expand Up @@ -264,7 +265,7 @@


//////////////////////////////////
//////// MARK: Movement procs
//////// MARK: Movement procs
//////////////////////////////////

/obj/mecha/Process_Spacemove(movement_dir = 0)
Expand Down
27 changes: 26 additions & 1 deletion code/game/mecha/mecha_actions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
stats_action.Grant(user, src)
if(locate(/obj/item/mecha_parts/mecha_equipment/thrusters) in equipment)
add_thrusters()
for(var/obj/item/mecha_parts/mecha_equipment/equipment_mod in equipment)
equipment_mod.give_targeted_action()

/obj/mecha/proc/RemoveActions(mob/living/user, human_occupant = 0)
if(human_occupant)
Expand All @@ -14,6 +16,8 @@
lights_action.Remove(user)
stats_action.Remove(user)
thrusters_action.Remove(user)
for(var/obj/item/mecha_parts/mecha_equipment/equipment_mod in equipment)
equipment_mod.remove_targeted_action()

/datum/action/innate/mecha
check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS
Expand Down Expand Up @@ -214,5 +218,26 @@
chassis.occupant_message("A bone-chillingly thick plasteel needle protracts from the exosuit's palm.")
chassis.damtype = new_damtype
button_icon_state = "mech_damtype_[new_damtype]"
playsound(src, 'sound/mecha/mechmove01.ogg', 50, 1)
playsound(src, 'sound/mecha/mechmove01.ogg', 50, TRUE)
UpdateButtons()

/datum/action/innate/mecha/select_module
name = "Hey, you shouldn't see this please make a bug report"
var/obj/item/mecha_parts/mecha_equipment/equipment

/datum/action/innate/mecha/select_module/Grant(mob/living/L, obj/mecha/M, obj/item/mecha_parts/mecha_equipment/_equipment)
if(!_equipment)
return FALSE
equipment = _equipment
icon_icon = equipment.icon
button_icon_state = equipment.icon_state
. = ..()
name = "Switch module to [equipment.name]"

/datum/action/innate/mecha/select_module/Activate()
if(!owner || !chassis || chassis.occupant != owner)
return
chassis.selected = equipment
chassis.occupant_message("<span class='notice'>You switch to [equipment.name].</span>")
chassis.visible_message("[chassis] raises [equipment.name]")
send_byjax(chassis.occupant, "exosuit.browser", "eq_list", chassis.get_equipment_list())
4 changes: 2 additions & 2 deletions code/game/objects/effects/effect_system/effects_smoke.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
smoke_mob(M)
return TRUE

/obj/effect/particle_effect/smoke/proc/smoke_mob(datum/source, mob/living/carbon/breather)
/obj/effect/particle_effect/smoke/proc/smoke_mob(mob/living/carbon/breather)
SIGNAL_HANDLER //COMSIG_MOVABLE_CROSSED and COMSIG_CROSSED_MOVABLE
if(!istype(breather))
return FALSE
Expand Down Expand Up @@ -177,7 +177,7 @@
for(var/obj/item/Item in T)
Item.extinguish()

/datum/effect_system/smoke_spread/freezing/set_up(amount = 5, only_cardinals = FALSE, source, desired_direction, blasting = FALSE)
/datum/effect_system/smoke_spread/freezing/set_up(amount = 5, only_cardinals = FALSE, source, desired_direction, datum/reagents/chemicals, blasting = FALSE)
..()
blast = blasting

Expand Down
3 changes: 2 additions & 1 deletion code/game/objects/items/salvage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@

/obj/item/salvage/ruin/nanotrasen/Initialize(mapload)
. = ..()
origin_tech = pick(list("combat=5", "materials=5", "engineering=5", "biotech=5", "power=5", "data=5"))
origin_tech = pick("combat=5", "materials=5", "engineering=5", "biotech=5", "powerstorage=5", "programming=5")

/obj/item/salvage/ruin/carp
name = "carp scales"
desc = "A collection of scales shed from a corrupted space carp. Their culinary potential could mean untold riches for Nanotrasen."
Expand Down
1 change: 0 additions & 1 deletion code/game/objects/items/weapons/manuals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -504,7 +504,6 @@
<li>2 random chemicals from the list below, 1 unit of each (Unknown Random Recipe)
<ul>
<li>Yellow Vomit</li>
<li>Space fungus</li>
<li>Jenkem</li>
<li>Charcoal</li>
<li>Egg</li>
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/weapons/tanks/watertank.dm
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@

/obj/effect/nanofrost_container/proc/Smoke()
var/datum/effect_system/smoke_spread/freezing/S = new
S.set_up(6, FALSE, loc, null, TRUE)
S.set_up(amount = 6, only_cardinals = FALSE, source = loc, desired_direction = null, chemicals = null, blasting = TRUE)
S.start()
new /obj/effect/decal/cleanable/flour/nanofrost(get_turf(src))
playsound(src, 'sound/effects/bamf.ogg', 100, TRUE)
Expand Down
8 changes: 8 additions & 0 deletions code/game/turfs/simulated/walls.dm
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,14 @@
dismantle_wall()
visible_message("<span class='warning'>[user] melts [src]!</span>","<span class='warning'>You hear the hissing of steam.</span>")
return TRUE

else if(istype(I, /obj/item/zombie_claw))
to_chat(user, "<span class='notice'>You begin to claw apart the wall.</span>")
if(do_after(user, isdiamond ? 2 MINUTES * I.toolspeed : 1 MINUTES * I.toolspeed, target = src)) // 120/60 seconds by default
to_chat(user, "<span class='notice'>Your [I.name] rip apart the reinforced plating.</span>")
dismantle_wall()
visible_message("<span class='warning'>[user] claws through [src]!</span>","<span class='warning'>You hear the grinding of metal and bone.</span>")
return TRUE
return FALSE

/turf/simulated/wall/proc/try_wallmount(obj/item/I, mob/user, params)
Expand Down
7 changes: 7 additions & 0 deletions code/game/turfs/simulated/walls_reinforced.dm
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,13 @@
dismantle_wall()
return TRUE

if(istype(I, /obj/item/zombie_claw))
to_chat(user, "<span class='notice'>You begin to claw apart the wall.</span>")
if(do_after(user, 2 MINUTES * I.toolspeed, target = src))
to_chat(user, "<span class='notice'>Your [I.name] rip apart the reinforced plating.</span>")
dismantle_wall()
return TRUE

/turf/simulated/wall/r_wall/wall_singularity_pull(current_size)
if(current_size >= STAGE_FIVE)
if(prob(30))
Expand Down
2 changes: 1 addition & 1 deletion code/modules/antagonists/zombie/datum_zombie.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ RESTRICT_TYPE(/datum/antagonist/zombie)
clown_removal_text = "You feel funnier again."
wiki_page_name = "Zombie"
var/list/old_languages = list() // someone make this better to prevent langs changing if species changes while zombie somehow
var/static/list/zombie_traits = list(TRAIT_LANGUAGE_LOCKED, TRAIT_GOTTAGOSLOW, TRAIT_ABSTRACT_HANDS, TRAIT_SLOW_GRABBER)
var/static/list/zombie_traits = list(TRAIT_LANGUAGE_LOCKED, TRAIT_GOTTAGOSLOW, TRAIT_ABSTRACT_HANDS, TRAIT_SLOW_GRABBER, TRAIT_NOBREATH)
var/datum/unarmed_attack/claws/claw_attack

// possibly upgrades for the zombies after eating brains? Better vision (/datum/action/changeling/augmented_eyesight), better weapons (armblade), better infection, more inhereint armor (physiology)
Expand Down
8 changes: 4 additions & 4 deletions code/modules/hydroponics/grown/kudzu.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
/obj/item/seeds/kudzu/get_analyzer_text()
var/text = ..()
var/text_string = ""
for(var/datum/spacevine_mutation/SM in mutations)
for(var/datum/spacevine_mutation/SM as anything in mutations)
text_string += "[(text_string == "") ? "" : ", "][initial(SM.name)]"
text += "\n- Plant Mutations: [(text_string == "") ? "None" : text_string]"
return text
Expand All @@ -52,23 +52,23 @@
var/list/temp_mut_list = list()

if(S.has_reagent("sterilizine", 5))
for(var/datum/spacevine_mutation/SM in mutations)
for(var/datum/spacevine_mutation/SM as anything in mutations)
if(initial(SM.quality) == SPACEVINE_MUTATION_NEGATIVE)
temp_mut_list += SM
if(prob(20) && length(temp_mut_list))
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()

if(S.has_reagent("fuel", 5))
for(var/datum/spacevine_mutation/SM in mutations)
for(var/datum/spacevine_mutation/SM as anything in mutations)
if(initial(SM.quality) == SPACEVINE_MUTATION_POSITIVE)
temp_mut_list += SM
if(prob(20) && length(temp_mut_list))
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()

if(S.has_reagent("phenol", 5))
for(var/datum/spacevine_mutation/SM in mutations)
for(var/datum/spacevine_mutation/SM as anything in mutations)
if(initial(SM.quality) == SPACEVINE_MUTATION_MINOR_NEGATIVE)
temp_mut_list += SM
if(prob(20) && length(temp_mut_list))
Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/living/simple_animal/constructs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,8 @@
/// Used in bubblegum summoning. Needs MOB_SIZE_LARGE so crushers don't suffer
/mob/living/simple_animal/hostile/construct/wraith/hostile/bubblegum
mob_size = MOB_SIZE_LARGE
maxbodytemp = INFINITY
weather_immunities = list("ash")

/////////////////////////////Artificer/////////////////////////

Expand Down
2 changes: 1 addition & 1 deletion code/modules/reagents/chemistry/recipes/others.dm
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,7 @@
amt_req_cures = 2

/datum/chemical_reaction/zombie/second/get_possible_cures()
return list("vomit", "fungus", "jenkem", "charcoal", "egg", "salglu_solution", "toxin", "atropine", "lye", "sacid", "facid", "sodawater", "surge", "ultralube", "happiness", "morphine")
return list("vomit", "jenkem", "charcoal", "egg", "salglu_solution", "toxin", "atropine", "lye", "sacid", "facid", "sodawater", "surge", "ultralube", "happiness", "morphine")

/datum/chemical_reaction/zombie/third
name = "Anti-Plague Sequence Gamma"
Expand Down
Loading

0 comments on commit 3789051

Please sign in to comment.