Gingerbread House Vault (#26537)

* wakemeupinside

* weaponized diabetes

Co-authored-by: GreatBigFailure <Questionfrog@gmail.com>
This commit is contained in:
GreatBigFailure
2020-05-19 16:33:37 -04:00
committed by GitHub
parent bbd746ae42
commit ceb0bbe03f
36 changed files with 886 additions and 6 deletions

View File

@@ -586,3 +586,13 @@ var/global/list/initial_materials //Stores all the matids = 0 in helping New
cointype=null
default_show_in_menus = FALSE
cc_per_sheet = CC_PER_SHEET_MOLITZ
/datum/material/gingerbread
name="Gingerbread"
id=MAT_GINGERBREAD
value=null
oretype=null
sheettype=/obj/item/stack/sheet/mineral/gingerbread
cointype=null
default_show_in_menus = FALSE
cc_per_sheet = CC_PER_SHEET_GINGERBREAD

View File

@@ -4,6 +4,7 @@
icon_state = "gingerbreadman"
icon_living = "gingerbreadman"
icon_dead = "gingerbreadman_dead"
environment_smash_flags = 0
turns_per_move = 15 //You can't catch me, I'm the Gingerbread man!
speak_chance = 1
speak = list("Nya ha ha", "They couldn't catch me!", "I'd like to see somebody take a bite outta me now!")
@@ -30,4 +31,4 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
speed = 5
speed = 7

View File

@@ -0,0 +1,241 @@
/mob/living/simple_animal/hostile/ginger
name = ""
desc = ""
icon_state = ""
icon_living = ""
icon_dead = ""
environment_smash_flags = 0
wander = 0
turns_per_move = 15
move_to_delay = 3
speak_chance = 1
speak = list("")
speak_emote = list("crumbles","grumbles","shouts")
meat_type = /obj/item/weapon/reagent_containers/food/snacks/gingerbread_man
response_help = "doughs up"
response_disarm = "crumbs"
response_harm = "breaks into"
maxHealth = 75
health = 75
attacktext = "slices"
melee_damage_lower = 10
melee_damage_upper = 30
attack_sound = "sound/weapons/pierce.ogg"
vision_range = 7
aggro_vision_range = 7
idle_vision_range = 7
mob_property_flags = MOB_CONSTRUCT
//This dough's hard baked
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
speed = 5
/mob/living/simple_animal/hostile/ginger/gingerchefman
name = "gingerchef man"
desc = "Prepare to meet your baker."
icon_state = "gingerchefman"
icon_living = "gingerchefman"
icon_dead = "gingerchefman_dead"
turns_per_move = 15
move_to_delay = 3
speak_chance = 1
speak = list("Ready for the oven", "More meat for the pantry")
maxHealth = 75
health = 75
attacktext = "slices"
melee_damage_lower = 10
melee_damage_upper = 30
/mob/living/simple_animal/hostile/ginger/gingerfatman
name = "gingerfat man"
desc = "Over frosted"
icon_state = "gingerfatman"
icon_living = "gingerfatman"
icon_dead = "gingerfatman_dead"
turns_per_move = 15
move_to_delay = 5
speak_chance = 1
speak = list("I'll eat the legs first", "You look so tasty")
maxHealth = 110
health = 110
attacktext = "bites"
melee_damage_lower = 15
melee_damage_upper = 20
/mob/living/simple_animal/hostile/ginger/gingerknightman
name = "gingerknight man"
desc = "Full of honor and calories"
icon_state = "gingerknightman"
icon_living = "gingerknightman"
icon_dead = "gingerknightman_dead"
move_to_delay = 3
turns_per_move = 15
speak_chance = 1
speak = list("For kingdom and crumble")
maxHealth = 85
health = 85
attacktext = "stabs"
melee_damage_lower = 20
melee_damage_upper = 30
/mob/living/simple_animal/hostile/ginger/gingerboneman
name = "gingerbone man"
desc = "Has mixed feelings about milk."
icon_state = "gingerboneman"
icon_living = "gingerboneman"
icon_dead = "gingerboneman_dead"
move_to_delay = 3
turns_per_move = 15
speak_chance = 1
speak = list("Don't rattle me dough", "Careful, my friend, or I'll rattle and bake!")
speak_emote = list("crumbles","grumbles","rattles")
maxHealth = 50
health = 50
attacktext = "smacks"
melee_damage_lower = 5
melee_damage_upper = 10
attack_sound = "sound/effects/rattling_bones.ogg"
/mob/living/simple_animal/hostile/ginger/gingerbomination
name = "gingerbomination man"
desc = "Stale dough and frosting holds loose, pale heaps of flesh together. The tiniest spark of the man he once was still trembles in his eyes. Although not entirely sentient he is at the very least aware and awake. This poor creature has a pretty crumby life."
icon_state = "gingerbominationman"
icon_living = "gingerbominationman"
icon_dead = "gingerbominationman_dead"
move_to_delay = 2
turns_per_move = 20
speak_chance = 1
speak = list("h-hhhe-el", "wh-why")
speak_emote = list("crumbles","sputters","whimpers")
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/human
//Why did I do this. This started as a cute gingerbread house.
maxHealth = 30
health = 30
attacktext = "stabs"
melee_damage_lower = 10
melee_damage_upper = 15
attack_sound = "sound/weapons/pierce.ogg"
vision_range = 8
aggro_vision_range = 8
idle_vision_range = 8
speed = 3
/mob/living/simple_animal/hostile/ginger/gingerbroodmother
name = "gingerbroodmother"
icon = 'icons/mob/giantmobs.dmi'
icon_state = "gingerbroodmother"
icon_living = "gingerbroodmother"
icon_dead = "gingerbroodmother_dead"
pixel_x = -16 * PIXEL_MULTIPLIER
wander = 0
move_to_delay = 40
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/gingerbroodmother
meat_amount = 1
ranged = 1
vision_range = 8
aggro_vision_range = 9
idle_vision_range = 8
speed = 10
maxHealth = 400
health = 400
harm_intent_damage = 5
melee_damage_lower = 20
melee_damage_upper = 35
attacktext = "crumbles"
ranged_cooldown = 2
ranged_cooldown_cap = 18
mob_property_flags = MOB_NO_LAZ
/mob/living/simple_animal/hostile/ginger/gingerbroodmother/OpenFire(var/the_target)
var/mob/living/simple_animal/hostile/ginger/gingerbomination/A = getFromPool(/mob/living/simple_animal/hostile/ginger/gingerbomination,src.loc)
A.GiveTarget(target)
A.friends = friends
A.faction = faction
return
/mob/living/simple_animal/hostile/ginger/gingerbroodmother/AttackingTarget()
OpenFire()
/mob/living/simple_animal/hostile/ginger/gingerbroodmother/death(var/gibbed = FALSE)
..(gibbed)
visible_message("What could be described as flesh crumbles apart and slough off the doughy monstrosity. In an instant, her once wriggling abdomen becomes still and she crumbles to the floor.")
playsound(src, 'sound/effects/stone_crumble.ogg', 100, 1)
/mob/living/simple_animal/hostile/ginger/gingerbarman
name = "gingerbar man"
desc = "Upon closer inspection you notice his suit jacket is actually just a layer of frosting."
icon_state = "gingerbarman"
icon_living = "gingerbarman"
icon_dead = "gingerbarman_dead"
faction = "neutral"
turns_per_move = 5
move_to_delay = 3
speak_chance = 30
speak = list("I don't want any trouble")
speak_emote = list("crumbles")
maxHealth = 75
health = 75
attacktext = "slices"
melee_damage_lower = 15
melee_damage_upper = 25
attack_sound = "sound/weapons/pierce.ogg"
vision_range = 6
aggro_vision_range = 6
idle_vision_range = 6
/mob/living/simple_animal/hostile/ginger/gingerstripperman
name = "gingerstripper man"
desc = "Hey, everyone gets lonely."
icon_state = "gingerregretman" //Our father who art in heaven, hallowed be thy name. They kingdom come. Thy will be done on earth as it is in heaven.
icon_living = "gingerregretman" //Give us this day our daily bread, and forgive us our trespasses, as we forgive those who trespass against us
icon_dead = "gingerregretman_dead"
turns_per_move = 15
move_to_delay = 2
response_help = "doughs up"
response_disarm = "crumbs"
response_harm = "breaks into"
maxHealth = 75
health = 75
attacktext = "smacks"
melee_damage_lower = 15
melee_damage_upper = 25
/mob/living/simple_animal/hostile/ginger/gingerprostituteman
name = "gingerprostitute man"
desc = "The oldest profession in the world."
icon_state = "gingerregretman_mistake" //haha what if there was a gingerbread man hooker haha wouldn't that be funny haha
icon_living = "gingerregretman_mistake"
icon_dead = "gingerregretman_mistake_dead"
turns_per_move = 15
move_to_delay = 4 //can't run in those heels
maxHealth = 90
health = 90
attacktext = "whips"
melee_damage_lower = 20
melee_damage_upper = 35
/mob/living/simple_animal/hostile/ginger/gingerclownman
name = "gingerclown man"
desc = "Even compared to normal clowns his jokes are crumby."
icon_state = "gingerclownman"
icon_living = "gingerclownman"
icon_dead = "gingerclownman_dead"
turns_per_move = 15
move_to_delay = 2
speak_chance = 1
speak = list("Honk")
speak_emote = list("crumbles","honks")
maxHealth = 75
health = 75
attacktext = "honks"
melee_damage_lower = 5
melee_damage_upper = 15
attack_sound = "sound/weapons/honk.ogg"
speed = 3

View File

@@ -480,6 +480,18 @@
/obj/item/weapon/gun/hookshot/whip/update_icon()
return
/obj/item/weapon/gun/hookshot/whip/liquorice
name = "liquoricium whip"
icon_state = "liquorice"
desc = "Although clearly just an iron chain covered in candy, the jagged pieces of caramel look like they'd sting quite a bit."
fire_sound = 'sound/weapons/whip_crack.ogg'
fire_action = "flick"
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/swords_axes.dmi', "right_hand" = 'icons/mob/in-hand/right/swords_axes.dmi')
force = 8
maxlength = 4
hooktype = /obj/item/projectile/hookshot/whip/liquorice
empty_sound = null
/obj/item/weapon/gun/hookshot/whip/vampkiller
name = "vampire killer"
desc = "A brutal looking weapon consisting of a morning star head attached to a chain lash. It's said to be imbued with holy powers, but this one looks like a cheap replica."
@@ -493,3 +505,4 @@
desc = "A brutal looking weapon consisting of a morning star head attached to a chain lash. It is blessed to be effective against the undead and radiates an awesome holy aura."
icon_state = "vampkiller_true"
hooktype = /obj/item/projectile/hookshot/whip/vampkiller/true

View File

@@ -0,0 +1,60 @@
/obj/item/weapon/gun/lolly_lobber
name = "Lolly Lobber"
desc = "A horrible combination of steel and sweets. Custom made to weaponize candy canes with questionable success."
icon = 'icons/obj/gun.dmi'
icon_state = "lolly_lobber"
item_state = "lolly_lobber"
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/guninhands_left.dmi', "right_hand" = 'icons/mob/in-hand/right/guninhands_right.dmi')
recoil = 0
slot_flags = SLOT_BELT
flags = FPRINT
w_class = W_CLASS_MEDIUM
fire_delay = 0
fire_sound = 'sound/items/syringeproj.ogg'
var/max_ammo = 13 //baker's dozen
var/current_ammo = 13
/obj/item/weapon/gun/lolly_lobber/New()
..()
chamber_if_possible()
/obj/item/weapon/gun/lolly_lobber/examine(mob/user)
..()
to_chat(user, "<span class='info'>It has [current_ammo] round\s remaining.</span>")
/obj/item/weapon/gun/lolly_lobber/proc/chamber_if_possible()
if(current_ammo > 0)
if(!process_chambered())
in_chamber = new /obj/item/projectile/bullet/syringe/candycane (src)
/obj/item/weapon/gun/lolly_lobber/afterattack(atom/A, mob/living/user, flag, params, struggle = 0)
if(flag)
return
if(harm_labeled >= min_harm_label)
to_chat(user, "<span class='warning'>A label sticks the trigger to the trigger guard!</span>")//Such a new feature, the player might not know what's wrong if it doesn't tell them.
return
if(!current_ammo)
return click_empty(user)
chamber_if_possible()
if(Fire(A,user,params, struggle = struggle))
current_ammo--
chamber_if_possible()
/obj/item/weapon/gun/lolly_lobber/process_chambered()
return in_chamber
/obj/item/weapon/gun/lolly_lobber/attackby(obj/item/W, mob/user)
..()
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks/candy_cane))
if(current_ammo >= max_ammo)
return
if(user.drop_item(W))
current_ammo++
chamber_if_possible()
playsound(src, 'sound/items/Deconstruct.ogg', 25, 1)
qdel(W)
/obj/item/weapon/gun/lolly_lobber/can_discharge()
if(current_ammo)
return 1

