From 1b27035da7a76b230bd6ca9daddf4412fa9617c6 Mon Sep 17 00:00:00 2001
From: Kolergo <85778771+Kolergo@users.noreply.github.com>
Date: Thu, 13 Jul 2023 19:49:04 +0300
Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BA=D0=B0=20=D0=B1=D0=B0=D1=81?=
=?UTF-8?q?=D1=82=D0=B8=D0=BE=D0=BD=20=D0=BE=D1=84=20=D1=81=D0=BB=D0=B0?=
=?UTF-8?q?=D0=B2=D1=81=20=D1=81=D1=8113=20=D1=82=D0=BE=D1=87=D0=BA=D0=B0?=
=?UTF-8?q?=20=D1=80=D1=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
baystation12.dme | 3 +
code/bos/modules/guns/ks_23m.dm | 16 +
.../overmap/disperser/disperser_charge.dm | 6 +-
.../overmap/disperser/disperser_fire.dm | 12 +-
.../modules/projectiles/ammunition/bullets.dm | 7 +
.../modules/projectiles/projectile/bullets.dm | 6 +
code/game/antagonist/station/mini_roles.dm | 10 +-
code/modules/emotes/definitions/visible.dm | 2 +-
.../living/carbon/human/human_interactions.dm | 4 +
.../mob/living/carbon/human/interactions.dm | 1 +
icons/bos/obj/guns/ks_23m.dmi | Bin 0 -> 2316 bytes
maps/castelnau/mjolnir/mjolnir_surface.dmm | 359 +++++++++++-------
12 files changed, 288 insertions(+), 138 deletions(-)
create mode 100644 code/bos/modules/guns/ks_23m.dm
create mode 100644 code/bos/modules/projectiles/ammunition/bullets.dm
create mode 100644 code/bos/modules/projectiles/projectile/bullets.dm
create mode 100644 icons/bos/obj/guns/ks_23m.dmi
diff --git a/baystation12.dme b/baystation12.dme
index c677e42a2e340..73d4de5440a81 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -281,6 +281,7 @@
#include "code\bos\modules\food\recipes_microwave.dm"
#include "code\bos\modules\guns\crafting_zipgun.dm"
#include "code\bos\modules\guns\disprcd.dm"
+#include "code\bos\modules\guns\ks_23m.dm"
#include "code\bos\modules\guns\mantid.dm"
#include "code\bos\modules\guns\revolver.dm"
#include "code\bos\modules\guns\zipgun.dm"
@@ -355,6 +356,8 @@
#include "code\bos\modules\overmap\ships\engines\engine.dm"
#include "code\bos\modules\overmap\ships\engines\gas_thruster.dm"
#include "code\bos\modules\overmap\ships\engines\ion_thruster.dm"
+#include "code\bos\modules\projectiles\ammunition\bullets.dm"
+#include "code\bos\modules\projectiles\projectile\bullets.dm"
#include "code\bos\modules\projectiles\projectile\special.dm"
#include "code\bos\modules\reagents\Chemistry-Reagents-Recipes.dm"
#include "code\bos\modules\reagents\kvasok.dm"
diff --git a/code/bos/modules/guns/ks_23m.dm b/code/bos/modules/guns/ks_23m.dm
new file mode 100644
index 0000000000000..11f760c6f6315
--- /dev/null
+++ b/code/bos/modules/guns/ks_23m.dm
@@ -0,0 +1,16 @@
+/obj/item/gun/projectile/shotgun/pump/mirania
+ name = "KS-23M Racist"
+ desc = "Originaly, modification of old Hephaestus KS-23, made in Mirania."
+ icon = 'icons/bos/obj/guns/ks_23m.dmi'
+ icon_state = "KS-23M"
+ item_state = "cshotgun"
+ wielded_item_state = "cshotgun-wielded"
+ origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3)
+ max_shells = 3
+ ammo_type = /obj/item/ammo_casing/shotgun/pellet/giant
+ one_hand_penalty = 9
+ bulk = 8
+ screen_shake = 6
+
+/obj/item/gun/projectile/shotgun/pump/mirania/update_icon()
+ return
diff --git a/code/bos/modules/overmap/disperser/disperser_charge.dm b/code/bos/modules/overmap/disperser/disperser_charge.dm
index dcfc0570a172d..f154109a9c84a 100644
--- a/code/bos/modules/overmap/disperser/disperser_charge.dm
+++ b/code/bos/modules/overmap/disperser/disperser_charge.dm
@@ -85,6 +85,9 @@
chargetype = OVERMAP_WEAKNESS_EXPLOSIVE
chargedesc = "KOSMAG"
+/obj/structure/ship_munition/disperser_charge/s2s/fire(turf/target, strength, range)
+ explosion(target, strength * range / 1)
+
/obj/structure/closet/odst
name = "OFD droppod"
desc = "A crude droppod allowing the OFD to safely fire itself, with a living creature at a target. Oxygen not included. Designed to fit a single rifleman, but may be used to drop two soldiers in a pinch."
@@ -93,9 +96,6 @@
storage_capacity = (MOB_MEDIUM * 2)
var/chargedesc = "ODST"
-/obj/structure/ship_munition/disperser_charge/s2s/fire(turf/target, strength, range)
- explosion(target, 0, strength * range / 1, 2)
-
/obj/structure/ship_munition/disperser_charge/vox
name = "Vox charge"
color = "#a33fbf"
diff --git a/code/bos/modules/overmap/disperser/disperser_fire.dm b/code/bos/modules/overmap/disperser/disperser_fire.dm
index 87b4b5c8fa367..3a73c0e297ec0 100644
--- a/code/bos/modules/overmap/disperser/disperser_fire.dm
+++ b/code/bos/modules/overmap/disperser/disperser_fire.dm
@@ -130,6 +130,16 @@
targetturf.ex_act(1)
for(var/atom/A in targetturf)
A.ex_act(3)
+ //BoS start. Add some effects, make hole in roof if droppod fall in house
+ var/turf/above_turf = GetAbove(targetturf)
+ while(above_turf)
+ explosion(above_turf, 1, 1, 2)
+ above_turf = GetAbove(above_turf)
+ explosion(targetturf, 0, 0, 3)
+ var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
+ smoke.set_up(7, 0, targetturf)
+ smoke.start()
+ //BoS end
charge.forceMove(targetturf)
//The disperser is infact a taxi
for(var/mob/living/L in charge)
@@ -157,4 +167,4 @@
if(WEST)
return locate(1,start.y,start.z)
if(EAST)
- return locate(world.maxx,start.y,start.z)
\ No newline at end of file
+ return locate(world.maxx,start.y,start.z)
diff --git a/code/bos/modules/projectiles/ammunition/bullets.dm b/code/bos/modules/projectiles/ammunition/bullets.dm
new file mode 100644
index 0000000000000..107d3dd19ca00
--- /dev/null
+++ b/code/bos/modules/projectiles/ammunition/bullets.dm
@@ -0,0 +1,7 @@
+/obj/item/ammo_casing/shotgun/pellet/giant
+ name = "giant shotgun shell"
+ desc = "A giant shotshell."
+ icon_state = "gshell"
+ spent_icon = "gshell-spent"
+ projectile_type = /obj/item/projectile/bullet/pellet/shotgun/giant
+ matter = list(MATERIAL_STEEL = 450)
diff --git a/code/bos/modules/projectiles/projectile/bullets.dm b/code/bos/modules/projectiles/projectile/bullets.dm
new file mode 100644
index 0000000000000..7dd362503f55b
--- /dev/null
+++ b/code/bos/modules/projectiles/projectile/bullets.dm
@@ -0,0 +1,6 @@
+/obj/item/projectile/bullet/pellet/shotgun/giant
+ icon_state = "pellet"
+ damage = 40
+ pellets = 14
+ range_step = 1
+ spread_step = 80
diff --git a/code/game/antagonist/station/mini_roles.dm b/code/game/antagonist/station/mini_roles.dm
index 349ddc5d3ce62..98015b04bd182 100644
--- a/code/game/antagonist/station/mini_roles.dm
+++ b/code/game/antagonist/station/mini_roles.dm
@@ -261,8 +261,8 @@ GLOBAL_DATUM_INIT(mini_role, /datum/antagonist/mini_roles, new)
/datum/mini_role/creditor/special_act(var/mob/living/carbon/human/target)
var/debt
- debt = mini_target.assigned_job.economic_power * 1000 - rand(-40,1) * 100
- if(debt << 0) debt += 4000
+ debt = mini_target.assigned_job.economic_power * 500 + rand(-10,20) * 100
+ if(debt << 1000) debt += 2000
objective = "[mini_target]([mini_target.assigned_job.title]) задолжал Вам [debt] кредитов. Добейтесь от должника возвращения долга до конца смены."
double_text = "Вы вспоминаете, что то ли по пьяне, то ли из-за смертельной угрозы, то ли просто по случайности, но Вы должны [owner] [debt] кредитов. Не сказать, что бы Вам хотелось с ними раставаться..."
double_objective = "Избегать отдачи долга в [debt] кредитов [owner]([owner.assigned_job.title])."
@@ -302,15 +302,17 @@ GLOBAL_DATUM_INIT(mini_role, /datum/antagonist/mini_roles, new)
double_text = "Где-то рядом с Вами должен находится связной, который может обладать интересной и полезной информацией. Найдите его и получите эту информацию."
double_objective = "Найдите и установите контакт с связным."
- //Put names of possible coop roles in list below
+ //Put types of possible coop roles in list below
var/connected_roles = list(/datum/mini_role/rat, /datum/mini_role/contractor)
+ //Guys below too boring to unmask them
+ var/boring_roles = list(/datum/mini_role/creditor)
/datum/mini_role/link/additional_check(var/mob/living/carbon/human/target)
var/try_amount = 0
var/list/unmasked_roles = list()
while(try_amount != 4)
var/datum/mini_role/picked_role = pick(GLOB.mini_role.all_mini_roles_datums)
- if((is_type_in_list(picked_role, connected_roles)) || (picked_role.owner == target.mind))
+ if((is_type_in_list(picked_role, connected_roles)) || (is_type_in_list(picked_role, unmasked_roles)) || (is_type_in_list(picked_role, boring_roles)) || (picked_role.owner == target.mind))
try_amount += 1
continue
unmasked_roles += picked_role
diff --git a/code/modules/emotes/definitions/visible.dm b/code/modules/emotes/definitions/visible.dm
index 73b067c031790..42bb3465ead64 100644
--- a/code/modules/emotes/definitions/visible.dm
+++ b/code/modules/emotes/definitions/visible.dm
@@ -343,4 +343,4 @@
key = "adjust"
check_restraints = TRUE
emote_message_3p = "USER поправляет одежду."
- emote_message_3p_target = "USER поправляет одежду TARGET."
\ No newline at end of file
+ emote_message_3p_target = "USER поправляет одежду TARGET."
diff --git a/code/modules/mob/living/carbon/human/human_interactions.dm b/code/modules/mob/living/carbon/human/human_interactions.dm
index f11f47b652fc1..d5c9f46a69c87 100644
--- a/code/modules/mob/living/carbon/human/human_interactions.dm
+++ b/code/modules/mob/living/carbon/human/human_interactions.dm
@@ -32,6 +32,10 @@
if (istype(P.loc, /obj/structure/closet) && P.loc == H.loc)
P.visible_message("[H] кланяется [P].")
+ else if (href_list["interaction"] == "wink") //BoS
+ to_chat(P, "[H] незаметно подмигивает Вам.")
+ to_chat(H, "Вы незаметно подмигнули [P].")
+
else if (href_list["interaction"] == "pet")
if(((!istype(P.loc, /obj/structure/closet)) || (H.loc == P.loc)) && hashands && H.Adjacent(P))
H.visible_message("[H] [pick("гладит", "поглаживает")] [P].")
diff --git a/code/modules/mob/living/carbon/human/interactions.dm b/code/modules/mob/living/carbon/human/interactions.dm
index 64dabc0e9067f..8d124845bb70b 100644
--- a/code/modules/mob/living/carbon/human/interactions.dm
+++ b/code/modules/mob/living/carbon/human/interactions.dm
@@ -42,6 +42,7 @@
var/ya = "я"
dat += {"• Отвесить поклон.
"}
+ dat += {"• Незаметно подмигнуть.
"}
if (hashands)
dat += {"Руки:
"}
dat += {"• Приветливо кивнуть.
"}
diff --git a/icons/bos/obj/guns/ks_23m.dmi b/icons/bos/obj/guns/ks_23m.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..7e7f74de705c32a5dd3a4788d7178fb8eab35a2a
GIT binary patch
literal 2316
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
m%VFsJ4gdfE00000rpN!rS~XOd70YY@0000