Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add: ghostface equipment [bounty] #6371

Merged
merged 7 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from 5 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
14 changes: 14 additions & 0 deletions code/datums/uplink_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,20 @@
cost = 10
race = list(SPECIES_HUMAN)

/datum/uplink_item/racial/ghostface_kit
name = "Ghostface kit"
desc = "Всё, что нужно, дабы повторить всем известное призрачное лицо! Включает в себя бронированный черный балахон, бронированную маску с функцией сокрытия голоса и сверх-острый аутентичный нож."
item = /obj/item/storage/box/syndie_kit/ghostface_kit
cost = 50
race = list(SPECIES_HUMAN)

/datum/uplink_item/racial/devilghostface_kit
name = "Devil Ghostface kit"
desc = "Всё, что нужно, дабы повторить всем известное призрачное лицо! Включает в себя бронированный черный балахон, бронированную маску с функцией сокрытия голоса и сверх-острый аутентичный нож."
item = /obj/item/storage/box/syndie_kit/devil_ghostface_kit
cost = 50
race = list(SPECIES_HUMAN)

//Grey

/datum/uplink_item/racial/agent_belt
Expand Down
11 changes: 10 additions & 1 deletion code/game/objects/items/devices/voice.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
var/mob/living/carbon/human/human = input(user, "Select a voice to copy from.", "Set Voice Changer") in GLOB.human_list
if(!human)
return

mimic_voice = human.real_name
mimic_voice_tts = human.dna.tts_seed_dna
if("Custom Voice")
Expand Down Expand Up @@ -96,3 +96,12 @@
desc = "A voice scrambling module."
voice = "Unknown"
actions_types = list(/datum/action/item_action/voice_changer/toggle)

/obj/item/voice_changer/ghostface
name = "Ghostface emmission"
desc = "Вы не должны были этого видеть. Пожалуйста, сообщите о нахождении этого предмета в #баг-репорты-v2"
voice = "Ghostface"
tts_voice = "Bloodseeker"
active = TRUE
actions_types = null
inform_about_toggle = FALSE
32 changes: 32 additions & 0 deletions code/game/objects/items/weapons/storage/uplink_kits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -429,3 +429,35 @@ To apply, hold the injector a short distance away from the outer thigh before ap
new /obj/item/reagent_containers/food/snacks/croissant/throwing(src)
new /obj/item/reagent_containers/food/snacks/croissant/throwing(src)
new /obj/item/book/granter/crafting_recipe/combat_baking(src)

/obj/item/storage/box/syndie_kit/ghostface_kit
name = "Ghostface Kit"
ru_names = list(
NOMINATIVE = "набор \"Гоустфейс\"",
GENITIVE = "набора \"Гоустфейс\"",
DATIVE = "набору \"Гоустфейс\"",
ACCUSATIVE = "набор \"Гоустфейс\"",
INSTRUMENTAL = "набором \"Гоустфейс\"",
PREPOSITIONAL = "наборе \"Гоустфейс\""
)

/obj/item/storage/box/syndie_kit/ghostface_kit/populate_contents()
new /obj/item/clothing/head/hooded/ghostface/true(src)
new /obj/item/clothing/mask/gas/ghostface/true(src)
new /obj/item/melee/ghostface_knife(src)

/obj/item/storage/box/syndie_kit/devil_ghostface_kit
name = "Devil Ghostface Kit"
ru_names = list(
NOMINATIVE = "набор \"Дьявольский Гоустфейс\"",
GENITIVE = "набора \"Дьявольский Гоустфейс\"",
DATIVE = "набору \"Дьявольский Гоустфейс\"",
ACCUSATIVE = "набор \"Дьявольский Гоустфейс\"",
INSTRUMENTAL = "набором \"Дьявольский Гоустфейс\"",
PREPOSITIONAL = "наборе \"Дьявольский Гоустфейс\""
)