View File

@@ -988,3 +988,17 @@ obj/item/projectile/bullet/suffocationbullet
/obj/item/projectile/bullet/syringe/dart
stealthy = TRUE
/obj/item/projectile/bullet/syringe/candycane
name = "Candycane"
icon_state = "candycane"
nodamage = 0
damage = 25
capacity = 15
decay_type = null
custom_impact = null
/obj/item/projectile/bullet/syringe/candycane/New()
..()
reagents.add_reagent(DIABEETUSOL, 10)
reagents.add_reagent(CARAMEL, 5)

View File

@@ -202,6 +202,24 @@
visible_message("<span class='warning'>[W.firer] whips it good!</span>")
..(atarget, blocked)
/obj/item/projectile/hookshot/whip/liquorice
name = "liquoricium whip"
icon_state = "liquorice"
icon_name = "liquorice"
damage = 15
sharpness = 1.2
failure_message = "The coil sticks to itself and won't unwind!"
whipitgood_bonus = null
/obj/item/projectile/hookshot/whip/liquorice/to_bump(atom/A as mob)
create_reagents(5)
reagents.add_reagent(DIABEETUSOL, 2)
reagents.add_reagent(CARAMEL, 3)
var/mob/M = A
if(ishuman(M))
reagents.trans_to(M, reagents.total_volume)
..(A)
/obj/item/projectile/hookshot/whip/vampkiller
name = "flail"
icon_state = "vampkiller"
@@ -225,3 +243,4 @@
damage = 30
sharpness = 2
..(A)

