new Olmec loot: Archaic clay canister (#21932)

* 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

* biden blast

* Revert "biden blast"

This reverts commit 21cfbf9761.

* Update reverbpalm.dm

* Update reverbpalm.dm

* Revert "Update reverbpalm.dm"

This reverts commit 82eb94f0c2.

* Revert "Update reverbpalm.dm"

This reverts commit 57ad3ae093.

* purple

* Update necropolis_chests.dm

* on second thought you're really probably not landing this

5 damageb uff

* new

* just read jjk259

* chosooooooo

* i changed the sprite yet again cuackles oops

* almost forgot to get rid of you

* Update necropolis_chests.dm

* Update necropolis_chests.dm

* Update artefacts.dmi

* Update necropolis_chests.dm

* whats the point of being a maintainer if you're gonna ignore the pr list and make molti check old ones long after the momentum is dead are you just a role collector or something

* Update necropolis_chests.dm

---------

Co-authored-by: Byemoh <5091394+ToasterBiome@users.noreply.github.com>
Co-authored-by: ToasterBiome <baiomurang@gmail.com>
This commit is contained in:
LazennG
2024-06-11 01:37:25 -07:00
committed by GitHub
parent 53538c6995
commit d88a72b341
2 changed files with 133 additions and 0 deletions

View File

@@ -2006,3 +2006,136 @@ GLOBAL_LIST_EMPTY(aide_list)
var/mob/living/M = hit_atom
if(curse(thrownby, M) == TRUE)
to_chat(thrownby, span_notice("You appear before the cane and stab [M], making a new minion out of [M.p_them()]!"))
//Olmec
#define COOLDOWN_HEADCRAFT 10 SECONDS
/obj/item/claycanister
name = "archaic clay canister"
desc = "A seemingly bottomless canister of violet clay. Kneading it seems to always results in a shape resembling a head, regardless of intent or concentration."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "claycan"
force = 5
throwforce = 3
w_class = WEIGHT_CLASS_NORMAL
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
COOLDOWN_DECLARE(next_headcraft)
var/next_craft = 0
/obj/item/claycanister/attack_self(mob/user)
if(!COOLDOWN_FINISHED(src, next_headcraft))
to_chat(user, span_warning("You can't do that yet!"))
return
var/obj/item/minihead/B = new()
user.put_in_hands(B)
to_chat(user, span_notice("You mold a head from the clay!"))
COOLDOWN_START(src, next_headcraft, COOLDOWN_HEADCRAFT)
/obj/item/minihead
name = "small clay head"
desc = "An earthen homage to its colossal predecessor. The round shape and heft almost scream its desire for flight."
icon = 'yogstation/icons/mob/human_parts.dmi'
icon_state = "b_golem_head"
var/list/headlist = list("abductor_head", "plasmaman_head", "skeleton_head", "cultgolem_head", "fly_head_m", "moth_head_f", "agent_head", "skeleton_head")
color = "#774e6d"
force = 0
throwforce = 0
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //indestructable bc it needs to exist for a few seconds before dying to not runtime
w_class = WEIGHT_CLASS_SMALL
var/usedup = FALSE
var/smashdam = 25
var/animaldam = 50
var/objdam = 25
/obj/item/minihead/Initialize(mapload)
. = ..()
src.icon_state = pick(headlist)
/obj/item/minihead/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
. = ..()
if(hit_atom && !usedup)
rise(hit_atom, src.icon_state)
usedup = TRUE
/obj/item/minihead/after_throw(datum/callback/callback)
. = ..()
if(!usedup)
rise(src.loc, src.icon_state)
usedup = TRUE
/obj/item/minihead/attack_self(mob/user)
if(!usedup)
rise(src, src.icon_state)
usedup = TRUE
/obj/item/minihead/attack_hand(mob/user)
if(isturf(src.loc) && usedup)
return
. = ..()
/obj/item/minihead/pickup(mob/user)
if(usedup)
return FALSE
. = ..()
/obj/item/minihead/proc/rise(atom/target, icon_state)
target.visible_message(span_warning("A stone head grows and floats overhead!"))
alpha = 0
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 2.5 SECONDS)
var/obj/item/minihead/shadow = new(get_turf(target))
var/obj/item/minihead/realdeal = new(get_turf(target))
realdeal.icon_state = icon_state
realdeal.usedup = TRUE
shadow.icon_state = icon_state
shadow.usedup = TRUE
shadow.color = "#000000"
walk_towards(shadow, target, 0, 0)
walk_towards(realdeal, target, 0, 0)
animate(realdeal, pixel_y = 60, pixel_x = 0, transform = matrix().Scale(3), time = 1.5 SECONDS)
animate(shadow, pixel_y = -30, transform = matrix().Scale(3), time = 1.5 SECONDS)
addtimer(CALLBACK(src, PROC_REF(follow), realdeal, shadow), 1.5 SECONDS)
return
/obj/item/minihead/proc/follow(var/obj/damocles, var/obj/silhouette)
walk(damocles, 0)
walk(silhouette, 0)
addtimer(CALLBACK(src, PROC_REF(comedown), damocles, silhouette), 0.5 SECONDS)
return
/obj/item/minihead/proc/comedown(var/obj/damocles, var/obj/silhouette)
var/turf/uhoh = get_turf(damocles)
animate(damocles, pixel_y = 0, time = 0.2 SECONDS, easing = ELASTIC_EASING)
animate(silhouette, transform = matrix().Scale(3), time = 0.2 SECONDS)
addtimer(CALLBACK(src, PROC_REF(crush), uhoh), 0.1 SECONDS)
playsound(damocles, 'sound/effects/break_stone.ogg', 15, 1)
playsound(damocles, 'sound/effects/meteorimpact.ogg', 30, 1)
QDEL_IN(silhouette, 0.2 SECONDS)
QDEL_IN(damocles, 0.2 SECONDS)
return
/obj/item/minihead/proc/crush(var/turf/landingzone)
landingzone.break_tile()
for(var/mob/witness in range(10, landingzone))
shake_camera(witness, 1, 2)
for(var/obj/X in landingzone.contents)
X.take_damage(objdam)
for(var/mob/living/coyote in landingzone.contents)
var/armor = coyote.run_armor_check(BODY_ZONE_HEAD, MELEE, armour_penetration = 0)
coyote.apply_damage(smashdam, BRUTE, BODY_ZONE_HEAD, armor)
to_chat(coyote, span_userdanger("The boulder comes down on your head!"))
if(isanimal(coyote))
coyote.adjustBruteLoss(animaldam)
if(coyote.stat == DEAD)
coyote.gib()
for(var/mob/living/tripped in range(1, landingzone))
tripped.Immobilize(1 SECONDS)
to_chat(tripped, span_userdanger("The shockwave disrupts your balance!"))
qdel(src)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 39 KiB