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

Баотисты воруют триумфы, господа #50

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
5 changes: 3 additions & 2 deletions code/__HELPERS/roundend.dm
Original file line number Diff line number Diff line change
Expand Up @@ -276,8 +276,9 @@
for(var/x in GLOB.confessors)
shit += "[x]"
// REDMOON ADD START
// family_changes - вывод статистики в конце раунда о количестве семей
shit += "<br><font color='#22833f'><span class='bold'>Rockhill had <b>[SSfamily.families.len]</b> families.</span></font>" // делится на 2, т.к. по 1 зачислятеся за каждое новое отношение
// вывод статистики в конце раунда о количестве семей и осквернённых Баотой
shit += "<br><font color='#22833f'><span class='bold'>Families were in Rockhill:</span></font> [SSfamily.families.len]" // family_changes
shit += "<br><font color='#a1489d'><span class='bold'>Corrputed by Baotha:</span></font> [SSticker.violated_by_baotha.len]" // baotha_steals_triumphs
// start_reports_with_gender_lists - вывод статистики в конце раунда о половой принадлежности
var/count_of_joined_characters = males + females + males_with_vagina + females_with_penis
var/percent_of_males = PERCENT(males/count_of_joined_characters)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/sexcon/sex_actions/force/force_blowjob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
user.visible_message(span_lovebold("[user] кончает в горло [target]!"))
else
user.visible_message(span_lovebold("[user] cums into [target]'s throat!"))
user.sexcon.cum_into()
user.sexcon.cum_into(oral = TRUE) // REDMOON EDIT - добавлены корректные параметры

user.sexcon.perform_sex_action(target, 0, 7, FALSE)
if(!user.sexcon.considered_limp())
Expand Down
2 changes: 1 addition & 1 deletion code/datums/sexcon/sex_actions/oral/blowjob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
target.visible_message(span_lovebold("[target] кончает в рот [user]!"))
else
target.visible_message(span_lovebold("[target] cums into [user]'s mouth!"))
target.sexcon.cum_into()
target.sexcon.cum_into(oral = TRUE, target_mob = user) // REDMOON EDIT - baotha_steals_triumphs - добавлены параметры, для правильного просчёта кого корраптят

/datum/sex_action/blowjob/on_finish(mob/living/carbon/human/user, mob/living/carbon/human/target)
..()
Expand Down
2 changes: 1 addition & 1 deletion code/datums/sexcon/sex_actions/oral/cunnilingus.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
target.visible_message(span_lovebold("[target] пускает сквирт в рот [user]!"))
else
target.visible_message(span_lovebold("[target] ejaculates into [user]'s mouth!"))
target.sexcon.cum_into()
target.sexcon.cum_into(oral = TRUE, target_mob = user) // REDMOON EDIT - baotha_steals_triumphs - добавлены параметры, для правильного просчёта кого корраптят

/datum/sex_action/cunnilingus/on_finish(mob/living/carbon/human/user, mob/living/carbon/human/target)
..()
Expand Down
2 changes: 1 addition & 1 deletion code/datums/sexcon/sex_actions/sex/anal_ride_sex.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
target.visible_message(span_lovebold("[target] кончает в задницу [user]!"))
else
target.visible_message(span_lovebold("[target] cums into [user]'s butt!"))
target.sexcon.cum_into()
target.sexcon.cum_into(target_mob = user) // REDMOON EDIT - baotha_steals_triumphs - добавлены параметры, для правильного просчёта кого корраптят
target.virginity = FALSE

/datum/sex_action/anal_ride_sex/on_finish(mob/living/carbon/human/user, mob/living/carbon/human/target)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/sexcon/sex_actions/sex/throat_sex.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
user.visible_message(span_lovebold("[user] кончает в глотку [target]!"))
else
user.visible_message(span_lovebold("[user] cums into [target]'s throat!"))
user.sexcon.cum_into()
user.sexcon.cum_into(oral = TRUE) // REDMOON EDIT - корректная проверка
user.virginity = FALSE

if(user.sexcon.considered_limp())
Expand Down
2 changes: 1 addition & 1 deletion code/datums/sexcon/sex_actions/sex/vaginal_ride_sex.dm
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
target.visible_message(span_lovebold("[target] кончает в вагину [user]!"))
else
target.visible_message(span_lovebold("[target] cums into [user]'s cunt!"))
target.sexcon.cum_into()
target.sexcon.cum_into(target_mob = user) // REDMOON EDIT - baotha_steals_triumphs - добавлены параметры, для правильного просчёта кого корраптят
target.try_impregnate(user)
target.virginity = FALSE
user.virginity = FALSE
Expand Down
23 changes: 19 additions & 4 deletions code/datums/sexcon/sexcon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -193,12 +193,18 @@
add_cum_floor(get_turf(target))
after_ejaculation()

