mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 12:05:59 +01:00
834245ecdb
## About The Pull Request Hello hello the evil folder mover goat is back, i will destroy years worth of muscle memory. Items is an folder alot of stuff that really didn't get a spefific location. Items/Weaponry Contains Shields.dm Items/Weaponry/Melee Contains (Most of the extra dm files come from me splitting misc/weaponry.dm into its own categories killing offf weaponry.dm in its whole) baseball_bat.dm, baton.dm, chainofcommand.dm, chainsaw.dm, claymore.dm, dualsaber.dm, energy.dm fireaxe.dm, high_frequency_blade.dm, his_grace.dm, katana.dm, knives.dm, misc.dm, powerfist.dm, sabre.dm soulscythe.dm, spear.dm, supermatter_sword.dm. Items/weaponry/ranged Contains flamethrower.dm, pnuematic_cannon.dm, throwing_star.dm items/tools Contains control_wand.dm, extinguisher.dm, inducer.dm, spess_knife.dm, theft_tools.dm items/tools/engineering Contains airlock_painter.dm, decal_painter.dm, paintable_decals.dm, crowbar.dm, screwdriver.dm, weldingtool.dm wirebbrush.dm, wirecutters.dm, wrench.dm items/tools/janitorial Contains broom.dm, janitor_key.dm items/tools/medical Contains bodybag.dm, cane.dm, defib.dm, reflex_hammer.dm boxcutter.dm is merged into knives.dm Kitchen.dm renamed into kitchen utensils and moved into food and drinks module surgery_tray.dm moved into surgery module banhammer/extendo hand moved from weaponry into toys.dm balloon mallet moved into clown_items.dm ectoplasm moved from weaponry.dm into soulstone.dm (since thats the resulting residue when a shade dies, and not really a weapon) ## Why It's Good For The Game So things are way easier to navigate ## Changelog
275 lines
11 KiB
Plaintext
275 lines
11 KiB
Plaintext
/obj/item/claymore
|
|
name = "claymore"
|
|
desc = "What are you standing around staring at this for? Get to killing!"
|
|
icon = 'icons/obj/weapons/sword.dmi'
|
|
icon_state = "claymore"
|
|
inhand_icon_state = "claymore"
|
|
icon_angle = -45
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
hitsound = 'sound/items/weapons/bladeslice.ogg'
|
|
obj_flags = CONDUCTS_ELECTRICITY
|
|
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
|
|
force = 40
|
|
throwforce = 10
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
attack_verb_continuous = list("attacks", "slashes", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
|
attack_verb_simple = list("attack", "slash", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
|
block_chance = 50
|
|
block_sound = 'sound/items/weapons/parry.ogg'
|
|
sharpness = SHARP_EDGED
|
|
max_integrity = 200
|
|
armor_type = /datum/armor/item_claymore
|
|
resistance_flags = FIRE_PROOF
|
|
var/list/alt_continuous = list("stabs", "pierces", "impales")
|
|
var/list/alt_simple = list("stab", "pierce", "impale")
|
|
|
|
/datum/armor/item_claymore
|
|
fire = 100
|
|
acid = 50
|
|
|
|
/obj/item/claymore/Initialize(mapload)
|
|
. = ..()
|
|
alt_continuous = string_list(alt_continuous)
|
|
alt_simple = string_list(alt_simple)
|
|
make_stabby()
|
|
AddComponent(/datum/component/butchering, \
|
|
speed = 4 SECONDS, \
|
|
effectiveness = 105, \
|
|
)
|
|
|
|
// Applies alt sharpness component, for overrides
|
|
/obj/item/claymore/proc/make_stabby()
|
|
AddComponent(/datum/component/alternative_sharpness, SHARP_POINTY, alt_continuous, alt_simple, -15)
|
|
|
|
/obj/item/claymore/suicide_act(mob/living/user)
|
|
user.visible_message(span_suicide("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
|
return BRUTELOSS
|
|
|
|
/obj/item/claymore/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
|
|
if(attack_type == PROJECTILE_ATTACK || attack_type == LEAP_ATTACK || attack_type == OVERWHELMING_ATTACK)
|
|
final_block_chance = 0 //Don't bring a sword to a gunfight, and also you aren't going to really block someone full body tackling you with a sword. Or a road roller, if one happened to hit you.
|
|
return ..()
|
|
|
|
//statistically similar to e-cutlasses
|
|
/obj/item/claymore/cutlass
|
|
name = "cutlass"
|
|
desc = "A piratey sword used by buckaneers to \"negotiate\" the transfer of treasure."
|
|
icon_state = "cutlass"
|
|
inhand_icon_state = "cutlass"
|
|
worn_icon_state = "cutlass"
|
|
slot_flags = ITEM_SLOT_BACK
|
|
force = 30
|
|
throwforce = 20
|
|
throw_speed = 3
|
|
throw_range = 5
|
|
armour_penetration = 35
|
|
|
|
/obj/item/claymore/cutlass/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/cuffable_item) //closed sword guard
|
|
|
|
/obj/item/claymore/cutlass/old
|
|
name = "old cutlass"
|
|
desc = parent_type::desc + " This one seems a tad old."
|
|
force = 24
|
|
throwforce = 17
|
|
armour_penetration = 20
|
|
block_chance = 30
|
|
|
|
/obj/item/claymore/carrot
|
|
name = "carrot sword"
|
|
desc = "A full-sized carrot sword. Definitely <b>not</b> good for the eyes, not anymore."
|
|
icon_state = "carrot_sword"
|
|
inhand_icon_state = "carrot_sword"
|
|
worn_icon_state = "carrot_sword"
|
|
flags_1 = NONE
|
|
force = 19
|
|
throwforce = 7
|
|
throw_speed = 3
|
|
throw_range = 7
|
|
armour_penetration = 5
|
|
block_chance = 10
|
|
resistance_flags = NONE
|
|
|
|
//bootleg claymore
|
|
/obj/item/claymore/shortsword
|
|
name = "shortsword"
|
|
desc = "A mercenary's sword, chipped and worn from battles long gone. You could say it is a swordsman's shortsword short sword."
|
|
icon_state = "shortsword"
|
|
inhand_icon_state = "shortsword"
|
|
worn_icon_state = "shortsword"
|
|
slot_flags = ITEM_SLOT_BELT
|
|
force = 20
|
|
demolition_mod = 0.75
|
|
block_chance = 30
|
|
|
|
/obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS
|
|
desc = "<b><i>THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!</i></b>\nActivate it in your hand to point to the nearest victim."
|
|
obj_flags = CONDUCTS_ELECTRICITY
|
|
item_flags = DROPDEL //WOW BRO YOU LOST AN ARM, GUESS WHAT YOU DONT GET YOUR SWORD ANYMORE //I CANT BELIEVE SPOOKYDONUT WOULD BREAK THE REQUIREMENTS
|
|
slot_flags = null
|
|
block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY
|
|
light_range = 3
|
|
attack_verb_continuous = list("brutalizes", "eviscerates", "disembowels", "hacks", "carves", "cleaves") //ONLY THE MOST VISCERAL ATTACK VERBS
|
|
attack_verb_simple = list("brutalize", "eviscerate", "disembowel", "hack", "carve", "cleave")
|
|
var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE
|
|
var/obj/item/disk/nuclear/nuke_disk //OUR STORED NUKE DISK
|
|
|
|
/obj/item/claymore/highlander/Initialize(mapload)
|
|
. = ..()
|
|
ADD_TRAIT(src, TRAIT_NODROP, HIGHLANDER_TRAIT)
|
|
START_PROCESSING(SSobj, src)
|
|
|
|
/obj/item/claymore/highlander/Destroy()
|
|
if(nuke_disk)
|
|
nuke_disk.forceMove(get_turf(src))
|
|
nuke_disk.visible_message(span_warning("The nuke disk is vulnerable!"))
|
|
nuke_disk = null
|
|
STOP_PROCESSING(SSobj, src)
|
|
return ..()
|
|
|
|
/obj/item/claymore/highlander/process()
|
|
if(ishuman(loc))
|
|
var/mob/living/carbon/human/holder = loc
|
|
holder.layer = ABOVE_ALL_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS)
|
|
ADD_TRAIT(holder, TRAIT_NOBLOOD, HIGHLANDER_TRAIT) //AND WE WON'T BLEED OUT LIKE COWARDS
|
|
else
|
|
if(!(flags_1 & ADMIN_SPAWNED_1))
|
|
qdel(src)
|
|
|
|
|
|
/obj/item/claymore/highlander/pickup(mob/living/user)
|
|
. = ..()
|
|
to_chat(user, span_notice("The power of Scotland protects you! You are shielded from all stuns and knockdowns."))
|
|
user.ignore_slowdown(HIGHLANDER_TRAIT)
|
|
user.add_stun_absorption(
|
|
source = HIGHLANDER_TRAIT,
|
|
message = span_warning("%EFFECT_OWNER is protected by the power of Scotland!"),
|
|
self_message = span_boldwarning("The power of Scotland absorbs the stun!"),
|
|
examine_message = span_warning("%EFFECT_OWNER_THEYRE protected by the power of Scotland!"),
|
|
)
|
|
|
|
/obj/item/claymore/highlander/dropped(mob/living/user)
|
|
. = ..()
|
|
user.unignore_slowdown(HIGHLANDER_TRAIT)
|
|
user.remove_stun_absorption(HIGHLANDER_TRAIT)
|
|
|
|
/obj/item/claymore/highlander/examine(mob/user)
|
|
. = ..()
|
|
. += "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade."
|
|
if(nuke_disk)
|
|
. += span_boldwarning("It's holding the nuke disk!")
|
|
|
|
/obj/item/claymore/highlander/attack(mob/living/target, mob/living/user)
|
|
. = ..()
|
|
if(!QDELETED(target) && target.stat == DEAD && target.mind?.has_antag_datum(/datum/antagonist/highlander))
|
|
user.fully_heal() //STEAL THE LIFE OF OUR FALLEN FOES
|
|
add_notch(user)
|
|
target.visible_message(span_warning("[target] crumbles to dust beneath [user]'s blows!"), span_userdanger("As you fall, your body crumbles to dust!"))
|
|
target.investigate_log("has been dusted by a highlander claymore.", INVESTIGATE_DEATHS)
|
|
target.dust()
|
|
|
|
/obj/item/claymore/highlander/attack_self(mob/living/user)
|
|
var/closest_victim
|
|
var/closest_distance = 255
|
|
for(var/mob/living/carbon/human/scot in GLOB.player_list - user)
|
|
if(scot.mind?.has_antag_datum(/datum/antagonist/highlander) && (!closest_victim || get_dist(user, closest_victim) < closest_distance))
|
|
closest_victim = scot
|
|
for(var/mob/living/silicon/robot/siliscot in GLOB.player_list - user)
|
|
if(siliscot.mind?.has_antag_datum(/datum/antagonist/highlander) && (!closest_victim || get_dist(user, closest_victim) < closest_distance))
|
|
closest_victim = siliscot
|
|
|
|
if(!closest_victim)
|
|
to_chat(user, span_warning("[src] thrums for a moment and falls dark. Perhaps there's nobody nearby."))
|
|
return
|
|
to_chat(user, span_danger("[src] thrums and points to the [dir2text(get_dir(user, closest_victim))]."))
|
|
|
|
/obj/item/claymore/highlander/IsReflect()
|
|
return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME?
|
|
|
|
/obj/item/claymore/highlander/proc/add_notch(mob/living/user) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE
|
|
notches++
|
|
force++
|
|
var/new_name = name
|
|
switch(notches)
|
|
if(1)
|
|
to_chat(user, span_notice("Your first kill - hopefully one of many. You scratch a notch into [src]'s blade."))
|
|
to_chat(user, span_warning("You feel your fallen foe's soul entering your blade, restoring your wounds!"))
|
|
new_name = "notched claymore"
|
|
if(2)
|
|
to_chat(user, span_notice("Another falls before you. Another soul fuses with your own. Another notch in the blade."))
|
|
new_name = "double-notched claymore"
|
|
add_atom_colour(rgb(255, 235, 235), ADMIN_COLOUR_PRIORITY)
|
|
if(3)
|
|
to_chat(user, span_notice("You're beginning to</span> <span class='danger'><b>relish</b> the <b>thrill</b> of <b>battle.</b>"))
|
|
new_name = "triple-notched claymore"
|
|
add_atom_colour(rgb(255, 215, 215), ADMIN_COLOUR_PRIORITY)
|
|
if(4)
|
|
to_chat(user, span_notice("You've lost count of</span> <span class='bolddanger'>how many you've killed."))
|
|
new_name = "many-notched claymore"
|
|
add_atom_colour(rgb(255, 195, 195), ADMIN_COLOUR_PRIORITY)
|
|
if(5)
|
|
to_chat(user, span_bolddanger("Five voices now echo in your mind, cheering the slaughter."))
|
|
new_name = "battle-tested claymore"
|
|
add_atom_colour(rgb(255, 175, 175), ADMIN_COLOUR_PRIORITY)
|
|
if(6)
|
|
to_chat(user, span_bolddanger("Is this what the vikings felt like? Visions of glory fill your head as you slay your sixth foe."))
|
|
new_name = "battle-scarred claymore"
|
|
add_atom_colour(rgb(255, 155, 155), ADMIN_COLOUR_PRIORITY)
|
|
if(7)
|
|
to_chat(user, span_bolddanger("Kill. Butcher. <i>Conquer.</i>"))
|
|
new_name = "vicious claymore"
|
|
add_atom_colour(rgb(255, 135, 135), ADMIN_COLOUR_PRIORITY)
|
|
if(8)
|
|
to_chat(user, span_userdanger("IT NEVER GETS OLD. THE <i>SCREAMING</i>. THE <i>BLOOD</i> AS IT <i>SPRAYS</i> ACROSS YOUR <i>FACE.</i>"))
|
|
new_name = "bloodthirsty claymore"
|
|
add_atom_colour(rgb(255, 115, 115), ADMIN_COLOUR_PRIORITY)
|
|
if(9)
|
|
to_chat(user, span_userdanger("ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE."))
|
|
new_name = "gore-stained claymore"
|
|
add_atom_colour(rgb(255, 95, 95), ADMIN_COLOUR_PRIORITY)
|
|
if(10)
|
|
user.visible_message(span_warning("[user]'s eyes light up with a vengeful fire!"), \
|
|
span_userdanger("YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! <i>THERE CAN BE ONLY ONE!!!</i>"))
|
|
new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]"
|
|
icon_state = "claymore_gold"
|
|
inhand_icon_state = "cultblade"
|
|
lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
|
|
remove_atom_colour(ADMIN_COLOUR_PRIORITY)
|
|
user.update_held_items()
|
|
|
|
name = new_name
|
|
playsound(user, 'sound/items/tools/screwdriver2.ogg', 50, TRUE)
|
|
|
|
/obj/item/claymore/highlander/robot //BLOODTHIRSTY BORGS NOW COME IN PLAID
|
|
icon = 'icons/obj/items_cyborg.dmi'
|
|
icon_state = "claymore_cyborg"
|
|
|
|
/obj/item/claymore/highlander/robot/Initialize(mapload)
|
|
. = ..()
|
|
if(!iscyborg(loc))
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/item/claymore/highlander/robot/process()
|
|
loc.layer = ABOVE_ALL_MOB_LAYER
|
|
|
|
/obj/item/claymore/gladius
|
|
name = "gladius"
|
|
desc = "A short but formidable sword, favored by recently-reanimated ancient warriors."
|
|
icon = 'icons/obj/weapons/sword.dmi'
|
|
icon_state = "gladius"
|
|
inhand_icon_state = "gladius"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
sharpness = SHARP_POINTY
|
|
attack_verb_continuous = list("stabs", "cuts")
|
|
attack_verb_simple = list("stab", "cut")
|
|
slot_flags = null
|
|
sound_vary = TRUE
|
|
block_sound = 'sound/items/weapons/parry.ogg'
|
|
hitsound = 'sound/items/weapons/bladeslice.ogg'
|
|
pickup_sound = SFX_KNIFE_PICKUP
|
|
drop_sound = SFX_KNIFE_DROP
|