/obj/item/storage/box/syndie_kit/devil_ghostface_kit/populate_contents()
new /obj/item/clothing/suit/hooded/ghostfacesuit/devil/true(src)
new /obj/item/clothing/mask/gas/ghostface/true/devil(src)
new /obj/item/melee/ghostface_knife/devil(src)
37 changes: 37 additions & 0 deletions code/game/objects/items/weapons/weaponry.dm
Original file line number Diff line number Diff line change
Expand Up @@ -440,3 +440,40 @@
w_class = WEIGHT_CLASS_BULKY
block_chance = 30

/obj/item/melee/ghostface_knife
name = "Knife"
ru_names = list(
NOMINATIVE = "старый нож",
GENITIVE = "старого ножа",
DATIVE = "старому ножу",
ACCUSATIVE = "старый нож",
INSTRUMENTAL = "старым ножом",
PREPOSITIONAL = "старом ноже"
)
desc = "Очень острый нож. Судя по потертостям и засохшей крови, он совсем не валялся без дела."
icon_state = "ghostface_knife"
force = 34
armour_penetration = 70
block_chance = 30
w_class = WEIGHT_CLASS_SMALL
throwforce = 34
hitsound = 'sound/weapons/bladeslice.ogg'
pickup_sound = 'sound/items/handling/knife_pickup.ogg'
drop_sound = 'sound/items/handling/knife_drop.ogg'
throw_speed = 3
throw_range = 6
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharp = TRUE

/obj/item/melee/ghostface_knife/devil
name = "Old knife"
desc = "Странный нож с, тем не менее, крайне острым лезвием. Судя по характерным потертостям и засохшей крови, явно не валялся без дела."
ru_names = list(
NOMINATIVE = "старый ржавый нож",
GENITIVE = "старого ржавого ножа",
DATIVE = "старому ржавому ножу",
ACCUSATIVE = "старый ржавый нож",
INSTRUMENTAL = "старым ржавым ножом",
PREPOSITIONAL = "старом ржавом ноже"
)
icon_state = "devil_ghostface_knife"
50 changes: 50 additions & 0 deletions code/modules/clothing/masks/gasmask.dm
Original file line number Diff line number Diff line change
Expand Up @@ -553,3 +553,53 @@


// ********************************************************************

/obj/item/clothing/mask/gas/ghostface
name = "Ghostface mask"
ru_names = list(
NOMINATIVE = "кричащая маска",
GENITIVE = "кричащей маски",
DATIVE = "кричащей маске",
ACCUSATIVE = "кричащую маску",
INSTRUMENTAL = "кричащей маской",
PREPOSITIONAL = "кричащей маске"
)
desc = "Вытянутая белая маска, рот которой открыт в немом крике. Но вот в чём вопрос - ужаса, или ярости?"
icon_state = "ghostface_mask"
item_state = "mime"
flags_inv = HIDEGLASSES
flags_cover = HIDENAME|MASKCOVERSMOUTH|MASKCOVERSEYES
species_restricted = list(SPECIES_HUMAN, SPECIES_MACNINEPERSON, SPECIES_SKRELL, SPECIES_SLIMEPERSON, SPECIES_DIONA, SPECIES_NUCLEATION)

/obj/item/clothing/mask/gas/ghostface/equipped(mob/user, slot, initial)
if(ishuman(user))
if(slot == ITEM_SLOT_MASK)
var/mob/living/carbon/human/H = user
H.name_override = "Ghostface"
. = ..()

/obj/item/clothing/mask/gas/ghostface/dropped(mob/user, slot, silent = FALSE)
if(ishuman(user))
if(slot == ITEM_SLOT_MASK)
var/mob/living/carbon/human/H = user
if(H.name_override == "Ghostface")
H.name_override = FALSE
. = ..()

/obj/item/clothing/mask/gas/ghostface/true
armor = list(melee = 30, bullet = 10, laser = 5, energy = 5, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10)
var/obj/item/voice_changer/ghostface/voice_changer

/obj/item/clothing/mask/gas/ghostface/true/devil
icon_state = "devil_ghostface_mask"

/obj/item/clothing/mask/gas/ghostface/true/Initialize(mapload)
. = ..()
voice_changer = new(src)

/obj/item/clothing/mask/gas/ghostface/true/Destroy()
QDEL_NULL(voice_changer)
return ..()

