porting sprites, giant pizza, removing valentines

should've chopped those commits but eh, essentially does what it says it does
This commit is contained in:
evilew
2024-02-16 16:44:30 +01:00
parent edb2f19600
commit c7d76c9941
16 changed files with 176 additions and 113 deletions

View File

@@ -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)

View File

@@ -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)

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -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

View File

@@ -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

View File

@@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

BIN
icons/obj/ported/decor.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -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

View File

@@ -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"