mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-26 00:51:23 +00:00
## 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>
116 lines
4.4 KiB
Plaintext
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
|