-
-
Notifications
You must be signed in to change notification settings - Fork 282
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
Sex spells #1057
base: master
Are you sure you want to change the base?
Sex spells #1057
Changes from 11 commits
868d3c1
05dbb90
325e7ac
4adcdcf
407f32d
9198a25
c46efb6
bc6a7da
7c4d40b
86286a9
06a9764
96cf674
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1297,6 +1297,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) | |
return | ||
|
||
/datum/species/proc/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) | ||
|
||
if(H.uncovered) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nonmodular lol |
||
if(return_warning) | ||
return_warning[1] = "<span class='warning'>I've been wicked!</span>" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what the hell |
||
return FALSE | ||
|
||
if(slot in no_equip) | ||
if(!I.species_exception || !is_type_in_list(src, I.species_exception)) | ||
return FALSE | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ | |
/datum/preferences | ||
max_save_slots = DEFAULT_SAVE_SLOTS | ||
var/unholypref = "No" //Goin 2 hell fo dis one | ||
var/magicalpref = "No" //Goin 2 hell fo dis one | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
var/stomppref = TRUE // Please step on me. | ||
var/list/gfluid_blacklist = list() //Stuff you don't want people to cum into you | ||
var/new_character_creator = TRUE // old/new character creator | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/obj/effect/proc_holder/spell/self/aoe_lust | ||
name = "Area Lust" | ||
desc = "Make the people nearby horny." | ||
charge_max = 600 //variable | ||
cooldown_min = 0 | ||
clothes_req = NONE | ||
antimagic_allowed = TRUE | ||
action_icon_state = "aoe_lust" | ||
action_icon = 'modular_splurt/icons/effects/sex_spells.dmi' | ||
var/activated = 0 | ||
clothes_req = NONE | ||
|
||
/obj/effect/proc_holder/spell/self/aoe_lust/cast(mob/living/carbon/human/user) | ||
for(var/mob/living/carbon/human/HH in view(5, user)) | ||
if(HH?.client?.prefs?.magicalpref == "No") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (have magicalpref be TRUE OR FALSE and FALSE BY DEFAULT this makes it sure that all statements using the above code will return TRUE if MAGICALPREF is FALSE. Neater way of doing what you're doing. Also just better coder practice as you're no longer doing an is equals but rather is true or false |
||
continue | ||
HH.add_lust(50) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/datum/atom_hud/data/human/arousal | ||
hud_icons = list(AROUSAL_HUD) | ||
|
||
/mob/living/carbon/human/proc/add_arousal_hud() | ||
var/datum/atom_hud/data/human/arousal/hud = GLOB.huds[DATA_HUD_AROUSAL] | ||
hud.add_hud_to(src) | ||
arousal_hud_update() | ||
for(var/mob/living/carbon/human/H in view(7, src)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. time to crash the server dont do this |
||
hud.add_to_hud(H) | ||
|
||
/mob/living/carbon/human/proc/remove_arousal_hud() | ||
var/datum/atom_hud/data/human/arousal/hud = GLOB.huds[DATA_HUD_AROUSAL] | ||
hud.remove_hud_from(src) | ||
|
||
/mob/living/carbon/human/Life() | ||
. = ..() | ||
if(has_quirk(/datum/quirk/sex_magician)) | ||
var/datum/atom_hud/data/human/arousal/hud = GLOB.huds[DATA_HUD_AROUSAL] | ||
for(var/mob/living/carbon/human/H in view(7, src)) | ||
hud.add_to_hud(H) | ||
arousal_hud_update() | ||
|
||
/mob/living/carbon/human/proc/arousal_hud_update() | ||
var/image/holder = hud_list[AROUSAL_HUD] | ||
var/icon/I = icon(icon, icon_state, dir) | ||
holder.pixel_y = I.Height() - world.icon_size | ||
var/arousal = getPercentAroused() | ||
switch(arousal) | ||
if(0 to 25) | ||
holder.icon_state = "hudarousal1" | ||
if(25 to 50) | ||
holder.icon_state = "hudarousal2" | ||
if(50 to 75) | ||
holder.icon_state = "hudarousal3" | ||
if(75 to INFINITY) | ||
holder.icon_state = "hudarousal4" | ||
|
||
/obj/effect/proc_holder/spell/self/eyes_of_lust | ||
name = "Eyes of Lust" | ||
desc = "Watch the lust." | ||
charge_max = 1200 //variable | ||
cooldown_min = 0 | ||
clothes_req = NONE | ||
antimagic_allowed = TRUE | ||
action_icon_state = "eyes_of_lust" | ||
action_icon = 'modular_splurt/icons/effects/sex_spells.dmi' | ||
var/activated = 0 | ||
clothes_req = NONE | ||
|
||
/obj/effect/proc_holder/spell/self/eyes_of_lust/cast(mob/living/carbon/human/user) | ||
|
||
if(!activated) | ||
user.add_arousal_hud() | ||
activated = 1 | ||
else | ||
user.remove_arousal_hud() | ||
activated = 0 | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
|
||
|
||
/obj/effect/proc_holder/spell/grope | ||
name = "Grope" | ||
desc = "Spawns magical hands of groping." | ||
charge_max = 1200 //variable | ||
cooldown_min = 0 | ||
level_max = 1 | ||
clothes_req = NONE | ||
antimagic_allowed = TRUE | ||
action_icon_state = "grope" | ||
action_icon = 'modular_splurt/icons/effects/sex_spells.dmi' | ||
var/mob/living/carbon/human/victim | ||
clothes_req = NONE | ||
|
||
/obj/effect/proc_holder/spell/grope/choose_targets(mob/user = usr) | ||
perform(user=user) | ||
|
||
/obj/effect/proc_holder/spell/grope/perform(list/targets, recharge = 1, mob/user = usr) | ||
var/list/possible = list() | ||
for(var/mob/living/carbon/human/H in view(7, user)) | ||
if(H?.client?.prefs?.magicalpref == "No") | ||
continue | ||
possible.Add(H) | ||
victim = input(user, "Choose the one to be groped", "Command") in possible | ||
if(QDELETED(src) || QDELETED(user)) | ||
return | ||
if(!victim) | ||
revert_cast(user) | ||
return | ||
..() | ||
|
||
/obj/effect/proc_holder/spell/grope/cast(list/targets, mob/user = usr) | ||
victim.be_groped(user) | ||
|
||
/mob/living/carbon/human | ||
var/is_being_groped = 0 | ||
|
||
/mob/living/carbon/human/proc/be_groped(var/mob/living/carbon/human/H) | ||
is_being_groped = H | ||
update_groped_icon() | ||
|
||
/mob/living/carbon/human/proc/update_groped_icon() | ||
if(is_being_groped) | ||
var/mutable_appearance/new_groping_overlay = mutable_appearance('modular_splurt/icons/effects/sex_spells.dmi', "grope overlay", -GROPING_LAYER) | ||
overlays_standing[GROPING_LAYER] = new_groping_overlay | ||
apply_overlay(GROPING_LAYER) | ||
else | ||
overlays_standing[GROPING_LAYER] = null | ||
return 0 | ||
|
||
/mob/living/carbon/human/Life() | ||
. = ..() | ||
if(is_being_groped) | ||
if(prob(50)) | ||
var/datum/interaction/lewd/titgrope_self/TG = new | ||
TG.do_action(is_being_groped, src, TRUE) | ||
qdel(TG) | ||
else | ||
var/datum/interaction/lewd/fingerass_self/FI = new | ||
FI.do_action(is_being_groped, src, TRUE) | ||
qdel(FI) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oh no |
||
|
||
|
||
/datum/quirk/sex_magician | ||
name = "Sex Magician" | ||
desc = "You can cast sexual spells into others." | ||
value = 1 | ||
mob_trait = TRAIT_SEXSPELLS | ||
gain_text = "<span class='notice'>You can cast sexual spells.</span>" | ||
lose_text = "<span class='danger'>You forget how to cast sexual spells.</span>" | ||
medical_record_text = "Patient brain scans show a highly-developed into sexual spells." | ||
|
||
/datum/quirk/sex_magician/on_spawn() | ||
var/mob/living/carbon/human/H = quirk_holder | ||
var/obj/effect/proc_holder/spell/grope/S = new /obj/effect/proc_holder/spell/grope | ||
var/obj/effect/proc_holder/spell/targeted/touch/penis_max/P = new /obj/effect/proc_holder/spell/targeted/touch/penis_max | ||
var/obj/effect/proc_holder/spell/targeted/touch/penis/PP = new /obj/effect/proc_holder/spell/targeted/touch/penis | ||
var/obj/effect/proc_holder/spell/self/eyes_of_lust/eol = new /obj/effect/proc_holder/spell/self/eyes_of_lust | ||
var/obj/effect/proc_holder/spell/hypno/hyp = new /obj/effect/proc_holder/spell/hypno | ||
var/obj/effect/proc_holder/spell/self/aoe_lust/aoe = new /obj/effect/proc_holder/spell/self/aoe_lust | ||
var/obj/effect/proc_holder/spell/targeted/touch/uncover/unc = new /obj/effect/proc_holder/spell/targeted/touch/uncover | ||
H.mind.AddSpell(S) | ||
H.mind.AddSpell(P) | ||
H.mind.AddSpell(PP) | ||
H.mind.AddSpell(eol) | ||
H.mind.AddSpell(hyp) | ||
H.mind.AddSpell(aoe) | ||
H.mind.AddSpell(unc) | ||
//H.add_arousal_hud() | ||
|
||
|
||
|
||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
extra layer being created and used for literally one effect. Move this to cult/magic layers.