/obj/item/clothing/mask/gas/ghostface/devil
icon_state = "devil_ghostface_mask"
71 changes: 70 additions & 1 deletion code/modules/clothing/suits/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1629,7 +1629,76 @@

icon_state = "[initial(icon_state)][slot == ITEM_SLOT_HEAD ? "_head" : null]"


/obj/item/clothing/suit/towel/short/alt
icon_state = "towel_alt"
item_state = "towel_alt"

/obj/item/clothing/suit/hooded/ghostfacesuit
name = "Ghostface suit"
ru_names = list(
NOMINATIVE = "чёрный балахон",
GENITIVE = "чёрного балахона",
DATIVE = "чёрному балахону",
ACCUSATIVE = "чёрного балахона",
INSTRUMENTAL = "чёрным балахоном",
PREPOSITIONAL = "чёрном балахоне"
)
desc = "чёрный, просторный балахон, что может навеивать смутные напоминания о чём-то."
icon_state = "ghostface_suit"
item_state = "ghostface_suit"
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET
flags_inv = HIDESHOES|HIDEJUMPSUIT|HIDETAIL
hoodtype = /obj/item/clothing/head/hooded/ghostface
sprite_sheets = list(
SPECIES_DRASK = 'icons/mob/clothing/species/drask/suit.dmi',
SPECIES_GREY = 'icons/mob/clothing/species/grey/suit.dmi',
SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/suit.dmi'
)

/obj/item/clothing/suit/hooded/update_icon_state()
return

/obj/item/clothing/head/hooded/ghostface
name = "Ghostface hood"
ru_names = list(
NOMINATIVE = "чёрный капюшон",
GENITIVE = "чёрного капюшона",
DATIVE = "чёрному капюшону",
ACCUSATIVE = "чёрного капюшона",
INSTRUMENTAL = "чёрным капюшоном",
PREPOSITIONAL = "чёрном капюшоне"
)
desc = "Черный капюшон. Он вам что-то точно напоминает..."
icon_state = "ghostface_hood"
item_state = "ghostface"
flags_inv = HIDEHEADSETS|HIDEHAIR
sprite_sheets = list(
SPECIES_DRASK = 'icons/mob/clothing/species/drask/suit.dmi',
SPECIES_GREY = 'icons/mob/clothing/species/grey/suit.dmi',
SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/suit.dmi'
)

/obj/item/clothing/head/hooded/ghostface/true
armor = list(melee = 30, bullet = 10, laser = 5, energy = 5, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10)

/obj/item/clothing/suit/hooded/ghostfacesuit/devil
desc = "чёрный с прожилками красного просторный балахон, что может навеивать смутные напоминания о чём-то."
ru_names = list(
NOMINATIVE = "кроваво-чёрный балахон",
GENITIVE = "кроваво-чёрного балахона",
DATIVE = "кроваво-чёрному балахону",
ACCUSATIVE = "кроваво-чёрного балахона",
INSTRUMENTAL = "кроваво-чёрным балахоном",
PREPOSITIONAL = "кроваво-чёрном балахоне"
)
icon_state = "devil_ghostface_suit"
item_state = "devil_ghostface_suit"


/obj/item/clothing/suit/hooded/ghostfacesuit/true
armor = list(melee = 30, bullet = 10, laser = 5, energy = 5, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10)
hoodtype = /obj/item/clothing/head/hooded/ghostface/true

/obj/item/clothing/suit/hooded/ghostfacesuit/devil/true
armor = list(melee = 30, bullet = 10, laser = 5, energy = 5, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10)
hoodtype = /obj/item/clothing/head/hooded/ghostface/true
Binary file modified icons/mob/clothing/head.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/mask.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/species/drask/head.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/species/drask/suit.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/species/grey/head.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/species/grey/suit.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/species/monkey/head.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/species/monkey/suit.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/suit.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/melee_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/melee_righthand.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/hats.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/masks.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/suits.dmi
Binary file not shown.
Binary file modified icons/obj/items.dmi
Binary file not shown.
Loading