diff --git a/code/modules/mob/living/carbon/alien/login.dm b/code/modules/mob/living/carbon/alien/login.dm index 9701338e4b2..8d5968848b6 100644 --- a/code/modules/mob/living/carbon/alien/login.dm +++ b/code/modules/mob/living/carbon/alien/login.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/alien/humanoid/Login() +/mob/living/carbon/alien/Login() ..() AddInfectionImages() return diff --git a/code/modules/mob/living/carbon/alien/logout.dm b/code/modules/mob/living/carbon/alien/logout.dm index c0734cd21fd..a4145581cb3 100644 --- a/code/modules/mob/living/carbon/alien/logout.dm +++ b/code/modules/mob/living/carbon/alien/logout.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/alien/humanoid/Logout() +/mob/living/carbon/alien/Logout() ..() RemoveInfectionImages() return diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index ed677ec7c4b..56af0316df7 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -42,7 +42,7 @@ if(stage < 5 && prob(3)) stage++ spawn(0) - RefreshInfectionImage(affected_mob) + RefreshInfectionImage() switch(stage) if(2, 3) @@ -89,42 +89,32 @@ /*---------------------------------------- Proc: RefreshInfectionImage() -Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens. +Des: Removes the current icons located in the infected mob adds the current stage ----------------------------------------*/ + /mob/living/carbon/alien/embryo/proc/RefreshInfectionImage() - for(var/mob/living/carbon/alien/alien in player_list) - if(alien.client) - for(var/image/I in alien.client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) - for(var/mob/living/L in mob_list) - if(iscorgi(L) || iscarbon(L)) - if(L.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]") - alien.client.images += I + RemoveInfectionImages() + AddInfectionImages() /*---------------------------------------- Proc: AddInfectionImages(C) -Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C. +Des: Adds the infection image to all aliens for this embryo ----------------------------------------*/ -/mob/living/carbon/alien/embryo/AddInfectionImages(var/mob/living/C) - if(C) - for(var/mob/living/carbon/alien/alien in player_list) - if(alien.client) - if(C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I + +/mob/living/carbon/alien/embryo/AddInfectionImages() + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) + var/I = image('icons/mob/alien.dmi', loc = src.loc, icon_state = "infected[stage]") + alien.client.images += I /*---------------------------------------- Proc: RemoveInfectionImage(C) -Des: Removes the alien infection image from all aliens in the world located in passed mob (C). +Des: Removes all images from the mob infected by this embryo ----------------------------------------*/ -/mob/living/carbon/alien/embryo/RemoveInfectionImages(var/mob/living/C) - if(C) - for(var/mob/living/carbon/alien/alien in player_list) - if(alien.client) - for(var/image/I in alien.client.images) - if(I.loc == C) - if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) \ No newline at end of file +/mob/living/carbon/alien/embryo/RemoveInfectionImages() + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) + for(var/image/I in alien.client.images) + if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == loc) + del(I) diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 6deb4a3fbac..5ae0ec04a78 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