Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions modular_doppler/loadout_categories/categories/belts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@
name = "Tizirian Chopping Sword Sheath"
item_path = /obj/item/storage/belt/lizard_sabre

/datum/loadout_item/belts/sheath/lizard_sword
name = "Tajaran Duelist's Blade Sheath"
item_path = /obj/item/storage/belt/tajaran_sheath

/**
* KITS
*/
Expand Down
13 changes: 13 additions & 0 deletions modular_doppler/modular_cargo/doppler_cargo_packs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,16 @@
)
crate_name = "thermophytic seeds crate"
crate_type = /obj/structure/closet/crate/hydroponics

/datum/supply_pack/imports/tajaran_sword
name = "Imported Tajaran Duelist Sword"
desc = "Fresh off the finest Coalition smithies. Possibly folded thousands of times. Great hand \
protection. Vibrational enhancement features not included."
contraband = TRUE
cost = CARGO_CRATE_VALUE * 3
contains = list(
/obj/item/storage/belt/tajaran_sheath
)
discountable = SUPPLY_PACK_RARE_DISCOUNTABLE
crate_name = "Finest Tajaran Imports"
crate_type = /obj/structure/closet/crate/wooden
1 change: 1 addition & 0 deletions modular_doppler/modular_sounds/sound/attributions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tajaran_vibroblade.ogg - Alien Drone - Deep oscillating bass.wav by 7h3_lark -- https://freesound.org/s/268577/ -- License: Creative Commons 0
Binary file not shown.
7 changes: 7 additions & 0 deletions modular_doppler/modular_uplink/code/dangerous.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/datum/uplink_item/dangerous/tajaran_vibroblade
name = "\improper Tajaran Vibroblade"
desc = "A sheath carrying a rare Tajaran vibroblade. The oscillation allows the tip to bite through many \
substances by the weapon's own weight alone."
item = /obj/item/storage/belt/tajaran_sheath/vibro
cost = 6
purchasable_from = ~UPLINK_SERIOUS_OPS
157 changes: 157 additions & 0 deletions modular_doppler/species_clothes/code/coalition/items.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
/// sound loop for the vibroblade below

/datum/looping_sound/vibroblade
mid_sounds = list('modular_doppler/modular_sounds/sound/items/tajaran_vibroblade.ogg')
mid_length = 8 SECONDS
volume = 40
vary = TRUE

/// a tajaran counterpart to the tiziran choppa. kind of like a nerfed captain's sabre.

/obj/item/melee/tajaran_sword
name = "\improper Tajaran duelist's sword"
desc = "Seemingly archaic weapons have persisted as relevant side arms amongst Tajaran ruffians who \
seek to cultivate face in daring street fights against rival Houses. This one bears a blade of novel \
alloy and a protective cup hilt, but pales to the capabilities of finer Tajaran weapons."
icon = 'modular_doppler/species_clothes/icons/tajara/gear.dmi'
icon_state = "rapier"
worn_icon = 'modular_doppler/species_clothes/icons/tajara/gear_worn.dmi'
worn_icon_state = "rapier"
lefthand_file = 'modular_doppler/species_clothes/icons/tajara/lefthand.dmi'
righthand_file = 'modular_doppler/species_clothes/icons/tajara/righthand.dmi'
inhand_icon_state = "rapier"
inhand_x_dimension = 64
icon_angle = -45
hitsound = 'sound/items/weapons/rapierhit.ogg'
block_sound = 'sound/items/weapons/parry.ogg'
obj_flags = CONDUCTS_ELECTRICITY
sharpness = SHARP_EDGED
w_class = WEIGHT_CLASS_BULKY
obj_flags = UNIQUE_RENAME
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
tool_behaviour = TOOL_KNIFE
toolspeed = 1.5
force = 15
throwforce = 10
armour_penetration = 45
block_chance = 30
wound_bonus = 0
exposed_wound_bonus = 10
demolition_mod = 0.75
attack_verb_continuous = list("slashes", "slices", "cuts", "stabs", "pierces", "perforates", "ventilates",)
attack_verb_simple = list("slash", "slice", "cut", "stab", "pierce", "perforate", "ventilate",)
var/belt_suffix = "_rapier"


/// antag version. like if the captain's sabre was an esword.

/obj/item/melee/tajaran_sword/vibro
name = "\improper Tajaran vibroblade"
desc = "A simple thrust with extended arms is all that is needed to drive this point through most materials. \
A high frequency vibration ensures the tip will work into the target with nothing more than the weapon's own \
inertia."
icon_state = "vibrorapier"
worn_icon_state = "vibrorapier"
inhand_icon_state = "vibrorapier"
force = 15 // doubled to thirty when you hit the aura button
armour_penetration = 45 // increases to 75
block_chance = 10 // doesn't have a bell guard + this would just be better than the esword if it also blocked good
wound_bonus = 10
exposed_wound_bonus = 20
belt_suffix = "_vibro"

/// force in vibro mode
var/active_force = 30
/// the nice humming noise we make when we're turned on
var/datum/looping_sound/vibroblade/vibroloop

