mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
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:
@@ -92,6 +92,8 @@
|
||||
|
||||
#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_HIVEMIND_CURSE /datum/status_effect/necropolis_curse/hivemind
|
||||
#define CURSE_BLINDING 1 //makes the edges of the target's screen obscured
|
||||
|
||||
@@ -1112,3 +1112,50 @@
|
||||
/datum/status_effect/knuckled/be_replaced()
|
||||
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!"))
|
||||
. = ..()
|
||||
|
||||
@@ -547,7 +547,6 @@
|
||||
xenoshoe = YES_DIGIT
|
||||
mutantrace_variation = MUTANTRACE_VARIATION
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/airshoes
|
||||
name = "air shoes"
|
||||
desc = "Footwear that uses propulsion technology to keep you above the ground and let you move faster."
|
||||
|
||||
@@ -54,7 +54,7 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
|
||||
if(16)
|
||||
new /obj/item/organ/heart/gland/heals(src)
|
||||
if(17)
|
||||
new /obj/item/emberflowers(src)
|
||||
new /obj/item/eflowers(src)
|
||||
if(18)
|
||||
new /obj/item/voodoo(src)
|
||||
if(19)
|
||||
@@ -746,27 +746,63 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
|
||||
name = "jacob's ladder"
|
||||
desc = "An indestructible celestial ladder that violates the laws of physics."
|
||||
|
||||
/obj/item/emberflowers
|
||||
name ="emberflower bouqet"
|
||||
desc ="A charming bunch of flowers, most animals seem to find the bearer amicable after momentary contact with it."
|
||||
#define COOLDOWN_SUMMON 1 MINUTES
|
||||
/obj/item/eflowers
|
||||
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_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)
|
||||
to_chat(user, span_warning("[M] is too intelligent to charm!"))
|
||||
to_chat(user, span_warning("[M] is too intelligent to tame!"))
|
||||
return
|
||||
if(M.stat)
|
||||
to_chat(user, span_warning("[M] is dead!"))
|
||||
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)
|
||||
to_chat(user, span_warning("[M] cannot be charmed!"))
|
||||
to_chat(user, span_warning("[M] cannot be tamed!"))
|
||||
return
|
||||
if(!do_after(user, 1.5 SECONDS, M))
|
||||
return
|
||||
M.visible_message(span_notice("[M] seems happy with you after exposure to the emberflowers!"))
|
||||
M.add_atom_colour("#fcff57", FIXED_COLOUR_PRIORITY)
|
||||
M.visible_message(span_notice("[M] seems happy with you after exposure to the bouqet!"))
|
||||
M.add_atom_colour("#11c42f", FIXED_COLOUR_PRIORITY)
|
||||
M.drop_loot()
|
||||
M.faction = user.faction
|
||||
summons |= M
|
||||
|
||||
///Bosses
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ obj/structure/elite_tumor/proc/return_elite()
|
||||
/obj/structure/elite_tumor/proc/fighters_check()
|
||||
if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator))
|
||||
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()
|
||||
|
||||
/obj/structure/elite_tumor/proc/arena_trap()
|
||||
|
||||
@@ -251,8 +251,8 @@
|
||||
V.visible_message(span_danger("[L] misses the landing and falls on [L.p_their()] face!"))
|
||||
else
|
||||
L.spin(4, 1)
|
||||
animate(L, pixel_y = -6, time = 0.4 SECONDS)
|
||||
animate(V, pixel_y = -6, time = 0.3 SECONDS)
|
||||
animate(L, pixel_y = -6, time = 4)
|
||||
animate(V, pixel_y = -6, time = 3)
|
||||
playsound(V, 'sound/vehicles/skateboard_ollie.ogg', 50, TRUE)
|
||||
passtable_on(L, VEHICLE_TRAIT)
|
||||
V.pass_flags |= PASSTABLE
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Reference in New Issue
Block a user