diff --git a/modular_ss220/clothing/code/mod.dm b/modular_ss220/clothing/code/mod.dm index 1639d45ac2a9..d5b5e0e56864 100644 --- a/modular_ss220/clothing/code/mod.dm +++ b/modular_ss220/clothing/code/mod.dm @@ -66,7 +66,7 @@ // MARK: Skrell elite MODsuit /datum/mod_theme/skrell_raskinta - name = "\improper ме'керр" + name = "\improper raskinta" desc = "Боевая броня с функцией костюма для ВКД, созданная для войнов Раскинта Ме'керр-Кетиш." extended_desc = "Массивный бронекостюм, выполненный в черно-синих цветах, является отлечительной чертой \ военных формирований Раскинта-Кэтиш. Защитные пластины состоят из укрепленной керамики, в то время как\ @@ -88,7 +88,7 @@ /obj/item/flash, /obj/item/melee/baton, /obj/item/gun, - /obj/item/melee/sardaukar, + /obj/item/melee/vibroblade, ) skins = list( "skrell_elite" = list( @@ -127,7 +127,6 @@ applied_cell = /obj/item/stock_parts/cell/super applied_modules = list( /obj/item/mod/module/storage/syndicate, - /obj/item/mod/module/welding, /obj/item/mod/module/emp_shield, /obj/item/mod/module/status_readout, /obj/item/mod/module/flashlight, @@ -141,7 +140,7 @@ /datum/mod_theme/skrell_sardaukars - name = "\improper куи'кверр" + name = "\improper emperor guard" desc = "Элитная боевая броня гвардейцев Императора Скреллианской империи." extended_desc = "Благодаря высшим технологическим достижениям скреллов, этот костюм сочетает в себе \ невероятные показатели защищенности и мобильности, являясь незаменимой вещью на вооружении свирепых Куи'кверр-Кэтиш. \ @@ -164,7 +163,7 @@ /obj/item/flash, /obj/item/melee/baton, /obj/item/gun, - /obj/item/melee/sardaukar, + /obj/item/melee/vibroblade, ) skins = list( "skrell_white" = list( @@ -203,16 +202,18 @@ applied_cell = /obj/item/stock_parts/cell/bluespace applied_modules = list( /obj/item/mod/module/storage/bluespace, - /obj/item/mod/module/welding, /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) diff --git a/modular_ss220/clothing/icons/mob/mod_clothing.dmi b/modular_ss220/clothing/icons/mob/mod_clothing.dmi index 90c3c1f24174..b72c882ea4c3 100644 Binary files a/modular_ss220/clothing/icons/mob/mod_clothing.dmi and b/modular_ss220/clothing/icons/mob/mod_clothing.dmi differ diff --git a/modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi b/modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi index 90c3c1f24174..b72c882ea4c3 100644 Binary files a/modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi and b/modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi differ diff --git a/modular_ss220/objects/_objects.dme b/modular_ss220/objects/_objects.dme index 867f14fc93dd..e38f4a613dc4 100644 --- a/modular_ss220/objects/_objects.dme +++ b/modular_ss220/objects/_objects.dme @@ -16,7 +16,7 @@ #include "code/weapons/melee/baseball_bat.dm" #include "code/weapons/melee/electrostaff.dm" #include "code/weapons/melee/stylet.dm" -#include "code/weapons/melee/sardaukar.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" diff --git a/modular_ss220/objects/code/weapons/melee/sardaukar.dm b/modular_ss220/objects/code/weapons/melee/vibroblade.dm similarity index 78% rename from modular_ss220/objects/code/weapons/melee/sardaukar.dm rename to modular_ss220/objects/code/weapons/melee/vibroblade.dm index ff6e1ec7e004..20644c5be681 100644 --- a/modular_ss220/objects/code/weapons/melee/sardaukar.dm +++ b/modular_ss220/objects/code/weapons/melee/vibroblade.dm @@ -1,12 +1,10 @@ -/obj/item/melee/sardaukar +/obj/item/melee/vibroblade name = "\improper виброклинок" - desc = "Виброклинок гвардейцев Императора. Микрогенератор ультразвука в рукояти позволяет лезвию вибрировать \ - с огромной частотой, что позволяет при его достаточной зарядке наносить глубокие раны даже ударами по касательной. \ - Воины Куи'кверр-Кэтиш обучаются мастерству ближнего боя с детства, поэтому в их руках он особо опасен и жесток. \ - Каждый будущий гвардеец добывает свой клинок в ритуальном бою и его сохранность есть вопрос жизни и смерти владельца." + desc = "Виброклинок воинов Раскинта. Микрогенератор ультразвука в рукояти позволяет лезвию вибрировать \ + с огромной частотой, что позволяет при его достаточной зарядке наносить глубокие раны даже ударами по касательной." icon = 'modular_ss220/objects/icons/melee.dmi' - icon_state = "sardaukar" - item_state = "sardaukar" + icon_state = "vibroblade" + item_state = "vibroblade" lefthand_file = 'modular_ss220/objects/icons/inhands/melee_lefthand.dmi' righthand_file = 'modular_ss220/objects/icons/inhands/melee_righthand.dmi' hitsound = 'modular_ss220/objects/sound/weapons/melee/sardaukar/knifehit1.ogg' @@ -25,13 +23,13 @@ flags = CONDUCT var/energy = 0 var/max_energy = 20 - var/charge_time = 5 SECONDS + var/charge_time = 10 SECONDS -/obj/item/melee/sardaukar/Initialize(mapload) +/obj/item/melee/vibroblade/Initialize(mapload) . = ..() AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.5, _parryable_attack_types = ALL_ATTACK_TYPES) -/obj/item/melee/sardaukar/attack_self(mob/living/user) +/obj/item/melee/vibroblade/attack_self(mob/living/user) var/msg_for_all = span_warning("[user.name] пытается зарядить [src], но кнопка на рукояти не поддается!") var/msg_for_user = span_notice("Вы пытаетесь нажать на кнопку зарядки [src], но она заблокирована.") var/msg_recharge_all = span_notice("[user.name] нажимает на кнопку зарядки [src]...") @@ -50,7 +48,7 @@ energy += 5 . = ..() -/obj/item/melee/sardaukar/attack(mob/living/carbon/human/target, mob/living/carbon/human/user) +/obj/item/melee/vibroblade/attack(mob/living/carbon/human/target, mob/living/carbon/human/user) var/list/obj/item/organ/external/cutoff = list ("l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "r_foot", "l_foot") if(energy == 5) target.adjustBruteLoss (5) @@ -72,3 +70,14 @@ lucky_organ.droplimb(1, DROPLIMB_SHARP, 0, 1) energy -= 20 ..() + +/obj/item/melee/vibroblade/sardaukar + name = "\improper виброклинок гвардейца" + desc = "Виброклинок гвардейцев Императора. Микрогенератор ультразвука в рукояти позволяет лезвию вибрировать \ + с огромной частотой, что позволяет при его достаточной зарядке наносить глубокие раны даже ударами по касательной. \ + Воины Куи'кверр-Кэтиш обучаются мастерству ближнего боя с детства, поэтому в их руках он особо опасен и жесток. \ + Каждый будущий гвардеец добывает свой клинок в ритуальном бою и его сохранность есть вопрос жизни и смерти владельца." + icon_state = "vibroblade_elite" + item_state = "vibroblade_elite" + force = 25 + charge_time = 3 SECONDS diff --git a/modular_ss220/objects/code/weapons/ranged/skrell_rifle.dm b/modular_ss220/objects/code/weapons/ranged/skrell_rifle.dm index 8155377803f1..3b5214d65896 100644 --- a/modular_ss220/objects/code/weapons/ranged/skrell_rifle.dm +++ b/modular_ss220/objects/code/weapons/ranged/skrell_rifle.dm @@ -12,6 +12,7 @@ origin_tech = "combat=6;magnets=5" modifystate = 2 execution_speed = 3 SECONDS + w_class = WEIGHT_CLASS_NORMAL /obj/item/gun/energy/gun/skrell_carbine/elite name = "\improper элитный скреллианский энергитический карабин" @@ -69,7 +70,7 @@ item_state = "sniper" fire_sound = 'modular_ss220/objects/sound/weapons/gunshots/railgun.ogg' recoil = 0 - fire_delay = 35 + fire_delay = 25 slot_flags = SLOT_FLAG_BELT zoomable = FALSE can_suppress = FALSE @@ -123,3 +124,20 @@ armour_penetration_flat = 30 weaken = 0.2 speed = 0.2 + +// Skrellian pistol + +/obj/item/gun/energy/gun/skrell_pistol + name = "\improper скреллианский энергитический пистолет" + desc = "Энергетический пистолет Qua'l*Sarqzix-44x, известный на территориях ТСФ как QS-44. Компактный и удобный в использовании, имеет два режима мощности энерголуча: 'летальный' и 'нейтрализующий'." + icon = 'modular_ss220/objects/icons/guns.dmi' + icon_state = "skrell_pistol" + item_state = "skrell_pistol" + lefthand_file = 'modular_ss220/objects/icons/inhands/guns_lefthand.dmi' + righthand_file = 'modular_ss220/objects/icons/inhands/guns_righthand.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/laser/skrell_light, /obj/item/ammo_casing/energy/disabler) + w_class = WEIGHT_CLASS_SMALL + shaded_charge = FALSE + can_holster = TRUE + execution_speed = 4 SECONDS + selfcharge = TRUE diff --git a/modular_ss220/objects/icons/guns.dmi b/modular_ss220/objects/icons/guns.dmi index c4d2eddca158..0b1e0c63091e 100644 Binary files a/modular_ss220/objects/icons/guns.dmi and b/modular_ss220/objects/icons/guns.dmi differ diff --git a/modular_ss220/objects/icons/inhands/guns_lefthand.dmi b/modular_ss220/objects/icons/inhands/guns_lefthand.dmi index f5acfc9d1db1..8b77e53ebc47 100644 Binary files a/modular_ss220/objects/icons/inhands/guns_lefthand.dmi and b/modular_ss220/objects/icons/inhands/guns_lefthand.dmi differ diff --git a/modular_ss220/objects/icons/inhands/guns_righthand.dmi b/modular_ss220/objects/icons/inhands/guns_righthand.dmi index 8de6d2926860..bbecbad178b5 100644 Binary files a/modular_ss220/objects/icons/inhands/guns_righthand.dmi and b/modular_ss220/objects/icons/inhands/guns_righthand.dmi differ diff --git a/modular_ss220/objects/icons/inhands/melee_lefthand.dmi b/modular_ss220/objects/icons/inhands/melee_lefthand.dmi index 3b8c1595ee7c..738f8c58acc4 100644 Binary files a/modular_ss220/objects/icons/inhands/melee_lefthand.dmi and b/modular_ss220/objects/icons/inhands/melee_lefthand.dmi differ diff --git a/modular_ss220/objects/icons/inhands/melee_righthand.dmi b/modular_ss220/objects/icons/inhands/melee_righthand.dmi index c3378e82fa17..844e8b00b1c7 100644 Binary files a/modular_ss220/objects/icons/inhands/melee_righthand.dmi and b/modular_ss220/objects/icons/inhands/melee_righthand.dmi differ diff --git a/modular_ss220/objects/icons/melee.dmi b/modular_ss220/objects/icons/melee.dmi index 9ad1763cfa85..c227923c121b 100644 Binary files a/modular_ss220/objects/icons/melee.dmi and b/modular_ss220/objects/icons/melee.dmi differ diff --git a/modular_ss220/outfits/code/outfits.dm b/modular_ss220/outfits/code/outfits.dm index 48da37da9efe..6706b1b1fee6 100644 --- a/modular_ss220/outfits/code/outfits.dm +++ b/modular_ss220/outfits/code/outfits.dm @@ -316,3 +316,133 @@ /datum/outfit/job/centcom/response_team/engineer/amber suit = /obj/item/clothing/suit/space/ert_engineer head = /obj/item/clothing/head/helmet/space/ert_engineer + +// MARK: Skrell +/datum/outfit/admin/sdtf + name = "Skrellian Defence Task Forces Marine" + uniform = /obj/item/clothing/under/solgov/srt + back = /obj/item/mod/control/pre_equipped/exclusive/skrell_raskinta + belt = /obj/item/melee/vibroblade + glasses = /obj/item/clothing/glasses/night + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/combat + l_ear = /obj/item/radio/headset/skrellian + id = /obj/item/card/id + l_hand = /obj/item/gun/energy/gun/skrell_carbine/elite + r_pocket = /obj/item/flashlight/seclite + l_pocket = /obj/item/reagent_containers/hypospray/autoinjector/nt_emergency/skrell + mask = /obj/item/clothing/mask/gas/swat + backpack_contents = list( + /obj/item/storage/box/responseteam, + /obj/item/storage/box/smoke_grenades, + /obj/item/grenade/plastic/c4/x4, + /obj/item/reagent_containers/hypospray/autoinjector/nt_emergency/skrell = 1, + /obj/item/storage/box/handcuffs, + /obj/item/tank/internals/emergency_oxygen/double, + /obj/item/clothing/accessory/holster, + /obj/item/gun/energy/gun/skrell_pistol + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/chest/nutriment/plus, + /obj/item/organ/internal/cyberimp/brain/anti_drop, + /obj/item/organ/internal/cyberimp/eyes/hud/medical, + ) + var/is_sardaukar = FALSE + +/datum/outfit/admin/sdtf/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + H.add_language("Skrellian") + H.set_default_language(GLOB.all_languages["Skrellian"]) + + var/obj/item/card/id/I = H.wear_id + if(istype(I) && !is_sardaukar) + apply_to_card(I, H, list(ACCESS_MAINT_TUNNELS), "SDTF Raskinta-Katish", "retro_medical") + I.rank = "SDTF forces" + I.assignment = "Raskinta-Katish Warrior" + else + apply_to_card(I, H, list(ACCESS_MAINT_TUNNELS), "Emperor Guard", "retro_medical") + I.rank = "Qerr-Koal Raskinta-Katish" + I.assignment = "Emperor Guard" + H.sec_hud_set_ID() + +/datum/outfit/admin/sdtf/rifleman + name = "Skrellian Defence Task Forces Officer" + l_hand = /obj/item/gun/projectile/automatic/sniper_rifle/skrell_rifle + belt = /obj/item/storage/belt/military/assault/skrell + backpack_contents = list( + /obj/item/gun/energy/gun/skrell_carbine/elite, + /obj/item/melee/vibroblade, + /obj/item/storage/box/responseteam, + /obj/item/storage/box/smoke_grenades, + /obj/item/grenade/plastic/c4/x4, + /obj/item/reagent_containers/hypospray/autoinjector/nt_emergency/skrell = 1, + /obj/item/tank/internals/emergency_oxygen/double, + /obj/item/clothing/accessory/holster, + /obj/item/gun/energy/gun/skrell_pistol + ) + +/datum/outfit/admin/sdtf/sardaukar + name = "Skrellian Defence Task Forces Emperor Guard" + l_hand = /obj/item/gun/projectile/automatic/sniper_rifle/skrell_rifle/elite + belt = /obj/item/storage/belt/military/assault/skrell_elite + back = /obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars + l_pocket = /obj/item/reagent_containers/hypospray/combat/nanites + backpack_contents = list( + /obj/item/gun/energy/gun/skrell_carbine/elite, + /obj/item/melee/vibroblade/sardaukar, + /obj/item/storage/box/responseteam, + /obj/item/storage/box/smoke_grenades, + /obj/item/grenade/plastic/c4/x4, + /obj/item/tank/internals/emergency_oxygen/double, + /obj/item/clothing/accessory/holster, + /obj/item/CQC_manual, + /obj/item/shield/energy, + /obj/item/gun/energy/gun/skrell_pistol + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/chest/nutriment/plus, + /obj/item/organ/internal/cyberimp/brain/anti_drop, + /obj/item/organ/internal/cyberimp/eyes/hud/medical, + /obj/item/organ/internal/cyberimp/brain/sensory_enhancer, + /obj/item/organ/internal/cyberimp/brain/anti_stam + ) + is_sardaukar = TRUE + +/obj/item/radio/headset/skrellian + name = "skrellian bowman headset" + desc = "Used by SDFT forces. Protects ears from flashbangs." + flags = EARBANGPROTECT + origin_tech = "syndicate=3" + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + ks1type = /obj/item/encryptionkey/skrell + requires_tcomms = FALSE + +/obj/item/encryptionkey/skrell + name = "skrellian encryption key" + icon_state = "cypherkey" + channels = list("Special Ops" = 1) + origin_tech = "syndicate=4" + +/obj/item/reagent_containers/hypospray/autoinjector/nt_emergency/skrell + desc = "Одноразовый автоинжектор с нанитами." + list_reagents = list("nanites" = 10) + +/obj/item/storage/belt/military/assault/skrell/populate_contents() + new /obj/item/ammo_box/magazine/skrell_magazine(src) + new /obj/item/ammo_box/magazine/skrell_magazine(src) + new /obj/item/ammo_box/magazine/skrell_magazine(src) + new /obj/item/ammo_box/magazine/skrell_magazine(src) + new /obj/item/ammo_box/magazine/skrell_magazine(src) + new /obj/item/restraints/legcuffs/bola/energy(src) + +/obj/item/storage/belt/military/assault/skrell_elite/populate_contents() + new /obj/item/ammo_box/magazine/skrell_magazine/skrell_magazine_elite(src) + new /obj/item/ammo_box/magazine/skrell_magazine/skrell_magazine_elite(src) + new /obj/item/ammo_box/magazine/skrell_magazine/skrell_magazine_elite(src) + new /obj/item/ammo_box/magazine/skrell_magazine/skrell_magazine_elite(src) + new /obj/item/ammo_box/magazine/skrell_magazine/skrell_magazine_elite(src) + new /obj/item/restraints/legcuffs/bola/energy(src)