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 1/2] 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" From 7e7b455402937a7a588abd166954d7acccdb109a Mon Sep 17 00:00:00 2001 From: konushi <139562134+konushi@users.noreply.github.com> Date: Tue, 14 Nov 2023 02:05:21 +0300 Subject: [PATCH 2/2] Fix: Cavevs mobs fixes (#692) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Что этот PR делает Добавил мерзостям возможность видеть в темноте. Древний маг теперь не появляется в результате ивента с блюспейс разломом. Добавил ттс магу и мерзостям. Добавил сломанный голопад в лаборатории. ## Почему это хорошо для игры Засада теперь лучше ## Изображения изменений ## Тестирование Локалка ## Changelog :cl: fix: Мерзости теперь видят в темноте. Маг не появляется в результате разлома на станции. В лаборатории можно сделать голопад. /:cl: --- _maps/map_files220/RandomZLevels/caves.dmm | 16 ++-- modular_ss220/maps220/code/mobs.dm | 94 +++++++++++++--------- 2 files changed, 64 insertions(+), 46 deletions(-) diff --git a/_maps/map_files220/RandomZLevels/caves.dmm b/_maps/map_files220/RandomZLevels/caves.dmm index b50a0494bbed..6c00ef4ef7e1 100644 --- a/_maps/map_files220/RandomZLevels/caves.dmm +++ b/_maps/map_files220/RandomZLevels/caves.dmm @@ -4099,11 +4099,9 @@ }, /area/awaymission/caves/build/reqpower_build) "uO" = ( -/mob/living/simple_animal/hostile/skeleton/deadwizard{ - wander = 0 - }, /obj/structure/stone_tile/slab, /obj/structure/stone_tile/slab, +/mob/living/simple_animal/hostile/deadwizard, /turf/simulated/floor/engine/cult/lavaland_air{ planetary_atmos = 1 }, @@ -5732,14 +5730,14 @@ }, /area/awaymission/caves) "Dw" = ( -/obj/structure{ - icon_state = "holopad_open"; - icon = 'icons/obj/stationobjs.dmi'; - desc = "Holopad for long-distance communication."; - name = "holopad" +/obj/machinery/light/small/directional/west, +/obj/machinery/constructable_frame/machine_frame, +/obj/item/stack/cable_coil{ + amount = 5 }, +/obj/item/stock_parts/capacitor/adv, +/obj/item/circuitboard/holopad, /obj/effect/spawner/random_spawners/dirt_often, -/obj/machinery/light/small/directional/west, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "dark" diff --git a/modular_ss220/maps220/code/mobs.dm b/modular_ss220/maps220/code/mobs.dm index a8bd0f769632..88aaf29f8797 100644 --- a/modular_ss220/maps220/code/mobs.dm +++ b/modular_ss220/maps220/code/mobs.dm @@ -188,42 +188,6 @@ melee_damage_upper = 30 speed = -1 -/mob/living/simple_animal/hostile/skeleton/deadwizard - name = "древний маг" - desc = "Древний волшебник, тысячелетиями властвующий над проклятым могильником." - icon = 'modular_ss220/maps220/icons/simple_human.dmi' - icon_living = "deadwizard" - icon_state = "deadwizard" - maxHealth = 400 - health = 400 - ranged = 1 - retreat_distance = 7 - minimum_distance = 5 - ranged_cooldown_time = 5 - ranged_ignores_vision = TRUE - aggro_vision_range = 12 - vision_range = 12 - del_on_death = 1 - projectilesound = 'sound/magic/blind.ogg' - loot = list( - /obj/effect/decal/remains/human, - /obj/item/clothing/head/crown, - /obj/item/clothing/suit/imperium_monk, - /obj/effect/particle_effect/smoke/bad, - /obj/item/emerald_stone) - -/mob/living/simple_animal/hostile/skeleton/deadwizard/Shoot(atom/targeted_atom) - ..() - if (get_dist(src, targeted_atom) > 9) - rapid = 1 - ranged_cooldown_time = 15 - projectiletype = /obj/item/projectile/magic/fireball/infernal - else - projectiletype = /obj/item/projectile/magic/arcane_barrage - rapid = 4 - rapid_fire_delay = 1 - ranged_cooldown_time = 15 - /* Vox Raiders */ /mob/living/simple_animal/hostile/vox name = "Vox Raider" @@ -548,6 +512,9 @@ minbodytemp = 0 weather_immunities = list("ash") stat_attack = UNCONSCIOUS + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + tts_seed = "Anubarak" /mob/living/simple_animal/hostile/abomination/super desc = "Оскалившийся, страшный монстр. Этот кажется проворным." @@ -607,7 +574,7 @@ del_on_death = TRUE random_color = FALSE -/* Clown */ +/* Caves bosses */ /mob/living/simple_animal/hostile/clown/mutant name = "неизвестный" desc = "Что бы это не было, уничтожь его!" @@ -634,3 +601,56 @@ attacktext = "неловко замахивается на" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/gibspawner/human, /obj/item/grown/bananapeel, /obj/item/bikehorn/golden) wander = FALSE + +/mob/living/simple_animal/hostile/deadwizard + name = "\improper древний маг" + desc = "Древний некромант, тысячелетиями властвующий над проклятым могильником." + icon = 'modular_ss220/maps220/icons/simple_human.dmi' + icon_living = "deadwizard" + icon_state = "deadwizard" + mob_biotypes = MOB_UNDEAD | MOB_HUMANOID + turns_per_move = 5 + speak_emote = list("rattles") + emote_see = list("rattles") + a_intent = INTENT_HARM + maxHealth = 400 + health = 400 + ranged = TRUE + retreat_distance = 7 + minimum_distance = 5 + ranged_cooldown_time = 5 + ranged_ignores_vision = TRUE + robust_searching = TRUE + aggro_vision_range = 12 + vision_range = 12 + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + minbodytemp = 0 + maxbodytemp = 1500 + speed = 1 + healable = FALSE + stat_attack = UNCONSCIOUS + faction = list("skeleton") + projectilesound = 'sound/magic/blind.ogg' + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + deathmessage = "collapses into a pile of bones!" + del_on_death = TRUE + loot = list( + /obj/effect/decal/remains/human, + /obj/item/clothing/head/crown, + /obj/item/clothing/suit/imperium_monk, + /obj/effect/particle_effect/smoke/bad, + /obj/item/emerald_stone) + tts_seed = "Abaddon" + +/mob/living/simple_animal/hostile/deadwizard/Shoot(atom/targeted_atom) + ..() + if (get_dist(src, targeted_atom) > 9) + rapid = 1 + ranged_cooldown_time = 15 + projectiletype = /obj/item/projectile/magic/fireball/infernal + else + projectiletype = /obj/item/projectile/magic/arcane_barrage + rapid = 4 + rapid_fire_delay = 1 + ranged_cooldown_time = 15