mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-10 14:44:05 +01:00
mimejutsu
This commit is contained in:
@@ -19,8 +19,10 @@
|
||||
var/mob/living/carbon/human/H = imp_in
|
||||
if(!ishuman(H))
|
||||
return
|
||||
style.teach(H)
|
||||
qdel(src)
|
||||
if(istype(H.martial_art, /datum/martial_art/krav_maga))
|
||||
style.remove(H)
|
||||
else
|
||||
style.teach(H,1)
|
||||
|
||||
/obj/item/weapon/implanter/krav_maga
|
||||
name = "implanter (krav maga)"
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
icon_state ="scroll2"
|
||||
var/used = 0
|
||||
|
||||
/obj/item/weapon/plasma_fist_scroll/attack_self(mob/user as mob)
|
||||
/obj/item/weapon/adminfu_scroll/attack_self(mob/user as mob)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(!used)
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"<span class='userdanger'>[A] leg sweeps you!</span>")
|
||||
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
|
||||
D.apply_damage(5, BRUTE)
|
||||
D.Weaken(4)//originally was 6, lowered since you could kill somebody in one stun
|
||||
D.Weaken(2)
|
||||
return 1
|
||||
|
||||
/datum/martial_art/krav_maga/proc/quick_choke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)//is actually lung punch
|
||||
@@ -140,23 +140,25 @@ datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/livi
|
||||
|
||||
//Krav Maga Gloves
|
||||
|
||||
/obj/item/clothing/gloves/krav_maga
|
||||
desc = "These gloves can teach you to perform Krav Maga using nanochips."
|
||||
name = "black gloves"
|
||||
icon_state = "black"
|
||||
item_state = "bgloves"
|
||||
/obj/item/clothing/gloves/color/black/krav_maga
|
||||
var/datum/martial_art/krav_maga/style = new
|
||||
|
||||
/obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot)
|
||||
/obj/item/clothing/gloves/color/black/krav_maga/equipped(mob/user, slot)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(slot == slot_gloves)
|
||||
var/mob/living/carbon/human/H = user
|
||||
style.teach(H,1)
|
||||
|
||||
/obj/item/clothing/gloves/krav_maga/dropped(mob/user)
|
||||
/obj/item/clothing/gloves/color/black/krav_maga/dropped(mob/user)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_item_by_slot(slot_gloves) == src)
|
||||
style.remove(H)
|
||||
style.remove(H)
|
||||
|
||||
/obj/item/clothing/gloves/color/black/krav_maga/sec//more obviously named, given to sec
|
||||
name = "krav maga gloves"
|
||||
desc = "These gloves can teach you to perform Krav Maga using nanochips."
|
||||
icon_state = "fightgloves"
|
||||
item_state = "fightgloves"
|
||||
@@ -0,0 +1,119 @@
|
||||
#define MIMECHUCKS_COMBO "DH"
|
||||
#define MIMESMOKE_COMBO "DD"
|
||||
#define MIMEPALM_COMBO "GD"
|
||||
|
||||
/datum/martial_art/mimejutsu
|
||||
name = "Mimejutsu"
|
||||
help_verb = /mob/living/carbon/human/proc/mimejutsu_help
|
||||
|
||||
/datum/martial_art/mimejutsu/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
if(findtext(streak,MIMECHUCKS_COMBO))
|
||||
streak = ""
|
||||
mimeChuck(A,D)
|
||||
return 1
|
||||
if(findtext(streak,MIMESMOKE_COMBO))
|
||||
streak = ""
|
||||
mimeSmoke(A,D)
|
||||
return 1
|
||||
if(findtext(streak,MIMEPALM_COMBO))
|
||||
streak = ""
|
||||
mimePalm(A,D)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/martial_art/mimejutsu/proc/mimeChuck(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
if(!D.stat && !D.stunned && !D.weakened)
|
||||
var/damage = rand(5, 8) + A.species.punchdamagelow
|
||||
if(!damage)
|
||||
playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
D.visible_message("<span class='warning'>[A] swings invisible nunchcuks at [D]..and misses?</span>")
|
||||
return 0
|
||||
|
||||
|
||||
var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting))
|
||||
var/armor_block = D.run_armor_check(affecting, "melee")
|
||||
|
||||
D.visible_message("<span class='danger'>[A] has hit [D] with invisible nuncucks!</span>", \
|
||||
"<span class='userdanger'>[A] has hit [D] with a with invisible nuncuck!</span>")
|
||||
playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
|
||||
D.apply_damage(damage, STAMINA, affecting, armor_block)
|
||||
add_logs(D, A, "mimechucked")
|
||||
|
||||
return 1
|
||||
return basic_hit(A,D)
|
||||
|
||||
/datum/martial_art/mimejutsu/proc/mimeSmoke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
|
||||
D.visible_message("<span class='danger'>[A] throws an invisible smoke bomb!!</span>")
|
||||
|
||||
var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread()
|
||||
smoke.set_up(5, 0, D.loc)
|
||||
smoke.start()
|
||||
|
||||
return basic_hit(A,D)
|
||||
|
||||
/datum/martial_art/mimejutsu/proc/mimePalm(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
if(!D.stat && !D.stunned && !D.weakened)
|
||||
D.visible_message("<span class='danger'>[A] has barely touched [D] with thier palm!</span>", \
|
||||
"<span class='userdanger'>[A] hovers thier palm over your face!</span>")
|
||||
|
||||
var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A)))
|
||||
D.throw_at(throw_target, 200, 4,A)
|
||||
return basic_hit(A,D)
|
||||
|
||||
|
||||
/datum/martial_art/mimejutsu/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
add_to_streak("D",D)
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/martial_art/mimejutsu/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
add_to_streak("G",D)
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
|
||||
return 1
|
||||
|
||||
/datum/martial_art/mimejutsu/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
add_to_streak("H",D)
|
||||
if(check_streak(A,D))
|
||||
return 1
|
||||
|
||||
A.do_attack_animation(D)
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/mimejutsu_scroll
|
||||
name = "Mimejutsu 'scroll'"
|
||||
desc = "Its a beret with a note stapled to it..."
|
||||
icon = 'icons/obj/clothing/hats.dmi'
|
||||
icon_state = "beret"
|
||||
var/used = 0
|
||||
|
||||
/obj/item/weapon/mimejutsu_scroll/attack_self(mob/user as mob)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(!used)
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/datum/martial_art/mimejutsu/F = new/datum/martial_art/mimejutsu(null)
|
||||
F.teach(H)
|
||||
to_chat(H, "<span class='boldannounce'>You have learned the ancient martial art of mimes.</span>")
|
||||
used = 1
|
||||
desc = "It used to have something stapled to it..the staple is still there."
|
||||
name = "beret with staple"
|
||||
icon_state = "beret"
|
||||
|
||||
/mob/living/carbon/human/proc/mimejutsu_help()
|
||||
set name = "Recall Ancient Mimeing"
|
||||
set desc = "Remember the martial techniques of Mimejutsu."
|
||||
set category = "Mimejutsu"
|
||||
|
||||
to_chat(usr, "<b><i>You make a invisible box around yourself and recall the teachings of Mimejutsu...</i></b>")
|
||||
|
||||
to_chat(usr, "<span class='notice'>Mimechucks</span>: Disarm Harm. Hits the opponent with invisible nunchucks.")
|
||||
to_chat(usr, "<span class='notice'>Smokebomb</span>: Disarm Disarm. Drops a mime smokebomb.")
|
||||
to_chat(usr, "<span class='notice'>Silent Palm</span>: Grab Disarm. Using mime energy throw someone back.")
|
||||
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
|
||||
switch(M.a_intent)
|
||||
if(I_HELP)
|
||||
if(attacker_style && attacker_style.help_act(H, src))//adminfu only...
|
||||
return 1
|
||||
if(can_operate(src))
|
||||
if(health >= config.health_threshold_crit)
|
||||
if(src.surgeries.len)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 20 KiB |
+8
-7
@@ -188,7 +188,6 @@
|
||||
#include "code\datums\datumvars.dm"
|
||||
#include "code\datums\gas_mixture.dm"
|
||||
#include "code\datums\hud.dm"
|
||||
#include "code\datums\martial.dm"
|
||||
#include "code\datums\material_container.dm"
|
||||
#include "code\datums\mind.dm"
|
||||
#include "code\datums\mixed.dm"
|
||||
@@ -1336,12 +1335,14 @@
|
||||
#include "code\modules\logic\dual_input.dm"
|
||||
#include "code\modules\logic\logic_base.dm"
|
||||
#include "code\modules\logic\mono_input.dm"
|
||||
#include "code\modules\Martial Arts\adminfu.dm"
|
||||
#include "code\modules\Martial Arts\brawling.dm"
|
||||
#include "code\modules\Martial Arts\krav_maga.dm"
|
||||
#include "code\modules\Martial Arts\plasma_fist.dm"
|
||||
#include "code\modules\Martial Arts\sleeping_carp.dm"
|
||||
#include "code\modules\Martial Arts\wrestleing.dm"
|
||||
#include "code\modules\martial arts\adminfu.dm"
|
||||
#include "code\modules\martial arts\brawling.dm"
|
||||
#include "code\modules\martial arts\krav_maga.dm"
|
||||
#include "code\modules\martial arts\martial.dm"
|
||||
#include "code\modules\martial arts\mimejutsu.dm"
|
||||
#include "code\modules\martial arts\plasma_fist.dm"
|
||||
#include "code\modules\martial arts\sleeping_carp.dm"
|
||||
#include "code\modules\martial arts\wrestleing.dm"
|
||||
#include "code\modules\media\jukebox.dm"
|
||||
#include "code\modules\media\machinery.dm"
|
||||
#include "code\modules\media\mediamanager.dm"
|
||||
|
||||
Reference in New Issue
Block a user