Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lewd summon quirk #1251

Merged
merged 17 commits into from
Sep 24, 2024
2 changes: 2 additions & 0 deletions code/__SPLURTCODE/DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
#define TRAIT_MESSY "messy"
#define TRAIT_RESTORATIVE_METABOLISM "restorative_metabolism"
#define TRAIT_LEWD_JOB "lewd_job"
#define TRAIT_LEWD_SUMMON "lewd_summon"
#define TRAIT_LEWD_SUMMONED "lewd_summoned"
FinkRLD marked this conversation as resolved.
Show resolved Hide resolved
#define TRAIT_KISS_SLUT "kiss_slut"

// Chastity traits
Expand Down
5 changes: 5 additions & 0 deletions modular_bluemoon/Fink/code/datums/traits/neutral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,8 @@
name = "Секс это работа"
desc = "Ничего личного, просто бизнес. В моменты интимной близости у вас над головой не будут появляться сердечки."
mob_trait = TRAIT_LEWD_JOB

/datum/quirk/lewdsummon
name = "Призываемый"
desc = "Вы были одарены силой демонов похоти или же сами являлись её источником, что давала возможность осмелившимся безумцам призывать вас при помощи рун. Сможете ли вы исполнить их фантазии?."
mob_trait = TRAIT_LEWD_SUMMON
84 changes: 84 additions & 0 deletions modular_bluemoon/Fink/code/items/summon_chalk.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
/obj/item/summon_chalk
name = "qareen enchanted chalk"
desc = "A weird chalk covered in ectoplasm."
icon = 'modular_bluemoon/Gardelin0/icons/items/qareen_chalk.dmi'
icon_state = "chalk_pink"
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_TINY

/obj/item/summon_chalk/afterattack(atom/target, mob/user as mob, proximity)
if(!proximity)
return
if(istype(target, /turf/open/floor))
if(do_after(user, 5))
new /obj/effect/summon_rune(target)


/obj/effect/summon_rune
name = "Lewd summon rune"
desc = "It is believed this rune is capable of summoning horny creatures!"
icon = 'modular_bluemoon/Gardelin0/icons/items/qareen_chalk.dmi'
icon_state = "rune_pink"
light_color = LIGHT_COLOR_PINK
var/return_pos

/obj/effect/summon_rune/Initialize(mapload)
. = ..()
set_light(2)

/obj/effect/summon_rune/attack_hand(mob/living/carbon/M)
var/list/applicants = list()
var/static/list/applicants_result = list()
for(var/mob/living/carbon/human/H in GLOB.carbon_list)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Почему список карбонов?
  2. Сделай так, чтобы квирк самона добавлялся в отдельный global. Тебе не нужно просматривать список из 100+ сущностей с учётом трупов, у каждого устраивая if

if(HAS_TRAIT(H, TRAIT_LEWD_SUMMON))
applicants += H
for(var/mob/living/carbon/human/V in applicants)
var/mob/living/carbon/human/A = V
//var/atom/A = V
var/player_info = "[A.dna.species.name], [A.gender]"
applicants_result[initial(player_info)] = A

var/choice = tgui_alert(usr, "Do you want to attempt to summon?", "Attempt to summon?", list("Yes", "No"))
switch(choice)
if("No")
return
if("Yes")
var/target_info = input("Please, select a person to summon!", "Select", null, null) as null|anything in applicants_result
var/target_id= applicants.Find(target_info)+1
var/mob/living/carbon/human/target = applicants[target_id]
if(isnull(target))
to_chat(M, span_userdanger("Nobody to summon!"))
return
else

var/applicant_choice = tgui_alert(target, "You have been summoned! Do you want to answer?", "Do you want to answer?", list("Yes", "No"))

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Алёрт это плохая идея. Лучше сделать оповещение в чат с кнопкой. Могу подсказать где достать код для имплементации лёгкой на примере.

switch(applicant_choice)
if("No")
to_chat(M, span_userdanger("It refuses to answer!"))
if("Yes")

to_chat(M, span_lewd("Something is happening!"))
var/old_pos = target.loc
target.clothing_burst(FALSE)
do_teleport(target, src.loc, channel = TELEPORT_CHANNEL_MAGIC)
//target.forceMove(src.loc)
to_chat(target, span_hypnophrase("You are turning on!"))
ADD_TRAIT(target, TRAIT_LEWD_SUMMONED, src)
playsound(loc, "modular_bluemoon/Gardelin0/sound/effect/spook.ogg", 50, 1)
var/obj/effect/summon_rune/return_rune/R = new(src.loc)
R.return_pos = old_pos
qdel(src)


/obj/effect/summon_rune/return_rune/attack_hand(mob/living/carbon/M)
if(HAS_TRAIT(M, TRAIT_LEWD_SUMMONED))
var/choice = tgui_alert(usr, "Do you want to attempt to return?", "Attempt to return?", list("Yes", "No"))
switch(choice)
if("No")
return
if("Yes")
playsound(loc, "modular_bluemoon/Gardelin0/sound/effect/spook.ogg", 50, 1)
REMOVE_TRAIT(M, TRAIT_LEWD_SUMMONED, src)
do_teleport(M, return_pos, channel = TELEPORT_CHANNEL_MAGIC)
qdel(src)
1 change: 1 addition & 0 deletions modular_bluemoon/Fink/code/vending/kinkmate.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/machinery/vending/kink/Initialize()
var/list/extra_products = list(
/obj/item/card/id/lust = 5,
/obj/item/summon_chalk = 5,
)
var/list/extra_contraband = list(
/obj/item/reagent_containers/hypospray/medipen/lewdsleepy = 6,
Expand Down
Binary file modified modular_bluemoon/Gardelin0/icons/items/qareen_chalk.dmi
Binary file not shown.
3 changes: 2 additions & 1 deletion tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -4193,6 +4193,7 @@
#include "modular_bluemoon\code\modules\language\felinid.dm"
#include "modular_bluemoon\code\modules\language\language_holder.dm"
#include "modular_bluemoon\code\modules\mob\bluemoon_emotes.dm"
#include "modular_bluemoon\code\modules\mob\living.dm"
#include "modular_bluemoon\code\modules\mob\dead\new_player\sprite_accesories\akulas.dm"
#include "modular_bluemoon\code\modules\mob\dead\new_player\sprite_accesories\body_markings.dm"
#include "modular_bluemoon\code\modules\mob\dead\new_player\sprite_accesories\plain.dm"
Expand Down Expand Up @@ -4243,6 +4244,7 @@
#include "modular_bluemoon\Fink\code\items\memorizer.dm"
#include "modular_bluemoon\Fink\code\items\moniq.dm"
#include "modular_bluemoon\Fink\code\items\shieldbelt.dm"
#include "modular_bluemoon\Fink\code\items\summon_chalk.dm"
#include "modular_bluemoon\Fink\code\items\urn.dm"
#include "modular_bluemoon\Fink\code\items\weapons\garrote.dm"
#include "modular_bluemoon\Fink\code\items\weapons\nullrod.dm"
Expand Down Expand Up @@ -4449,7 +4451,6 @@
#include "modular_bluemoon\rakeideas\hca\code\hca_forms.dm"
#include "modular_bluemoon\rbmk_modification\rbmk_modification.dm"
#include "modular_bluemoon\real_round_time\real_round_time.dm"
#include "modular_bluemoon\code\modules\mob\living.dm"
#include "modular_bluemoon\Ren\Code\accessories.dm"
#include "modular_bluemoon\Ren\Code\cloth.dm"
#include "modular_bluemoon\Ren\Code\inventory.dm"
Expand Down
Loading