Files
Bubberstation/code/modules/holiday/easter.dm
EOBGames b08632353c [MDB IGNORE] Eliminates Toxins (#60619)
Repaths everything referring to "toxins" while actually meaning either the room in science or plasma gas. While this PR might be disrespectful to our forefathers, given this is (I believe) a holdover from as far back as the Exadv1 days, this has constantly irked me since I started working with the code. None of the player-facing stuff has referred to plasma as toxin since before 4407 hit, besides the Toxins Lab, and yet all of the type-paths are still pointing at toxins, making it a nightmare to search for in a map editor, and making the code needlessly easy to confuse with that of toxin damage. So this just fires it into the sun.

Anything relating to Toxins, the science subdepartment, now makes reference to Ordnance instead. This felt fitting enough given the focus of the subdepartment is around the creation of and testing of explosives.
Anything relating to plasma gas has, fittingly, been made to refer to plasma gas.

Edit: Ah yes, I feel I should probably apologise off the bat for the size of this PR- the code touched is mostly atmos machinery and simplemobs, a few sprites here and there, and of course the station maps + a few offstation maps.

Makes the code more legible and makes mapping less painful.

(The payment has been made)
2021-08-17 11:49:47 -07:00

266 lines
8.4 KiB
Plaintext

/datum/round_event_control/easter
name = "Easter Eggselence"
holidayID = EASTER
typepath = /datum/round_event/easter
weight = -1
max_occurrences = 1
earliest_start = 0 MINUTES
/datum/round_event/easter/announce(fake)
priority_announce(pick("Hip-hop into Easter!","Find some Bunny's stash!","Today is National 'Hunt a Wabbit' Day.","Be kind, give Chocolate Eggs!"))
/datum/round_event_control/rabbitrelease
name = "Release the Rabbits!"
holidayID = EASTER
typepath = /datum/round_event/rabbitrelease
weight = 5
max_occurrences = 10
/datum/round_event/rabbitrelease/announce(fake)
priority_announce("Unidentified furry objects detected coming aboard [station_name()]. Beware of Adorable-ness.", "Fluffy Alert", ANNOUNCER_ALIENS)
/datum/round_event/rabbitrelease/start()
for(var/obj/effect/landmark/R in GLOB.landmarks_list)
if(R.name != "blobspawn")
if(prob(35))
if(isspaceturf(R.loc))
new /mob/living/simple_animal/rabbit/space(R.loc)
else
new /mob/living/simple_animal/rabbit(R.loc)
/mob/living/simple_animal/rabbit
name = "\improper rabbit"
desc = "The hippiest hop around."
gender = PLURAL
mob_biotypes = MOB_ORGANIC|MOB_BEAST
health = 15
maxHealth = 15
icon = 'icons/mob/easter.dmi'
icon_state = "rabbit_white"
icon_living = "rabbit_white"
icon_dead = "rabbit_white_dead"
speak = list("Hop into Easter!","Come get your eggs!","Prizes for everyone!")
speak_emote = list("sniffles","twitches")
emote_hear = list("hops.")
emote_see = list("hops around","bounces up and down")
butcher_results = list(/obj/item/food/meat/slab = 1)
can_be_held = TRUE
density = FALSE
speak_chance = 2
turns_per_move = 3
response_help_continuous = "pets"
response_help_simple = "pet"
response_disarm_continuous = "gently pushes aside"
response_disarm_simple = "gently push aside"
response_harm_continuous = "kicks"
response_harm_simple = "kick"
attack_verb_continuous = "kicks"
attack_verb_simple = "kick"
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_SMALL
gold_core_spawnable = FRIENDLY_SPAWN
///passed to animal_variety component as the prefix icon.
var/icon_prefix = "rabbit"
///passed to egg_layer component as how many eggs it starts out as able to lay.
var/initial_egg_amount = 10
/mob/living/simple_animal/rabbit/Initialize()
. = ..()
AddElement(/datum/element/pet_bonus, "hops around happily!")
AddElement(/datum/element/animal_variety, icon_prefix, pick("brown","black","white"), TRUE)
var/list/feed_messages = list("[p_they()] nibbles happily.", "[p_they()] noms happily.")
var/eggs_added_from_eating = rand(1, 4)
var/max_eggs_held = 8
AddComponent(/datum/component/egg_layer,\
/obj/item/surprise_egg,\
list(/obj/item/food/grown/carrot),\
feed_messages,\
list("hides an egg.","scampers around suspiciously.","begins making a huge racket.","begins shuffling."),\
initial_egg_amount,\
eggs_added_from_eating,\
max_eggs_held\
)
/mob/living/simple_animal/rabbit/empty //top hats summon these kinds of rabbits instead of the normal kind
initial_egg_amount = 0
/mob/living/simple_animal/rabbit/space
icon_state = "s_rabbit_white"
icon_living = "s_rabbit_white"
icon_dead = "s_rabbit_white_dead"
icon_prefix = "s_rabbit"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1500
unsuitable_atmos_damage = 0
//Easter Baskets
/obj/item/storage/basket/easter
name = "Easter Basket"
/obj/item/storage/basket/easter/Initialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.set_holdable(list(/obj/item/food/egg, /obj/item/food/chocolateegg, /obj/item/food/boiledegg))
/obj/item/storage/basket/easter/proc/countEggs()
cut_overlays()
add_overlay("basket-grass")
add_overlay("basket-egg[min(contents.len, 5)]")
/obj/item/storage/basket/easter/Exited(atom/movable/gone, direction)
. = ..()
countEggs()
/obj/item/storage/basket/easter/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs)
. = ..()
countEggs()
//Bunny Suit
/obj/item/clothing/head/bunnyhead
name = "Easter Bunny Head"
icon_state = "bunnyhead"
inhand_icon_state = "bunnyhead"
desc = "Considerably more cute than 'Frank'."
slowdown = -0.3
clothing_flags = THICKMATERIAL | SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/suit/bunnysuit
name = "Easter Bunny Suit"
desc = "Hop Hop Hop!"
icon_state = "bunnysuit"
inhand_icon_state = "bunnysuit"
slowdown = -0.3
clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
//Bunny bag!
/obj/item/storage/backpack/satchel/bunnysatchel
name = "Easter Bunny Satchel"
desc = "Good for your eyes."
icon_state = "satchel_carrot"
inhand_icon_state = "satchel_carrot"
//Egg prizes and egg spawns!
/obj/item/surprise_egg
name = "wrapped egg"
desc = "A chocolate egg containing a little something special. Unwrap and enjoy!"
icon_state = "egg"
resistance_flags = FLAMMABLE
w_class = WEIGHT_CLASS_TINY
icon = 'icons/obj/food/food.dmi'
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
obj_flags = UNIQUE_RENAME
/obj/item/surprise_egg/Initialize()
. = ..()
var/eggcolor = pick("blue","green","mime","orange","purple","rainbow","red","yellow")
icon_state = "egg-[eggcolor]"
/obj/item/surprise_egg/proc/dispensePrize(turf/where)
var/static/list/prize_list = list(/obj/item/clothing/head/bunnyhead,
/obj/item/clothing/suit/bunnysuit,
/obj/item/storage/backpack/satchel/bunnysatchel,
/obj/item/food/grown/carrot,
/obj/item/toy/balloon,
/obj/item/toy/gun,
/obj/item/toy/sword,
/obj/item/toy/talking/ai,
/obj/item/toy/talking/owl,
/obj/item/toy/talking/griffin,
/obj/item/toy/minimeteor,
/obj/item/toy/clockwork_watch,
/obj/item/toy/toy_xeno,
/obj/item/toy/foamblade,
/obj/item/toy/plush/carpplushie,
/obj/item/toy/redbutton,
/obj/item/toy/windup_toolbox,
/obj/item/clothing/head/collectable/rabbitears
) + subtypesof(/obj/item/toy/mecha)
var/won = pick(prize_list)
new won(where)
new/obj/item/food/chocolateegg(where)
/obj/item/surprise_egg/attack_self(mob/user)
..()
to_chat(user, span_notice("You unwrap [src] and find a prize inside!"))
dispensePrize(get_turf(user))
qdel(src)
//Easter Recipes + food
/obj/item/food/hotcrossbun
name = "hot cross bun"
desc = "The cross represents the Assistants that died for your sins."
icon_state = "hotcrossbun"
food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/sugar = 1)
foodtypes = SUGAR | GRAIN | BREAKFAST
tastes = list("pastry" = 1, "easter" = 1)
bite_consumption = 2
/datum/crafting_recipe/food/hotcrossbun
name = "Hot Cross Bun"
reqs = list(
/obj/item/food/breadslice/plain = 1,
/datum/reagent/consumable/sugar = 1
)
result = /obj/item/food/hotcrossbun
subcategory = CAT_BREAD
/datum/crafting_recipe/food/briochecake
name = "Brioche cake"
reqs = list(
/obj/item/food/cake/plain = 1,
/datum/reagent/consumable/sugar = 2
)
result = /obj/item/food/cake/brioche
subcategory = CAT_MISCFOOD
/obj/item/food/scotchegg
name = "scotch egg"
desc = "A boiled egg wrapped in a delicious, seasoned meatball."
icon_state = "scotchegg"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
/datum/crafting_recipe/food/scotchegg
name = "Scotch egg"
reqs = list(
/datum/reagent/consumable/salt = 1,
/datum/reagent/consumable/blackpepper = 1,
/obj/item/food/boiledegg = 1,
/obj/item/food/meatball = 1
)
result = /obj/item/food/scotchegg
subcategory = CAT_EGG
/datum/crafting_recipe/food/mammi
name = "Mammi"
reqs = list(
/obj/item/food/bread/plain = 1,
/obj/item/food/chocolatebar = 1,
/datum/reagent/consumable/milk = 5
)
result = /obj/item/food/soup/mammi
subcategory = CAT_MISCFOOD
/obj/item/food/chocolatebunny
name = "chocolate bunny"
desc = "Contains less than 10% real rabbit!"
icon_state = "chocolatebunny"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
/datum/crafting_recipe/food/chocolatebunny
name = "Chocolate bunny"
reqs = list(
/datum/reagent/consumable/sugar = 2,
/obj/item/food/chocolatebar = 1
)
result = /obj/item/food/chocolatebunny
subcategory = CAT_MISCFOOD