Files
Bubberstation/code/game/objects/structures/pinatas.dm
Da Cool Boss b748c455df Donk Co Interstellar Trading Post 6016 (#83075)
## About The Pull Request
Adds a new space ruin to the pool. It's the haunted trading post. It is
a whiteship dock with a large (safe) common area. The back rooms contain
loot and danger. Here are a few 'teaser' images.

https://i.imgur.com/M1te9Ha.png https://i.imgur.com/SF3bJ62.png
https://i.imgur.com/i9xeUFP.png https://i.imgur.com/UBwpJAM.png

Notable treasures: Cash, Donk Co merch, Donk Co guns, Donk Co Donk
Pockets, Donk Co vendors, Donk Co ID Cards, and the Donk Co Secret
Recipe.

Oh yeah the secret documents teach you how to make three prototype
variants of Donk Pockets. There is no limit to the amount of times it
can be read, so if you want to corner the market remember to lock up the
documents. Or you can share them with your friends.

**Now COMPLETE!**

![proof i ran this at least once
locally](https://i.imgur.com/39kvyqd.png)

## Why It's Good For The Game
This ruin is a multi-room dungeon with multiple solutions to each room.
It has plenty of action from mobs, traps and hazards. Each room has some
form of treasure or unique item in it. There's a boss at the end with
great rewards for fighting it, including a cool gun (slightly worse
variant of laser carbine).

This ruin is also a whiteship dock and space base. The public area is
entirely safe: stick to the well lit sector and don't trespass in the
employees only areas and you won't be harmed. There is a variety of
vendors to resupply at (including a brand new Donk Co snack vendor) but
unlike most other space ruins you do have to pay. A whiteship can dock
at this ruin if you have one, so you can bring groups of people to party
or attack the dungeon together.
## Changelog
🆑
add: Adds the Haunted Trading Post space ruin.
add: Adds 10+ unique items for the Haunted Trading Post
add: Adds 5 dangerous mobs for the Haunted Trading Post
add: Adds 4 new types of hazardous traps for the Haunted Trading Post.
/🆑

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-07-23 04:46:29 +02:00

117 lines
4.3 KiB
Plaintext

///A pinata that has a chance to drop candy items when struck with a melee weapon that deals at least 10 damage
/obj/structure/pinata
name = "corgi pinata"
desc = "A papier-mâché representation of a corgi that contains all sorts of sugary treats."
icon = 'icons/obj/toys/toy.dmi'
icon_state = "pinata_placed"
base_icon_state = "pinata_placed"
max_integrity = 300 //20 hits from a baseball bat
anchored = TRUE
///What sort of candy the pinata will contain
var/candy_options = list(
/obj/item/food/bubblegum,
/obj/item/food/candy,
/obj/item/food/chocolatebar,
/obj/item/food/gumball,
/obj/item/food/lollipop/cyborg,
)
///How much candy is dropped when the pinata is destroyed
var/destruction_loot = 5
///Debris dropped when the pinata is destroyed
var/debris = /obj/effect/decal/cleanable/wrapping/pinata
/obj/structure/pinata/Initialize(mapload)
. = ..()
AddComponent(/datum/component/pinata, candy = candy_options, death_drop = destruction_loot)
/obj/structure/pinata/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir, armour_penetration)
. = ..()
if(get_integrity() < (max_integrity/2))
icon_state = "[base_icon_state]_damaged"
if(damage_amount >= 10) // Swing means minimum damage threshhold for dropping candy is met.
flick("[icon_state]_swing", src)
/obj/structure/pinata/play_attack_sound(damage_amount, damage_type, damage_flag)
switch(damage_type)
if(BRUTE)
if(damage_amount)
playsound(src, 'sound/weapons/slash.ogg', 50, TRUE)
else
playsound(src, 'sound/weapons/tap.ogg', 50, TRUE)
if(BURN)
playsound(src, 'sound/items/welder.ogg', 100, TRUE)
/obj/structure/pinata/atom_deconstruct(disassembled)
new debris(get_turf(src))
///An item that when used inhand spawns an immovable pinata
/obj/item/pinata
name = "pinata assembly kit"
desc = "A papier-mâché corgi that contains various candy, must be set up before you can smash it."
icon = 'icons/obj/toys/toy.dmi'
icon_state = "pinata"
///The pinata that is created when this is placed.
var/pinata_type = /obj/structure/pinata
/obj/item/pinata/attack_self(mob/user)
var/turf/player_turf = get_turf(user)
if(player_turf?.is_blocked_turf(TRUE))
return FALSE
balloon_alert_to_viewers("setting up pinata...")
if(!do_after(user, 4 SECONDS, target = get_turf(user), progress = TRUE))
balloon_alert(user, "cancelled!")
new pinata_type(get_turf(user))
balloon_alert(user, "pinata setup")
qdel(src)
/obj/structure/pinata/syndie
name = "syndicate corgi pinata"
desc = "A papier-mâché representation of a corgi that contains all sorts of bombastic treats."
icon_state = "pinata_syndie_placed"
base_icon_state = "pinata_syndie_placed"
destruction_loot = 2
debris = /obj/effect/decal/cleanable/wrapping/pinata/syndie
candy_options = list(
/obj/item/food/bubblegum,
/obj/item/food/candy,
/obj/item/food/chocolatebar,
/obj/item/food/gumball,
/obj/item/food/lollipop,
/obj/item/grenade/c4,
/obj/item/grenade/clusterbuster/soap,
/obj/item/grenade/empgrenade,
/obj/item/grenade/frag,
/obj/item/grenade/syndieminibomb,
) //Candy items at the top, explosives at the bottom to be easier to read instead of fully alphabetized.
/obj/item/pinata/syndie
name = "weapons grade pinata assembly kit"
desc = "A papier-mâché corgi that contains various candy and explosives, must be set up before you can smash it."
icon_state = "pinata_syndie"
pinata_type = /obj/structure/pinata/syndie
/obj/structure/pinata/donk
name = "donk corgi pinata"
desc = "A papier-mâché representation of a corgi that contains all sorts of savory treats."
icon_state = "pinata_donk_placed"
base_icon_state = "pinata_donk_placed"
debris = /obj/effect/decal/cleanable/wrapping/pinata/donk
candy_options = list(
/obj/item/food/donkpocket/warm,
/obj/item/food/donkpocket/warm/pizza,
/obj/item/food/donkpocket/warm/honk,
/obj/item/food/donkpocket/warm/berry,
/obj/item/food/donkpocket/warm,
/obj/item/food/tatortot,
/obj/item/gun/ballistic/automatic/pistol/toy,
/obj/item/hot_potato/harmless/toy,
/obj/item/storage/box/donkpockets,
/obj/item/toy/plush/donkpocket,
)
/obj/item/pinata/donk
name = "\improper Donk Co. pinata assembly kit"
desc = "A papier-mâché corgi that contains various foodstuff and toys, must be set up before you can smash it."
icon_state = "pinata_donk"
pinata_type = /obj/structure/pinata/donk