From 4f08d76cbb74ed0354105763881c2bed3bec1aad Mon Sep 17 00:00:00 2001 From: Fullonibus <38350888+Fullonibus@users.noreply.github.com> Date: Tue, 14 Nov 2023 02:02:37 +0300 Subject: [PATCH] Centcom Tactical Bat (#671) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Что этот PR делает Возвращает тактическую бейсбольную биту в игру. ## Почему это хорошо для игры Ультимативное оружие правосудия вновь будет нести свою службу на благо Нанотрейзен. Бойтесь, колени! ## Изображения изменений ![image](https://github.com/ss220club/Paradise-SS220/assets/38350888/02766729-129c-497f-b34a-c4029f157cbe) ## Тестирование Функционал проверен в игре: иконки рабочие, куклы не с цк в руки не возьмут, складывается, раскладывается, хоумраны прописывает. ## Changelog :cl: add: Тактическая бита центрального командования. /:cl: --------- Co-authored-by: larentoun <31931237+larentoun@users.noreply.github.com> Co-authored-by: Aylong <69762909+Aylong220@users.noreply.github.com> Co-authored-by: Gaxeer <44334376+Gaxeer@users.noreply.github.com> --- modular_ss220/objects/code/weapons.dm | 78 ++++++++++++++++++ .../objects/icons/inhands/melee_lefthand.dmi | Bin 0 -> 896 bytes .../objects/icons/inhands/melee_righthand.dmi | Bin 0 -> 878 bytes modular_ss220/objects/icons/melee.dmi | Bin 0 -> 787 bytes modular_ss220/outfits/code/outfits.dm | 2 + 5 files changed, 80 insertions(+) create mode 100644 modular_ss220/objects/icons/inhands/melee_lefthand.dmi create mode 100644 modular_ss220/objects/icons/inhands/melee_righthand.dmi create mode 100644 modular_ss220/objects/icons/melee.dmi diff --git a/modular_ss220/objects/code/weapons.dm b/modular_ss220/objects/code/weapons.dm index f12097faa503..0981030bf776 100644 --- a/modular_ss220/objects/code/weapons.dm +++ b/modular_ss220/objects/code/weapons.dm @@ -156,3 +156,81 @@ max_ammo = 100 icon = 'modular_ss220/objects/icons/ammo.dmi' icon_state = "mm127_box" + +// Тактическая бита Флота Nanotrasen +/obj/item/melee/baseball_bat/homerun/central_command + name = "тактическая бита Флота Nanotrasen" + desc = "Выдвижная тактическая бита Центрального Командования Nanotrasen. \ + В официальных документах эта бита проходит под элегантным названием \"Высокоскоростная система доставки СРП\". \ + Выдаваясь только самым верным и эффективным офицерам Nanotrasen, это оружие является одновременно символом статуса \ + и инструментом высшего правосудия." + slot_flags = SLOT_FLAG_BELT + w_class = WEIGHT_CLASS_SMALL + + var/on = FALSE + /// Force when concealed + force = 5 + /// Force when extended + var/force_on = 20 + + lefthand_file = 'modular_ss220/objects/icons/inhands/melee_lefthand.dmi' + righthand_file = 'modular_ss220/objects/icons/inhands/melee_righthand.dmi' + icon = 'modular_ss220/objects/icons/melee.dmi' + /// Item state when concealed + item_state = "centcom_bat_0" + /// Item state when extended + var/item_state_on = "centcom_bat_1" + /// Icon state when concealed + icon_state = "centcom_bat_0" + /// Icon state when extended + var/icon_state_on = "centcom_bat_1" + /// Sound to play when concealing or extending + var/extend_sound = 'sound/weapons/batonextend.ogg' + /// Attack verbs when concealed (created on Initialize) + attack_verb = list("hit", "poked") + /// Attack verbs when extended (created on Initialize) + var/list/attack_verb_on = list("smacked", "struck", "cracked", "beaten") + +/obj/item/melee/baseball_bat/homerun/central_command/pickup(mob/living/user) + . = ..() + if(!(user.mind.offstation_role)) + user.Weaken(10 SECONDS) + user.unEquip(src, force, silent = FALSE) + to_chat(user, span_userdanger("Это - оружие истинного правосудия. Тебе не дано обуздать его мощь.")) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.apply_damage(rand(force/2, force), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + else + user.adjustBruteLoss(rand(force/2, force)) + +/obj/item/melee/baseball_bat/homerun/central_command/attack_self(mob/user) + on = !on + + if(on) + to_chat(user, span_userdanger("Вы активировали [src.name] - время для правосудия!")) + item_state = item_state_on + icon_state = icon_state_on + w_class = WEIGHT_CLASS_HUGE + force = force_on + attack_verb = attack_verb_on + else + to_chat(user, span_notice("Вы деактивировали [src.name].")) + item_state = initial(item_state) + icon_state = initial(icon_state) + w_class = initial(w_class) + force = initial(force) + attack_verb = initial(attack_verb) + + homerun_able = on + // Update mob hand visuals + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + playsound(loc, extend_sound, 50, TRUE) + add_fingerprint(user) + +/obj/item/melee/baseball_bat/homerun/central_command/attack(mob/living/target, mob/living/user) + if(on) + homerun_ready = TRUE + . = ..() diff --git a/modular_ss220/objects/icons/inhands/melee_lefthand.dmi b/modular_ss220/objects/icons/inhands/melee_lefthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..03a217d2e15c8c9b438fef1d99b77b86f3b9ba96 GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoWmO>&B`&GO$wiq3C7Jno3=9=> zg2M`mO22;zF8KKMiI%sn*10q1gExd4Tr__0Nawtd=1GR4p57f6#zDrHjlC4+JeqW5 zQiwvZrlsk66-#?_JI#$M_Z&LAja4_VkXSOa+jy;pp}FW0vm@(n2~5vQWev9%-;m7k zms{%$Ye;A|0|V1hPZ!6KiaBrR?(Y(D6lhQX=4L3Q_l5Tz;~5_p9v5a)0Y081C&WMc zx(N8~Fuvg6VrFO}a^woT#f~r2Y}dE6xt_cG>gKy&WodQsJECo)uik(6Cvw%xGQ0Wa zP04QR2Bj(tZcGWp605i>K7F})R8K~^X2Ndhqw+>}x{5 ze?HACOENol?3Q8HldxI)wubFz+f(;-cjd=Vj+^Vt&d;53^p=FQwaTw6QLzUO{;mA| z`uOu_=RVhlCy6C*1Zul>ZoSIRtx}5Rj?2yWZ@YhQ-ap?r4;LT*?|bInW{K{thJrh% z9*fRadSiA)C|XZk`ms*hipldoT+7;$<(qP`S)zyKfCmFv#1|ohZ}a|MIv(M^twHn4 z8+E0uvqA<_=hZ5&3ftbW@cWzRe}r_*R)tLmvG4EtyLaZjujWX-Q1i4!L8@ACbSR9N?Py5`?g zyWib<`eZ-%>e8au%$Ho&d+m6&RYOhvfQRtBu#Gn?=UW~13u^fI{+I46k=uguySU$+ zGWGq>dXRMQi3khqOiR#sEo>tqydhVA-*m;b{vQH-4w&uz5!bfO?x6F<=9q$1}UC!63T%A>X{p+LZg;n2_SALU85S~^x>BP-o)s43{ z+h03rzRIrSY2NdR5{EZw=wF@RQoQYRL@H18%!(Orn0jL!flmIz$juWHS$RcxH84vt Nc)I$ztaD0e0sugnkpKVy literal 0 HcmV?d00001 diff --git a/modular_ss220/objects/icons/inhands/melee_righthand.dmi b/modular_ss220/objects/icons/inhands/melee_righthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..802a7b7052ead386b577ab3fc6b3899fafa8ab0a GIT binary patch literal 878 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoWmO>&B`&GO$wiq3C7Jno3=9=> zg2M`mO22;zF8KKMiI%sn*10q1gExd4Tr__0Nawtd=1GR4p57f6#zDrHjlC4+JeqW5 zQiwvZrlsk66-#?_JI#$M_Z&LAja4_VkXSOa+jy;pp}FW0vm@(n2~5vQWev9%-;m7k zms{%$Ye;A|0|V1$PZ!6KiaBrR?#;R#Akmf@tvi=VvY35mLtd=ci-1WBKL%)|Xw0or z-a9!+LuEpVN1H&?v_4txh1vQCCYZYA*&k+%{x`8!XRfraTLxOJzj}I; zj-X6!6?3dRQ-TVE8p{P2E@|F>@EX3K0VKb;UcYuB|P#^3$!ll$l2Q;WCzzc#I0VcNk>5zExpZB;n1 z@8{K11{X|Kf?$lM$P3NPEnfmN%#r^AAHa{U!XL71`-QEy~ z6XzOo3k)jeJ^87!bC*s2-w(3Wjso4csO8e*m+MjrivKRY*0^J}j_>@x_dk5kXtVF; zt+%P0Rc&a#Nd7^ae6(@8 z(dh}(PW|VKDi^!g9%0Sgck5i6o;CM=-PjjASIXoQn2V2ZsFjm7s_wJ9_E383y^f!D zR!h9+Hr{&QQY$Yj^m=hf*9v)t#s66k{$budB|LgVp7wlT24e7Z^>bP0l+XkKUZrtz literal 0 HcmV?d00001 diff --git a/modular_ss220/objects/icons/melee.dmi b/modular_ss220/objects/icons/melee.dmi new file mode 100644 index 0000000000000000000000000000000000000000..481ce4d8edffdea0bf7e54b1f924765273cb232e GIT binary patch literal 787 zcmV+u1MK{XP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5DLFN-Bso7fJ}I#z-av_qGbOXA7$|PY#hF%=n41b=V^wX4OSQ6s ztDg(lF#!AVD#j!iFF*hQ0$52zK~#90<(R!|Q&AYkpL5T>HW-nJF`-gxbqInWE<(}F z4(ePL{09UTmkx^H;^v^V*2!6^lOWbr)K=U?1fdjBTd=7eIuuN~AIJ0Fa5a`5+=C4X|Ke*G zK)@RhYiM8Ejh`Pz!5DC`Su-YKGrq4AJ}u3^pZ0KKY$pQW$KGRen3H#6^g>l9HWy!; z05Z>c4dFzDwNLF7PI*0>;9F;n>Eh<)YZ1_cdkCZGuldK){KYEH--->D-x{Bf-@L6A zo+L^7dTX$YN6&v5FTWXI=@87|lzw<31jY>B`8<530+_e!&+~q`iSK+-zA^!=;X&aC z_4FcalrPFxB4FmOFJ4Zqg0p1^)F4>Zc=^ERh4@N-1+Gu-!}r-En3;Nu)0YLl{#Z6r zoRXD~;0Tnr!bP}$MI(8*fAIm%Tt^dpu0T9Spg=>Q=AlFsyxN1 zpTTUm;C@|}kF}SlI3u8cw|Mcu+-~8F0E&&>!kHOhYqxOf1lZUuoH+ru@*C-QbpneU RH4*>-002ovPDHLkV1jDYas>bY literal 0 HcmV?d00001 diff --git a/modular_ss220/outfits/code/outfits.dm b/modular_ss220/outfits/code/outfits.dm index b35fc68b6dd6..5eaebc9de54e 100644 --- a/modular_ss220/outfits/code/outfits.dm +++ b/modular_ss220/outfits/code/outfits.dm @@ -74,6 +74,8 @@ /obj/item/ammo_box/speed_loader_mm127 = 3 ) +/datum/outfit/job/ntnavyofficer + l_pocket = /obj/item/melee/baseball_bat/homerun/central_command /obj/item/clothing/under/solgov/srt name = "marine uniform"