From b2a97d82dee2e18adfedaac0ae2018b5da91c0a1 Mon Sep 17 00:00:00 2001 From: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> Date: Thu, 18 Apr 2024 11:31:46 -0400 Subject: [PATCH] some primitive changes (#26730) Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> --- code/__HELPERS/~skyrat_helpers/is_helpers.dm | 1 + .../ashwalkers/code/effects/ash_rituals.dm | 22 +++++- .../ashwalkers/code/items/ash_centrifuge.dm | 1 + .../ashwalkers/code/items/ash_surgery.dm | 15 +++++ .../ashwalkers/code/items/ash_weapon.dm | 5 ++ .../ashwalkers/code/items/ashwalker_shaman.dm | 20 ++---- .../ashwalkers/icons/ashwalker_tools.dmi | Bin 1663 -> 5197 bytes .../code/plant_bag.dm | 63 ++++++++++++++++++ .../icons/plant_bag.dmi | Bin 0 -> 417 bytes .../icons/plant_bag_worn.dmi | Bin 0 -> 432 bytes .../icons/plant_bag_worn_mirror.dmi | Bin 0 -> 435 bytes tgstation.dme | 1 + 12 files changed, 111 insertions(+), 17 deletions(-) create mode 100644 modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.dm create mode 100644 modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag.dmi create mode 100644 modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag_worn.dmi create mode 100644 modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag_worn_mirror.dmi diff --git a/code/__HELPERS/~skyrat_helpers/is_helpers.dm b/code/__HELPERS/~skyrat_helpers/is_helpers.dm index 6c46b9295b1..75aa3ca1001 100644 --- a/code/__HELPERS/~skyrat_helpers/is_helpers.dm +++ b/code/__HELPERS/~skyrat_helpers/is_helpers.dm @@ -17,6 +17,7 @@ #define ishemophage(A) (is_species(A, /datum/species/hemophage)) #define issnail(A) (is_species(A, /datum/species/snail)) #define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent)) +#define isprimitivedemihuman(A) (is_species(A, /datum/species/human/felinid/primitive)) //Antags #define ishorrorling(A) (istype(A, /mob/living/simple_animal/hostile/true_changeling)) #define iscorticalborer(A) (istype(A, /mob/living/basic/cortical_borer)) diff --git a/modular_skyrat/modules/ashwalkers/code/effects/ash_rituals.dm b/modular_skyrat/modules/ashwalkers/code/effects/ash_rituals.dm index 4183396c931..5fc751d41d4 100644 --- a/modular_skyrat/modules/ashwalkers/code/effects/ash_rituals.dm +++ b/modular_skyrat/modules/ashwalkers/code/effects/ash_rituals.dm @@ -66,6 +66,25 @@ /obj/item/cursed_dagger, ) +/datum/ash_ritual/summon_cursed_carver + name = "Summon Cursed Ash Carver" + desc = "Summons a weapon that mimics the invader's tools, allowing us to collect trophies from the hunt." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /obj/item/cursed_dagger, + "east" = /obj/item/stack/sheet/bone, + "west" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/cursed_dagger, + /obj/item/stack/sheet/bone, + /obj/item/stack/sheet/sinew, + ) + ritual_success_items = list( + /obj/item/kinetic_crusher/cursed, + ) + /datum/ash_ritual/summon_tendril_seed name = "Summon Tendril Seed" desc = "Summons a seed that, when used in the hand, will cause a tendril to come through at your location." @@ -166,7 +185,6 @@ consumed_components = list( /obj/item/organ/internal/monster_core/regenerative_core, /mob/living/basic/mining/ice_whelp, - /obj/item/stack/ore/bluespace_crystal, ) /datum/ash_ritual/summon_lavaland_creature/ritual_success(obj/effect/ash_rune/success_rune) @@ -192,7 +210,6 @@ consumed_components = list( /obj/item/organ/internal/monster_core/regenerative_core, /obj/item/food/grown/surik, - /obj/item/stack/ore/bluespace_crystal, ) /datum/ash_ritual/summon_icemoon_creature/ritual_success(obj/effect/ash_rune/success_rune) @@ -216,7 +233,6 @@ "west" = /obj/item/xenoarch/useless_relic, ) consumed_components = list( - /obj/item/stack/ore/bluespace_crystal, /obj/item/stack/sheet/animalhide/goliath_hide, /obj/item/xenoarch/useless_relic, ) diff --git a/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm b/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm index 26051195cae..77a24c313db 100644 --- a/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm +++ b/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm @@ -3,6 +3,7 @@ desc = "A small cup that allows a person to slowly spin out liquids they do not desire." icon = 'modular_skyrat/modules/ashwalkers/icons/misc_tools.dmi' icon_state = "primitive_centrifuge" + volume = 100 material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_GREYSCALE | MATERIAL_COLOR /obj/item/reagent_containers/cup/primitive_centrifuge/examine() diff --git a/modular_skyrat/modules/ashwalkers/code/items/ash_surgery.dm b/modular_skyrat/modules/ashwalkers/code/items/ash_surgery.dm index ee5ebd017c5..74c1a5fae3d 100644 --- a/modular_skyrat/modules/ashwalkers/code/items/ash_surgery.dm +++ b/modular_skyrat/modules/ashwalkers/code/items/ash_surgery.dm @@ -88,3 +88,18 @@ /datum/crafting_recipe/ash_recipe/ash_hemostat name = "Ash Hemostat" result = /obj/item/hemostat/ashwalker + +/obj/item/bonesetter/ashwalker + name = "primitive bonesetter" + icon = 'modular_skyrat/modules/ashwalkers/icons/ashwalker_tools.dmi' + icon_state = "bonesetter" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_bonesetter + name = "Ash Bonesetter" + result = /obj/item/bonesetter/ashwalker diff --git a/modular_skyrat/modules/ashwalkers/code/items/ash_weapon.dm b/modular_skyrat/modules/ashwalkers/code/items/ash_weapon.dm index 2435874ba0a..5dd1409c714 100644 --- a/modular_skyrat/modules/ashwalkers/code/items/ash_weapon.dm +++ b/modular_skyrat/modules/ashwalkers/code/items/ash_weapon.dm @@ -27,3 +27,8 @@ ) always_available = FALSE category = CAT_WEAPON_MELEE + +/obj/item/kinetic_crusher/cursed + name = "cursed ash carver" + desc = "A horrible, alive-looking weapon that pulses every so often. The tendril created this monstrosity to mimic and compete with those who invade the land." + icon = 'modular_skyrat/modules/ashwalkers/icons/ashwalker_tools.dmi' diff --git a/modular_skyrat/modules/ashwalkers/code/items/ashwalker_shaman.dm b/modular_skyrat/modules/ashwalkers/code/items/ashwalker_shaman.dm index 8c051578689..670f8f72a3b 100644 --- a/modular_skyrat/modules/ashwalkers/code/items/ashwalker_shaman.dm +++ b/modular_skyrat/modules/ashwalkers/code/items/ashwalker_shaman.dm @@ -9,16 +9,16 @@ icon_state = "staffofanimation" inhand_icon_state = "staffofanimation" - ///If the world.time is above this, it wont work. Charging requires whacking the necropolis nest - var/staff_time = 0 - /obj/item/ash_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters) if(!proximity_flag) return ..() + if(!user.mind.has_antag_datum(/datum/antagonist/ashwalker)) return ..() + if(istype(target, /obj/structure/lavaland/ash_walker)) return + if(isopenturf(target)) var/turf/target_turf = target if(istype(target, /turf/open/misc/asteroid/basalt/lava_land_surface)) @@ -26,26 +26,18 @@ if(!do_after(user, 4 SECONDS, target = target_turf)) to_chat(user, span_warning("[src] had their casting cut short!")) return + target_turf.ChangeTurf(/turf/open/lava/smooth/lava_land_surface) to_chat(user, span_notice("[src] sparks, corrupting the area too far!")) return - if(world.time > staff_time) - to_chat(user, span_warning("[src] has had its permission expire from the necropolis!")) - return + if(!do_after(user, 2 SECONDS, target = target_turf)) to_chat(user, span_warning("[src] had their casting cut short!")) return + target_turf.ChangeTurf(/turf/open/misc/asteroid/basalt/lava_land_surface) return - return ..() -/obj/structure/lavaland/ash_walker/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/ash_staff) && user.mind.has_antag_datum(/datum/antagonist/ashwalker)) - var/obj/item/ash_staff/target_staff = I - target_staff.staff_time = world.time + 5 MINUTES - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) - to_chat(user, span_notice("The tendril permits you to have more time to corrupt the world with ashes.")) - return return ..() //generic ash item recipe diff --git a/modular_skyrat/modules/ashwalkers/icons/ashwalker_tools.dmi b/modular_skyrat/modules/ashwalkers/icons/ashwalker_tools.dmi index aa1224aca1e86ca74a6972263c5d861a3e21bb51..a39621f0d1d2ac3159bbf5df5b5119bad1a9f956 100644 GIT binary patch literal 5197 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 literal 1663 zcmV-_27vjAP)C0001iP)t-s00000 z|Nowne)aV2V^~Yi#je}ay^$j$q7e~1D;*`_7F$cPX;(63A+QL30%`E zG|rl{;EJMxKK_8F#haF*%#E;q*nxK_hZikSmwp_9P)KUfcu@sa(+MvqMN5Fs-`vW% zP>N?~Pu}O7c!;B2m<^kqM6m9OZaH4oBGgj(+iuCV?Vp3h#$JT~T7tUUL2dwwfAE;c z+4lX*UVewO0*Oir#{d8X!AV3xRCt{2o9T9&Fc5{Qf>?x=l(e*=3+|fMeg6mSjPbDr zXhs9_lAba?{*jE){WM~`LL{#Okz6`ffE8c`SOJy+sG9;PrS4Q3p{ehd0jNW0ooO9G zpfb0BVt~BJjsfyzg#KV#A%MxNO<@lKMNmsCpho&K0Hpw+a5o!|0l*DZs1hkX(w6|F zFzP^Hn0^(N(N4f9`3XSZ&IhodZ=nRVKG0RB9~>w#s4M?*>d_YfSdHB&K}1>i<1}Im z;4=qVO5Lw707z|LPNVJM<1~`mf*qm5A?(wa3_)2QHq(QT8)aEcS{~@*vFp{p&b5Hi zzY+kRJ7G`082}L67$C8DEPGE4R{{V8JeF??V7>bP>K)MvumY^H#{U${4aiG~`-j(2 z`Dpz>^PzmS{zF_oIX@hIEV)NtX4YbevdYZ>60Pz2I zFwf#ddd$PXANK-k44`|4)t}~Z3IKWtKHOS&CTf&7*8K%V(07m4_vWGDa{s^b6sb#q zc_186dkHq!Jw`s1A3y~rWIcH}wl-Y#L;1+4>o-kf=0G(;8Rgtsu z%ly4?2((SCvYahl>hEO$iS3`?Gx|&Yy%2z2KhVdIpG*C{9DrCqu#e|oK(Nf;ivjrf z{p-gD z3Gfbd&hOI_2JDOg{yX4~-k?lzx%Sxrs5|iOmb$6|fL3P%pdEmw2+DN-sM1TYJB5OK zOXo9NA9_gwq$xqL10#_4-+V`|?mkAIa}J2C06sF^6HHe~8}y?1-LEaDR(Buu(Kj1P zzt!88NG1I+n94&?fEj@=s57g(5Bj*uJ*Nyv+dgkwo&dKe^WjsgfpWpulj%CtZ?^!z z5+K012J#BzjIr-<*+q8>HS(8eBAHGVO=jyxspumr>X;B*ue1$z|W z-p^Ruu4}vF5YXquUB2({;9s)yKydy62=FLic7a}QS_4st=095UMC1}+4T`xJXW9G< zeI|6{57uDj#aXB?1Hc;K8)ZTQ`u!D8(3is@fx)w~41jxo#254tI3U1lqi8RftIyt* zI8j>R+icwXD=|@8Il)B$;PNbepO1cjz>%002ov JPDHLkV1kecFNOdB diff --git a/modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.dm b/modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.dm new file mode 100644 index 00000000000..d30273c4a5a --- /dev/null +++ b/modular_skyrat/modules/primitive_cooking_additions/code/plant_bag.dm @@ -0,0 +1,63 @@ +#define RESKIN_LINEN "Linen" + +/obj/item/storage/bag/plants + uses_advanced_reskins = TRUE + unique_reskin = list( + "Original" = list( + RESKIN_ICON = 'icons/obj/service/hydroponics/equipment.dmi', + RESKIN_ICON_STATE = "plantbag", + RESKIN_WORN_ICON = 'icons/mob/clothing/belt.dmi', + RESKIN_WORN_ICON_STATE = "plantbag", + ), + RESKIN_LINEN = list( + RESKIN_ICON = 'modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag.dmi', + RESKIN_ICON_STATE = "plantbag_primitive", + RESKIN_WORN_ICON = 'modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag_worn.dmi', + RESKIN_WORN_ICON_STATE = "plantbag_primitive", + ), + ) + +// This is so the linen reskin shows properly in the suit storage. +/obj/item/storage/bag/plants/build_worn_icon(default_layer, default_icon_file, isinhands, female_uniform, override_state, override_file, use_height_offset, mutant_styles) + if(default_layer == SUIT_STORE_LAYER && current_skin == RESKIN_LINEN) + override_file = 'modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag_worn_mirror.dmi' + + return ..() + +/// Simple helper to reskin this item into its primitive variant. +/obj/item/storage/bag/plants/proc/make_primitive() + current_skin = RESKIN_LINEN + + icon = unique_reskin[current_skin][RESKIN_ICON] + icon_state = unique_reskin[current_skin][RESKIN_ICON_STATE] + worn_icon = unique_reskin[current_skin][RESKIN_WORN_ICON] + worn_icon_state = unique_reskin[current_skin][RESKIN_WORN_ICON_STATE] + + update_appearance() + +/// A helper for the primitive variant, for mappers. +/obj/item/storage/bag/plants/primitive + current_skin = RESKIN_LINEN // Just so it displays properly when in suit storage + uses_advanced_reskins = FALSE + unique_reskin = null + icon = 'modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag.dmi' + icon_state = "plantbag_primitive" + worn_icon = 'modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag_worn.dmi' + worn_icon_state = "plantbag_primitive" + +/obj/item/stack/sheet/cloth/on_item_crafted(mob/builder, atom/created) + if(!istype(created, /obj/item/storage/bag/plants)) + return + + if(!isprimitivedemihuman(builder) && !isashwalker(builder)) + return + + var/obj/item/storage/bag/plants/bag = created + + bag.make_primitive() + +/obj/item/storage/bag/plants/portaseeder + uses_advanced_reskins = FALSE + unique_reskin = null + +#undef RESKIN_LINEN diff --git a/modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag.dmi b/modular_skyrat/modules/primitive_cooking_additions/icons/plant_bag.dmi new file mode 100644 index 0000000000000000000000000000000000000000..aa949961a41da659466acbd00b0f607c07277d52 GIT binary patch literal 417 zcmV;S0bc%zP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5sURmYuOulkJ-(nQGdHs&vn*AKi!&v&s2C_|$itvYZc4s!V2K|bdb)r>hO76Pw}5MAe)UF&TTl62~VvfG`jM>+CBQ?ZvCL5k)NY z3lecP3mzd^^!r}jOfwT=SvPHuRoB8v&hxQjfq4{zx_A=vNS1;!#EX$%yl9~Z1H0;7 zM!gKy@y5a@1)wH&{w;u-o!;o>1VXI)>U-P*K_8E`WPpMI0068>L_t(oh3%HH4g(N*(eB2JDz@I0VOWoL>;*o{zviCq~l62yD!W9txPtWvV5k zfW(oW3J9oes;z>6C{R~GKyOoRJ+1?o4;ofG`jM>+CBQ?ZvCL5k)NY z3lecP3mzd^^!r}jOfwT=SvPHuRoB8v&hxQjfq4{zx_A=vNS1;!#EX$%yl9~Z1H0;7 zM!gKy@y5a@1)wH&{w;u-o!;o>1VXI)>U-P*K_8E`WPpMI006H^L_t(oh3%Hh62l+} zMFZN{AW8oJZ>vnYs*ud2oo?<~3ZC(?;7$_&0Q?Lhr@+_tbIQpnobG*eI44gq7wagq zCwO+4Qg#H3Scfd0pmvyO{0dA}tV3#e59M`y2R(m-w_$t&^?v8GQ+2$4RR9100DO^c zi>hw=Fl_FZNWjkMKd`yKOC)g8%Ry~}zr+GdA3<1>PAF)ki)m|wQcEA}ojI@V1ov`+ dmp;H>c>yrm1A6m*V(