diff --git a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm index f2672742894..9d38c525db2 100644 --- a/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2_skyrat.dmm @@ -110982,6 +110982,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/engineering/atmos) +"vBh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/pet/bumbles, +/turf/open/floor/iron, +/area/service/hydroponics) "vBu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ dir = 4 @@ -145262,7 +145276,7 @@ bnh bnj bqz bsx -bnj +vBh bvB bwN bar diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above_skyrat.dmm b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above_skyrat.dmm index fa3a6f18c87..a3489dc5e6c 100644 --- a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above_skyrat.dmm +++ b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above_skyrat.dmm @@ -4126,6 +4126,10 @@ /obj/structure/window/reinforced/spawner/west, /turf/open/floor/iron/dark, /area/commons/fitness) +"xh" = ( +/mob/living/simple_animal/pet/bumbles, +/turf/open/floor/grass, +/area/service/hydroponics) "xi" = ( /obj/effect/spawner/structure/window/reinforced, /turf/closed/wall, @@ -47703,7 +47707,7 @@ Wq Ct SC bN -bN +xh vl Wq ak diff --git a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm index 453346e3fcb..59c9407cec9 100644 --- a/_maps/map_files/KiloStation/KiloStation_skyrat.dmm +++ b/_maps/map_files/KiloStation/KiloStation_skyrat.dmm @@ -86975,6 +86975,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/ai_monitored/security/armory) +"pHB" = ( +/mob/living/simple_animal/pet/bumbles, +/turf/open/floor/iron, +/area/service/hydroponics) "pMS" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -124942,7 +124946,7 @@ bnJ bGV bod bzC -bzC +pHB bAs bCF bFW diff --git a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm index 4ac8aa42bc4..3dada88c4b3 100644 --- a/_maps/map_files/MetaStation/MetaStation_skyrat.dmm +++ b/_maps/map_files/MetaStation/MetaStation_skyrat.dmm @@ -61972,6 +61972,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ dir = 4 }, +/mob/living/simple_animal/pet/bumbles, /turf/open/floor/iron, /area/service/hydroponics) "pKJ" = ( diff --git a/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.dm new file mode 100644 index 00000000000..626461a767c --- /dev/null +++ b/modular_skyrat/master_files/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -0,0 +1,68 @@ +/mob/living/simple_animal/pet/bumbles + name = "Bumbles" + desc = "Bumbles, the very humble bumblebee." + icon = 'modular_skyrat/master_files/icons/mob/pets.dmi' + icon_state = "bumbles" + icon_living = "bumbles" + icon_dead = "bumbles_dead" + turns_per_move = 1 + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "brushes aside" + response_help_simple = "brush aside" + response_harm_continuous = "squashes" + response_harm_simple = "squash" + speak_emote = list("buzzes") + friendly_verb_continuous = "bzzs" + friendly_verb_simple = "bzz" + density = FALSE + is_flying_animal = TRUE + mobility_flags = MOBILITY_FLAGS_REST_CAPABLE_DEFAULT + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + mob_biotypes = MOB_ORGANIC|MOB_BEAST + gold_core_spawnable = FRIENDLY_SPAWN + verb_say = "buzzs" + verb_ask = "buzzes inquisitively" + verb_exclaim = "buzzes intensely" + verb_yell = "buzzes intensely" + emote_see = list("buzzes.", "makes a loud buzz.", "rolls several times.", "buzzes happily.") + speak_chance = 1 + unique_name = TRUE + +/mob/living/simple_animal/pet/bumbles/Initialize() + . = ..() + add_verb(src, /mob/living/proc/toggle_resting) + ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + + +/mob/living/simple_animal/pet/bumbles/update_resting() + . = ..() + if(stat == DEAD) + return + if (resting) + icon_state = "[icon_living]_rest" + else + icon_state = "[icon_living]" + regenerate_icons() + +/mob/living/simple_animal/pet/bumbles/bee_friendly() + return TRUE //treaty signed at the Beeneeva convention + +/mob/living/simple_animal/pet/bumbles/handle_automated_movement() + . = ..() + +/mob/living/simple_animal/pet/bumbles/Life(delta_time = SSMOBS_DT, times_fired) + if(!stat && !buckled && !client) + if(DT_PROB(0.5, delta_time)) + manual_emote(pick("curls up on the surface below.", "is looking very sleepy.", "buzzes happily.", "looks around for a flower nap.")) + REMOVE_TRAIT(src, TRAIT_MOVE_FLYING, ROUNDSTART_TRAIT) + set_resting(TRUE) + else if(DT_PROB(0.5, delta_time)) + if (resting) + manual_emote(pick("wakes up with a smiling buzz.", "rolls upside down before waking up.", "stops resting.")) + ADD_TRAIT(src, TRAIT_MOVE_FLYING, ROUNDSTART_TRAIT) + set_resting(FALSE) + else + manual_emote(pick("buzzes softly.")) + ..() diff --git a/modular_skyrat/master_files/icons/mob/pets.dmi b/modular_skyrat/master_files/icons/mob/pets.dmi new file mode 100644 index 00000000000..9b92ba46016 Binary files /dev/null and b/modular_skyrat/master_files/icons/mob/pets.dmi differ diff --git a/tgstation.dme b/tgstation.dme index a1cae218f9f..69bd3e66547 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3473,6 +3473,7 @@ #include "modular_skyrat\master_files\code\modules\language\language_holders.dm" #include "modular_skyrat\master_files\code\modules\mob\living\emote_popup.dm" #include "modular_skyrat\master_files\code\modules\mob\living\carbon\carbon_say.dm" +#include "modular_skyrat\master_files\code\modules\mob\living\simple_animal\friendly\bumbles.dm" #include "modular_skyrat\master_files\code\modules\power\lighting.dm" #include "modular_skyrat\master_files\code\modules\uplink\uplink_items.dm" #include "modular_skyrat\modules\additionalert\code\datums\ert.dm"