porting sprites, giant pizza, removing valentines
should've chopped those commits but eh, essentially does what it says it does
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/iv_drip/feeding_tube
|
||||
name = "\improper Feeding tube"
|
||||
desc = "Originally meant to automatically feed cattle and farm animals, this model was repurposed for more... personal usage."
|
||||
icon = 'icons/obj/feeding_tube.dmi'
|
||||
icon = 'GainStation13/icons/obj/feeding_tube.dmi'
|
||||
icon_state = "feeding_tube"
|
||||
var/static/list/food_containers = typecacheof(list(/obj/item/reagent_containers/food,
|
||||
/obj/item/reagent_containers/glass,))
|
||||
@@ -23,7 +23,7 @@
|
||||
else
|
||||
add_overlay("beakeridle")
|
||||
if(beaker.reagents.total_volume)
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance('icons/obj/feeding_tube.dmi', "reagent")
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance('GainStation13/icons/obj/feeding_tube.dmi', "reagent")
|
||||
|
||||
var/percent = round((beaker.reagents.total_volume / beaker.volume) * 100)
|
||||
switch(percent)
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
|
||||
// see code/module/crafting/table.dm
|
||||
|
||||
////////////////////////////////////////////////PIZZA!!!////////////////////////////////////////////////
|
||||
|
||||
//GS13 - this has been ported from CHOMP/Virgo, but I've decided to adjust the recipe a bit
|
||||
// there's both the recipe and the defines for the pizza itself here
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pizza/framewrecker
|
||||
name = "Framewrecker Pizza"
|
||||
desc = "You feel your arteries clogging just by merely looking at this monster. Is this even real, or a mere hallucination?"
|
||||
icon = 'icons/obj/food/food64x64.dmi'
|
||||
icon_state = "theonepizza"
|
||||
pixel_x = -16
|
||||
pixel_y = -16
|
||||
inhand_x_dimension = 64
|
||||
inhand_y_dimension = 64
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/donkpocket
|
||||
bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = 200, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/medicine/omnizine = 10, /datum/reagent/consumable/nutriment/vitamin = 20)
|
||||
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "overwhelming surge of calories" = 10)
|
||||
foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD | ANTITOXIC
|
||||
|
||||
var/slicelist = list(/obj/item/reagent_containers/food/snacks/pizzaslice/framewrecker/mushroom,
|
||||
/obj/item/reagent_containers/food/snacks/pizzaslice/framewrecker/veggie)
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pizzaslice/framewrecker
|
||||
name = "Framewrecker Pizza Slice"
|
||||
desc = "This mere slice is the size of pizza on its own!"
|
||||
icon = 'icons/obj/food/ported_meals.dmi'
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = 50)
|
||||
icon_state = "big_mushroom_slice"
|
||||
filling_color = "#FFA500"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pizzaslice/framewrecker/mushroom
|
||||
name = "Giant mushroom pizza slice"
|
||||
icon_state = "big_mushroom_slice"
|
||||
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "mushrooms" = 1, "delight" = 5)
|
||||
foodtype = GRAIN | VEGETABLES | DAIRY | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pizzaslice/framewrecker/veggie
|
||||
name = "Giant veggie pizza slice"
|
||||
icon_state = "big_veggie_slice"
|
||||
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "mushrooms" = 1, "delight" = 5)
|
||||
foodtype = GRAIN | VEGETABLES | DAIRY | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pizza/framewrecker/attackby(var/obj/item/weapon/W, var/mob/living/user)
|
||||
if(istype(W,/obj/item/kitchen/knife))
|
||||
user.visible_message("<b>\The [user]</b> starts to slowly cut through The One Pizza.", "<span class='notice'>You start to slowly cut through The One Pizza.</span>")
|
||||
if(!src)
|
||||
return // We got disappeared already
|
||||
user.visible_message("<b>\The [user]</b> successfully cuts The One Pizza.", "<span class='notice'>You successfully cut The One Pizza.</span>")
|
||||
for(var/slicetype in slicelist)
|
||||
new slicetype(src.loc)
|
||||
qdel(src)
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
@@ -1,20 +1,22 @@
|
||||
/datum/antagonist/heartbreaker
|
||||
name = "heartbreaker"
|
||||
roundend_category = "valentines"
|
||||
show_in_antagpanel = FALSE
|
||||
show_name_in_check_antagonists = TRUE
|
||||
// /datum/antagonist/heartbreaker
|
||||
// name = "heartbreaker"
|
||||
// roundend_category = "valentines"
|
||||
// show_in_antagpanel = FALSE
|
||||
// show_name_in_check_antagonists = TRUE
|
||||
|
||||
|
||||
/datum/antagonist/heartbreaker/proc/forge_objectives()
|
||||
var/datum/objective/martyr/normiesgetout = new
|
||||
normiesgetout.owner = owner
|
||||
objectives += normiesgetout
|
||||
owner.objectives += objectives
|
||||
// /datum/antagonist/heartbreaker/proc/forge_objectives()
|
||||
// var/datum/objective/martyr/normiesgetout = new
|
||||
// normiesgetout.owner = owner
|
||||
// objectives += normiesgetout
|
||||
// owner.objectives += objectives
|
||||
|
||||
/datum/antagonist/heartbreaker/on_gain()
|
||||
forge_objectives()
|
||||
. = ..()
|
||||
// /datum/antagonist/heartbreaker/on_gain()
|
||||
// forge_objectives()
|
||||
// . = ..()
|
||||
|
||||
/datum/antagonist/heartbreaker/greet()
|
||||
to_chat(owner, "<span class='warning'><B>You didn't get a date! They're all having fun without you! you'll show them though...</B></span>")
|
||||
owner.announce_objectives()
|
||||
// /datum/antagonist/heartbreaker/greet()
|
||||
// to_chat(owner, "<span class='warning'><B>You didn't get a date! They're all having fun without you! you'll show them though...</B></span>")
|
||||
// owner.announce_objectives()
|
||||
|
||||
//GS13 - commented out cuz it's kinda weird and too prefbreaky
|
||||
|
||||
@@ -1,63 +1,65 @@
|
||||
/datum/antagonist/valentine
|
||||
name = "valentine"
|
||||
roundend_category = "valentines" //there's going to be a ton of them so put them in separate category
|
||||
show_in_antagpanel = FALSE
|
||||
var/datum/mind/date
|
||||
// /datum/antagonist/valentine
|
||||
// name = "valentine"
|
||||
// roundend_category = "valentines" //there's going to be a ton of them so put them in separate category
|
||||
// show_in_antagpanel = FALSE
|
||||
// var/datum/mind/date
|
||||
|
||||
/datum/antagonist/valentine/proc/forge_objectives()
|
||||
var/datum/objective/protect/protect_objective = new /datum/objective/protect
|
||||
protect_objective.owner = owner
|
||||
protect_objective.target = date
|
||||
if(!ishuman(date.current))
|
||||
protect_objective.human_check = FALSE
|
||||
protect_objective.explanation_text = "Protect [date.name], your date."
|
||||
objectives += protect_objective
|
||||
owner.objectives += objectives
|
||||
// /datum/antagonist/valentine/proc/forge_objectives()
|
||||
// var/datum/objective/protect/protect_objective = new /datum/objective/protect
|
||||
// protect_objective.owner = owner
|
||||
// protect_objective.target = date
|
||||
// if(!ishuman(date.current))
|
||||
// protect_objective.human_check = FALSE
|
||||
// protect_objective.explanation_text = "Protect [date.name], your date."
|
||||
// objectives += protect_objective
|
||||
// owner.objectives += objectives
|
||||
|
||||
/datum/antagonist/valentine/on_gain()
|
||||
forge_objectives()
|
||||
if(isliving(owner))
|
||||
var/mob/living/L = owner
|
||||
L.apply_status_effect(STATUS_EFFECT_INLOVE, date)
|
||||
. = ..()
|
||||
// /datum/antagonist/valentine/on_gain()
|
||||
// forge_objectives()
|
||||
// if(isliving(owner))
|
||||
// var/mob/living/L = owner
|
||||
// L.apply_status_effect(STATUS_EFFECT_INLOVE, date)
|
||||
// . = ..()
|
||||
|
||||
/datum/antagonist/valentine/on_removal()
|
||||
. = ..()
|
||||
if(isliving(owner))
|
||||
var/mob/living/L = owner
|
||||
L.remove_status_effect(STATUS_EFFECT_INLOVE)
|
||||
// /datum/antagonist/valentine/on_removal()
|
||||
// . = ..()
|
||||
// if(isliving(owner))
|
||||
// var/mob/living/L = owner
|
||||
// L.remove_status_effect(STATUS_EFFECT_INLOVE)
|
||||
|
||||
|
||||
/datum/antagonist/valentine/greet()
|
||||
to_chat(owner, "<span class='warning'><B>You're on a date with [date.name]! Protect [date.p_them()] at all costs. This takes priority over all other loyalties.</B></span>")
|
||||
// /datum/antagonist/valentine/greet()
|
||||
// to_chat(owner, "<span class='warning'><B>You're on a date with [date.name]! Protect [date.p_them()] at all costs. This takes priority over all other loyalties.</B></span>")
|
||||
|
||||
//Squashed up a bit
|
||||
/datum/antagonist/valentine/roundend_report()
|
||||
var/objectives_complete = TRUE
|
||||
if(owner.objectives.len)
|
||||
for(var/datum/objective/objective in owner.objectives)
|
||||
if(!objective.check_completion())
|
||||
objectives_complete = FALSE
|
||||
break
|
||||
// //Squashed up a bit
|
||||
// /datum/antagonist/valentine/roundend_report()
|
||||
// var/objectives_complete = TRUE
|
||||
// if(owner.objectives.len)
|
||||
// for(var/datum/objective/objective in owner.objectives)
|
||||
// if(!objective.check_completion())
|
||||
// objectives_complete = FALSE
|
||||
// break
|
||||
|
||||
if(objectives_complete)
|
||||
return "<span class='greentext big'>[owner.name] protected [owner.p_their()] date</span>"
|
||||
else
|
||||
return "<span class='redtext big'>[owner.name] date failed!</span>"
|
||||
// if(objectives_complete)
|
||||
// return "<span class='greentext big'>[owner.name] protected [owner.p_their()] date</span>"
|
||||
// else
|
||||
// return "<span class='redtext big'>[owner.name] date failed!</span>"
|
||||
|
||||
//Just so it's distinct, basically.
|
||||
/datum/antagonist/valentine/chem/greet()
|
||||
to_chat(owner, "<span class='warning'><B>You're in love with [date.name]! Protect [date.p_them()] at all costs. This takes priority over all other loyalties.</B></span>")
|
||||
// //Just so it's distinct, basically.
|
||||
// /datum/antagonist/valentine/chem/greet()
|
||||
// to_chat(owner, "<span class='warning'><B>You're in love with [date.name]! Protect [date.p_them()] at all costs. This takes priority over all other loyalties.</B></span>")
|
||||
|
||||
/datum/antagonist/valentine/chem/roundend_report()
|
||||
var/objectives_complete = TRUE
|
||||
if(owner.objectives.len)
|
||||
for(var/datum/objective/objective in owner.objectives)
|
||||
if(!objective.check_completion())
|
||||
objectives_complete = FALSE
|
||||
break
|
||||
// /datum/antagonist/valentine/chem/roundend_report()
|
||||
// var/objectives_complete = TRUE
|
||||
// if(owner.objectives.len)
|
||||
// for(var/datum/objective/objective in owner.objectives)
|
||||
// if(!objective.check_completion())
|
||||
// objectives_complete = FALSE
|
||||
// break
|
||||
|
||||
if(objectives_complete)
|
||||
return "<span class='greentext big'>[owner.name] protected [owner.p_their()] love: [date.name]! <i>What a cutie!</i></span>"
|
||||
else
|
||||
return "<span class='redtext big'>[owner.name] date failed!</span>"
|
||||
// if(objectives_complete)
|
||||
// return "<span class='greentext big'>[owner.name] protected [owner.p_their()] love: [date.name]! <i>What a cutie!</i></span>"
|
||||
// else
|
||||
// return "<span class='redtext big'>[owner.name] date failed!</span>"
|
||||
|
||||
//GS13 - commented out cuz it's kinda weird and too prefbreaky
|
||||
|
||||
@@ -4,56 +4,58 @@
|
||||
|
||||
// valentine / candy heart distribution //
|
||||
|
||||
/datum/round_event_control/valentines
|
||||
name = "Valentines!"
|
||||
holidayID = VALENTINES
|
||||
typepath = /datum/round_event/valentines
|
||||
weight = -1 //forces it to be called, regardless of weight
|
||||
max_occurrences = 1
|
||||
earliest_start = 0 MINUTES
|
||||
// /datum/round_event_control/valentines
|
||||
// name = "Valentines!"
|
||||
// holidayID = VALENTINES
|
||||
// typepath = /datum/round_event/valentines
|
||||
// weight = -1 //forces it to be called, regardless of weight
|
||||
// max_occurrences = 1
|
||||
// earliest_start = 0 MINUTES
|
||||
|
||||
/datum/round_event/valentines/start()
|
||||
..()
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
H.put_in_hands(new /obj/item/valentine)
|
||||
var/obj/item/storage/backpack/b = locate() in H.contents
|
||||
new /obj/item/reagent_containers/food/snacks/candyheart(b)
|
||||
new /obj/item/storage/fancy/heart_box(b)
|
||||
// /datum/round_event/valentines/start()
|
||||
// ..()
|
||||
// for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
// H.put_in_hands(new /obj/item/valentine)
|
||||
// var/obj/item/storage/backpack/b = locate() in H.contents
|
||||
// new /obj/item/reagent_containers/food/snacks/candyheart(b)
|
||||
// new /obj/item/storage/fancy/heart_box(b)
|
||||
|
||||
var/list/valentines = list()
|
||||
for(var/mob/living/M in GLOB.player_list)
|
||||
if(!M.stat && M.client && M.mind)
|
||||
valentines |= M
|
||||
// var/list/valentines = list()
|
||||
// for(var/mob/living/M in GLOB.player_list)
|
||||
// if(!M.stat && M.client && M.mind)
|
||||
// valentines |= M
|
||||
|
||||
|
||||
while(valentines.len)
|
||||
var/mob/living/L = pick_n_take(valentines)
|
||||
if(valentines.len)
|
||||
var/mob/living/date = pick_n_take(valentines)
|
||||
// while(valentines.len)
|
||||
// var/mob/living/L = pick_n_take(valentines)
|
||||
// if(valentines.len)
|
||||
// var/mob/living/date = pick_n_take(valentines)
|
||||
|
||||
|
||||
forge_valentines_objective(L, date)
|
||||
forge_valentines_objective(date, L)
|
||||
// forge_valentines_objective(L, date)
|
||||
// forge_valentines_objective(date, L)
|
||||
|
||||
if(valentines.len && prob(4))
|
||||
var/mob/living/notgoodenough = pick_n_take(valentines)
|
||||
forge_valentines_objective(notgoodenough, date)
|
||||
else
|
||||
L.mind.add_antag_datum(/datum/antagonist/heartbreaker)
|
||||
// if(valentines.len && prob(4))
|
||||
// var/mob/living/notgoodenough = pick_n_take(valentines)
|
||||
// forge_valentines_objective(notgoodenough, date)
|
||||
// else
|
||||
// L.mind.add_antag_datum(/datum/antagonist/heartbreaker)
|
||||
|
||||
/proc/forge_valentines_objective(mob/living/lover,mob/living/date,var/chemLove = FALSE)
|
||||
lover.mind.special_role = "valentine"
|
||||
if (chemLove == TRUE)
|
||||
var/datum/antagonist/valentine/chem/V = new //Changes text and EOG check basically.
|
||||
V.date = date.mind
|
||||
lover.mind.add_antag_datum(V)
|
||||
else
|
||||
var/datum/antagonist/valentine/V = new
|
||||
V.date = date.mind
|
||||
lover.mind.add_antag_datum(V) //These really should be teams but i can't be assed to incorporate third wheels right now
|
||||
// /proc/forge_valentines_objective(mob/living/lover,mob/living/date,var/chemLove = FALSE)
|
||||
// lover.mind.special_role = "valentine"
|
||||
// if (chemLove == TRUE)
|
||||
// var/datum/antagonist/valentine/chem/V = new //Changes text and EOG check basically.
|
||||
// V.date = date.mind
|
||||
// lover.mind.add_antag_datum(V)
|
||||
// else
|
||||
// var/datum/antagonist/valentine/V = new
|
||||
// V.date = date.mind
|
||||
// lover.mind.add_antag_datum(V) //These really should be teams but i can't be assed to incorporate third wheels right now
|
||||
|
||||
/datum/round_event/valentines/announce(fake)
|
||||
priority_announce("It's Valentine's Day! Give a valentine to that special someone!")
|
||||
// /datum/round_event/valentines/announce(fake)
|
||||
// priority_announce("It's Valentine's Day! Give a valentine to that special someone!")
|
||||
|
||||
//GS13 - commented out cuz it's kinda weird and too prefbreaky
|
||||
|
||||
/obj/item/valentine
|
||||
name = "valentine"
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
BIN
icons/obj/food/food64x64.dmi
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
BIN
icons/obj/ported/decor.dmi
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
icons/obj/ported/decor32x64.dmi
Normal file
|
After Width: | Height: | Size: 21 KiB |
@@ -342,7 +342,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
Lover.mind.store_memory("You are in love with [Love].")
|
||||
Lover.faction |= "[REF(Love)]"
|
||||
Lover.apply_status_effect(STATUS_EFFECT_INLOVE, Love)
|
||||
forge_valentines_objective(Lover, Love, TRUE)
|
||||
// forge_valentines_objective(Lover, Love, TRUE)
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have become infatuated.")
|
||||
log_game("FERMICHEM: [Lover] ckey: [Lover.key] has been chemically made to fall for [Love] ckey: [Love.key]")
|
||||
return
|
||||
|
||||
@@ -3091,6 +3091,7 @@
|
||||
#include "GainStation13\code\mobs\races\caloritegolem.dm"
|
||||
#include "GainStation13\code\modules\client\preferences\preferences.dm"
|
||||
#include "GainStation13\code\modules\clothing\under\jobs\modcivilian.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\recipes_bigpizza.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\drinks.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\food.dm"
|
||||
#include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm"
|
||||
|
||||