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: Skrellian SDTF weapon&armor #1566

Merged
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
822e43d
Запасы на будущие щитспавны
konushi Oct 1, 2024
04589c4
дубликаты
konushi Oct 1, 2024
c98ee81
инклюды
konushi Oct 1, 2024
5eeec63
фикс старого пути
konushi Oct 1, 2024
844bb89
исправил иконки объектов
konushi Oct 2, 2024
13411cb
Fix exclusive MODsuit hierarchy
m-dzianishchyts Oct 2, 2024
1c0bde8
Update code/modules/mod/mod_control.dm
m-dzianishchyts Oct 2, 2024
e3d9117
спрайт шлема
konushi Oct 4, 2024
3012ba8
Merge remote-tracking branch 'upstream/master' into Add-Skrellian-SDT…
konushi Oct 5, 2024
bb7eb21
жабьи сардаукары
konushi Oct 5, 2024
7fbef3a
жабьи сардуакры 2
konushi Oct 5, 2024
236e1b7
переводики
konushi Oct 7, 2024
dc09c68
зарядка виброклинка
konushi Oct 7, 2024
46a7b13
Update melee.dmi
konushi Oct 7, 2024
54a1624
Update sardaukar.dm
konushi Oct 7, 2024
2dc2da2
аутфиты, пистолетик
konushi Oct 8, 2024
ba0d386
Add allowed species to MODsuit theme
m-dzianishchyts Oct 13, 2024
de7df0f
Use async call to please linter
m-dzianishchyts Oct 13, 2024
222d190
Clean up
m-dzianishchyts Oct 14, 2024
022a36d
job name
konushi Oct 14, 2024
73ae8a1
Merge remote-tracking branch 'upstream/master' into Add-Skrellian-SDT…
konushi Oct 14, 2024
02d2aec
Update skrell_rifle.dm
konushi Oct 14, 2024
162cacf
запрошенные (requested) правки (changes) сделал (done)
konushi Oct 16, 2024
99144a6
Merge remote-tracking branch 'upstream/master' into Add-Skrellian-SDT…
konushi Oct 16, 2024
fd11525
анимация на разных уровнях энергии
konushi Oct 16, 2024
595659c
заменил звуки
konushi Oct 16, 2024
88028b2
фикс иконки
konushi Oct 16, 2024
ab78b8d
описание состояний клинка, сообщения об отсечении конечностей и РКН
konushi Oct 16, 2024
77d0b69
Update vibroblade.dm
konushi Oct 16, 2024
f37e75f
изменения БРАТА Диджея дон
konushi Oct 17, 2024
802ad0a
Improve vibroblade logic
m-dzianishchyts Oct 18, 2024
3fc05f5
me linter enjoyer
m-dzianishchyts Oct 18, 2024
a1dfe49
i wish byond never exist
m-dzianishchyts Oct 18, 2024
3a68cfc
жабья коробка
konushi Oct 18, 2024
0a343c3
пробуем худы (это вкусно)
konushi Oct 18, 2024
dd705be
Update hud.dmi
konushi Oct 18, 2024
22b9ee2
еще раз худы
konushi Oct 18, 2024
11c420b
Update hud.dmi
konushi Oct 18, 2024
8e974ef
Merge remote-tracking branch 'upstream/master' into Add-Skrellian-SDT…
konushi Oct 18, 2024
1d347ae
Fix runtime on Select Equipment
m-dzianishchyts Oct 20, 2024
46ae109
Discharge vibroblade on equip/drop/throw
m-dzianishchyts Oct 20, 2024
e5653e5
Add messing SIGNAL_HANDLER
m-dzianishchyts Oct 20, 2024
d8dfd34
последние реквесты
konushi Oct 20, 2024
8d07191
маркируем жаби
konushi Oct 21, 2024
b430e36
Merge remote-tracking branch 'upstream/master' into Add-Skrellian-SDT…
konushi Oct 21, 2024
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
8 changes: 4 additions & 4 deletions code/modules/mod/mod_control.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,14 +127,14 @@
if(length(req_access))
locked = TRUE
new_core?.install(src)
helmet = new /obj/item/clothing/head/mod(src)
helmet = build_head() // SS220 EDIT - original: new /obj/item/clothing/head/mod(src)
mod_parts += helmet
chestplate = new /obj/item/clothing/suit/mod(src)
chestplate = build_suit() // SS220 EDIT - original: new /obj/item/clothing/suit/mod(src)
chestplate.allowed += theme.allowed_suit_storage
mod_parts += chestplate
gauntlets = new /obj/item/clothing/gloves/mod(src)
gauntlets = build_gloves() // SS220 EDIT - original: new /obj/item/clothing/gloves/mod(src)
mod_parts += gauntlets
boots = new /obj/item/clothing/shoes/mod(src)
boots = build_shoes() // SS220 EDIT - original: new /obj/item/clothing/shoes/mod(src)
mod_parts += boots
var/list/all_parts = mod_parts + src
for(var/obj/item/part as anything in all_parts)
Expand Down
1 change: 1 addition & 0 deletions modular_ss220/clothing/_clothing.dme
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@
#include "code/shoes.dm"
#include "code/suits.dm"
#include "code/under.dm"
#include "code/mod.dm"
281 changes: 281 additions & 0 deletions modular_ss220/clothing/code/mod.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
// MARK: MODsuit clothes
/obj/item/clothing/head/mod/exclusive
icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
sprite_sheets = list(
"Human" = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi',
"Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
)

