you can now go full undertale mode with the flower tendril loot (#14944)

* New tator item: Air Shoes

New 'air shoes'
-intended tot item for 4-5tc
-functionally wheelys that can ollie as well
-slight maneuverability in 0g just like moths

Co-Authored-By: Byemoh <5091394+ToasterBiome@users.noreply.github.com>

* things changed

-tried giving them the ability to ollie but botched it and idk how
-nvm baiomu told me

* Update scooter.dm

sparks appear on activation of shoes

* making it so if atmos is ok and gravity is gone yo can still move

* LAST THING DIDNT WORK

trying tje walk in pressurized thing again

* what do you MEAN UNDEFINED VAR

* stole from mothcode again instead

fuckin indentationerrors

* Update miscellaneous.dm

* fuck it dealing with this part later

* SPRITES BABEY

airshoes have proper worn/item sprites now

* changing shoe toggle sprites

toggling them on has its own sprite, but working on getting the ollie one to work properly

* another shot at the movement in 0g

second attempt at allowing movement in 0g and atmos

* headache part 4

* Update miscellaneous.dm

* messed up vehicle sprites

added in icons for riding but sprites are a bit buggy atm, will replace later when replacements come in

* trying to figure out why a button wont change

* got it

no longer skateboard ollie

* just had a worse idea

gonna replace noslip with something else

* yes its dashing

* jorts

* jorts 2

* vehicle sprite

* last sprite thing

added custom sprite for shoe dash

* shoes can be renamed now

* Update miscellaneous.dm

* other actions now available+fixed sprite mistake

-removed a redundant line stopping the action from being recognized
-removed old shoe vehicle sprites so there's no shoes on top of shoes

* Update miscellaneous.dm

* fixed a problem

walking while dashing used to just interrupt the dash so i just made the dash happen faster

* why does this keep happening when i merge master god

* think thats all the code?

* orca fixed my sprite at gunpoint

* think the code's finished?

* WHY THE FUCK WERE THESE GONE

* Update necropolis_chests.dm

* literally 1984

Co-authored-by: Byemoh <5091394+ToasterBiome@users.noreply.github.com>
Co-authored-by: ToasterBiome <baiomurang@gmail.com>
This commit is contained in:
LazennG
2022-07-22 23:20:46 -07:00
committed by GitHub
parent c12bab3c07
commit 6e1ac67447
7 changed files with 98 additions and 14 deletions

View File

@@ -92,6 +92,8 @@
#define STATUS_EFFECT_EXPOSED /datum/status_effect/exposed //increases incoming damage #define STATUS_EFFECT_EXPOSED /datum/status_effect/exposed //increases incoming damage
#define STATUS_EFFECT_TAMING /datum/status_effect/taming //tames the target after enough tame stacks
#define STATUS_EFFECT_NECROPOLIS_CURSE /datum/status_effect/necropolis_curse #define STATUS_EFFECT_NECROPOLIS_CURSE /datum/status_effect/necropolis_curse
#define STATUS_EFFECT_HIVEMIND_CURSE /datum/status_effect/necropolis_curse/hivemind #define STATUS_EFFECT_HIVEMIND_CURSE /datum/status_effect/necropolis_curse/hivemind
#define CURSE_BLINDING 1 //makes the edges of the target's screen obscured #define CURSE_BLINDING 1 //makes the edges of the target's screen obscured

View File

@@ -1112,3 +1112,50 @@
/datum/status_effect/knuckled/be_replaced() /datum/status_effect/knuckled/be_replaced()
owner.underlays -= bruise owner.underlays -= bruise
..() ..()
/datum/status_effect/taming
id = "taming"
duration = -1
tick_interval = 6
alert_type = null
var/tame_amount = 1
var/tame_buildup = 1
var/tame_crit = 35
var/needs_to_tame = FALSE
var/mob/living/tamer
/datum/status_effect/taming/on_creation(mob/living/owner, mob/living/user)
. = ..()
if(!.)
return
tamer = user
/datum/status_effect/taming/on_apply()
if(owner.stat == DEAD)
return FALSE
return ..()
/datum/status_effect/taming/tick()
if(owner.stat == DEAD)
qdel(src)
/datum/status_effect/taming/proc/add_tame(amount)
tame_amount += amount
if(tame_amount)
if(tame_amount >= tame_crit)
needs_to_tame = TRUE
qdel(src)
else
qdel(src)
/datum/status_effect/taming/on_remove()
var/mob/living/simple_animal/hostile/M = owner
if(needs_to_tame)
var/turf/T = get_turf(M)
new /obj/effect/temp_visual/love_heart(T)
M.drop_loot()
M.loot = null
M.add_atom_colour("#11c42f", FIXED_COLOUR_PRIORITY)
M.faction = tamer.faction
to_chat(tamer, span_notice("[M] is now friendly after exposure to the flowers!"))
. = ..()

View File

@@ -547,7 +547,6 @@
xenoshoe = YES_DIGIT xenoshoe = YES_DIGIT
mutantrace_variation = MUTANTRACE_VARIATION mutantrace_variation = MUTANTRACE_VARIATION
/obj/item/clothing/shoes/airshoes /obj/item/clothing/shoes/airshoes
name = "air shoes" name = "air shoes"
desc = "Footwear that uses propulsion technology to keep you above the ground and let you move faster." desc = "Footwear that uses propulsion technology to keep you above the ground and let you move faster."

View File

@@ -54,7 +54,7 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
if(16) if(16)
new /obj/item/organ/heart/gland/heals(src) new /obj/item/organ/heart/gland/heals(src)
if(17) if(17)
new /obj/item/emberflowers(src) new /obj/item/eflowers(src)
if(18) if(18)
new /obj/item/voodoo(src) new /obj/item/voodoo(src)
if(19) if(19)
@@ -746,27 +746,63 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
name = "jacob's ladder" name = "jacob's ladder"
desc = "An indestructible celestial ladder that violates the laws of physics." desc = "An indestructible celestial ladder that violates the laws of physics."
/obj/item/emberflowers #define COOLDOWN_SUMMON 1 MINUTES
name ="emberflower bouqet" /obj/item/eflowers
desc ="A charming bunch of flowers, most animals seem to find the bearer amicable after momentary contact with it." name ="enchanted flowers"
desc ="A charming bunch of flowers, most animals seem to find the bearer amicable after momentary contact with it. Squeeze the bouqet to summon tamed creatures. Megafauna cannot be summoned.<b>Megafauna need to be exposed 35 times to become friendly.</b>"
icon = 'icons/obj/lavaland/artefacts.dmi' icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "emberflower" icon_state = "eflower"
var/next_summon = 0
var/list/summons = list()
attack_verb = list("thumped", "brushed", "bumped")
/obj/item/emberflowers/attack(mob/living/simple_animal/M, mob/user) /obj/item/eflowers/attack_self(mob/user)
var/turf/T = get_turf(user)
var/area/A = get_area(user)
if(next_summon > world.time)
to_chat(user, span_warning("You can't do that yet!"))
return
if(is_station_level(T.z) && !A.outdoors)
to_chat(user, span_warning("You feel like calling a bunch of animals indoors is a bad idea."))
return
user.visible_message(span_warning("[user] holds the bouqet out, summoning their allies!"))
for(var/mob/m in summons)
m.forceMove(T)
playsound(T, 'sound/effects/splat.ogg', 80, 5, -1)
next_summon = world.time + COOLDOWN_SUMMON
/obj/item/eflowers/afterattack(mob/living/simple_animal/M, mob/user, proximity)
var/datum/status_effect/taming/G = M.has_status_effect(STATUS_EFFECT_TAMING)
. = ..()
if(!proximity)
return
if(M.client) if(M.client)
to_chat(user, span_warning("[M] is too intelligent to charm!")) to_chat(user, span_warning("[M] is too intelligent to tame!"))
return return
if(M.stat) if(M.stat)
to_chat(user, span_warning("[M] is dead!")) to_chat(user, span_warning("[M] is dead!"))
return return
if(M.faction == user.faction)
to_chat(user, span_warning("[M] is already on your side!"))
return
if(M.sentience_type == SENTIENCE_BOSS)
if(!G)
M.apply_status_effect(STATUS_EFFECT_TAMING, user)
else
G.add_tame(G.tame_buildup)
if(ISMULTIPLE(G.tame_crit-G.tame_amount, 5))
to_chat(user, span_notice("[M] has to be exposed [G.tame_crit-G.tame_amount] more times to accept your gift!"))
return
if(M.sentience_type != SENTIENCE_ORGANIC) if(M.sentience_type != SENTIENCE_ORGANIC)
to_chat(user, span_warning("[M] cannot be charmed!")) to_chat(user, span_warning("[M] cannot be tamed!"))
return return
if(!do_after(user, 1.5 SECONDS, M)) if(!do_after(user, 1.5 SECONDS, M))
return return
M.visible_message(span_notice("[M] seems happy with you after exposure to the emberflowers!")) M.visible_message(span_notice("[M] seems happy with you after exposure to the bouqet!"))
M.add_atom_colour("#fcff57", FIXED_COLOUR_PRIORITY) M.add_atom_colour("#11c42f", FIXED_COLOUR_PRIORITY)
M.drop_loot()
M.faction = user.faction M.faction = user.faction
summons |= M
///Bosses ///Bosses

View File

@@ -206,7 +206,7 @@ obj/structure/elite_tumor/proc/return_elite()
/obj/structure/elite_tumor/proc/fighters_check() /obj/structure/elite_tumor/proc/fighters_check()
if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator)) if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator))
onEliteWon() onEliteWon()
if(mychild != null && mychild.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(mychild)) if(mychild != null && mychild.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(mychild) || mychild.faction == activator.faction)
onEliteLoss() onEliteLoss()
/obj/structure/elite_tumor/proc/arena_trap() /obj/structure/elite_tumor/proc/arena_trap()

View File

@@ -251,8 +251,8 @@
V.visible_message(span_danger("[L] misses the landing and falls on [L.p_their()] face!")) V.visible_message(span_danger("[L] misses the landing and falls on [L.p_their()] face!"))
else else
L.spin(4, 1) L.spin(4, 1)
animate(L, pixel_y = -6, time = 0.4 SECONDS) animate(L, pixel_y = -6, time = 4)
animate(V, pixel_y = -6, time = 0.3 SECONDS) animate(V, pixel_y = -6, time = 3)
playsound(V, 'sound/vehicles/skateboard_ollie.ogg', 50, TRUE) playsound(V, 'sound/vehicles/skateboard_ollie.ogg', 50, TRUE)
passtable_on(L, VEHICLE_TRAIT) passtable_on(L, VEHICLE_TRAIT)
V.pass_flags |= PASSTABLE V.pass_flags |= PASSTABLE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB