From f9e1ad3064712a46df09dc873fed6b327ca2ec4a Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Fri, 31 May 2024 08:06:47 -0500
Subject: [PATCH 01/12] adds tribal claw (unfinished)
Saving this so I can work later. Procs hurt my soul
---
monkestation/code/__DEFINES/martial_arts.dm | 3 +
.../martial_arts/granters/tribal_claw_gr.dm | 42 +++++++
.../code/datums/martial_arts/tribal_claw.dm | 116 ++++++++++++++++++
tgstation.dme | 3 +
4 files changed, 164 insertions(+)
create mode 100644 monkestation/code/__DEFINES/martial_arts.dm
create mode 100644 monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
create mode 100644 monkestation/code/datums/martial_arts/tribal_claw.dm
diff --git a/monkestation/code/__DEFINES/martial_arts.dm b/monkestation/code/__DEFINES/martial_arts.dm
new file mode 100644
index 000000000000..b7dc5a04264e
--- /dev/null
+++ b/monkestation/code/__DEFINES/martial_arts.dm
@@ -0,0 +1,3 @@
+//Monkestation exclusive martial arts defines.
+
+#define MARTIALART_TRIBALCLAW "tribal claw"
diff --git a/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm b/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
new file mode 100644
index 000000000000..4ac82c3ed951
--- /dev/null
+++ b/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
@@ -0,0 +1,42 @@
+/obj/item/book/granter/martial/tribal_claw
+ martial = /datum/martial_art/tribal_claw
+ name = "old scroll"
+ martial_name = "tribal claw"
+ desc = "A scroll filled with ancient draconic markings."
+ greet = "You have learned the ancient martial art of the Tribal Claw! You are now able to use your tail and claws in a fight much better than before. \
+ Check the combos you are now able to perform using the Recall Teachings verb in the Tribal Claw tab"
+ icon = 'icons/obj/wizard.dmi'
+ icon_state = "scroll2"
+ remarks = list("I must prove myself worthy to the masters of the Knoises clan...",
+ "Use your tail to surprise any enemy...",
+ "Your sharp claws can disorient them...",
+ "I don't think this would combine with other martial arts...",
+ "Ooga Booga..."
+ )
+
+/obj/item/book/granter/martial/tribal_claw/on_reading_finished(mob/living/carbon/user)
+ . = ..()
+ update_appearance()
+
+/obj/item/book/granter/martial/carp/update_appearance(updates)
+ . = ..()
+ if(uses <= 0)
+ name = "empty scroll"
+ desc = "It's completely blank."
+ icon_state = "blankscroll"
+ else
+ name = initial(name)
+ desc = initial(desc)
+ icon_state = initial(icon_state)
+
+
+//can't get this function to work yet. take a look at it AFTER.
+/*
+/obj/item/book/granter/martial/tribal_claw/already_known(mob/user)
+ if(islizard(user))
+ return FALSE
+ else
+ to_chat(user, "You try to read the scroll but can't comprehend any of it.")
+ return TRUE
+
+*/
diff --git a/monkestation/code/datums/martial_arts/tribal_claw.dm b/monkestation/code/datums/martial_arts/tribal_claw.dm
new file mode 100644
index 000000000000..f15f84d09f07
--- /dev/null
+++ b/monkestation/code/datums/martial_arts/tribal_claw.dm
@@ -0,0 +1,116 @@
+//ported directly from Bee, cleaned up and updated to function with TG. thanks bee!
+
+#define TAIL_SWEEP_COMBO "DH"
+#define FACE_SCRATCH_COMBO "HH"
+#define JUGULAR_CUT_COMBO "HD"
+#define TAIL_GRAB_COMBO "DDG"
+
+/datum/martial_art/tribal_claw
+ name = "Tribal Claw"
+ id = MARTIALART_TRIBALCLAW
+ allow_temp_override = FALSE
+ help_verb = /mob/living/carbon/human/proc/tribal_claw_help
+
+/datum/martial_art/tribal_claw/proc/check_streak(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ if(findtext(streak,TAIL_SWEEP_COMBO))
+ streak = ""
+ tailSweep(attacker,target)
+ return TRUE
+ if(findtext(streak,FACE_SCRATCH_COMBO))
+ streak = ""
+ faceScratch(attacker,target)
+ return TRUE
+ if(findtext(streak,JUGULAR_CUT_COMBO))
+ streak = ""
+ jugularCut(attacker,target)
+ return TRUE
+ if(findtext(streak,TAIL_GRAB_COMBO))
+ streak = ""
+ tailGrab(attacker,target)
+ return TRUE
+ return FALSE
+
+//Tail Sweep, triggers an effect similar to Alien Queen's tail sweep but only affects stuff 1 tile next to you, basically 3x3.
+/datum/martial_art/tribal_claw/proc/tailSweep(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ if(attacker == current_target)
+ return
+ log_combat(attacker, target, "tail sweeped(Tribal Claw)", name)
+ target.visible_message("[attacker] sweeps [target]'s legs with their tail!", \
+ "[attacker] sweeps your legs with their tail!")
+ var/static/datum/action/cooldown/spell/aoe/repulse/xeno/tail_sweep = new
+ tail_sweep.cast(attacker)
+
+//Face Scratch, deals 10 brute to head(reduced by armor), blurs the target's vision and gives them the confused effect for a short time.
+/datum/martial_art/tribal_claw/proc/faceScratch(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ var/def_check = target.getarmor(BODY_ZONE_HEAD, MELEE)
+ log_combat(attacker, target, "face scratched (Tribal Claw)", name)
+ target.visible_message("[attacker] scratches [target]'s face with their claws!", \
+ "[attacker] scratches your face with their claws!")
+ target.apply_damage(10, BRUTE, BODY_ZONE_HEAD, def_check)
+ target.adjust_confusion(5 SECONDS)
+ target.adjust_eye_blur(5 SECONDS)
+ attacker.do_attack_animation(target, ATTACK_EFFECT_CLAW)
+ playsound(get_turf(target), 'sound/weapons/slash.ogg', 50, 1, -1)
+
+/*
+Jugular Cut, can only be done if the target is in crit, being held in a tier 3 grab by the user or if they are sleeping.
+Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect similar to throat slicing someone with a sharp item.
+*/
+//LIES!! eh not really. I made it apply the throat slitting status effect.
+
+/datum/martial_art/tribal_claw/proc/jugularCut(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ var/def_check = target.getarmor(BODY_ZONE_HEAD, MELEE)
+ if((target.health <= target.crit_threshold || (attacker.pulling == target && attacker.grab_state >= GRAB_NECK) || target.IsSleeping()))
+ log_combat(attacker, target, "jugular cut (Tribal Claw)", name)
+ target.visible_message("[attacker] cuts [target]'s jugular vein with their claws!", \
+ "[attacker] cuts your jugular vein!")
+ target.apply_damage(15, BRUTE, BODY_ZONE_HEAD, def_check)
+
+ //incompatible with TG's status efffects and medical. not quite sure of the replacements. Highly likely this causes issues in the future.
+ //target.bleed_rate = clamp(target.bleed_rate + 20, 0, 30)
+ target.apply_status_effect(/datum/status_effect/wound/slash/flesh/critical)
+ attacker.do_attack_animation(target, ATTACK_EFFECT_CLAW)
+ playsound(get_turf(target), 'sound/weapons/slash.ogg', 50, 1, -1)
+ else
+ //the original code says that this should be a basic attack instead, but not quite sure I could get that to work without fanangling
+ return MARTIAL_ATTACK_FAIL
+
+//Tail Grab, instantly puts your target in a T3 grab and makes them unable to talk for a short time.
+/datum/martial_art/tribal_claw/proc/tailGrab(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ log_combat(attacker, target, "tail grabbed (Tribal Claw)", name)
+ target.visible_message("[attacker] grabs [target] with their tail!", \
+ "[attacker] grabs you with their tail!")
+ target.grabbedby(attacker, 1)
+ target.Knockdown(5) //Without knockdown target still stands up while T3 grabbed.
+ attacker.setGrabState(GRAB_NECK)
+ target.adjust_silence_up_to(10 SECONDS, 10 SECONDS)
+
+/datum/martial_art/tribal_claw/harm_act(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ add_to_streak("H",target)
+ if(check_streak(attacker,target))
+ return TRUE
+ return FALSE
+
+/datum/martial_art/tribal_claw/disarm_act(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ add_to_streak("D",target)
+ if(check_streak(attacker,target))
+ return TRUE
+ return FALSE
+
+/datum/martial_art/tribal_claw/grab_act(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+ add_to_streak("G",target)
+ if(check_streak(attacker,target))
+ return TRUE
+ return FALSE
+
+/mob/living/carbon/human/proc/tribal_claw_help()
+ set name = "Recall Teachings"
+ set desc = "Remember the martial techniques of the Tribal Claw"
+ set category = "Tribal Claw"
+
+ to_chat(usr, "You retreat inward and recall the teachings of the Tribal Claw...")
+
+ to_chat(usr, "Tail Sweep: Disarm Harm. Pushes everyone around you away and knocks them down.")
+ to_chat(usr, "Face Scratch: Harm Harm. Damages your target's head and confuses them for a short time.")
+ to_chat(usr, "Jugular Cut: Harm Disarm. Causes your target to rapidly lose blood, works only if you grab your target by their neck, if they are sleeping, or in critical condition.")
+ to_chat(usr, "Tail Grab: Disarm Disarm Grab. Grabs your target by their neck and makes them unable to talk for a short time.")
diff --git a/tgstation.dme b/tgstation.dme
index a88c219a875f..9b600172c88d 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -5703,6 +5703,7 @@
#include "interface\fonts\spess_font.dm"
#include "interface\fonts\tiny_unicode.dm"
#include "interface\fonts\vcr_osd_mono.dm"
+#include "monkestation\code\__DEFINES\martial_arts.dm"
#include "monkestation\code\__DEFINES\projectile.dm"
#include "monkestation\code\__HELPERS\_lists.dm"
#include "monkestation\code\__HELPERS\anime.dm"
@@ -5744,6 +5745,8 @@
#include "monkestation\code\datums\keybinding\communication.dm"
#include "monkestation\code\datums\keybinding\living.dm"
#include "monkestation\code\datums\looping_sounds\weather.dm"
+#include "monkestation\code\datums\martial_arts\tribal_claw.dm"
+#include "monkestation\code\datums\martial_arts\granters\tribal_claw_gr.dm"
#include "monkestation\code\datums\mind\_mind.dm"
#include "monkestation\code\datums\quirks\negative_quirks.dm"
#include "monkestation\code\datums\quirks\neutral_quirks.dm"
From e78253ba3e9cb77cbd86af4a03c8e80b089616d7 Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Fri, 31 May 2024 12:29:47 -0500
Subject: [PATCH 02/12] what
---
_maps/_basemap.dm | 2 +-
.../datums/martial_arts/granters/tribal_claw_gr.dm | 12 ++++--------
monkestation/code/datums/martial_arts/tribal_claw.dm | 11 +++++------
3 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm
index 60ffa1b88918..50c11c0c3b1a 100644
--- a/_maps/_basemap.dm
+++ b/_maps/_basemap.dm
@@ -1,4 +1,4 @@
-//#define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
+#define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
#include "map_files\generic\CentCom.dmm"
diff --git a/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm b/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
index 4ac82c3ed951..5f6ef13398a5 100644
--- a/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
+++ b/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
@@ -18,7 +18,7 @@
. = ..()
update_appearance()
-/obj/item/book/granter/martial/carp/update_appearance(updates)
+/obj/item/book/granter/martial/tribal_claw/update_appearance(updates)
. = ..()
if(uses <= 0)
name = "empty scroll"
@@ -29,14 +29,10 @@
desc = initial(desc)
icon_state = initial(icon_state)
-
-//can't get this function to work yet. take a look at it AFTER.
-/*
-/obj/item/book/granter/martial/tribal_claw/already_known(mob/user)
- if(islizard(user))
+/obj/item/book/granter/martial/tribal_claw/can_learn(mob/user)
+ if(!islizard(user))
+ to_chat(user, "You try to read the scroll but can't comprehend any of it.")
return FALSE
else
- to_chat(user, "You try to read the scroll but can't comprehend any of it.")
return TRUE
-*/
diff --git a/monkestation/code/datums/martial_arts/tribal_claw.dm b/monkestation/code/datums/martial_arts/tribal_claw.dm
index f15f84d09f07..82356605899b 100644
--- a/monkestation/code/datums/martial_arts/tribal_claw.dm
+++ b/monkestation/code/datums/martial_arts/tribal_claw.dm
@@ -56,25 +56,24 @@
Jugular Cut, can only be done if the target is in crit, being held in a tier 3 grab by the user or if they are sleeping.
Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect similar to throat slicing someone with a sharp item.
*/
-//LIES!! eh not really. I made it apply the throat slitting status effect.
+//LIES!! TG completely FUCKED throat slitting and it's EXTREMELY DIFFICULT to replicate. This absolutely sucked to code.
-/datum/martial_art/tribal_claw/proc/jugularCut(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
+
+/datum/martial_art/tribal_claw/proc/jugularCut(mob/living/carbon/attacker, mob/living/carbon/target)
var/def_check = target.getarmor(BODY_ZONE_HEAD, MELEE)
if((target.health <= target.crit_threshold || (attacker.pulling == target && attacker.grab_state >= GRAB_NECK) || target.IsSleeping()))
log_combat(attacker, target, "jugular cut (Tribal Claw)", name)
target.visible_message("[attacker] cuts [target]'s jugular vein with their claws!", \
"[attacker] cuts your jugular vein!")
target.apply_damage(15, BRUTE, BODY_ZONE_HEAD, def_check)
-
- //incompatible with TG's status efffects and medical. not quite sure of the replacements. Highly likely this causes issues in the future.
- //target.bleed_rate = clamp(target.bleed_rate + 20, 0, 30)
- target.apply_status_effect(/datum/status_effect/wound/slash/flesh/critical)
+ target.apply_status_effect(/datum/status_effect/neck_slice)
attacker.do_attack_animation(target, ATTACK_EFFECT_CLAW)
playsound(get_turf(target), 'sound/weapons/slash.ogg', 50, 1, -1)
else
//the original code says that this should be a basic attack instead, but not quite sure I could get that to work without fanangling
return MARTIAL_ATTACK_FAIL
+
//Tail Grab, instantly puts your target in a T3 grab and makes them unable to talk for a short time.
/datum/martial_art/tribal_claw/proc/tailGrab(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
log_combat(attacker, target, "tail grabbed (Tribal Claw)", name)
From 9d8f5225346de51bb243891e2ec338360cbf4770 Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Sat, 8 Jun 2024 18:10:35 -0500
Subject: [PATCH 03/12] Adds Tribal Claw
FINALLY
---
.../code/datums/martial_arts/tribal_claw.dm | 8 +++++--
.../code/datums/martial_arts/wounds/wounds.dm | 23 +++++++++++++++++++
tgstation.dme | 1 +
3 files changed, 30 insertions(+), 2 deletions(-)
create mode 100644 monkestation/code/datums/martial_arts/wounds/wounds.dm
diff --git a/monkestation/code/datums/martial_arts/tribal_claw.dm b/monkestation/code/datums/martial_arts/tribal_claw.dm
index 82356605899b..ba3932c0981d 100644
--- a/monkestation/code/datums/martial_arts/tribal_claw.dm
+++ b/monkestation/code/datums/martial_arts/tribal_claw.dm
@@ -61,12 +61,16 @@ Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect simi
/datum/martial_art/tribal_claw/proc/jugularCut(mob/living/carbon/attacker, mob/living/carbon/target)
var/def_check = target.getarmor(BODY_ZONE_HEAD, MELEE)
+ var/wound_type = /datum/wound/slash/flesh/critical
+ var/obj/item/bodypart/head = target.get_bodypart(BODY_ZONE_HEAD)
+ var/datum/wound/slash/flesh/jugcut = new wound_type()
+
if((target.health <= target.crit_threshold || (attacker.pulling == target && attacker.grab_state >= GRAB_NECK) || target.IsSleeping()))
log_combat(attacker, target, "jugular cut (Tribal Claw)", name)
target.visible_message("[attacker] cuts [target]'s jugular vein with their claws!", \
"[attacker] cuts your jugular vein!")
target.apply_damage(15, BRUTE, BODY_ZONE_HEAD, def_check)
- target.apply_status_effect(/datum/status_effect/neck_slice)
+ jugcut.apply_wound(head)
attacker.do_attack_animation(target, ATTACK_EFFECT_CLAW)
playsound(get_turf(target), 'sound/weapons/slash.ogg', 50, 1, -1)
else
@@ -78,7 +82,7 @@ Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect simi
/datum/martial_art/tribal_claw/proc/tailGrab(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
log_combat(attacker, target, "tail grabbed (Tribal Claw)", name)
target.visible_message("[attacker] grabs [target] with their tail!", \
- "[attacker] grabs you with their tail!")
+ "[attacker] grabs you with their tail!6")
target.grabbedby(attacker, 1)
target.Knockdown(5) //Without knockdown target still stands up while T3 grabbed.
attacker.setGrabState(GRAB_NECK)
diff --git a/monkestation/code/datums/martial_arts/wounds/wounds.dm b/monkestation/code/datums/martial_arts/wounds/wounds.dm
new file mode 100644
index 000000000000..4bf6ec33aa6c
--- /dev/null
+++ b/monkestation/code/datums/martial_arts/wounds/wounds.dm
@@ -0,0 +1,23 @@
+//EXPERIMENTAL DO NOT USE
+
+/*
+
+// Subtype for throat slices
+/datum/wound/slash/flesh/critical/artery
+ name = "Slashed Artery"
+ desc = "Patient has a slashed artery, causing severe and life-threatening bleeding."
+ examine_desc = "is ruptured, spraying blood wildly"
+ initial_flow = 12
+ minimum_flow = 6
+
+/datum/wound/slash/flesh/critical/artery/update_descriptions()
+ if(!limb.can_bleed())
+ occur_text = "is ruptured"
+
+/datum/wound_pregen_data/flesh_slash/avulsion/artery
+ abstract = FALSE
+ can_be_randomly_generated = FALSE
+
+ wound_path_to_generate = /datum/wound/slash/flesh/critical/artery
+
+*/
diff --git a/tgstation.dme b/tgstation.dme
index 9b600172c88d..b5181eab35ef 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -5747,6 +5747,7 @@
#include "monkestation\code\datums\looping_sounds\weather.dm"
#include "monkestation\code\datums\martial_arts\tribal_claw.dm"
#include "monkestation\code\datums\martial_arts\granters\tribal_claw_gr.dm"
+#include "monkestation\code\datums\martial_arts\wounds\wounds.dm"
#include "monkestation\code\datums\mind\_mind.dm"
#include "monkestation\code\datums\quirks\negative_quirks.dm"
#include "monkestation\code\datums\quirks\neutral_quirks.dm"
From 078fe8d709379065f867680453aaa8bcad8e6a6e Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Sat, 8 Jun 2024 20:40:28 -0500
Subject: [PATCH 04/12] Adds Tribal Claw scroll to the uplink
---
monkestation/code/modules/uplink/uplink_items/species.dm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/monkestation/code/modules/uplink/uplink_items/species.dm b/monkestation/code/modules/uplink/uplink_items/species.dm
index db1ee12eac86..911a7490fc80 100644
--- a/monkestation/code/modules/uplink/uplink_items/species.dm
+++ b/monkestation/code/modules/uplink/uplink_items/species.dm
@@ -23,3 +23,9 @@
item = /obj/vehicle/ridden/monkey_ball
restricted_species = list(SPECIES_SIMIAN)
+/datum/uplink_item/race_restricted/tribal_claw_scroll
+ name = "Silver-Scale Scroll"
+ desc = "A scroll with ancient heritage. It can teach the user the secrets of Tribal Claw, an offensive martial art reliant on one's claws and tail."
+ cost = 10
+ item = /obj/item/book/granter/martial/tribal_claw
+ restricted_species = list(SPECIES_LIZARD)
From c8477f01c4fbcab98896815578f8999d2e01c802 Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Sun, 9 Jun 2024 23:02:05 -0500
Subject: [PATCH 05/12] Touch ups and FIXES A FTAL BUG
---
.../martial_arts/granters/tribal_claw_gr.dm | 0
.../code/{datums => modules}/martial_arts/tribal_claw.dm | 0
.../code/{datums => modules}/martial_arts/wounds/wounds.dm | 0
monkestation/code/modules/uplink/uplink_items/species.dm | 6 +++---
4 files changed, 3 insertions(+), 3 deletions(-)
rename monkestation/code/{datums => modules}/martial_arts/granters/tribal_claw_gr.dm (100%)
rename monkestation/code/{datums => modules}/martial_arts/tribal_claw.dm (100%)
rename monkestation/code/{datums => modules}/martial_arts/wounds/wounds.dm (100%)
diff --git a/monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm b/monkestation/code/modules/martial_arts/granters/tribal_claw_gr.dm
similarity index 100%
rename from monkestation/code/datums/martial_arts/granters/tribal_claw_gr.dm
rename to monkestation/code/modules/martial_arts/granters/tribal_claw_gr.dm
diff --git a/monkestation/code/datums/martial_arts/tribal_claw.dm b/monkestation/code/modules/martial_arts/tribal_claw.dm
similarity index 100%
rename from monkestation/code/datums/martial_arts/tribal_claw.dm
rename to monkestation/code/modules/martial_arts/tribal_claw.dm
diff --git a/monkestation/code/datums/martial_arts/wounds/wounds.dm b/monkestation/code/modules/martial_arts/wounds/wounds.dm
similarity index 100%
rename from monkestation/code/datums/martial_arts/wounds/wounds.dm
rename to monkestation/code/modules/martial_arts/wounds/wounds.dm
diff --git a/monkestation/code/modules/uplink/uplink_items/species.dm b/monkestation/code/modules/uplink/uplink_items/species.dm
index 911a7490fc80..5c11850bfd05 100644
--- a/monkestation/code/modules/uplink/uplink_items/species.dm
+++ b/monkestation/code/modules/uplink/uplink_items/species.dm
@@ -9,21 +9,21 @@
restricted_species = list(SPECIES_MOTH)
surplus = 0
-/datum/uplink_item/race_restricted/monkey_barrel
+/datum/uplink_item/species_restricted/monkey_barrel
name = "Angry Monkey Barrel"
desc = "Expert Syndicate Scientists put pissed a couple monkeys off and put them in a barrel. It isn't that complicated, but it's very effective"
cost = 7
item = /obj/item/grenade/monkey_barrel
restricted_species = list(SPECIES_SIMIAN)
-/datum/uplink_item/race_restricted/monkey_ball
+/datum/uplink_item/species_restricted/monkey_ball
name = "Monkey Ball"
desc = "Stolen experimental MonkeTech designed to bring a monkey's speed to dangerous levels."
cost = 12
item = /obj/vehicle/ridden/monkey_ball
restricted_species = list(SPECIES_SIMIAN)
-/datum/uplink_item/race_restricted/tribal_claw_scroll
+/datum/uplink_item/species_restricted/tribal_claw_scroll
name = "Silver-Scale Scroll"
desc = "A scroll with ancient heritage. It can teach the user the secrets of Tribal Claw, an offensive martial art reliant on one's claws and tail."
cost = 10
From 477b99b492c509961076b60efa543c0e2598102c Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Wed, 19 Jun 2024 00:49:12 -0500
Subject: [PATCH 06/12] i am stupid
oops i forgor to disable lowmem mode
---
_maps/_basemap.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm
index 50c11c0c3b1a..dd01ba8b5a62 100644
--- a/_maps/_basemap.dm
+++ b/_maps/_basemap.dm
@@ -1,4 +1,4 @@
-#define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
+// #define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
#include "map_files\generic\CentCom.dmm"
From ed4f7aa5893820eaa3dac4508290d4d2ee1a5d55 Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Wed, 19 Jun 2024 00:56:34 -0500
Subject: [PATCH 07/12] schtewpid pt 2
bluh
---
_maps/_basemap.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm
index dd01ba8b5a62..60ffa1b88918 100644
--- a/_maps/_basemap.dm
+++ b/_maps/_basemap.dm
@@ -1,4 +1,4 @@
-// #define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
+//#define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
#include "map_files\generic\CentCom.dmm"
From c983de2e298a1f3367d48e47e453b98a9492fb86 Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Mon, 24 Jun 2024 07:43:47 -0500
Subject: [PATCH 08/12] the great fixening
fixes the game
---
tgstation.dme | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tgstation.dme b/tgstation.dme
index b5181eab35ef..c41241bf3f29 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -5745,9 +5745,6 @@
#include "monkestation\code\datums\keybinding\communication.dm"
#include "monkestation\code\datums\keybinding\living.dm"
#include "monkestation\code\datums\looping_sounds\weather.dm"
-#include "monkestation\code\datums\martial_arts\tribal_claw.dm"
-#include "monkestation\code\datums\martial_arts\granters\tribal_claw_gr.dm"
-#include "monkestation\code\datums\martial_arts\wounds\wounds.dm"
#include "monkestation\code\datums\mind\_mind.dm"
#include "monkestation\code\datums\quirks\negative_quirks.dm"
#include "monkestation\code\datums\quirks\neutral_quirks.dm"
@@ -6517,6 +6514,9 @@
#include "monkestation\code\modules\mapping\access_helpers.dm"
#include "monkestation\code\modules\mapping\mapping_helpers.dm"
#include "monkestation\code\modules\maptext\maptext_image_helper.dm"
+#include "monkestation\code\modules\martial_arts\tribal_claw.dm"
+#include "monkestation\code\modules\martial_arts\granters\tribal_claw_gr.dm"
+#include "monkestation\code\modules\martial_arts\wounds\wounds.dm"
#include "monkestation\code\modules\mech_comp\_interface.dm"
#include "monkestation\code\modules\mech_comp\_message.dm"
#include "monkestation\code\modules\mech_comp\vending_machine.dm"
From e561b0026dc8ad09c1af2ffc0430a6bbbcc9445f Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Tue, 25 Jun 2024 01:10:15 -0500
Subject: [PATCH 09/12] out of order
---
tgstation.dme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tgstation.dme b/tgstation.dme
index 3b1fba3a926c..7f2d73baec94 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -5711,9 +5711,9 @@
#include "interface\fonts\spess_font.dm"
#include "interface\fonts\tiny_unicode.dm"
#include "interface\fonts\vcr_osd_mono.dm"
-#include "monkestation\code\__DEFINES\martial_arts.dm"
#include "monkestation\code\__DEFINES\_module_defines.dm"
#include "monkestation\code\__DEFINES\antag_defines.dm"
+#include "monkestation\code\__DEFINES\martial_arts.dm"
#include "monkestation\code\__DEFINES\projectile.dm"
#include "monkestation\code\__DEFINES\signals.dm"
#include "monkestation\code\__HELPERS\_lists.dm"
From df617fd1b615909551fd214cf5cdeb505c70dbce Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Wed, 26 Jun 2024 19:36:30 -0500
Subject: [PATCH 10/12] requested changes
---
.../__DEFINES/~monkestation}/martial_arts.dm | 0
.../martial_arts/granters/tribal_claw_gr.dm | 6 ++--
.../modules/martial_arts/spells/spells.dm | 29 +++++++++++++++++++
.../code/modules/martial_arts/tribal_claw.dm | 26 ++++++++---------
.../modules/martial_arts/wounds/wounds.dm | 23 ---------------
.../modules/uplink/uplink_items/species.dm | 2 +-
tgstation.dme | 4 +--
7 files changed, 48 insertions(+), 42 deletions(-)
rename {monkestation/code/__DEFINES => code/__DEFINES/~monkestation}/martial_arts.dm (100%)
create mode 100644 monkestation/code/modules/martial_arts/spells/spells.dm
delete mode 100644 monkestation/code/modules/martial_arts/wounds/wounds.dm
diff --git a/monkestation/code/__DEFINES/martial_arts.dm b/code/__DEFINES/~monkestation/martial_arts.dm
similarity index 100%
rename from monkestation/code/__DEFINES/martial_arts.dm
rename to code/__DEFINES/~monkestation/martial_arts.dm
diff --git a/monkestation/code/modules/martial_arts/granters/tribal_claw_gr.dm b/monkestation/code/modules/martial_arts/granters/tribal_claw_gr.dm
index 5f6ef13398a5..d4767ed45ff3 100644
--- a/monkestation/code/modules/martial_arts/granters/tribal_claw_gr.dm
+++ b/monkestation/code/modules/martial_arts/granters/tribal_claw_gr.dm
@@ -3,8 +3,8 @@
name = "old scroll"
martial_name = "tribal claw"
desc = "A scroll filled with ancient draconic markings."
- greet = "You have learned the ancient martial art of the Tribal Claw! You are now able to use your tail and claws in a fight much better than before. \
- Check the combos you are now able to perform using the Recall Teachings verb in the Tribal Claw tab"
+ greet = span_sciradio("You have learned the ancient martial art of the Tribal Claw! You are now able to use your tail and claws in a fight much better than before. \
+ Check the combos you are now able to perform using the Recall Teachings verb in the Tribal Claw tab")
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll2"
remarks = list("I must prove myself worthy to the masters of the Knoises clan...",
@@ -31,7 +31,7 @@
/obj/item/book/granter/martial/tribal_claw/can_learn(mob/user)
if(!islizard(user))
- to_chat(user, "You try to read the scroll but can't comprehend any of it.")
+ to_chat(user, span_warning("You try to read the scroll but can't comprehend any of it."))
return FALSE
else
return TRUE
diff --git a/monkestation/code/modules/martial_arts/spells/spells.dm b/monkestation/code/modules/martial_arts/spells/spells.dm
new file mode 100644
index 000000000000..2ebf5dfa3006
--- /dev/null
+++ b/monkestation/code/modules/martial_arts/spells/spells.dm
@@ -0,0 +1,29 @@
+
+//tribal claw
+/datum/action/cooldown/spell/aoe/repulse/martial
+ name = "Tail Sweep"
+ desc = "Throw back attackers with a sweep of your tail."
+ background_icon_state = "bg_alien"
+ overlay_icon_state = "bg_alien_border"
+ button_icon = 'icons/mob/actions/actions_xeno.dmi'
+ button_icon_state = "tailsweep"
+ panel = "Alien"
+ sound = 'sound/magic/tail_swing.ogg'
+
+ //cooldown_time = 15 SECONDS
+ spell_requirements = NONE
+
+ check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED
+ invocation_type = INVOCATION_NONE
+ antimagic_flags = NONE
+ aoe_radius = 2
+
+ sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep
+
+/datum/action/cooldown/spell/aoe/repulse/martial/cast(atom/cast_on)
+ if(iscarbon(cast_on))
+ var/mob/living/carbon/carbon_caster = cast_on
+ playsound(get_turf(carbon_caster), 'sound/voice/hiss5.ogg', 80, TRUE, TRUE)
+ carbon_caster.spin(6, 1)
+
+ return ..()
diff --git a/monkestation/code/modules/martial_arts/tribal_claw.dm b/monkestation/code/modules/martial_arts/tribal_claw.dm
index ba3932c0981d..e39a8a979c45 100644
--- a/monkestation/code/modules/martial_arts/tribal_claw.dm
+++ b/monkestation/code/modules/martial_arts/tribal_claw.dm
@@ -35,17 +35,17 @@
if(attacker == current_target)
return
log_combat(attacker, target, "tail sweeped(Tribal Claw)", name)
- target.visible_message("[attacker] sweeps [target]'s legs with their tail!", \
- "[attacker] sweeps your legs with their tail!")
- var/static/datum/action/cooldown/spell/aoe/repulse/xeno/tail_sweep = new
+ target.visible_message(span_warning("[attacker] sweeps [target]'s legs with their tail!"), \
+ span_userdanger("[attacker] sweeps your legs with their tail!"))
+ var/static/datum/action/cooldown/spell/aoe/repulse/martial/tail_sweep = new
tail_sweep.cast(attacker)
//Face Scratch, deals 10 brute to head(reduced by armor), blurs the target's vision and gives them the confused effect for a short time.
/datum/martial_art/tribal_claw/proc/faceScratch(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
var/def_check = target.getarmor(BODY_ZONE_HEAD, MELEE)
log_combat(attacker, target, "face scratched (Tribal Claw)", name)
- target.visible_message("[attacker] scratches [target]'s face with their claws!", \
- "[attacker] scratches your face with their claws!")
+ target.visible_message(span_warning("[attacker] scratches [target]'s face with their claws!"), \
+ span_userdanger("[attacker] scratches your face with their claws!"))
target.apply_damage(10, BRUTE, BODY_ZONE_HEAD, def_check)
target.adjust_confusion(5 SECONDS)
target.adjust_eye_blur(5 SECONDS)
@@ -67,8 +67,8 @@ Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect simi
if((target.health <= target.crit_threshold || (attacker.pulling == target && attacker.grab_state >= GRAB_NECK) || target.IsSleeping()))
log_combat(attacker, target, "jugular cut (Tribal Claw)", name)
- target.visible_message("[attacker] cuts [target]'s jugular vein with their claws!", \
- "[attacker] cuts your jugular vein!")
+ target.visible_message(span_warning("[attacker] cuts [target]'s jugular vein with their claws!"), \
+ span_userdanger("[attacker] cuts your jugular vein!"))
target.apply_damage(15, BRUTE, BODY_ZONE_HEAD, def_check)
jugcut.apply_wound(head)
attacker.do_attack_animation(target, ATTACK_EFFECT_CLAW)
@@ -81,8 +81,8 @@ Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect simi
//Tail Grab, instantly puts your target in a T3 grab and makes them unable to talk for a short time.
/datum/martial_art/tribal_claw/proc/tailGrab(mob/living/carbon/human/attacker, mob/living/carbon/human/target)
log_combat(attacker, target, "tail grabbed (Tribal Claw)", name)
- target.visible_message("[attacker] grabs [target] with their tail!", \
- "[attacker] grabs you with their tail!6")
+ target.visible_message(span_warning("[attacker] grabs [target] with their tail!"), \
+ span_userdanger("[attacker] grabs you with their tail!6"))
target.grabbedby(attacker, 1)
target.Knockdown(5) //Without knockdown target still stands up while T3 grabbed.
attacker.setGrabState(GRAB_NECK)
@@ -113,7 +113,7 @@ Deals 15 brute to head(reduced by armor) and causes a rapid bleeding effect simi
to_chat(usr, "You retreat inward and recall the teachings of the Tribal Claw...")
- to_chat(usr, "Tail Sweep: Disarm Harm. Pushes everyone around you away and knocks them down.")
- to_chat(usr, "Face Scratch: Harm Harm. Damages your target's head and confuses them for a short time.")
- to_chat(usr, "Jugular Cut: Harm Disarm. Causes your target to rapidly lose blood, works only if you grab your target by their neck, if they are sleeping, or in critical condition.")
- to_chat(usr, "Tail Grab: Disarm Disarm Grab. Grabs your target by their neck and makes them unable to talk for a short time.")
+ to_chat(usr, span_notice("Tail Sweep: Disarm Harm. Pushes everyone around you away and knocks them down."))
+ to_chat(usr, span_notice("Face Scratch: Harm Harm. Damages your target's head and confuses them for a short time."))
+ to_chat(usr, span_notice("Jugular Cut: Harm Disarm. Causes your target to rapidly lose blood, works only if you grab your target by their neck, if they are sleeping, or in critical condition."))
+ to_chat(usr, span_notice("Tail Grab: Disarm Disarm Grab. Grabs your target by their neck and makes them unable to talk for a short time."))
diff --git a/monkestation/code/modules/martial_arts/wounds/wounds.dm b/monkestation/code/modules/martial_arts/wounds/wounds.dm
deleted file mode 100644
index 4bf6ec33aa6c..000000000000
--- a/monkestation/code/modules/martial_arts/wounds/wounds.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-//EXPERIMENTAL DO NOT USE
-
-/*
-
-// Subtype for throat slices
-/datum/wound/slash/flesh/critical/artery
- name = "Slashed Artery"
- desc = "Patient has a slashed artery, causing severe and life-threatening bleeding."
- examine_desc = "is ruptured, spraying blood wildly"
- initial_flow = 12
- minimum_flow = 6
-
-/datum/wound/slash/flesh/critical/artery/update_descriptions()
- if(!limb.can_bleed())
- occur_text = "is ruptured"
-
-/datum/wound_pregen_data/flesh_slash/avulsion/artery
- abstract = FALSE
- can_be_randomly_generated = FALSE
-
- wound_path_to_generate = /datum/wound/slash/flesh/critical/artery
-
-*/
diff --git a/monkestation/code/modules/uplink/uplink_items/species.dm b/monkestation/code/modules/uplink/uplink_items/species.dm
index 5c11850bfd05..adb036254d37 100644
--- a/monkestation/code/modules/uplink/uplink_items/species.dm
+++ b/monkestation/code/modules/uplink/uplink_items/species.dm
@@ -26,6 +26,6 @@
/datum/uplink_item/species_restricted/tribal_claw_scroll
name = "Silver-Scale Scroll"
desc = "A scroll with ancient heritage. It can teach the user the secrets of Tribal Claw, an offensive martial art reliant on one's claws and tail."
- cost = 10
+ cost = 7
item = /obj/item/book/granter/martial/tribal_claw
restricted_species = list(SPECIES_LIZARD)
diff --git a/tgstation.dme b/tgstation.dme
index 7f2d73baec94..5e7dc7cf37fa 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -412,6 +412,7 @@
#include "code\__DEFINES\~monkestation\logging.dm"
#include "code\__DEFINES\~monkestation\maps.dm"
#include "code\__DEFINES\~monkestation\market.dm"
+#include "code\__DEFINES\~monkestation\martial_arts.dm"
#include "code\__DEFINES\~monkestation\materials.dm"
#include "code\__DEFINES\~monkestation\mecha.dm"
#include "code\__DEFINES\~monkestation\microfusion.dm"
@@ -5713,7 +5714,6 @@
#include "interface\fonts\vcr_osd_mono.dm"
#include "monkestation\code\__DEFINES\_module_defines.dm"
#include "monkestation\code\__DEFINES\antag_defines.dm"
-#include "monkestation\code\__DEFINES\martial_arts.dm"
#include "monkestation\code\__DEFINES\projectile.dm"
#include "monkestation\code\__DEFINES\signals.dm"
#include "monkestation\code\__HELPERS\_lists.dm"
@@ -6571,7 +6571,7 @@
#include "monkestation\code\modules\maptext\maptext_image_helper.dm"
#include "monkestation\code\modules\martial_arts\tribal_claw.dm"
#include "monkestation\code\modules\martial_arts\granters\tribal_claw_gr.dm"
-#include "monkestation\code\modules\martial_arts\wounds\wounds.dm"
+#include "monkestation\code\modules\martial_arts\spells\spells.dm"
#include "monkestation\code\modules\mech_comp\_interface.dm"
#include "monkestation\code\modules\mech_comp\_message.dm"
#include "monkestation\code\modules\mech_comp\vending_machine.dm"
From 880934ec368f0508cd6d8b445fb8d942fa968592 Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Thu, 27 Jun 2024 19:13:00 -0500
Subject: [PATCH 11/12] change spellname and description
since these are mostly debug I think it'll be fine
---
monkestation/code/modules/martial_arts/spells/spells.dm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/monkestation/code/modules/martial_arts/spells/spells.dm b/monkestation/code/modules/martial_arts/spells/spells.dm
index 2ebf5dfa3006..f44af1fa61c0 100644
--- a/monkestation/code/modules/martial_arts/spells/spells.dm
+++ b/monkestation/code/modules/martial_arts/spells/spells.dm
@@ -1,8 +1,8 @@
//tribal claw
-/datum/action/cooldown/spell/aoe/repulse/martial
- name = "Tail Sweep"
- desc = "Throw back attackers with a sweep of your tail."
+/datum/action/cooldown/spell/aoe/repulse/martial/lizard
+ name = "martial Tail Sweep"
+ desc = "You should probably tell an admin if you can see this."
background_icon_state = "bg_alien"
overlay_icon_state = "bg_alien_border"
button_icon = 'icons/mob/actions/actions_xeno.dmi'
@@ -10,7 +10,7 @@
panel = "Alien"
sound = 'sound/magic/tail_swing.ogg'
- //cooldown_time = 15 SECONDS
+ cooldown_time = 0
spell_requirements = NONE
check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED
From 21ffa1742f9f8ee0ba096526c618353ada1d223c Mon Sep 17 00:00:00 2001
From: ven1883 <129563993+ven1883@users.noreply.github.com>
Date: Thu, 27 Jun 2024 19:14:29 -0500
Subject: [PATCH 12/12] Update tribal_claw.dm
path change for clarity
---
monkestation/code/modules/martial_arts/tribal_claw.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/monkestation/code/modules/martial_arts/tribal_claw.dm b/monkestation/code/modules/martial_arts/tribal_claw.dm
index e39a8a979c45..307820d8d9f5 100644
--- a/monkestation/code/modules/martial_arts/tribal_claw.dm
+++ b/monkestation/code/modules/martial_arts/tribal_claw.dm
@@ -37,7 +37,7 @@
log_combat(attacker, target, "tail sweeped(Tribal Claw)", name)
target.visible_message(span_warning("[attacker] sweeps [target]'s legs with their tail!"), \
span_userdanger("[attacker] sweeps your legs with their tail!"))
- var/static/datum/action/cooldown/spell/aoe/repulse/martial/tail_sweep = new
+ var/static/datum/action/cooldown/spell/aoe/repulse/martial/lizard/tail_sweep = new
tail_sweep.cast(attacker)
//Face Scratch, deals 10 brute to head(reduced by armor), blurs the target's vision and gives them the confused effect for a short time.