/obj/item/clothing/suit/mod/exclusive
icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
sprite_sheets = list(
"Human" = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi',
"Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
)

/obj/item/clothing/gloves/mod/exclusive
icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
sprite_sheets = list(
"Human" = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi',
"Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
)

/obj/item/clothing/shoes/mod/exclusive
icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
sprite_sheets = list(
"Human" = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi',
"Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
)

// MARK: MODsuit control
/obj/item/mod/control/proc/build_head()
return new /obj/item/clothing/head/mod(src)

/obj/item/mod/control/proc/build_suit()
return new /obj/item/clothing/suit/mod(src)

/obj/item/mod/control/proc/build_gloves()
return new /obj/item/clothing/gloves/mod(src)

/obj/item/mod/control/proc/build_shoes()
return new /obj/item/clothing/shoes/mod(src)

/obj/item/mod/control/proc/is_any_part_deployed()
for(var/obj/item/part as anything in mod_parts)
if(part.loc != src)
return TRUE
return FALSE

// This is kinda sick but we need to retract it before the actual species change.
/obj/item/mod/control/proc/pre_species_gain(datum/species/new_species)
if(!wearer)
return
if(is_any_part_deployed() && !theme.is_species_allowed(new_species))
// Deactivate MODsuit to respect the species allowed.
to_chat(wearer, span_warning("Ошибка видовой принадлежности! Деактивация."))
if(active)
var/old_activation_step_time = activation_step_time
activation_step_time = 0.1 SECONDS // gotta go fast
toggle_activate(wearer, force_deactivate = TRUE)
activation_step_time = old_activation_step_time
quick_deploy(wearer)
m-dzianishchyts marked this conversation as resolved.
Show resolved Hide resolved

/obj/item/mod/control/quick_deploy(mob/user)
if(!is_any_part_deployed() && !theme.is_species_allowed(user.dna.species))
to_chat(user, span_warning("Ошибка видовой принадлежности! Развертывание недоступно."))
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
return FALSE
return ..()

/obj/item/mod/control/deploy(mob/user, obj/item/part, mass)
if(!mass && part.loc != user && !theme.is_species_allowed(user.dna.species))
to_chat(user, span_warning("Ошибка видовой принадлежности! Развертывание недоступно."))
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
return FALSE
return ..()

/obj/item/mod/control/pre_equipped/exclusive
icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'

/obj/item/mod/control/pre_equipped/exclusive/build_head()
return new /obj/item/clothing/head/mod/exclusive(src)

/obj/item/mod/control/pre_equipped/exclusive/build_suit()
return new /obj/item/clothing/suit/mod/exclusive(src)

/obj/item/mod/control/pre_equipped/exclusive/build_gloves()
return new /obj/item/clothing/gloves/mod/exclusive(src)

/obj/item/mod/control/pre_equipped/exclusive/build_shoes()
return new /obj/item/clothing/shoes/mod/exclusive(src)

// MARK: MODsuit Theme
/datum/mod_theme
/// Which species are allowed to deploy MODsuit. Consider empty list as no restriction.
var/list/species_allowed = list()

