Skip to content

Commit 5607dbb

Browse files
committed
seccing
1 parent a3812c3 commit 5607dbb

13 files changed

Lines changed: 226 additions & 56 deletions

File tree

_maps/map_files/Deltastation/DeltaStation2.dmm

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26081,20 +26081,16 @@
2608126081
/area/station/maintenance/disposal/incinerator)
2608226082
"gqZ" = (
2608326083
/obj/machinery/door/firedoor,
26084-
/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
26085-
cycle_id = "brig-entrance"
26086-
},
26087-
/obj/machinery/door/airlock/security/glass{
26088-
name = "Brig"
26089-
},
26090-
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
2609126084
/obj/effect/turf_decal/stripes/line{
2609226085
dir = 4
2609326086
},
2609426087
/obj/effect/turf_decal/stripes/line{
2609526088
dir = 8
2609626089
},
2609726090
/obj/effect/turf_decal/tile/neutral/fourcorners,
26091+
/obj/machinery/turnstile/brig{
26092+
dir = 4
26093+
},
2609826094
/turf/open/floor/iron/dark,
2609926095
/area/station/security/brig)
2610026096
"gri" = (
@@ -43337,24 +43333,20 @@
4333743333
/turf/open/floor/iron,
4333843334
/area/station/hallway/secondary/entry)
4333943335
"kEp" = (
43340-
/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
43341-
cycle_id = "brig-entrance"
43342-
},
43343-
/obj/machinery/door/airlock/security/glass{
43344-
name = "Brig"
43345-
},
43346-
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
4334743336
/obj/effect/turf_decal/stripes/line{
4334843337
dir = 8
4334943338
},
4335043339
/obj/effect/turf_decal/stripes/line{
4335143340
dir = 4
4335243341
},
4335343342
/obj/effect/turf_decal/tile/neutral/fourcorners,
43354-
/obj/machinery/scanner_gate/preset_guns,
4335543343
/obj/machinery/flasher/directional/south{
4335643344
id = "brigflashdoor"
4335743345
},
43346+
/obj/machinery/turnstile/brig{
43347+
dir = 4
43348+
},
43349+
/obj/machinery/door/firedoor,
4335843350
/turf/open/floor/iron/dark,
4335943351
/area/station/security/brig)
4336043352
"kEw" = (

_maps/map_files/KiloStation/KiloStation.dmm

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12791,8 +12791,6 @@
1279112791
/obj/structure/disposalpipe/segment{
1279212792
dir = 4
1279312793
},
12794-
/obj/effect/turf_decal/caution/stand_clear,
12795-
/obj/machinery/door/firedoor,
1279612794
/obj/structure/cable,
1279712795
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
1279812796
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -20493,8 +20491,6 @@
2049320491
name = "Front Security Blast Door"
2049420492
},
2049520493
/obj/structure/extinguisher_cabinet/directional/north,
20496-
/obj/effect/turf_decal/caution/stand_clear,
20497-
/obj/machinery/door/firedoor,
2049820494
/turf/open/floor/iron/dark,
2049920495
/area/station/security/brig)
2050020496
"gKd" = (
@@ -43030,8 +43026,9 @@
4303043026
id = "brigfrontdoor";
4303143027
name = "Front Security Blast Door"
4303243028
},
43033-
/obj/effect/turf_decal/caution/stand_clear,
43034-
/obj/machinery/door/firedoor,
43029+
/obj/effect/turf_decal/caution/stand_clear{
43030+
dir = 4
43031+
},
4303543032
/turf/open/floor/iron/dark,
4303643033
/area/station/security/brig)
4303743034
"odd" = (
@@ -55359,14 +55356,10 @@
5535955356
/turf/open/floor/circuit/green/telecomms/mainframe,
5536055357
/area/station/tcommsat/server)
5536155358
"shC" = (
55362-
/obj/machinery/door/airlock/security/glass{
55363-
id_tag = "innerbrig";
55364-
name = "Brig"
55365-
},
55366-
/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
55367-
cycle_id = "brig-entrance-right"
55359+
/obj/machinery/turnstile/brig{
55360+
dir = 8
5536855361
},
55369-
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
55362+
/obj/machinery/door/firedoor,
5537055363
/turf/open/floor/iron/dark,
5537155364
/area/station/security/brig)
5537255365
"shE" = (
@@ -67866,6 +67859,7 @@
6786667859
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
6786767860
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
6786867861
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
67862+
/obj/machinery/door/firedoor,
6786967863
/turf/open/floor/iron/dark,
6787067864
/area/station/security/brig)
6787167865
"was" = (
@@ -71754,17 +71748,6 @@
7175471748
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
7175571749
/turf/open/floor/grass,
7175671750
/area/station/medical/psychology)
71757-
"xmO" = (
71758-
/obj/machinery/door/airlock/security/glass{
71759-
id_tag = "outerbrig";
71760-
name = "Brig"
71761-
},
71762-
/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
71763-
cycle_id = "brig-entrance-right"
71764-
},
71765-
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
71766-
/turf/open/floor/iron/dark,
71767-
/area/station/security/brig)
7176871751
"xmQ" = (
7176971752
/obj/machinery/door/airlock/external{
7177071753
name = "External Airlock"
@@ -98129,7 +98112,7 @@ lYG
9812998112
lOY
9813098113
weR
9813198114
hAP
98132-
xmO
98115+
shC
9813398116
sFF
9813498117
war
9813598118
rhd

_maps/map_files/MetaStation/MetaStation.dmm

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4480,10 +4480,6 @@
44804480
/area/station/hallway/primary/central)
44814481
"bAV" = (
44824482
/obj/machinery/door/firedoor,
4483-
/obj/machinery/door/airlock/security/glass{
4484-
id_tag = "outerbrig";
4485-
name = "Brig"
4486-
},
44874483
/obj/effect/decal/cleanable/dirt,
44884484
/obj/structure/cable,
44894485
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -4492,11 +4488,9 @@
44924488
id = "secentranceflasher";
44934489
pixel_y = -5
44944490
},
4495-
/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
4496-
cycle_id = "brig-entrance"
4491+
/obj/machinery/turnstile/brig{
4492+
dir = 1
44974493
},
4498-
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
4499-
/obj/machinery/scanner_gate/preset_guns,
45004494
/turf/open/floor/iron,
45014495
/area/station/security/brig)
45024496
"bBo" = (
@@ -37237,17 +37231,13 @@
3723737231
/turf/open/floor/iron/white,
3723837232
/area/station/science/cytology)
3723937233
"mKQ" = (
37240-
/obj/machinery/door/airlock/security/glass{
37241-
id_tag = "innerbrig";
37242-
name = "Brig"
37243-
},
3724437234
/obj/structure/cable,
3724537235
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
3724637236
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
37247-
/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
37248-
cycle_id = "brig-entrance"
37237+
/obj/machinery/door/firedoor,
37238+
/obj/machinery/turnstile/brig{
37239+
dir = 1
3724937240
},
37250-
/obj/effect/mapping_helpers/airlock/access/all/security/entrance,
3725137241
/turf/open/floor/iron,
3725237242
/area/station/security/brig)
3725337243
"mKR" = (
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/obj/machinery/turnstile
2+
name = "turnstile"
3+
desc = "A mechanical door that permits one-way access to an area."
4+
icon = 'modular_meta/features/security_extended/icons/objects.dmi'
5+
icon_state = "turnstile_map"
6+
power_channel = AREA_USAGE_ENVIRON
7+
density = TRUE
8+
max_integrity = 250
9+
armor_type = /datum/armor/machinery_turnstile
10+
anchored = TRUE
11+
use_power = FALSE
12+
idle_power_usage = 2
13+
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
14+
layer = OPEN_DOOR_LAYER
15+
16+
/datum/armor/machinery_turnstile
17+
melee = 50
18+
bullet = 20
19+
laser = 0
20+
energy = 80
21+
bomb = 10
22+
fire = 90
23+
acid = 50
24+
25+
/obj/machinery/turnstile/Initialize(mapload)
26+
. = ..()
27+
icon_state = "turnstile"
28+
29+
/obj/machinery/turnstile/can_atmos_pass(turf/target_turf, vertical = FALSE)
30+
return TRUE
31+
32+
/obj/machinery/turnstile/Cross(atom/movable/mover)
33+
. = ..()
34+
if(istype(mover) && (mover.pass_flags & PASSGLASS))
35+
return TRUE
36+
if(istype(mover, /mob/living/simple_animal/bot))
37+
flick("operate", src)
38+
playsound(src,'sound/items/tools/ratchet.ogg',50,0,3)
39+
return TRUE
40+
else if (!isliving(mover) && !istype(mover, /obj/vehicle/ridden/wheelchair))
41+
flick("deny", src)
42+
playsound(src,'sound/machines/beep/deniedbeep.ogg',50,0,3)
43+
return FALSE
44+
var/allowed = allowed(mover)
45+
if(!allowed && mover.pulledby)
46+
allowed = allowed(mover.pulledby)
47+
48+
if(istype(mover, /obj/vehicle/ridden/wheelchair))
49+
for(var/mob/living/rider in mover.buckled_mobs)
50+
if(allowed(rider) && !mover.pulledby)
51+
allowed = TRUE
52+
var/is_handcuffed = FALSE
53+
if(iscarbon(mover))
54+
var/mob/living/carbon/C = mover
55+
is_handcuffed = C.handcuffed
56+
if((get_dir(loc, mover.loc) == dir && !is_handcuffed) || allowed)
57+
flick("operate", src)
58+
playsound(src,'sound/items/tools/ratchet.ogg',50,0,3)
59+
return TRUE
60+
else
61+
flick("deny", src)
62+
playsound(src,'sound/machines/beep/deniedbeep.ogg',50,0,3)
63+
return FALSE
64+
65+
/obj/machinery/turnstile/brig
66+
name = "brig turnstile"
67+
req_access = list(ACCESS_SECURITY)
68+
max_integrity = 350
69+
damage_deflection = 16

modular_meta/features/security_extended/code/spawners.dm

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,18 @@
44
. = ..()
55
new /obj/item/ammo_box/magazine/recharge(get_turf(src))
66
new /obj/item/gun/ballistic/automatic/laser/security(get_turf(src))
7+
8+
/obj/effect/spawner/random/baton_or_tonfa
9+
name = "baton or tonfa spawner"
10+
loot = list(
11+
/obj/item/melee/baton/security = 2,
12+
/obj/item/melee/tonfa = 1,
13+
)
14+
15+
/obj/item/storage/belt/security/full/PopulateContents()
16+
new /obj/item/reagent_containers/spray/pepper(src)
17+
new /obj/item/restraints/handcuffs(src)
18+
new /obj/item/grenade/flashbang(src)
19+
new /obj/item/assembly/flash/handheld(src)
20+
new /obj/effect/spawner/random/baton_or_tonfa(src)
21+
update_appearance()
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/datum/supply_pack/security/armory/slrifle
2+
name = "Security Laser Rifle Crate"
3+
desc = "Contains single Security Laser Rifle and powerpack to it. Developed by Research Nanotrasen group. \
4+
For security department, ."
5+
cost = CARGO_CRATE_VALUE * 8
6+
contains = list(/obj/item/gun/ballistic/automatic/laser/security = 1, /obj/item/ammo_box/magazine/recharge = 2)
7+
crate_name = "security laser rifle crate"
8+
crate_type = /obj/structure/closet/crate/secure/plasma
9+
10+
/datum/supply_pack/security/slr_ammo
11+
name = "Security Laser Rifle Ammo Crate"
12+
desc = "Contains a bunch of types powerpacks, that can be putted \
13+
in the Security Laser Rifle."
14+
cost = CARGO_CRATE_VALUE * 6.5
15+
access_view = ACCESS_ARMORY
16+
contains = list(/obj/item/ammo_box/magazine/recharge = 3,
17+
/obj/item/ammo_box/magazine/recharge/stun = 1,
18+
/obj/item/ammo_box/magazine/recharge/scatter = 1,
19+
)
20+
crate_name = "ammo crate"
21+
22+
/datum/supply_pack/security/tonfa
23+
name = "Poilice Tonfa Crate"
24+
desc = "Arm the Civil Protection Forces with three police tonfa."
25+
cost = CARGO_CRATE_VALUE * 3
26+
access_view = ACCESS_SECURITY
27+
contains = list(/obj/item/melee/tonfa = 3)
28+
crate_name = "police tonfa crate"

modular_meta/features/security_extended/code/guns.dm renamed to modular_meta/features/security_extended/code/weapon/guns.dm

File renamed without changes.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/obj/item/melee/tonfa/proc/check_martial_counter(mob/living/carbon/human/target, mob/living/carbon/human/user)
2+
if(target.check_block())
3+
target.visible_message(span_danger("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!"),
4+
span_userdanger("You block the attack!"))
5+
user.Stun(15)
6+
return TRUE
7+
8+
//tonfa
9+
/obj/item/melee/tonfa
10+
name = "police tonfa"
11+
desc = "A traditional police baton for gaining the submission of an uncooperative target without the use of lethal-force. \
12+
As with all traditional weapons, the target will find themselves bruised, but alive. It has proven to be effective in preventing \
13+
repeat offenses and has brought employment to lawyers for decades."
14+
icon = 'modular_meta/features/security_extended/icons/baton.dmi'
15+
icon_state = "beater"
16+
worn_icon_state = "classic_baton"
17+
lefthand_file = 'modular_meta/features/security_extended/icons/inhands/lefthand.dmi'
18+
righthand_file = 'modular_meta/features/security_extended/icons/inhands/righthand.dmi'
19+
force = 12
20+
throwforce = 7
21+
slot_flags = ITEM_SLOT_BELT
22+
w_class = WEIGHT_CLASS_HUGE
23+
hitsound = 'sound/effects/woodhit.ogg'
24+
custom_price = PAYCHECK_COMMAND
25+
/// Damage dealt while on help intent
26+
var/non_harm_force = 3
27+
/// Stamina damage dealt
28+
var/stamina_force = 25
29+
30+
/obj/item/melee/tonfa/attack(mob/living/target, mob/living/user)
31+
var/target_zone = user.log_manual_zone_selected_update(target)
32+
var/armour_level = target.getarmor(target_zone, STAMINA, penetration = armour_penetration - 15)
33+
34+
add_fingerprint(user)
35+
if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))
36+
to_chat(user, span_danger("You hit yourself over the head."))
37+
user.adjust_stamina_loss(stamina_force)
38+
39+
// Deal full damage
40+
force = initial(force)
41+
if(ishuman(user))
42+
var/mob/living/carbon/human/H = user
43+
H.apply_damage(2*force, BRUTE, BODY_ZONE_HEAD)
44+
else
45+
user.take_bodypart_damage(2*force)
46+
return
47+
if(!isliving(target))
48+
return ..()
49+
if(iscyborg(target))
50+
if (!user.combat_mode)
51+
playsound(get_turf(src), hitsound, 75, 1, -1)
52+
user.do_attack_animation(target) // The attacker cuddles the Cyborg, awww. No damage here.
53+
return
54+
if (!user.combat_mode)
55+
force = non_harm_force
56+
else
57+
force = initial(force)
58+
if(ishuman(target))
59+
var/mob/living/carbon/human/H = target
60+
if (H.check_block(src, 0, "[user]'s [name]", MELEE_ATTACK))
61+
return
62+
if(check_martial_counter(H, user))
63+
log_combat(user, target, "attempted to attack", src, "(blocked by martial arts)")
64+
return
65+
66+
target.visible_message("[user] strikes [target] in the [parse_zone(target_zone)].", "You strike [target] in the [parse_zone(target_zone)].")
67+
log_combat(user, target, "attacked", src)
68+
69+
// If the target has a lot of stamina loss, knock them down
70+
if ((user.log_manual_zone_selected_update(BODY_ZONE_L_LEG) || user.log_manual_zone_selected_update(BODY_ZONE_R_LEG)) && target.get_stamina_loss() > 22)
71+
var/effectiveness = CLAMP01((target.get_stamina_loss() - 22) / 50)
72+
log_combat(user, target, "knocked-down", src, "(additional effect)")
73+
// Move the target back upon knockdown, to give them some time to recover
74+
var/shove_dir = get_dir(user.loc, target.loc)
75+
var/turf/target_shove_turf = get_step(target.loc, shove_dir)
76+
var/mob/living/carbon/human/target_collateral_human = locate(/mob/living/carbon) in target_shove_turf.contents
77+
if (target_collateral_human && target_shove_turf != get_turf(user))
78+
target.Knockdown(max(0.5 SECONDS, effectiveness * 4 SECONDS * (100-armour_level)/100))
79+
target_collateral_human.Knockdown(0.5 SECONDS)
80+
else
81+
target.Knockdown(effectiveness * 4 SECONDS * (100-armour_level)/100)
82+
target.Move(target_shove_turf, shove_dir)
83+
if (user.log_manual_zone_selected_update(BODY_ZONE_L_LEG) || user.log_manual_zone_selected_update(BODY_ZONE_R_LEG) || user.log_manual_zone_selected_update(BODY_ZONE_L_ARM) || user.log_manual_zone_selected_update(BODY_ZONE_R_ARM))
84+
// 4-5 hits on an unarmoured target
85+
target.apply_damage(stamina_force*0.6, STAMINA, target_zone, armour_level)
86+
else
87+
// 4-5 hits on an unarmoured target
88+
target.apply_damage(stamina_force, STAMINA, target_zone, armour_level)
89+
90+
return ..()
376 Bytes
Binary file not shown.
420 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)