Skip to content

Commit

Permalink
add: Throwing knives martial art (ss220-space#3799)
Browse files Browse the repository at this point in the history
  • Loading branch information
LiquidPotroh authored and Etrnlmelancholy committed Jan 3, 2024
1 parent 04736cb commit d880a20
Show file tree
Hide file tree
Showing 40 changed files with 322 additions and 78 deletions.
24 changes: 23 additions & 1 deletion code/datums/uplink_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -728,6 +728,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/twohanded/chainsaw
cost = 12

/datum/uplink_item/dangerous/commando_kit
name = "Commandos knife operation kit"
desc = "A box that smells like a mix of gunpowder, napalm and cheap whiskey. Contains everything you need to survive in such places."
reference = "CK"
item = /obj/item/storage/box/syndie_kit/commando_kit
cost = 7
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

// SUPPORT AND MECHAS

Expand Down Expand Up @@ -1095,7 +1102,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 8
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)


/datum/uplink_item/ammo/rocketHEDP
name = "84mm High Explosive Dual Purpose rocket"
desc = "A rocket from a rocketlauncher. This one emits shrapnel and incendiary ammunition. The rocket itself is strong enough to destroy station mechs and robots with one shot."
Expand All @@ -1104,6 +1110,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 6
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

/datum/uplink_item/ammo/knives_kit
name = "Throwing knives kit"
desc = "A box containing 7 throwing knives"
reference = "THR"
item = /obj/item/storage/box/syndie_kit/knives_kit
cost = 1
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

// STEALTHY WEAPONS

/datum/uplink_item/stealthy_weapons
Expand Down Expand Up @@ -1629,6 +1643,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/clothing/accessory/holster
cost = 1

/datum/uplink_item/device_tools/holster/knives
name = "Knife holster"
desc = "A bunch of straps connected into one holster. Has 7 special slots for holding knives."
reference = "KH"
item = /obj/item/clothing/accessory/holster/knives
cost = 2
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)

/datum/uplink_item/device_tools/webbing
name = "Combat Webbing"
desc = "Sturdy mess of synthcotton belts and buckles, ready to share your burden."
Expand Down
9 changes: 9 additions & 0 deletions code/game/objects/effects/decals/contraband.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@
poster_type = /obj/structure/sign/poster/contraband/syndicate_recruitment
icon_state = "rolled_poster"

/obj/item/poster/commando
poster_type = /obj/structure/sign/poster/contraband/commando
icon_state = "rolled_poster"

//############################## THE ACTUAL DECALS ###########################

/obj/structure/sign/poster
Expand Down Expand Up @@ -387,6 +391,11 @@
desc = "You see a slightly battered poster, which shows a RED toolbox and the inscription \"Danger, very robust!\", some people say that this red paint on the poster is made of real blood."
icon_state = "poster36"

/obj/structure/sign/poster/contraband/commando
name = "Commandos"
desc = "You see a muscular man in combat gear. Just the sight of this poster brings the scent of true masculinity."
icon_state = "poster37"

//official posters
/obj/structure/sign/poster/official
poster_item_name = "motivational poster"
Expand Down
39 changes: 37 additions & 2 deletions code/game/objects/items/weapons/kitchen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,34 @@
bayonet = TRUE
embed_chance = 90

/obj/item/kitchen/knife/combat/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY, dodgeable = TRUE)
. = ..()
playsound(src, 'sound/weapons/knife_holster/knife_throw.ogg', 30, 1)

/obj/item/kitchen/knife/combat/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
var/datum/martial_art/throwing/MA = throwingdatum?.thrower?.mind?.martial_art
if(istype(MA))
embed_chance = MA.knife_embed_chance
throwforce = initial(throwforce) + MA.knife_bonus_damage
. = ..()

/obj/item/kitchen/knife/combat/after_throw(datum/callback/callback)
embed_chance = initial(embed_chance)
throwforce = initial(throwforce)
. = ..()

