mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-07 23:42:44 +00:00
* Sprite stuff: missing belt and suit storage sprites among others (#53804) About The Pull Request Adds a bunch of sprites including: A basic nullrod sprite Belt sprites for the claymores lol nevermind Backsprites for the cult blade and changed the chaplain's darkblade to fit on the back. Suit storage sprites for the dark scythe, the cultblade, the spellblade, the claymores, katana and the nullrod Suit storage sprites for a whole host of high powered firearms. You can visibly tell someone has shotguns or sniper rifles in their armor vest. How neat. You can't conceal stunprods in armor suit storage anymore. Nullrod cultsword (darkblade) also uses a uniquer inhand. Ye. Also knives and a rolling pin belt sprite, hecc! I also did some other stuff look there are a lot of sprites and I want to sleep please leave me alone nullrods are fucking stupid. * Sprite stuff: missing belt and suit storage sprites among others Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
764 lines
28 KiB
Plaintext
764 lines
28 KiB
Plaintext
// CHAPLAIN CUSTOM ARMORS //
|
|
|
|
/obj/item/clothing/head/helmet/chaplain
|
|
name = "crusader helmet"
|
|
desc = "Deus Vult."
|
|
icon_state = "knight_templar"
|
|
inhand_icon_state = "knight_templar"
|
|
armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80)
|
|
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
|
|
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
|
strip_delay = 80
|
|
dog_fashion = null
|
|
|
|
/obj/item/clothing/suit/armor/riot/chaplain
|
|
name = "crusader armour"
|
|
desc = "God wills it!"
|
|
icon_state = "knight_templar"
|
|
inhand_icon_state = "knight_templar"
|
|
allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
|
slowdown = 0
|
|
clothing_flags = NONE
|
|
|
|
/obj/item/choice_beacon/holy
|
|
name = "armaments beacon"
|
|
desc = "Contains a set of armaments for the chaplain."
|
|
|
|
/obj/item/choice_beacon/holy/canUseBeacon(mob/living/user)
|
|
if(user.mind && user.mind.holy_role)
|
|
return ..()
|
|
else
|
|
playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE)
|
|
return FALSE
|
|
|
|
/obj/item/choice_beacon/holy/generate_display_names()
|
|
var/static/list/holy_item_list
|
|
if(!holy_item_list)
|
|
holy_item_list = list()
|
|
var/list/templist = typesof(/obj/item/storage/box/holy)
|
|
for(var/V in templist)
|
|
var/atom/A = V
|
|
holy_item_list[initial(A.name)] = A
|
|
return holy_item_list
|
|
|
|
/obj/item/choice_beacon/holy/spawn_option(obj/choice,mob/living/M)
|
|
if(!GLOB.holy_armor_type)
|
|
..()
|
|
playsound(src, 'sound/effects/pray_chaplain.ogg', 40, TRUE)
|
|
SSblackbox.record_feedback("tally", "chaplain_armor", 1, "[choice]")
|
|
GLOB.holy_armor_type = choice
|
|
else
|
|
to_chat(M, "<span class='warning'>A selection has already been made. Self-Destructing...</span>")
|
|
return
|
|
|
|
|
|
/obj/item/storage/box/holy
|
|
name = "Templar Kit"
|
|
|
|
/obj/item/storage/box/holy/PopulateContents()
|
|
new /obj/item/clothing/head/helmet/chaplain(src)
|
|
new /obj/item/clothing/suit/armor/riot/chaplain(src)
|
|
|
|
/obj/item/storage/box/holy/student
|
|
name = "Profane Scholar Kit"
|
|
|
|
/obj/item/storage/box/holy/student/PopulateContents()
|
|
new /obj/item/clothing/suit/armor/riot/chaplain/studentuni(src)
|
|
new /obj/item/clothing/head/helmet/chaplain/cage(src)
|
|
|
|
/obj/item/clothing/suit/armor/riot/chaplain/studentuni
|
|
name = "student robe"
|
|
desc = "The uniform of a bygone institute of learning."
|
|
icon_state = "studentuni"
|
|
inhand_icon_state = "studentuni"
|
|
body_parts_covered = ARMS|CHEST
|
|
allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
|
|
|
/obj/item/clothing/head/helmet/chaplain/cage
|
|
name = "cage"
|
|
desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is."
|
|
flags_inv = HIDEHAIR //bald
|
|
worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi'
|
|
icon_state = "cage"
|
|
inhand_icon_state = "cage"
|
|
worn_x_dimension = 64
|
|
worn_y_dimension = 64
|
|
dynamic_hair_suffix = ""
|
|
|
|
/obj/item/storage/box/holy/sentinel
|
|
name = "Stone Sentinel Kit"
|
|
|
|
/obj/item/storage/box/holy/sentinel/PopulateContents()
|
|
new /obj/item/clothing/suit/armor/riot/chaplain/ancient(src)
|
|
new /obj/item/clothing/head/helmet/chaplain/ancient(src)
|
|
|
|
/obj/item/clothing/head/helmet/chaplain/ancient
|
|
name = "ancient helmet"
|
|
desc = "None may pass!"
|
|
icon_state = "knight_ancient"
|
|
inhand_icon_state = "knight_ancient"
|
|
|
|
/obj/item/clothing/suit/armor/riot/chaplain/ancient
|
|
name = "ancient armour"
|
|
desc = "Defend the treasure..."
|
|
icon_state = "knight_ancient"
|
|
inhand_icon_state = "knight_ancient"
|
|
|
|
/obj/item/storage/box/holy/witchhunter
|
|
name = "Witchhunter Kit"
|
|
|
|
/obj/item/storage/box/holy/witchhunter/PopulateContents()
|
|
new /obj/item/clothing/suit/armor/riot/chaplain/witchhunter(src)
|
|
new /obj/item/clothing/head/helmet/chaplain/witchunter_hat(src)
|
|
|
|
/obj/item/clothing/suit/armor/riot/chaplain/witchhunter
|
|
name = "witchunter garb"
|
|
desc = "This worn outfit saw much use back in the day."
|
|
icon_state = "witchhunter"
|
|
inhand_icon_state = "witchhunter"
|
|
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
|
|
|
/obj/item/clothing/head/helmet/chaplain/witchunter_hat
|
|
name = "witchunter hat"
|
|
desc = "This hat saw much use back in the day."
|
|
icon_state = "witchhunterhat"
|
|
inhand_icon_state = "witchhunterhat"
|
|
flags_cover = HEADCOVERSEYES
|
|
flags_inv = HIDEEYES|HIDEHAIR
|
|
|
|
/obj/item/storage/box/holy/adept
|
|
name = "Divine Adept Kit"
|
|
|
|
/obj/item/storage/box/holy/adept/PopulateContents()
|
|
new /obj/item/clothing/suit/armor/riot/chaplain/adept(src)
|
|
new /obj/item/clothing/head/helmet/chaplain/adept(src)
|
|
|
|
/obj/item/clothing/head/helmet/chaplain/adept
|
|
name = "adept hood"
|
|
desc = "Its only heretical when others do it."
|
|
icon_state = "crusader"
|
|
inhand_icon_state = "crusader"
|
|
flags_cover = HEADCOVERSEYES
|
|
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
|
|
|
/obj/item/clothing/suit/armor/riot/chaplain/adept
|
|
name = "adept robes"
|
|
desc = "The ideal outfit for burning the unfaithful."
|
|
icon_state = "crusader"
|
|
inhand_icon_state = "crusader"
|
|
|
|
/obj/item/storage/box/holy/follower
|
|
name = "Followers of the Chaplain Kit"
|
|
|
|
/obj/item/storage/box/holy/follower/PopulateContents()
|
|
new /obj/item/clothing/suit/hooded/chaplain_hoodie/leader(src)
|
|
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
|
|
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
|
|
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
|
|
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
|
|
|
|
/obj/item/clothing/suit/hooded/chaplain_hoodie
|
|
name = "follower hoodie"
|
|
desc = "Hoodie made for acolytes of the chaplain."
|
|
icon_state = "chaplain_hoodie"
|
|
inhand_icon_state = "chaplain_hoodie"
|
|
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
|
allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
|
|
hoodtype = /obj/item/clothing/head/hooded/chaplain_hood
|
|
|
|
/obj/item/clothing/head/hooded/chaplain_hood
|
|
name = "follower hood"
|
|
desc = "Hood made for acolytes of the chaplain."
|
|
icon_state = "chaplain_hood"
|
|
body_parts_covered = HEAD
|
|
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
|
|
|
/obj/item/clothing/suit/hooded/chaplain_hoodie/leader
|
|
name = "leader hoodie"
|
|
desc = "Now you're ready for some 50 dollar bling water."
|
|
icon_state = "chaplain_hoodie_leader"
|
|
inhand_icon_state = "chaplain_hoodie_leader"
|
|
hoodtype = /obj/item/clothing/head/hooded/chaplain_hood/leader
|
|
|
|
/obj/item/clothing/head/hooded/chaplain_hood/leader
|
|
name = "leader hood"
|
|
desc = "I mean, you don't /have/ to seek bling water. I just think you should."
|
|
icon_state = "chaplain_hood_leader"
|
|
|
|
|
|
// CHAPLAIN NULLROD AND CUSTOM WEAPONS //
|
|
|
|
/obj/item/nullrod
|
|
name = "null rod"
|
|
desc = "A rod of pure obsidian; its very presence disrupts and dampens the powers of Nar'Sie's followers."
|
|
icon_state = "nullrod"
|
|
inhand_icon_state = "nullrod"
|
|
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
|
force = 18
|
|
throw_speed = 3
|
|
throw_range = 4
|
|
throwforce = 10
|
|
w_class = WEIGHT_CLASS_TINY
|
|
obj_flags = UNIQUE_RENAME
|
|
wound_bonus = -10
|
|
var/reskinned = FALSE
|
|
var/chaplain_spawnable = TRUE
|
|
|
|
/obj/item/nullrod/Initialize()
|
|
. = ..()
|
|
AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE)
|
|
|
|
/obj/item/nullrod/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is killing [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to get closer to god!</span>")
|
|
return (BRUTELOSS|FIRELOSS)
|
|
|
|
/obj/item/nullrod/attack_self(mob/user)
|
|
if(user.mind && (user.mind.holy_role) && !reskinned)
|
|
reskin_holy_weapon(user)
|
|
|
|
/**
|
|
* reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version
|
|
*
|
|
* Arguments:
|
|
* * M The mob choosing a nullrod reskin
|
|
*/
|
|
/obj/item/nullrod/proc/reskin_holy_weapon(mob/M)
|
|
if(GLOB.holy_weapon_type)
|
|
return
|
|
var/list/display_names = list()
|
|
var/list/nullrod_icons = list()
|
|
for(var/V in typesof(/obj/item/nullrod))
|
|
var/obj/item/nullrod/rodtype = V
|
|
if(initial(rodtype.chaplain_spawnable))
|
|
display_names[initial(rodtype.name)] = rodtype
|
|
nullrod_icons += list(initial(rodtype.name) = image(icon = initial(rodtype.icon), icon_state = initial(rodtype.icon_state)))
|
|
|
|
nullrod_icons = sortList(nullrod_icons)
|
|
var/choice = show_radial_menu(M, src , nullrod_icons, custom_check = CALLBACK(src, .proc/check_menu, M), radius = 42, require_near = TRUE)
|
|
if(!choice || !check_menu(M))
|
|
return
|
|
|
|
var/A = display_names[choice] // This needs to be on a separate var as list member access is not allowed for new
|
|
var/obj/item/nullrod/holy_weapon = new A
|
|
GLOB.holy_weapon_type = holy_weapon.type
|
|
|
|
SSblackbox.record_feedback("tally", "chaplain_weapon", 1, "[choice]")
|
|
|
|
if(holy_weapon)
|
|
holy_weapon.reskinned = TRUE
|
|
qdel(src)
|
|
M.put_in_active_hand(holy_weapon)
|
|
|
|
/**
|
|
* check_menu: Checks if we are allowed to interact with a radial menu
|
|
*
|
|
* Arguments:
|
|
* * user The mob interacting with a menu
|
|
*/
|
|
/obj/item/nullrod/proc/check_menu(mob/user)
|
|
if(!istype(user))
|
|
return FALSE
|
|
if(QDELETED(src) || reskinned)
|
|
return FALSE
|
|
if(user.incapacitated() || !user.is_holding(src))
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/obj/item/nullrod/godhand
|
|
icon_state = "disintegrate"
|
|
inhand_icon_state = "disintegrate"
|
|
lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi'
|
|
name = "god hand"
|
|
desc = "This hand of yours glows with an awesome power!"
|
|
item_flags = ABSTRACT | DROPDEL
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
hitsound = 'sound/weapons/sear.ogg'
|
|
damtype = BURN
|
|
attack_verb_continuous = list("punches", "cross counters", "pummels")
|
|
attack_verb_simple = list("punch", "cross counter", "pummel")
|
|
|
|
/obj/item/nullrod/godhand/Initialize()
|
|
. = ..()
|
|
ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT)
|
|
|
|
/obj/item/nullrod/staff
|
|
icon_state = "godstaff-red"
|
|
inhand_icon_state = "godstaff-red"
|
|
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
|
|
name = "red holy staff"
|
|
desc = "It has a mysterious, protective aura."
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
force = 5
|
|
slot_flags = ITEM_SLOT_BACK
|
|
block_chance = 50
|
|
var/shield_icon = "shield-red"
|
|
|
|
/obj/item/nullrod/staff/worn_overlays(isinhands)
|
|
. = list()
|
|
if(isinhands)
|
|
. += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01)
|
|
|
|
/obj/item/nullrod/staff/blue
|
|
name = "blue holy staff"
|
|
icon_state = "godstaff-blue"
|
|
inhand_icon_state = "godstaff-blue"
|
|
shield_icon = "shield-old"
|
|
|
|
/obj/item/nullrod/claymore
|
|
icon_state = "claymore_gold"
|
|
inhand_icon_state = "claymore_gold"
|
|
worn_icon_state = "claymore"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
name = "holy claymore"
|
|
desc = "A weapon fit for a crusade!"
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT
|
|
block_chance = 30
|
|
sharpness = SHARP_EDGED
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
|
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
|
|
|
/obj/item/nullrod/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)
|
|
if(attack_type == PROJECTILE_ATTACK)
|
|
final_block_chance = 0 //Don't bring a sword to a gunfight
|
|
return ..()
|
|
|
|
/obj/item/nullrod/claymore/darkblade
|
|
icon_state = "cultblade"
|
|
inhand_icon_state = "cultblade"
|
|
lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
|
|
inhand_x_dimension = 64
|
|
inhand_y_dimension = 64
|
|
name = "dark blade"
|
|
desc = "Spread the glory of the dark gods!"
|
|
slot_flags = ITEM_SLOT_BACK
|
|
hitsound = 'sound/hallucinations/growl1.ogg'
|
|
|
|
/obj/item/nullrod/claymore/chainsaw_sword
|
|
icon_state = "chainswordon"
|
|
inhand_icon_state = "chainswordon"
|
|
name = "sacred chainsaw sword"
|
|
desc = "Suffer not a heretic to live."
|
|
slot_flags = ITEM_SLOT_BELT
|
|
attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices")
|
|
attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice")
|
|
hitsound = 'sound/weapons/chainsawhit.ogg'
|
|
tool_behaviour = TOOL_SAW
|
|
toolspeed = 1.5 //slower than a real saw
|
|
|
|
/obj/item/nullrod/claymore/glowing
|
|
icon_state = "swordon"
|
|
inhand_icon_state = "swordon"
|
|
worn_icon_state = "swordon"
|
|
name = "force weapon"
|
|
desc = "The blade glows with the power of faith. Or possibly a battery."
|
|
slot_flags = ITEM_SLOT_BELT
|
|
|
|
/obj/item/nullrod/claymore/katana
|
|
name = "\improper Hanzo steel"
|
|
desc = "Capable of cutting clean through a holy claymore."
|
|
icon_state = "katana"
|
|
inhand_icon_state = "katana"
|
|
worn_icon_state = "katana"
|
|
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
|
|
|
|
/obj/item/nullrod/claymore/multiverse
|
|
name = "extradimensional blade"
|
|
desc = "Once the harbinger of an interdimensional war, its sharpness fluctuates wildly."
|
|
icon_state = "multiverse"
|
|
inhand_icon_state = "multiverse"
|
|
slot_flags = ITEM_SLOT_BELT
|
|
|
|
/obj/item/nullrod/claymore/multiverse/attack(mob/living/carbon/M, mob/living/carbon/user)
|
|
force = rand(1, 30)
|
|
..()
|
|
|
|
/obj/item/nullrod/claymore/saber
|
|
name = "light energy sword"
|
|
hitsound = 'sound/weapons/blade1.ogg'
|
|
icon = 'icons/obj/transforming_energy.dmi'
|
|
icon_state = "swordblue"
|
|
inhand_icon_state = "swordblue"
|
|
desc = "If you strike me down, I shall become more robust than you can possibly imagine."
|
|
slot_flags = ITEM_SLOT_BELT
|
|
|
|
/obj/item/nullrod/claymore/saber/red
|
|
name = "dark energy sword"
|
|
icon_state = "swordred"
|
|
inhand_icon_state = "swordred"
|
|
desc = "Woefully ineffective when used on steep terrain."
|
|
|
|
/obj/item/nullrod/claymore/saber/pirate
|
|
name = "nautical energy sword"
|
|
icon_state = "cutlass1"
|
|
inhand_icon_state = "cutlass1"
|
|
desc = "Convincing HR that your religion involved piracy was no mean feat."
|
|
|
|
/obj/item/nullrod/sord
|
|
name = "\improper UNREAL SORD"
|
|
desc = "This thing is so unspeakably HOLY you are having a hard time even holding it."
|
|
icon_state = "sord"
|
|
inhand_icon_state = "sord"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
slot_flags = ITEM_SLOT_BELT
|
|
force = 4.13
|
|
throwforce = 1
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
|
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
|
|
|
/obj/item/nullrod/scythe
|
|
icon_state = "scythe1"
|
|
inhand_icon_state = "scythe1"
|
|
lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi'
|
|
name = "reaper scythe"
|
|
desc = "Ask not for whom the bell tolls..."
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
armour_penetration = 35
|
|
slot_flags = ITEM_SLOT_BACK
|
|
sharpness = SHARP_EDGED
|
|
attack_verb_continuous = list("chops", "slices", "cuts", "reaps")
|
|
attack_verb_simple = list("chop", "slice", "cut", "reap")
|
|
|
|
/obj/item/nullrod/scythe/Initialize()
|
|
. = ..()
|
|
AddComponent(/datum/component/butchering, 70, 110) //the harvest gives a high bonus chance
|
|
|
|
/obj/item/nullrod/scythe/vibro
|
|
icon_state = "hfrequency0"
|
|
inhand_icon_state = "hfrequency1"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
name = "high frequency blade"
|
|
desc = "Bad references are the DNA of the soul."
|
|
attack_verb_continuous = list("chops", "slices", "cuts", "zandatsu's")
|
|
attack_verb_simple = list("chop", "slice", "cut", "zandatsu")
|
|
hitsound = 'sound/weapons/rapierhit.ogg'
|
|
|
|
/obj/item/nullrod/scythe/spellblade
|
|
icon_state = "spellblade"
|
|
inhand_icon_state = "spellblade"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
icon = 'icons/obj/guns/magic.dmi'
|
|
name = "dormant spellblade"
|
|
desc = "The blade grants the wielder nearly limitless power...if they can figure out how to turn it on, that is."
|
|
hitsound = 'sound/weapons/rapierhit.ogg'
|
|
|
|
/obj/item/nullrod/scythe/talking
|
|
icon_state = "talking_sword"
|
|
inhand_icon_state = "talking_sword"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
name = "possessed blade"
|
|
desc = "When the station falls into chaos, it's nice to have a friend by your side."
|
|
attack_verb_continuous = list("chops", "slices", "cuts")
|
|
attack_verb_simple= list("chop", "slice", "cut")
|
|
hitsound = 'sound/weapons/rapierhit.ogg'
|
|
var/possessed = FALSE
|
|
|
|
/obj/item/nullrod/scythe/talking/relaymove(mob/living/user, direction)
|
|
return //stops buckled message spam for the ghost.
|
|
|
|
/obj/item/nullrod/scythe/talking/attack_self(mob/living/user)
|
|
if(possessed)
|
|
return
|
|
if(!(GLOB.ghost_role_flags & GHOSTROLE_STATION_SENTIENCE))
|
|
to_chat(user, "<span class='notice'>Anomalous otherworldly energies block you from awakening the blade!</span>")
|
|
return
|
|
|
|
to_chat(user, "<span class='notice'>You attempt to wake the spirit of the blade...</span>")
|
|
|
|
possessed = TRUE
|
|
|
|
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE)
|
|
|
|
if(LAZYLEN(candidates))
|
|
var/mob/dead/observer/C = pick(candidates)
|
|
var/mob/living/simple_animal/shade/S = new(src)
|
|
S.ckey = C.ckey
|
|
S.fully_replace_character_name(null, "The spirit of [name]")
|
|
S.status_flags |= GODMODE
|
|
S.copy_languages(user, LANGUAGE_MASTER) //Make sure the sword can understand and communicate with the user.
|
|
S.update_atom_languages()
|
|
grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue
|
|
var/input = sanitize_name(stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN))
|
|
|
|
if(src && input)
|
|
name = input
|
|
S.fully_replace_character_name(null, "The spirit of [input]")
|
|
else
|
|
to_chat(user, "<span class='warning'>The blade is dormant. Maybe you can try again later.</span>")
|
|
possessed = FALSE
|
|
|
|
/obj/item/nullrod/scythe/talking/Destroy()
|
|
for(var/mob/living/simple_animal/shade/S in contents)
|
|
to_chat(S, "<span class='userdanger'>You were destroyed!</span>")
|
|
qdel(S)
|
|
return ..()
|
|
|
|
/obj/item/nullrod/scythe/talking/chainsword
|
|
icon_state = "chainswordon"
|
|
inhand_icon_state = "chainswordon"
|
|
name = "possessed chainsaw sword"
|
|
desc = "Suffer not a heretic to live."
|
|
chaplain_spawnable = FALSE
|
|
force = 30
|
|
slot_flags = ITEM_SLOT_BELT
|
|
attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices")
|
|
attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice")
|
|
hitsound = 'sound/weapons/chainsawhit.ogg'
|
|
tool_behaviour = TOOL_SAW
|
|
toolspeed = 0.5 //faster than normal saw
|
|
|
|
/obj/item/nullrod/hammmer
|
|
icon_state = "hammeron"
|
|
inhand_icon_state = "hammeron"
|
|
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
|
|
name = "relic war hammer"
|
|
desc = "This war hammer cost the chaplain forty thousand space dollars."
|
|
slot_flags = ITEM_SLOT_BELT
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
attack_verb_continuous = list("smashes", "bashes", "hammers", "crunches")
|
|
attack_verb_simple = list("smash", "bash", "hammer", "crunch")
|
|
|
|
/obj/item/nullrod/chainsaw
|
|
name = "chainsaw hand"
|
|
desc = "Good? Bad? You're the guy with the chainsaw hand."
|
|
icon_state = "chainsaw_on"
|
|
inhand_icon_state = "mounted_chainsaw"
|
|
lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
item_flags = ABSTRACT
|
|
sharpness = SHARP_EDGED
|
|
attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices")
|
|
attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice")
|
|
hitsound = 'sound/weapons/chainsawhit.ogg'
|
|
tool_behaviour = TOOL_SAW
|
|
toolspeed = 2 //slower than a real saw
|
|
|
|
/obj/item/nullrod/chainsaw/Initialize()
|
|
. = ..()
|
|
ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT)
|
|
AddComponent(/datum/component/butchering, 30, 100, 0, hitsound)
|
|
|
|
/obj/item/nullrod/clown
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "clownrender"
|
|
inhand_icon_state = "render"
|
|
name = "clown dagger"
|
|
desc = "Used for absolutely hilarious sacrifices."
|
|
hitsound = 'sound/items/bikehorn.ogg'
|
|
sharpness = SHARP_EDGED
|
|
attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
|
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
|
|
|
/obj/item/nullrod/pride_hammer
|
|
icon_state = "pride"
|
|
name = "Pride-struck Hammer"
|
|
desc = "It resonates an aura of Pride."
|
|
force = 16
|
|
throwforce = 15
|
|
w_class = 4
|
|
slot_flags = ITEM_SLOT_BACK
|
|
attack_verb_continuous = list("attacks", "smashes", "crushes", "splatters", "cracks")
|
|
attack_verb_simple = list("attack", "smash", "crush", "splatter", "crack")
|
|
hitsound = 'sound/weapons/blade1.ogg'
|
|
|
|
/obj/item/nullrod/pride_hammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
|
|
. = ..()
|
|
if(!proximity)
|
|
return
|
|
if(prob(30) && ishuman(A))
|
|
var/mob/living/carbon/human/H = A
|
|
user.reagents.trans_to(H, user.reagents.total_volume, 1, 1, 0, transfered_by = user)
|
|
to_chat(user, "<span class='notice'>Your pride reflects on [H].</span>")
|
|
to_chat(H, "<span class='userdanger'>You feel insecure, taking on [user]'s burden.</span>")
|
|
|
|
/obj/item/nullrod/whip
|
|
name = "holy whip"
|
|
desc = "What a terrible night to be on Space Station 13."
|
|
icon_state = "chain"
|
|
inhand_icon_state = "chain"
|
|
worn_icon_state = "whip"
|
|
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
|
slot_flags = ITEM_SLOT_BELT
|
|
attack_verb_continuous = list("whips", "lashes")
|
|
attack_verb_simple = list("whip", "lash")
|
|
hitsound = 'sound/weapons/chainhit.ogg'
|
|
|
|
/obj/item/nullrod/fedora
|
|
name = "atheist's fedora"
|
|
desc = "The brim of the hat is as sharp as your wit. The edge would hurt almost as much as disproving the existence of God."
|
|
icon_state = "fedora"
|
|
inhand_icon_state = "fedora"
|
|
slot_flags = ITEM_SLOT_HEAD
|
|
icon = 'icons/obj/clothing/hats.dmi'
|
|
force = 0
|
|
throw_speed = 4
|
|
throw_range = 7
|
|
throwforce = 30
|
|
sharpness = SHARP_EDGED
|
|
attack_verb_continuous = list("enlightens", "redpills")
|
|
attack_verb_simple = list("enlighten", "redpill")
|
|
|
|
/obj/item/nullrod/armblade
|
|
name = "dark blessing"
|
|
desc = "Particularly twisted deities grant gifts of dubious value."
|
|
icon = 'icons/obj/changeling_items.dmi'
|
|
icon_state = "arm_blade"
|
|
inhand_icon_state = "arm_blade"
|
|
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi'
|
|
item_flags = ABSTRACT
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
sharpness = SHARP_EDGED
|
|
wound_bonus = -20
|
|
bare_wound_bonus = 25
|
|
|
|
/obj/item/nullrod/armblade/Initialize()
|
|
. = ..()
|
|
ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT)
|
|
AddComponent(/datum/component/butchering, 80, 70)
|
|
|
|
/obj/item/nullrod/armblade/tentacle
|
|
name = "unholy blessing"
|
|
icon_state = "tentacle"
|
|
inhand_icon_state = "tentacle"
|
|
|
|
/obj/item/nullrod/carp
|
|
name = "carp-sie plushie"
|
|
desc = "An adorable stuffed toy that resembles the god of all carp. The teeth look pretty sharp. Activate it to receive the blessing of Carp-Sie."
|
|
icon = 'icons/obj/plushes.dmi'
|
|
icon_state = "carpplush"
|
|
inhand_icon_state = "carp_plushie"
|
|
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
|
|
force = 15
|
|
attack_verb_continuous = list("bites", "eats", "fin slaps")
|
|
attack_verb_simple = list("bite", "eat", "fin slap")
|
|
hitsound = 'sound/weapons/bite.ogg'
|
|
var/used_blessing = FALSE
|
|
|
|
/obj/item/nullrod/carp/attack_self(mob/living/user)
|
|
if(used_blessing)
|
|
else if(user.mind && (user.mind.holy_role))
|
|
to_chat(user, "<span class='boldnotice'>You are blessed by Carp-Sie. Wild space carp will no longer attack you.</span>")
|
|
user.faction |= "carp"
|
|
used_blessing = TRUE
|
|
|
|
/obj/item/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking
|
|
name = "monk's staff"
|
|
desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, it is now used to harass the clown."
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
force = 15
|
|
block_chance = 40
|
|
slot_flags = ITEM_SLOT_BACK
|
|
sharpness = SHARP_NONE
|
|
hitsound = "swing_hit"
|
|
attack_verb_continuous = list("smashes", "slams", "whacks", "thwacks")
|
|
attack_verb_simple = list("smash", "slam", "whack", "thwack")
|
|
icon = 'icons/obj/items_and_weapons.dmi'
|
|
icon_state = "bostaff0"
|
|
inhand_icon_state = "bostaff0"
|
|
worn_icon_state = "bostaff0"
|
|
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
|
|
|
|
/obj/item/nullrod/tribal_knife
|
|
icon_state = "crysknife"
|
|
inhand_icon_state = "crysknife"
|
|
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
|
name = "arrhythmic knife"
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
desc = "They say fear is the true mind killer, but stabbing them in the head works too. Honour compels you to not sheathe it once drawn."
|
|
sharpness = SHARP_EDGED
|
|
slot_flags = null
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
|
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
|
item_flags = SLOWS_WHILE_IN_HAND
|
|
|
|
/obj/item/nullrod/tribal_knife/Initialize(mapload)
|
|
. = ..()
|
|
START_PROCESSING(SSobj, src)
|
|
AddComponent(/datum/component/butchering, 50, 100)
|
|
|
|
/obj/item/nullrod/tribal_knife/Destroy()
|
|
STOP_PROCESSING(SSobj, src)
|
|
. = ..()
|
|
|
|
/obj/item/nullrod/tribal_knife/process()
|
|
slowdown = rand(-10, 10)/10
|
|
if(iscarbon(loc))
|
|
var/mob/living/carbon/wielder = loc
|
|
if(wielder.is_holding(src))
|
|
wielder.update_equipment_speed_mods()
|
|
|
|
/obj/item/nullrod/pitchfork
|
|
icon_state = "pitchfork0"
|
|
lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi'
|
|
name = "unholy pitchfork"
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
desc = "Holding this makes you look absolutely devilish."
|
|
attack_verb_continuous = list("pokes", "impales", "pierces", "jabs")
|
|
attack_verb_simple = list("poke", "impale", "pierce", "jab")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
sharpness = SHARP_EDGED
|
|
|
|
/obj/item/nullrod/egyptian
|
|
name = "egyptian staff"
|
|
desc = "A tutorial in mummification is carved into the staff. You could probably craft the wraps if you had some cloth."
|
|
icon = 'icons/obj/guns/magic.dmi'
|
|
icon_state = "pharoah_sceptre"
|
|
inhand_icon_state = "pharoah_sceptre"
|
|
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
attack_verb_continuous = list("bashes", "smacks", "whacks")
|
|
attack_verb_simple = list("bash", "smack", "whack")
|
|
|
|
/obj/item/nullrod/hypertool
|
|
icon = 'icons/obj/device.dmi'
|
|
icon_state = "hypertool"
|
|
inhand_icon_state = "hypertool"
|
|
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
|
slot_flags = ITEM_SLOT_BELT
|
|
name = "hypertool"
|
|
desc = "A tool so powerful even you cannot perfectly use it."
|
|
armour_penetration = 35
|
|
damtype = BRAIN
|
|
attack_verb_continuous = list("pulses", "mends", "cuts")
|
|
attack_verb_simple = list("pulse", "mend", "cut")
|
|
hitsound = 'sound/effects/sparks4.ogg'
|
|
|
|
/obj/item/nullrod/spear
|
|
name = "ancient spear"
|
|
desc = "An ancient spear made of brass, I mean gold, I mean bronze. It looks highly mechanical."
|
|
icon_state = "ratvarian_spear"
|
|
inhand_icon_state = "ratvarian_spear"
|
|
lefthand_file = 'icons/mob/inhands/antag/clockwork_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi'
|
|
icon = 'icons/obj/clockwork_objects.dmi'
|
|
slot_flags = ITEM_SLOT_BELT
|
|
armour_penetration = 10
|
|
sharpness = SHARP_POINTY
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
attack_verb_continuous = list("stabs", "pokes", "slashes", "clocks")
|
|
attack_verb_simple = list("stab", "poke", "slash", "clock")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|