mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 06:00:16 +01:00
+3








77616e8b0e
## About The Pull Request Adds the funny nanite blob dudes from Vigro code into the game. It's more of a port of the idea since they're coded from the ground up. They will be more of a utility focused species then a combat focused species. **They are fragile.** - Eats metal. You need metal to live and you need metal to heal. - Healed by materials. You feed Proteans metal to heal them. - Difficult to kill, but extremely fragile. They are considered a deathless species but they are stuck in their suit if they die. **You have to order a new refactory from cargo to revive them** **Order Refactory > Screwdriver suit > Insert refactory > Wait 5 minutes.** - Easily dismembered. They have 30 seconds to recover their limbs and pop them on or they will melt into nothingness. Can do a lengthy heal which replaces missing limbs and easy to replace organs. - Without a refactory, you will wither away. - Without an orchastrator, you will have a lot of issues moving. - You can lock your suit on someone. (OOC escape will work) - You can assimilate modsuits. - [x] OOC escape - [x] Suit Transformation fixes - [x] Modsuit Assimilation - [x] Ensure organs are working - [x] Species info and lore - [x] Antag Proteans - [x] Custom damage. Disable various surgeries. - [x] Testing, polish, feedback. - [x] Runtime and CI fixing. - [ ] Live testing and balance. ## Why It's Good For The Game This was the second to top vote on species people wanted to see added and this is more custom mechanics then what is just a human reskin. ## Proof Of Testing   ## Changelog 🆑 StrangeWeirdKitten, Majkl-J add: New species: Proteans /🆑 --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> Co-authored-by: Bubberbot <151680451+Bubberbot@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: aKromatopzia <94389683+aKromatopzia@users.noreply.github.com> Co-authored-by: Jinshee <96621959+Jinshee@users.noreply.github.com> Co-authored-by: Jinshee <manastra2536@gmail.com> Co-authored-by: JustMeTheIInd <145101584+JustMeTheIInd@users.noreply.github.com> Co-authored-by: nevimer <77420409+nevimer@users.noreply.github.com> Co-authored-by: Odairu <39929315+Odairu@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
81 lines
2.6 KiB
Plaintext
81 lines
2.6 KiB
Plaintext
#define MOB_LAYER_SHIFT_INCREMENT 1
|
|
/// The amount by which layers are multiplied before being modified.
|
|
/// Helps avoiding floating point errors.
|
|
#define MOB_LAYER_MULTIPLIER 100
|
|
#define MOB_LAYER_SHIFT_MIN 3.95
|
|
//#define MOB_LAYER 4 // This is a byond standard define
|
|
#define MOB_LAYER_SHIFT_MAX 4.05
|
|
|
|
/mob/living/verb/shift_layer_up()
|
|
set name = "Shift Layer Upwards"
|
|
set category = "IC"
|
|
|
|
if(incapacitated)
|
|
to_chat(src, span_warning("You can't do that right now!"))
|
|
return FALSE
|
|
|
|
if(layer >= MOB_LAYER_SHIFT_MAX)
|
|
to_chat(src, span_warning("You cannot increase your layer priority any further."))
|
|
return FALSE
|
|
|
|
layer = min(((layer * MOB_LAYER_MULTIPLIER) + MOB_LAYER_SHIFT_INCREMENT) / MOB_LAYER_MULTIPLIER, MOB_LAYER_SHIFT_MAX)
|
|
var/layer_priority = round(layer * MOB_LAYER_MULTIPLIER - MOB_LAYER * MOB_LAYER_MULTIPLIER, MOB_LAYER_SHIFT_INCREMENT) // Just for text feedback
|
|
to_chat(src, span_notice("Your layer priority is now [layer_priority]."))
|
|
|
|
return TRUE
|
|
|
|
/mob/living/verb/shift_layer_down()
|
|
set name = "Shift Layer Downwards"
|
|
set category = "IC"
|
|
|
|
if(incapacitated)
|
|
to_chat(src, span_warning("You can't do that right now!"))
|
|
return FALSE
|
|
|
|
if(layer <= MOB_LAYER_SHIFT_MIN)
|
|
to_chat(src, span_warning("You cannot decrease your layer priority any further."))
|
|
return FALSE
|
|
|
|
layer = max(((layer * MOB_LAYER_MULTIPLIER) - MOB_LAYER_SHIFT_INCREMENT) / MOB_LAYER_MULTIPLIER, MOB_LAYER_SHIFT_MIN)
|
|
var/layer_priority = round(layer * MOB_LAYER_MULTIPLIER - MOB_LAYER * MOB_LAYER_MULTIPLIER, MOB_LAYER_SHIFT_INCREMENT) // Just for text feedback
|
|
to_chat(src, span_notice("Your layer priority is now [layer_priority]."))
|
|
|
|
return TRUE
|
|
|
|
|
|
/datum/emote/living/shift_layer_up
|
|
key = "shiftlayerup"
|
|
message = null
|
|
mob_type_blacklist_typecache = list(/mob/living/brain)
|
|
cooldown = 0.25 SECONDS
|
|
|
|
/datum/emote/living/shift_layer_up/run_emote(mob/user, params, type_override, intentional)
|
|
if(!can_run_emote(user))
|
|
to_chat(user, span_warning("You can't change layer at this time."))
|
|
return FALSE
|
|
|
|
var/mob/living/layer_shifter = user
|
|
|
|
return layer_shifter.shift_layer_up()
|
|
|
|
|
|
/datum/emote/living/shift_layer_down
|
|
key = "shiftlayerdown"
|
|
message = null
|
|
mob_type_blacklist_typecache = list(/mob/living/brain)
|
|
cooldown = 0.25 SECONDS
|
|
|
|
/datum/emote/living/shift_layer_down/run_emote(mob/user, params, type_override, intentional)
|
|
if(!can_run_emote(user))
|
|
to_chat(user, span_warning("You can't change layer at this time."))
|
|
return FALSE
|
|
|
|
var/mob/living/layer_shifter = user
|
|
|
|
return layer_shifter.shift_layer_down()
|
|
|
|
#undef MOB_LAYER_SHIFT_INCREMENT
|
|
#undef MOB_LAYER_MULTIPLIER
|
|
#undef MOB_LAYER_SHIFT_MIN
|
|
#undef MOB_LAYER_SHIFT_MAX
|