/obj/item/kitchen/knife/combat/attack(mob/living/target, mob/living/user, def_zone)
var/datum/martial_art/throwing/MA = user?.mind?.martial_art
if(istype(MA))
force = initial(force) + MA.knife_bonus_damage
if(user.zone_selected == BODY_ZONE_HEAD && user.a_intent == INTENT_HARM)
MA.neck_cut(target, user)
. = ..()

/obj/item/kitchen/knife/combat/afterattack(atom/target, mob/user, proximity, params)
force = initial(force)
. = ..()

/obj/item/kitchen/knife/combat/survival
name = "survival knife"
icon_state = "survivalknife"
Expand All @@ -183,13 +211,20 @@
force = 15
throwforce = 15

/obj/item/kitchen/knife/combat/throwing
name = "Throwing knife"
desc = "A well-sharpened black knife. Designed to be thrown. It is made from a single piece of metal. The markings are scratched.\nAn excellent solution for live problems and cake cutting."
icon_state = "throwingknife"
item_state = "throwingknife"
belt_icon = "survival_knife"
force = 15
throwforce = 15

/obj/item/kitchen/knife/combat/survival/bone
name = "bone dagger"
item_state = "bone_dagger"
icon_state = "bone_dagger"
belt_icon = "bone_dagger"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
desc = "A sharpened bone. The bare minimum in survival."
materials = list()

Expand Down
23 changes: 23 additions & 0 deletions code/game/objects/items/weapons/storage/uplink_kits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -502,3 +502,26 @@ To apply, hold the injector a short distance away from the outer thigh before ap
/obj/item/storage/box/syndie_kit/bowman_conversion_kit/populate_contents()
new /obj/item/encryptionkey/syndicate(src)
new /obj/item/bowman_conversion_tool(src)

/obj/item/storage/box/syndie_kit/commando_kit
name = "Commandos knife operation kit"
desc = "A box that smells like a mix of gunpowder, napalm and cheap whiskey. Contains everything you need to survive in such places."
icon_state = "commandos_kit"

/obj/item/storage/box/syndie_kit/commando_kit/populate_contents()
new /obj/item/throwing_manual(src)
new /obj/item/clothing/under/pants/camo/commando(src)
new /obj/item/clothing/shoes/combat/commando(src)
new /obj/item/clothing/head/commando(src)
new /obj/item/poster/commando(src)
new /obj/item/kitchen/knife/combat(src)
new /obj/item/kitchen/knife/combat(src)
new /obj/item/clothing/accessory/holster/knives(src)
new /obj/item/storage/box/syndie_kit/knives_kit(src)

/obj/item/storage/box/syndie_kit/knives_kit
name = "Throwing knives kit"

/obj/item/storage/box/syndie_kit/knives_kit/populate_contents()
for(var/i in 1 to 7)
new /obj/item/kitchen/knife/combat/throwing(src)
6 changes: 6 additions & 0 deletions code/modules/clothing/head/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -605,3 +605,9 @@
icon_state = "mr_chang_band"
item_state = "mr_chang_band"

/obj/item/clothing/head/commando
name = "Red headband"
desc = "Simple red headband. Is that blood stains on it?"
w_class = WEIGHT_CLASS_TINY
icon_state = "commandos_band"
item_state = "commandos_band"
7 changes: 7 additions & 0 deletions code/modules/clothing/shoes/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -533,3 +533,10 @@
desc = "Made of wood. Used to support world's economics stable."
icon_state = "mr_chang_sandals"
item_state = "mr_chang_sandals"

/obj/item/clothing/shoes/combat/commando //basic syndicate combat boots for nuke ops and mob corpses
name = "Black military boots"
desc = "A pair of black military boots. They look really well-made. They have a metal sole, as if specially added to crush bones."
can_cut_open = FALSE
icon_state = "commandos_boots"
item_state = "commandos_boots"
Loading

0 comments on commit d880a20

Please sign in to comment.