[PORT] Add mantis blades (new traitor item) (#27594)

* add mantis blades

* fix nuclear only

* fix .dme edit

* fix linter

* new attack chain

* maybe fix linter

* add NT mantis blade to syndicate 6

* newline

* add list

* fix nested types

* ability to pry open doors with two blades

* Update code/game/machinery/doors/airlock.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* requested changes

* remove transform

* replace sleep with addtimer

* Update code/datums/uplink_items/uplink_general.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/datums/uplink_items/uplink_general.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/game/objects/items/weapons/storage/uplink_kits.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/research/designs/weapon_designs.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/research/designs/weapon_designs.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_arms.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_arms.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_arms.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_arms.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_arms.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_arms.dm

Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>

* add safetys and some cleanup

* return parry sound

* snake case and replace CALLBACK with VARSET_CALLBACK

* move attacking logic and update item and uplink description

* cleanup

* first attempt

* fix conditional statement

* update paradise.dme

* edit whitespace

* signal interceptors

* improve some logic

* oops

* use COMSIG_INTERACTING

* return one whitespace

* subtype for mantis blades

* replace .GetComponent() with signal

* fix typo

* better naming

* attempt_cancel_message and some logic

* split logic

---------

Signed-off-by: Mira <42539014+MiraHell@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: PopeDaveThe3th <80988376+PopeDaveThe3th@users.noreply.github.com>
This commit is contained in:
Mira
2025-01-17 18:16:59 +00:00
committed by GitHub
co-authored by Burzah PopeDaveThe3th
parent 6f77bf1f8a
commit dac57002ff
18 changed files with 265 additions and 37 deletions
-28
View File
@@ -1190,9 +1190,6 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
/obj/machinery/door/airlock/try_to_crowbar(mob/living/user, obj/item/I)
if(operating)
return
if(HAS_TRAIT(I, TRAIT_FORCES_OPEN_DOORS_ITEM))
force_open_with_item(user, I)
return
var/beingcrowbarred = FALSE
if(I.tool_behaviour == TOOL_CROWBAR && I.tool_use_check(user, 0))
beingcrowbarred = TRUE
@@ -1237,31 +1234,6 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
if(density && !open(1))
to_chat(user, "<span class='warning'>Despite your attempts, [src] refuses to open.</span>")
/obj/machinery/door/airlock/proc/force_open_with_item(mob/living/user, obj/item/I)
/// Time it takes to open an airlock with an item with the TRAIT_FORCES_OPEN_DOORS_ITEM trait, 5 seconds for wielded items, 10 seconds for nonwielded items
var/time_to_open_airlock = 10 SECONDS
/// Can we open the airlock while unpowered? Wielded item's can't, but unwielded items can
var/can_force_open_while_unpowered = TRUE
if(I.GetComponent(/datum/component/two_handed))
can_force_open_while_unpowered = FALSE
time_to_open_airlock = 5 SECONDS
if(!HAS_TRAIT(I, TRAIT_WIELDED))
to_chat(user, "<span class='warning'>You need to be wielding [I] to do that!</span>")
return
if(!density || prying_so_hard)
return
playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, 1) //is it aliens or just the CE being a dick?
if(!arePowerSystemsOn() && can_force_open_while_unpowered)
open(TRUE)
return
prying_so_hard = TRUE //so you dont pry the door when you are already trying to pry it
var/result = do_after(user, time_to_open_airlock, target = src)
prying_so_hard = FALSE
if(result)
open(TRUE)
if(density && !open(TRUE))
to_chat(user, "<span class='warning'>Despite your attempts, [src] refuses to open.</span>")
/obj/machinery/door/airlock/open(forced=0)
if(operating || welded || locked || emagged)
return 0
-3
View File
@@ -260,9 +260,6 @@
if(HAS_TRAIT(src, TRAIT_CMAGGED) && I.can_clean()) //If the cmagged door is being hit with cleaning supplies, don't open it, it's being cleaned!
return
if(user.a_intent != INTENT_HARM && HAS_TRAIT(I, TRAIT_FORCES_OPEN_DOORS_ITEM))
try_to_crowbar(user, I)
return TRUE
else if(!(I.flags & NOBLUDGEON) && user.a_intent != INTENT_HARM)
try_to_activate_door(user)
return TRUE
@@ -579,3 +579,12 @@
/obj/item/storage/box/syndie_kit/forgers_kit/populate_contents()
new /obj/item/stamp/chameleon(src)
new /obj/item/pen/chameleon(src)
/obj/item/storage/box/syndie_kit/syndie_mantis
name = "\improper Mantis Blades kit"
desc = "A sleek box marked with a Cybersun logo. The label says it contains a pair of CX-12 'Naginata' mantis blades and accompanying autosurgeons."
/obj/item/storage/box/syndie_kit/syndie_mantis/populate_contents()
new /obj/item/autosurgeon/organ/syndicate/oneuse/syndie_mantis(src)
new /obj/item/autosurgeon/organ/syndicate/oneuse/syndie_mantis/l(src)
+2 -2
View File
@@ -28,7 +28,7 @@
/obj/item/fireaxe/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_FORCES_OPEN_DOORS_ITEM, ROUNDSTART_TRAIT)
AddComponent(/datum/component/forces_doors_open)
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.7, _parryable_attack_types = MELEE_ATTACK, _parry_cooldown = (10 / 3) SECONDS, _requires_two_hands = TRUE) // 2.3333 seconds of cooldown for 30% uptime
AddComponent(/datum/component/two_handed, force_unwielded = force_unwielded, force_wielded = force_wielded, icon_wielded = "[base_icon_state]1")
@@ -1070,8 +1070,8 @@
/obj/item/supermatter_halberd/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_FORCES_OPEN_DOORS_ITEM, ROUNDSTART_TRAIT)
ADD_TRAIT(src, TRAIT_SUPERMATTER_IMMUNE, ROUNDSTART_TRAIT) //so it can't be dusted by the SM
AddComponent(/datum/component/forces_doors_open)
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.25, _parryable_attack_types = ALL_ATTACK_TYPES, _parry_cooldown = (4 / 3) SECONDS, _requires_two_hands = TRUE) // 0.3333 seconds of cooldown for 75% uptime
AddComponent(/datum/component/two_handed, force_wielded = 40, force_unwielded = force, icon_wielded = "[base_icon_state]1")