/datum/sex_controller/proc/cum_into(oral = FALSE)
/datum/sex_controller/proc/cum_into(oral = FALSE, mob/living/target_mob = null) // REDMOON EDIT - baotha_steals_triumphs - добавлен target_mob для правильного просчёта, кого корраптят
if(target_mob) // REDMOON ADD - baotha_steals_triumphs - для правильного просчёта, кого корраптят
target = target_mob // REDMOON ADD
log_combat(user, target, "Came inside the target")
if(oral)
playsound(target, pick(list('sound/misc/mat/mouthend (1).ogg','sound/misc/mat/mouthend (2).ogg')), 100, FALSE, ignore_walls = FALSE)
else
playsound(target, 'sound/misc/mat/endin.ogg', 50, TRUE, ignore_walls = FALSE)
if(user.patron.type == /datum/patron/inhumen/baotha) // REDMOON ADD START - baotha_steals_triumphs
baotha_process(user, target) // Баотит даёт
else
baotha_process(target, user) // REDMOON ADD END - баотит принимает
after_ejaculation()
if(!oral)
after_intimate_climax()
Expand All @@ -220,7 +226,12 @@
/datum/sex_controller/proc/after_ejaculation()
user.add_stress(/datum/stressevent/cumok)
set_arousal(40)
adjust_charge(-CHARGE_FOR_CLIMAX)
if(user.patron) // REDMOON ADD START - Эора и Баота позволяют своему юзверю быть очень выносливым
if(user.patron.type != /datum/patron/inhumen/baotha || user.patron.type != /datum/patron/divine/eora)
if(prob(10))
to_chat(user, span_love((user.client.prefs.be_russian ? "Мой бог... Даёт мне сил продолжать! Славься!" : "My god... Grants me power to continue! Praise!")))
else // REDMOON ADD END
adjust_charge(-CHARGE_FOR_CLIMAX)
user.emote("sexmoanhvy", forced = TRUE)
user.playsound_local(user, 'sound/misc/mat/end.ogg', 100)
last_ejaculation_time = world.time
Expand All @@ -244,13 +255,13 @@
if(HAS_TRAIT(target, TRAIT_GOODLOVER))
if(!user.mob_timers["cumtri"])
user.mob_timers["cumtri"] = world.time
user.adjust_triumphs(1)
// user.adjust_triumphs(1)
to_chat(user, span_love("Our loving is a true TRIUMPH!"))
user.add_stress(/datum/stressevent/cumgood)
if(HAS_TRAIT(user, TRAIT_GOODLOVER))
if(!target.mob_timers["cumtri"])
target.mob_timers["cumtri"] = world.time
target.adjust_triumphs(1)
// target.adjust_triumphs(1)
to_chat(target, span_love("Our loving is a true TRIUMPH!"))
user.add_stress(/datum/stressevent/cumgood)

Expand Down Expand Up @@ -598,6 +609,7 @@
desire_stop = FALSE
user.doing = FALSE
current_action = null
actions_made = 0 // REDMOON ADD - baotha_steals_triumphs