/obj/item/melee/tajaran_sword/vibro/Initialize(mapload)
. = ..()
vibroloop = new(src)
AddComponent( \
/datum/component/transforming, \
transform_cooldown_time = (CLICK_CD_MELEE * 0.25), \
force_on = active_force, \
throwforce_on = active_force, \
sharpness_on = sharpness, \
hitsound_on = hitsound, \
w_class_on = w_class, \
attack_verb_continuous_on = list("slashes", "slices", "cuts", "stabs", "pierces", "perforates", "ventilates"), \
attack_verb_simple_on = list("slash", "slice", "cut", "stab", "pierce", "perforate", "ventilate"), \
)
RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))

/obj/item/melee/tajaran_sword/vibro/proc/on_transform(obj/item/source, mob/user, active)
SIGNAL_HANDLER
to_chat(user, span_notice("As you activate [src], [active ? "the blade hums with potential" : "the blade falls silent"]."))
armour_penetration = (active ? 75 : initial(armour_penetration))
if(active)
vibroloop.start()
else
vibroloop.stop()
return COMPONENT_NO_DEFAULT_MESSAGE

/// the sheath for these

/obj/item/storage/belt/tajaran_sheath
name = "duelist's sheath"
desc = "A decorated sheath for the thing dueling swords favored by Tajaran swashbucklers."
icon = 'modular_doppler/species_clothes/icons/tajara/gear.dmi'
icon_state = "sheath"
worn_icon = 'modular_doppler/species_clothes/icons/tajara/gear_worn.dmi'
worn_icon_state = "sheath"
lefthand_file = 'modular_doppler/species_clothes/icons/generic/lefthand.dmi'
righthand_file = 'modular_doppler/species_clothes/icons/generic/righthand.dmi'
inhand_icon_state = null
w_class = WEIGHT_CLASS_BULKY
obj_flags = UNIQUE_RENAME
interaction_flags_click = parent_type::interaction_flags_click | NEED_DEXTERITY | NEED_HANDS
storage_type = /datum/storage/kitten_belt

/obj/item/storage/belt/tajaran_sheath/Initialize(mapload)
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)

/obj/item/storage/belt/tajaran_sheath/examine(mob/user)
. = ..()
if(length(contents))
. += span_notice("Alt-click it to quickly draw the blade.")

/obj/item/storage/belt/tajaran_sheath/click_alt(mob/user)
if(length(contents))
var/obj/item/sword = contents[1]
user.visible_message(span_notice("[user] takes [sword] out of [src]."), span_notice("You take [sword] out of [src]."))
user.put_in_hands(sword)
playsound(user, 'sound/items/sheath.ogg', 50, TRUE)
update_appearance()
else
balloon_alert(user, "it's empty!")
return CLICK_ACTION_SUCCESS

/obj/item/storage/belt/tajaran_sheath/update_icon_state()
icon_state = initial(icon_state)
worn_icon_state = initial(worn_icon_state)
for(var/obj/item/melee/tajaran_sword/belt_content in contents)
if(belt_content)
icon_state += belt_content.belt_suffix
worn_icon_state += belt_content.belt_suffix
break
return ..()

/obj/item/storage/belt/tajaran_sheath/PopulateContents()
new /obj/item/melee/tajaran_sword(src)
update_appearance()

/datum/storage/kitten_belt
max_slots = 1
do_rustle = TRUE
max_specific_storage = WEIGHT_CLASS_BULKY
click_alt_open = FALSE

/datum/storage/tajaran_sheath/New(atom/parent, max_slots, max_specific_storage, max_total_storage)
. = ..()
set_holdable(/obj/item/melee/tajaran_sword)

/obj/item/storage/belt/tajaran_sheath/vibro/PopulateContents()
new /obj/item/melee/tajaran_sword/vibro(src)
update_appearance()
Binary file modified modular_doppler/species_clothes/icons/tajara/gear.dmi
Binary file not shown.
Binary file modified modular_doppler/species_clothes/icons/tajara/gear_worn.dmi
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -7551,6 +7551,7 @@
#include "modular_doppler\modular_species\species_types\viridian\organs\pod_hair.dm"
#include "modular_doppler\modular_species\species_types\viridian\organs\stomach.dm"
#include "modular_doppler\modular_uplink\code\ammunition.dm"
#include "modular_doppler\modular_uplink\code\dangerous.dm"
#include "modular_doppler\modular_uplink\code\kit_special.dm"
#include "modular_doppler\modular_uplink\code\kit_tactical.dm"
#include "modular_doppler\modular_uplink\code\smallerpizzabomb.dm"
Expand Down Expand Up @@ -7710,6 +7711,7 @@
#include "modular_doppler\spacer_swimming\spacer_swim.dm"
#include "modular_doppler\species_clothes\code\coalition\armor.dm"
#include "modular_doppler\species_clothes\code\coalition\clothing.dm"
#include "modular_doppler\species_clothes\code\coalition\items.dm"
#include "modular_doppler\species_clothes\code\coalition\storage.dm"
#include "modular_doppler\species_clothes\code\tiziria\armor.dm"
#include "modular_doppler\species_clothes\code\tiziria\clothing.dm"
Expand Down
Loading