diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 8026fbb56d7..ae610259049 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -417,6 +417,7 @@ GLOBAL_LIST_INIT(strippable_corgi_items, create_strippable_list(list( real_name = "Ian" //Intended to hold the name without altering it. gender = MALE desc = "He's the HoP's beloved corgi." + icon = 'modular_skyrat/modules/chadian/icons/ian.dmi' //SKYRAT EDIT CHANGE response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "bops" @@ -449,11 +450,15 @@ GLOBAL_LIST_INIT(strippable_corgi_items, create_strippable_list(list( desc = "At a ripe old age of [record_age], Ian's not as spry as he used to be, but he'll always be the HoP's beloved corgi." //RIP turns_per_move = 20 + old = TRUE //SKYRAT EDIT ADDITION + +/* SKYRAT EDIT REMOVAL /mob/living/simple_animal/pet/dog/corgi/ian/Life(delta_time = SSMOBS_DT, times_fired) if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) Write_Memory(FALSE) memory_saved = TRUE ..() +*/ /mob/living/simple_animal/pet/dog/corgi/ian/death() if(!memory_saved) diff --git a/modular_skyrat/modules/chadian/code/chadian.dm b/modular_skyrat/modules/chadian/code/chadian.dm new file mode 100644 index 00000000000..b89d12f30da --- /dev/null +++ b/modular_skyrat/modules/chadian/code/chadian.dm @@ -0,0 +1,55 @@ +#define RESTING_STATE_NONE 0 +#define RESTING_STATE_SIT 1 +#define RESTING_STATE_REST 2 + +/mob/living/simple_animal/pet/dog/corgi/ian + var/resting_state = 0 + var/old = FALSE + +/mob/living/simple_animal/pet/dog/corgi/ian/Life(delta_time = SSMOBS_DT, times_fired) + if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) + Write_Memory(FALSE) + memory_saved = TRUE + if(!stat && !buckled && !client && !inventory_head && !inventory_back) + if(DT_PROB(0.5, delta_time)) + manual_emote(pick("flops forward laying flat.", "wags [p_their()] tail.", "lies down.")) + set_rest_state(RESTING_STATE_REST) + else if(DT_PROB(0.5, delta_time)) + manual_emote(pick("sits down.", "crouches on [p_their()] hind legs.", "looks alert.")) + set_rest_state(RESTING_STATE_SIT) + else if(DT_PROB(0.5, delta_time)) + if (resting_state) + manual_emote(pick("gets up and barks.", "walks around.", "stops resting.")) + set_rest_state(RESTING_STATE_NONE) + else + manual_emote(pick("grooms [p_their()] fur.", "twitches [p_their()] ears.", "shakes [p_their()] fur.")) + ..() + +/mob/living/simple_animal/pet/dog/corgi/ian/Moved() + . = ..() + if(resting_state) + manual_emote(pick("gets up and barks.", "walks around.", "stops resting.")) + set_rest_state(RESTING_STATE_NONE) + +/mob/living/simple_animal/pet/dog/corgi/ian/proc/set_rest_state(state) + resting_state = state + update_icons() + +/mob/living/simple_animal/pet/dog/corgi/ian/update_icons() + . = ..() + if(old && !stat) + icon_state = "[initial(icon_state)]_old[shaved ? "_shaved" : ""]" + else if(!stat) + switch(resting_state) + if(RESTING_STATE_NONE) + icon_state = initial(icon_state) + if(RESTING_STATE_SIT) + icon_state = "[initial(icon_state)]_sit[shaved ? "_shaved" : ""]" + if(RESTING_STATE_REST) + icon_state = "[initial(icon_state)]_rest[shaved ? "_shaved" : ""]" + else + icon_state = icon_dead + +#undef RESTING_STATE_NONE +#undef RESTING_STATE_SIT +#undef RESTING_STATE_REST diff --git a/modular_skyrat/modules/chadian/icons/ian.dmi b/modular_skyrat/modules/chadian/icons/ian.dmi new file mode 100644 index 00000000000..fe59205d82b Binary files /dev/null and b/modular_skyrat/modules/chadian/icons/ian.dmi differ diff --git a/tgstation.dme b/tgstation.dme index ff043e7ca42..a9244ab5f51 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4299,6 +4299,7 @@ #include "modular_skyrat\modules\central_command_module\code\computers\ert_control_computer.dm" #include "modular_skyrat\modules\central_command_module\code\computers\station_goal_computer.dm" #include "modular_skyrat\modules\central_command_module\code\obj\wall.dm" +#include "modular_skyrat\modules\chadian\code\chadian.dm" #include "modular_skyrat\modules\chaplain\code\game\objects\items\implants\mortis.dm" #include "modular_skyrat\modules\cme\code\_cme_defines.dm" #include "modular_skyrat\modules\cme\code\cme.dm"