View File

@@ -54,6 +54,9 @@ var/list/existing_vaults = list()
new /mob/living/simple_animal/hostile/mimic/crate/item(get_turf(S), original) //Make copies
qdel(S)
/datum/map_element/vault/gingerbread_house
file_path = "maps/randomvaults/gingerbread_house.dmm"
/datum/map_element/vault/tommyboyasteroid
file_path = "maps/randomvaults/tommyboyasteroid.dmm"

View File

@@ -7846,6 +7846,46 @@ var/global/list/tonio_doesnt_remove=list("tonio", "blood")
M.adjustBruteLoss(5*REM)
/datum/reagent/diabeetusol
name = "diabeetusol"
id = DIABEETUSOL
description = "The mistaken byproduct of confectionery science. Targets the beta pancreatic cells, or equivalent, in carbon based life to not only cease insulin production but begin producing what medical science can only describe as 'the concept of obesity given tangible form'."
reagent_state = REAGENT_STATE_LIQUID
color = "#FFFFFF" //rgb: 255, 255, 255
nutriment_factor = 25 * REAGENTS_METABOLISM //This is maybe a little much
sport = 0 //This will never come up but adding it made me smile
density = 3 //He DENSE
specheatcap = 0.55536
overdose_am = 30
/datum/reagent/diabeetusol/on_mob_life(var/mob/living/M)
if(..())
return 1
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/heart/heart = H.internal_organs_by_name["heart"]
var/list/chubbysound = list('sound/instruments/trombone/Eb3.mid', 'sound/instruments/trombone/Gb2.mid', 'sound/instruments/trombone/Bb3.mid')
switch(volume)
if(5 to 10)
if(prob(40))
H.dizziness += 2
H.confused += 2
if(prob(10))
H.sleeping += 1
if(10 to 25)
H.overeatduration += 250
H.nutrition += 250
if(prob(20))
playsound(src, pick(chubbysound), 50, 1)
if(25 to INFINITY)
if(heart && !heart.robotic)
to_chat(H, "<span class='danger'>Your heart caramelizes!</span>")
qdel(H.remove_internal_organ(H,heart,H.get_organ(LIMB_CHEST)))
H.adjustOxyLoss(60)
H.adjustBruteLoss(30)
//////////////////////
// //