/datum/mod_theme/proc/is_species_allowed(datum/species/species)
if(!length(species_allowed))
return TRUE
if(!(species.name in species_allowed))
return FALSE
return TRUE

/mob/living/carbon/human/change_dna(datum/dna/new_dna, include_species_change)
if(istype(back, /obj/item/mod/control))
// var/obj/item/mod/control/modsuit_control = back
m-dzianishchyts marked this conversation as resolved.
Show resolved Hide resolved
INVOKE_ASYNC(back, TYPE_PROC_REF(/obj/item/mod/control, pre_species_gain), new_dna.species)
return ..()

/mob/living/carbon/human/set_species(datum/species/new_species, use_default_color = FALSE, delay_icon_update = FALSE, skip_same_check = FALSE, retain_damage = FALSE, transformation = FALSE, keep_missing_bodyparts = FALSE)
if(istype(back, /obj/item/mod/control))
// var/obj/item/mod/control/modsuit_control = back
m-dzianishchyts marked this conversation as resolved.
Show resolved Hide resolved
INVOKE_ASYNC(back, TYPE_PROC_REF(/obj/item/mod/control, pre_species_gain), new_species)
return ..()

// MARK: Skrell elite MODsuit
konushi marked this conversation as resolved.
Show resolved Hide resolved
/datum/mod_theme/skrell_raskinta
name = "\improper raskinta"
desc = "Боевая броня с функцией костюма для ВКД, созданная для войнов Раскинта Ме'керр-Кетиш."
konushi marked this conversation as resolved.
Show resolved Hide resolved
extended_desc = "Массивный бронекостюм, выполненный в черно-синих цветах, является отлечительной чертой \
военных формирований Раскинта-Кэтиш. Защитные пластины состоят из укрепленной керамики, в то время как\
каркасные пластины выполнены из сплавов вороной пластали, позволяющей эффективно поглащать и рассеивать энергию \
через радиаторные отводы на ''хвостовых'' окончаниях шлема. \
Этот костюм является самым частовстречаемым в штурмовых отрядах Оборонительных Сил Скреллов. "
konushi marked this conversation as resolved.
Show resolved Hide resolved
default_skin = "skrell_elite"
armor_type_1 = /obj/item/mod/armor/mod_theme_skrell_raskinta
flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
siemens_coefficient = 0
slowdown_inactive = 1
slowdown_active = 0.25
complexity_max = DEFAULT_MAX_COMPLEXITY + 5
allowed_suit_storage = list(
/obj/item/ammo_box,
/obj/item/ammo_casing,
/obj/item/restraints/handcuffs,
/obj/item/flash,
/obj/item/melee/baton,
/obj/item/gun,
/obj/item/melee/vibroblade,
)
species_allowed = list("Skrell")
skins = list(
"skrell_elite" = list(
MOD_ICON_OVERRIDE = 'modular_ss220/clothing/icons/object/mod_clothing.dmi',
HELMET_FLAGS = list(
UNSEALED_LAYER = COLLAR_LAYER,

SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
UNSEALED_INVISIBILITY = HIDEFACE,
SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEFACE,
SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
),
CHESTPLATE_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
SEALED_CLOTHING = STOPSPRESSUREDMAGE,
SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
),
GAUNTLETS_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
SEALED_CLOTHING = STOPSPRESSUREDMAGE,
CAN_OVERSLOT = TRUE,
),
BOOTS_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
SEALED_CLOTHING = STOPSPRESSUREDMAGE,
CAN_OVERSLOT = TRUE,
),
),
)

/obj/item/mod/armor/mod_theme_skrell_raskinta
armor = list(MELEE = 40, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 25, RAD = INFINITY, FIRE = 200, ACID = 200)

/obj/item/mod/control/pre_equipped/exclusive/skrell_raskinta
theme = /datum/mod_theme/skrell_raskinta
applied_cell = /obj/item/stock_parts/cell/super
applied_modules = list(
/obj/item/mod/module/storage/syndicate,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/status_readout,
/obj/item/mod/module/flashlight,
/obj/item/mod/module/magboot/advanced,
/obj/item/mod/module/jetpack/advanced,
)
default_pins = list(
/obj/item/mod/module/jetpack/advanced,
/obj/item/mod/module/magboot/advanced,
)


