diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 3d2dfb8fb84..7a44148978e 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -615,12 +615,15 @@ if(iscarbon(M) && M.stat != DEAD) var/mob/living/carbon/C = M var/holycheck = ishumanbasic(C) - if(!(holycheck || islizard(C)) || reac_volume < 5) // implying xenohumans are holy //as with all things, + if(reac_volume < 5 || !(holycheck || islizard(C) || (ismoth(C) && C.dna.features["moth_wings"] != "Burnt Off"))) // implying xenohumans are holy //as with all things, if(method == INGEST && show_message) to_chat(C, "You feel nothing but a terrible aftertaste.") return ..() - - to_chat(C, "A terrible pain travels down your back as wings burst out!") + if(C.dna.species.has_innate_wings) + to_chat(C, "A terrible pain travels down your back as your wings change shape!") + C.dna.features["moth_wings"] = "None" + else + to_chat(C, "A terrible pain travels down your back as wings burst out!") C.dna.species.GiveSpeciesFlight(C) if(holycheck) to_chat(C, "You feel blessed!") diff --git a/code/modules/mob/dead/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm index e9cb770ccfd..3502bc1d867 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -1719,6 +1719,23 @@ center = TRUE dimension_y = 32 +/datum/sprite_accessory/wings/megamoth + name = "Megamoth" + icon_state = "megamoth" + color_src = 0 + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/megamoth + name = "Megamoth" + icon_state = "megamoth" + color_src = 0 + dimension_x = 96 + center = TRUE + dimension_y = 32 + /datum/sprite_accessory/frills icon = 'icons/mob/mutant_bodyparts.dmi' diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5ad72f33407..46ed7fcaee5 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -105,6 +105,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/datum/action/innate/flight/fly ///The icon used for the wings var/wings_icon = "Angel" + ///Used to determine what description to give when using a potion of flight, if false it will describe them as growing new wings + var/has_innate_wings = FALSE /// The natural temperature for a body var/bodytemp_normal = BODYTEMP_NORMAL diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index f8865b97c79..e827fbf4f78 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -17,6 +17,8 @@ mutanteyes = /obj/item/organ/eyes/moth changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT species_language_holder = /datum/language_holder/moth + wings_icon = "Megamoth" + has_innate_wings = TRUE /datum/species/moth/regenerate_organs(mob/living/carbon/C,datum/species/old_species,replace_current=TRUE,list/excluded_zones) . = ..() @@ -42,6 +44,13 @@ if(H.dna.features["moth_wings"] != "Burnt Off" && H.bodytemperature >= 800 && H.fire_stacks > 0) //do not go into the extremely hot light. you will not survive to_chat(H, "Your precious wings burn to a crisp!") H.dna.features["moth_wings"] = "Burnt Off" + if(flying_species) //This is all exclusive to if the person has the effects of a potion of flight + if(H.movement_type & FLYING) + ToggleFlight(H) + H.Knockdown(1.5 SECONDS) + fly.Remove(H) + QDEL_NULL(fly) + H.dna.features["wings"] = "None" handle_mutant_bodyparts(H) /datum/species/moth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) @@ -57,7 +66,7 @@ /datum/species/moth/space_move(mob/living/carbon/human/H) . = ..() - if(H.loc && !isspaceturf(H.loc) && H.dna.features["moth_wings"] != "Burnt Off") + if(H.loc && !isspaceturf(H.loc) && H.dna.features["moth_wings"] != "Burnt Off" && !flying_species) //"flying_species" is exclusive to the potion of flight, which has its flying mechanics. If they want to fly they can use that instead var/datum/gas_mixture/current = H.loc.return_air() if(current && (current.return_pressure() >= ONE_ATMOSPHERE*0.85)) //as long as there's reasonable pressure and no gravity, flight is possible return TRUE diff --git a/icons/mob/clothing/wings.dmi b/icons/mob/clothing/wings.dmi index cc170ec2443..5532c46d9c0 100644 Binary files a/icons/mob/clothing/wings.dmi and b/icons/mob/clothing/wings.dmi differ