View File

@@ -330,3 +330,47 @@ var/global/list/valid_random_food_types = existing_typesof(/obj/item/weapon/reag
/obj/item/weapon/reagent_containers/food/snacks/meat/snail/New()
. = ..()
reagents.add_reagent(NUTRIMENT,5)
/obj/item/weapon/reagent_containers/food/snacks/meat/gingerbroodmother
name = "Royal Gingjelly"
icon_state = "royal_gingjelly"
desc = "The sickly sweet smell wafting from this sticky glob triggers some primal fear. You absolutely should not eat this."
/obj/item/weapon/reagent_containers/food/snacks/meat/gingerbroodmother/New()
..()
reagents.add_reagent(NUTRIMENT, 10)
reagents.add_reagent (CARAMEL, 10)
/obj/item/weapon/reagent_containers/food/snacks/meat/gingerbroodmother/consume(mob/living/carbon/eater, messages = 0)
if(ishuman(eater))
var/mob/living/carbon/C = eater
if(C.monkeyizing)
return
to_chat(eater, "<span class='warning'>Your flesh hardens and your blood turns to frosting. This is agony!</span>")
sleep (30)
C.monkeyizing = 1
C.canmove = 0
C.icon = null
C.overlays.len = 0
C.invisibility = 101
for(var/obj/item/W in C)
if(istype(W, /obj/item/weapon/implant))
var/obj/item/weapon/implant/I = W
if(I.imp_in == C)
qdel(W)
continue
W.reset_plane_and_layer()
W.forceMove(C.loc)
W.dropped(C)
var/mob/living/simple_animal/hostile/ginger/gingerbomination/new_mob = new /mob/living/simple_animal/hostile/ginger/gingerbomination(C.loc)
new_mob.a_intent = I_HURT
if(C.mind)
C.mind.transfer_to(new_mob)
else
new_mob.key = C.key
C.transferBorers(new_mob)
qdel(C)
playsound(src, 'sound/effects/evolve.ogg', 100, 1)