Files
Bubberstation/code/game/objects/items/food/monkeycube.dm
Da Cool Boss 06aa7b846a Fixes Donk Co. & Waffle Corp Trademark Issues (#85686)
## About The Pull Request
All references to "Waffle Co" and "Waffle Company" have been scrubbed
and replaced with appropriate branding. "The Waffle Corporation" may be
shortened to "Waffle Corporation", "Waffle Corp" or "Waffle Corp." only.

All references to "Donk Corp." and "Donk Corporation" have been scrubbed
and replaced with appropriate branding. "Donk Company" may be shortened
to "Donk", "Donk Co" or "Donk Co." only.
## Why It's Good For The Game
Keeps these names consistant and lore accurate.
## Changelog
🆑
spellcheck: fixed many incorrect spellings of Waffle Corp and Donk Co.
/🆑

---------

Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
2024-08-09 23:22:53 -04:00

116 lines
4.4 KiB
Plaintext

/obj/item/food/monkeycube
name = "monkey cube"
desc = "Just add water!"
icon_state = "monkeycube"
bite_consumption = 12
food_reagents = list(/datum/reagent/monkey_powder = 30)
tastes = list("the jungle" = 1, "bananas" = 1)
foodtypes = MEAT | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
/// Mob typepath to spawn when expanding
var/spawned_mob = /mob/living/carbon/human/species/monkey
/// Whether we've been wetted and are expanding
var/expanding = FALSE
/obj/item/food/monkeycube/attempt_pickup(mob/user)
if(expanding)
return FALSE
return ..()
/obj/item/food/monkeycube/proc/Expand()
if(expanding)
return
expanding = TRUE
if(ismob(loc))
var/mob/holder = loc
holder.dropItemToGround(src)
var/mob/spammer = get_mob_by_key(fingerprintslast)
var/mob/living/bananas = new spawned_mob(drop_location(), TRUE, spammer) // funny that we pass monkey init args to non-monkey mobs, that's totally a future issue
if (!QDELETED(bananas))
if(faction)
bananas.faction = faction
visible_message(span_notice("[src] expands!"))
bananas.log_message("spawned via [src], Last attached mob: [key_name(spammer)].", LOG_ATTACK)
var/alpha_to = bananas.alpha
var/matrix/scale_to = matrix(bananas.transform)
bananas.alpha = 0
bananas.transform = bananas.transform.Scale(0.1)
animate(bananas, 0.5 SECONDS, alpha = alpha_to, transform = scale_to, easing = QUAD_EASING|EASE_OUT)
else if (!spammer) // Visible message in case there are no fingerprints
visible_message(span_notice("[src] fails to expand!"))
return
animate(src, 0.4 SECONDS, alpha = 0, transform = transform.Scale(0), easing = QUAD_EASING|EASE_IN)
QDEL_IN(src, 0.5 SECONDS)
/obj/item/food/monkeycube/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is putting [src] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!"))
var/eating_success = do_after(user, 1 SECONDS, src)
if(QDELETED(user)) //qdeletion: the nuclear option of self-harm
return SHAME
if(!eating_success || QDELETED(src)) //checks if src is gone or if they failed to wait for a second
user.visible_message(span_suicide("[user] chickens out!"))
return SHAME
if(HAS_TRAIT(user, TRAIT_NOHUNGER)) //plasmamen don't have saliva/stomach acid
user.visible_message(span_suicide("[user] realizes [user.p_their()] body won't activate [src]!")
,span_warning("Your body won't activate [src]..."))
return SHAME
playsound(user, 'sound/items/eatfood.ogg', rand(10, 50), TRUE)
user.temporarilyRemoveItemFromInventory(src) //removes from hands, keeps in M
addtimer(CALLBACK(src, PROC_REF(finish_suicide), user), 15) //you've eaten it, you can run now
return MANUAL_SUICIDE
/obj/item/food/monkeycube/proc/finish_suicide(mob/living/user) ///internal proc called by a monkeycube's suicide_act using a timer and callback. takes as argument the mob/living who activated the suicide
if(QDELETED(user) || QDELETED(src))
return
if(src.loc != user) //how the hell did you manage this
to_chat(user, span_warning("Something happened to [src]..."))
return
Expand()
user.visible_message(span_danger("[user]'s torso bursts open as a primate emerges!"))
user.gib(DROP_BRAIN|DROP_BODYPARTS|DROP_ITEMS) // just remove the organs
/obj/item/food/monkeycube/syndicate
faction = list(FACTION_NEUTRAL, ROLE_SYNDICATE)
/obj/item/food/monkeycube/gorilla
name = "gorilla cube"
desc = "A Waffle Corp. brand gorilla cube. Now with extra molecules!"
bite_consumption = 20
food_reagents = list(
/datum/reagent/monkey_powder = 30,
/datum/reagent/medicine/strange_reagent = 5,
)
tastes = list("the jungle" = 1, "bananas" = 1, "jimmies" = 1)
spawned_mob = /mob/living/basic/gorilla
/obj/item/food/monkeycube/chicken
name = "chicken cube"
desc = "A new Nanotrasen classic, the chicken cube. Tastes like everything!"
bite_consumption = 20
food_reagents = list(
/datum/reagent/consumable/eggyolk = 30,
/datum/reagent/medicine/strange_reagent = 1,
)
tastes = list("chicken" = 1, "the country" = 1, "chicken bouillon" = 1)
spawned_mob = /mob/living/basic/chicken
/obj/item/food/monkeycube/bee
name = "bee cube"
desc = "We were sure it was a good idea. Just add water."
bite_consumption = 20
food_reagents = list(
/datum/reagent/consumable/honey = 10,
/datum/reagent/toxin = 5,
/datum/reagent/medicine/strange_reagent = 1,
)
tastes = list("buzzing" = 1, "honey" = 1, "regret" = 1)
spawned_mob = /mob/living/basic/bee