Adds mothpeople potion of flight wings (#50183)

* First steps

* bugfix and color match

* Changes as requested

* h

* D

* T

* M

* Lowercase
This commit is contained in:
ArcaneDefence
2020-04-01 01:01:00 -06:00
committed by GitHub
parent 6f7f3bab9f
commit c092f08403
5 changed files with 35 additions and 4 deletions
@@ -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, "<span class='notice'><i>You feel nothing but a terrible aftertaste.</i></span>")
return ..()
to_chat(C, "<span class='userdanger'>A terrible pain travels down your back as wings burst out!</span>")
if(C.dna.species.has_innate_wings)
to_chat(C, "<span class='userdanger'>A terrible pain travels down your back as your wings change shape!</span>")
C.dna.features["moth_wings"] = "None"
else
to_chat(C, "<span class='userdanger'>A terrible pain travels down your back as wings burst out!</span>")
C.dna.species.GiveSpeciesFlight(C)
if(holycheck)
to_chat(C, "<span class='notice'>You feel blessed!</span>")
@@ -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'
@@ -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
@@ -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, "<span class='danger'>Your precious wings burn to a crisp!</span>")
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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 39 KiB