mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 04:26:03 +01:00
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:
@@ -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 |
Reference in New Issue
Block a user