konushi marked this conversation as resolved.
Show resolved Hide resolved
/datum/mod_theme/skrell_sardaukars
name = "\improper emperor guard"
desc = "Элитная боевая броня гвардейцев Императора Скреллианской империи."
konushi marked this conversation as resolved.
Show resolved Hide resolved
extended_desc = "Благодаря высшим технологическим достижениям скреллов, этот костюм сочетает в себе \
невероятные показатели защищенности и мобильности, являясь незаменимой вещью на вооружении свирепых Куи'кверр-Кэтиш. \
Носящие его воины являются личной гвардией Императора и выполняют самые сложные задачи по его воле. \
Кроваво-белоснежные цвета, отождествляющие кровь врагов и власть Его Величества, скорее всего последнее \
что вы увидите в своей жизни."
konushi marked this conversation as resolved.
Show resolved Hide resolved
default_skin = "skrell_white"
armor_type_1 = /obj/item/mod/armor/mod_theme_skrell_sardaukars
resistance_flags = FIRE_PROOF
flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
siemens_coefficient = 0
slowdown_inactive = 0.5
slowdown_active = 0
complexity_max = DEFAULT_MAX_COMPLEXITY + 10
allowed_suit_storage = list(
/obj/item/ammo_box,
/obj/item/ammo_casing,
/obj/item/restraints/handcuffs,
/obj/item/flash,
/obj/item/melee/baton,
/obj/item/gun,
/obj/item/melee/vibroblade,
)
species_allowed = list("Skrell")
skins = list(
"skrell_white" = list(
MOD_ICON_OVERRIDE = 'modular_ss220/clothing/icons/object/mod_clothing.dmi',
HELMET_FLAGS = list(
UNSEALED_LAYER = COLLAR_LAYER,

SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
UNSEALED_INVISIBILITY = HIDEFACE,
SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEFACE,
SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
),
CHESTPLATE_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
SEALED_CLOTHING = STOPSPRESSUREDMAGE,
SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
),
GAUNTLETS_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
SEALED_CLOTHING = STOPSPRESSUREDMAGE,
CAN_OVERSLOT = TRUE,
),
BOOTS_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
SEALED_CLOTHING = STOPSPRESSUREDMAGE,
CAN_OVERSLOT = TRUE,
),
),
)

/obj/item/mod/armor/mod_theme_skrell_sardaukars
armor = list(MELEE = 100, BULLET = 100, LASER = 50, ENERGY = 50, BOMB = 100, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)

/obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars
theme = /datum/mod_theme/skrell_sardaukars
applied_cell = /obj/item/stock_parts/cell/bluespace
applied_modules = list(
/obj/item/mod/module/storage/bluespace,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/flashlight,
/obj/item/mod/module/jetpack/advanced,
/obj/item/mod/module/status_readout,
/obj/item/mod/module/magboot/advanced,
/obj/item/mod/module/energy_shield,
/obj/item/mod/module/visor/thermal
)
default_pins = list(
/obj/item/mod/module/jetpack/advanced,
/obj/item/mod/module/magboot/advanced,
/obj/item/mod/module/visor/thermal
)

/obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars/Initialize(mapload, new_theme, new_skin, new_core, new_access)
. = ..()
ADD_TRAIT(chestplate, TRAIT_RSG_IMMUNE, ROUNDSTART_TRAIT)
Binary file added modular_ss220/clothing/icons/mob/mod_clothing.dmi
Binary file not shown.
Binary file not shown.
Binary file not shown.
3 changes: 3 additions & 0 deletions modular_ss220/objects/_objects.dme
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@
#include "code/weapons/melee/baseball_bat.dm"
#include "code/weapons/melee/electrostaff.dm"
#include "code/weapons/melee/stylet.dm"
#include "code/weapons/melee/vibroblade.dm"
#include "code/weapons/ranged/beretta.dm"
#include "code/weapons/ranged/pneumagun.dm"
#include "code/weapons/ranged/revolvers.dm"
#include "code/weapons/ranged/sslr.dm"
#include "code/weapons/ranged/sakhno.dm"
#include "code/weapons/ranged/skrell_rifle.dm"

// Plushies
#include "code/plushies/hampters.dm"
Expand Down
Loading
Loading