/datum/sex_controller/proc/try_start_action(action_type)
if(action_type == current_action)
Expand Down Expand Up @@ -642,6 +654,9 @@
if(desire_stop)
break
action.on_perform(user, target)
actions_made++ // REDMOON ADD - baotha_steals_triumphs
if(target.sexcon) // REDMOON ADD - baotha_steals_triumphs
target.sexcon.actions_made++ // REDMOON ADD - baotha_steals_triumphs
// It could want to finish afterwards the performed action
if(action.is_finished(user, target))
break
Expand Down
5 changes: 4 additions & 1 deletion code/modules/goonchat/browserassets/css/browserOutput.css
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,8 @@ h1.alert, h2.alert {color: #c9c1ba;font-family: Pterra, TrueType;}
.greenannounce {color: #059223; font-weight: bold;}
.rose {color: #e7bed8;}
.love {color: #e7bed8; font-size: 75%;}
.info {color: #a9a5b6; font-size: 75%; line-height:1}
.lovebold {color: #e7bed8; font-weight: bold;}
.info {color: #a9a5b6; font-size: 75%; line-height:1}
.biginfo {color: #a9a5b6;}
.notice {color: #f1d669;}
.boldnotice {color: #f1d669; font-weight: bold;}
Expand Down Expand Up @@ -430,7 +431,9 @@ h1.alert, h2.alert {color: #c9c1ba;font-family: Pterra, TrueType;}
.orc {font-family: "Thief by The Riddler", Pterra;}
.beast {font-family: "Thief by The Riddler", Pterra;}
.reptile {font-family: "Kingthings Petrock", Pterra; font-size: 120%;}
.faexin {font-family: "Sweet Dreams", Pterra;}
.lupian {font-family: "Emperialisme", Pterra; font-size: 120%;}
.felid {font-family: "a Awal Ramadhan", Pterra; font-size: 120%;}

.torture {color: #42ff20}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@
"ЖИВИ, СМЕЙСЯ, ЛЮБИ!",
"БАОТА - МОЯ РАДОСТЬ!",
)
mob_traits = list(TRAIT_GOODLOVER, TRAIT_CRACKHEAD)
mob_traits = list(TRAIT_CRACKHEAD)
5 changes: 3 additions & 2 deletions modular_redmoon/code/modules/tgs/roundspoke.dm
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,15 @@
var/datum/tgs_chat_embed/field/triumphgained = new ("🏆Триумфов получено: ", "[SSticker.tri_gained]")
var/datum/tgs_chat_embed/field/triumphslost = new (":woman_detective:Триумфов украдено: ","[SSticker.tri_lost*-1]")
var/datum/tgs_chat_embed/field/pleasures = new ("💦Наслаждений: ", "[SSticker.cums]")
var/datum/tgs_chat_embed/field/violated_by_baotha = new (":smiling_imp:Осквернено Баотой: ", "[SSticker.violated_by_baotha.len]") // baotha_steals_triumphs
var/datum/tgs_chat_embed/field/confessors = new (":orthodox_cross:Исповедники: ", "[GLOB.confessors.len]")
var/datum/tgs_chat_embed/field/families = new (":ring:Семьи: ", "[SSfamily.families.len]")
var/datum/tgs_chat_embed/field/families = new (":ring:Семьи: ", "[SSfamily.families.len]") // family_changes
var/datum/tgs_chat_embed/field/boys = new (":man_beard:Мужчины: ", "[SSticker.males] ([percent_of_males]%)")
var/datum/tgs_chat_embed/field/womens = new (":woman:Женщины: ", "[SSticker.females] ([percent_of_females]%)")
var/datum/tgs_chat_embed/field/femboys = new (":man:Кантбои: ", "[SSticker.males_with_vagina] ([percent_of_males_with_vagina]%)")
var/datum/tgs_chat_embed/field/futacocks = new (":woman_beard:Фута: ", "[SSticker.females_with_penis] ([percent_of_females_with_penis]%)")

embed.fields = list(deaths, bloodspilled, triumphgained, triumphslost, pleasures, confessors, families, players, boys, womens, femboys, futacocks)
embed.fields = list(deaths, bloodspilled, triumphgained, triumphslost, pleasures, violated_by_baotha, confessors, families, players, boys, womens, femboys, futacocks)

send2chat(message, "status")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// Искать связанный код по тэгу "baotha_steals_triumphs"

/datum/sex_controller
/// Количество совершенных действий. Нужно, чтобы баотиты за секунду не воровали чужие триумфы.
var/actions_made = 0

/datum/controller/subsystem/ticker
var/list/violated_by_baotha = list()

/datum/sex_controller/proc/baotha_invitation(var/mob/living/baotha_cultist, var/mob/living/victim)
if(victim.real_name in SSticker.violated_by_baotha)
return FALSE
SSticker.violated_by_baotha += victim.real_name
baotha_cultist.adjust_triumphs(1)
victim.adjust_triumphs(-1)
to_chat(victim, victim.client.prefs.be_russian ? span_userdanger("Я чувствую, как мою душу оскверняют!") : span_userdanger("I feel how my soul is being corrupted by them!"))
var/question = alert(victim, "Give up and praise Baotha?...", "Give up to the pleasure!", "No!", "Yes!")
if(question != "Yes!")
to_chat(baotha_cultist, baotha_cultist.client.prefs.be_russian ? span_userdanger("Моя игрушка решила держаться за своего недо-бога до конца... Какая жалость, что от меня это не спасает!") : span_danger("My toy decided to hold on their god to the end... How pitty that is will not save them from me!"))
to_chat(victim, victim.client.prefs.be_russian ? span_userdanger("МОЯ ВЕРА - МОЙ ЩИТ! И ДУХ МОЙ СИЛЁН!") : span_userdanger("MY FAITH IS MY SHIELD! AND SPIRIT IS STRONG!"))
return FALSE
to_chat(victim, victim.client.prefs.be_russian ? span_userdanger("Я предаю своего Бога... Я ничтожество. В любом случае, прими меня, Баота!") : span_userdanger("I turned on my God... I am a weakling. Anyway, take me, Baotha!"))
victim.set_patron(/datum/patron/inhumen/baotha)
victim.whisper("Славься, Баота...!")

/datum/sex_controller/proc/baotha_process(var/mob/living/baotha_cultist, var/mob/living/victim)
if(baotha_cultist == victim)
return FALSE
if(baotha_cultist.patron.type != /datum/patron/inhumen/baotha)
return FALSE
if(victim.patron.type == /datum/patron/inhumen/baotha)
return FALSE
if(actions_made < 12)
to_chat(baotha_cultist, baotha_cultist.client.prefs.be_russian ? span_warning("Мне нужно получить больше удовольствия, чтобы осквернить!") : span_warning("I need to get more pleasure from them to corrupt!"))
return FALSE
var/amount_to_change_nutrition = min(50, NUTRITION_LEVEL_FULL - baotha_cultist.nutrition)
var/amount_to_change_hydration = min(50, HYDRATION_LEVEL_FULL - baotha_cultist.nutrition)
if(victim.real_name in SSticker.violated_by_baotha)
target.adjust_nutrition(-amount_to_change_nutrition)
target.adjust_hydration(-amount_to_change_hydration)
baotha_cultist.adjust_nutrition(amount_to_change_nutrition)
baotha_cultist.adjust_hydration(amount_to_change_hydration)
else // В первый раз, это особенно больно
amount_to_change_nutrition = min(400, NUTRITION_LEVEL_FULL - baotha_cultist.nutrition)
amount_to_change_hydration = min(400, HYDRATION_LEVEL_FULL - baotha_cultist.nutrition)
target.adjust_nutrition(-amount_to_change_nutrition)
target.adjust_hydration(-amount_to_change_hydration)
baotha_cultist.adjust_nutrition(amount_to_change_nutrition)
baotha_cultist.adjust_hydration(amount_to_change_hydration)
spawn(0)
baotha_invitation(baotha_cultist, victim)
var/list/baotha_taunts = list(
"Weakling... Your body will be a pleasurable toy!",
"I guess it will corrupt them enought... Praise, Baotha!",
"[victim.gender == MALE ? "His" : "Her"] spirit shall fall... Just like their false-teachings!")
var/list/baotha_taunts_ru = list(
"Ничтожество... Твоё тело будет хорошей игрушкой!",
"Надеюсь, это достаточно осквернит [victim.gender == MALE ? "его" : "её"] душу... Славься, Баота!",
"Силы наполняют меня, пока моя жертва ослабевает... Славься, Баота!",
"[victim.gender == MALE ? "Его" : "Её"] дух падёт... Как и [victim.gender == MALE ? "его" : "её"] лжеучения!")
to_chat(baotha_cultist, baotha_cultist.client.prefs.be_russian ? span_lovebold(pick(baotha_taunts_ru)) : span_lovebold(pick((baotha_taunts))))
to_chat(victim, victim.client.prefs.be_russian ? span_danger("ИЗ МЕНЯ ВЫСАСЫВАЮТ ЖИЗНЕННЫЕ СИЛЫ! НЕТ!!") : span_danger("MY LIFEFORCE IS BEING PULLED AWAY! PLEASE, NO!!"))
1 change: 1 addition & 0 deletions roguetown.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2164,6 +2164,7 @@
#include "modular_redmoon\code\modules\surgery\organs\feature_organs\tails.dm"
#include "modular_redmoon\code\modules\tgs\roundspoke.dm"
#include "modular_redmoon\modules\acolytes_can_coronate\acolytes_can_coronate.dm"
#include "modular_redmoon\modules\baotha_steals_triumphs\baotha_steals_triumphs.dm"
#include "modular_redmoon\modules\client\preferences.dm"
#include "modular_redmoon\modules\client\preferences_savefile.dm"
#include "modular_redmoon\modules\cloak_hoods_fix\cloak_hoods_fix.dm"
Expand Down