Skip to content

Commit

Permalink
Tweak: para wishgranter (#195)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает

<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #1234" (где 1234 - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

## Почему это хорошо для игры

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Изображения изменений
<!-- Если вы не меняли карту или спрайты, можете опустить эту секцию.
Если хотите, можете вставить видео. -->

## Тестирование
<!-- Как вы тестировали свой PR, если делали это вовсе? -->

## Changelog

:cl:
tweak: Поменял вишгрантер имбы на обычный в гейте
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
Furrior authored Sep 16, 2023
1 parent b2bd18e commit 9a6be4c
Show file tree
Hide file tree
Showing 20 changed files with 215 additions and 110 deletions.
204 changes: 102 additions & 102 deletions _maps/map_files220/RandomZLevels/wildwest.dmm

Large diffs are not rendered by default.

File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
#include "code/RandomRuins/space_ruins.dm"
#include "code/Station/cyberiad.dm"
#include "code/Station/delta.dm"
#include "code/mobs.dm"
#include "code/corpses.dm"
#include "code/spawners.dm"
#include "code/helpers.dm"
#include "code/misc.dm"
#include "code/mobs.dm"
#include "code/spawners.dm"
#include "code/walls.dm"
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/obj/effect/mapping_helpers
icon = 'modular_ss220/_maps220/icons/mapping_helpers.dmi'
icon = 'modular_ss220/maps220/icons/mapping_helpers.dmi'

/obj/effect/mapping_helpers/light
icon_state = "sunlight_helper"
Expand Down
105 changes: 105 additions & 0 deletions modular_ss220/maps220/code/misc.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/obj/machinery/wish_granter_dark
name = "Исполнитель Желаний"
desc = "Вы уже не уверены в этом..."
icon = 'icons/obj/device.dmi'
icon_state = "syndbeacon"

anchored = TRUE
density = TRUE
power_state = NO_POWER_USE

var/power_mutations
var/charges = 1
var/insisting = FALSE

/obj/machinery/wish_granter_dark/Initialize(mapload)
. = ..()
power_mutations = list(/datum/mutation/meson_vision, /datum/mutation/night_vision, /datum/mutation/cold_resist, /datum/mutation/grant_spell/cryo)

/obj/machinery/wish_granter_dark/attack_hand(mob/living/carbon/human/user as mob)
usr.set_machine(src)

if(!charges)
to_chat(user, "[name] никак не реагирует.")
return

else if(!ishuman(user))
to_chat(user, "Вы чувствуете темное движение внутри [name], которого опасаются ваши инстинкты.")
return

else if(is_special_character(user))
to_chat(user, "Что-то инстинктивно заставляет вас отстраниться.")
return

else if(!insisting)
to_chat(user, "Ваше первое прикосновение заставляет [name] зашевелиться, прислушиваясь к вам. Вы действительно уверены, что хотите это сделать?")
insisting = TRUE
return

insisting = FALSE
var/wish = input("Вы хотите...","Желание") as null|anything in list("Сила", "Богатство", "Бессмертие", "Покой")
if(!wish)
return
charges--

var/mob/living/carbon/human/human = user
var/become_shadow = TRUE
var/list/output = list()
switch(wish)
if("Сила")
for(var/mutation_type in power_mutations)
var/datum/mutation/mutation = GLOB.dna_mutations[mutation_type]
mutation.activate(human)

if("Богатство")
new /obj/structure/closet/syndicate/resources/everything(loc)

if("Бессмертие")
user.verbs += /mob/living/carbon/human/verb/immortality

if("Покой")
for(var/mob/living/simple_animal/hostile/faithless/F in GLOB.mob_living_list)
F.death()
become_shadow = FALSE

if(become_shadow && !isshadowperson(human))
output += "<B>Ваше желание исполнено, но какой ценой...</B>"
output += "[name] наказывает вас за ваш эгоизм, забирая вашу душу и деформируя ваше тело, чтобы оно соответствовало тьме в вашем сердце."
output += span_warning("Ваша плоть темнеет!")
output += "<b>Вы теперь Тень, раса живущих во тьме гуманоидов.</b>"
output += span_warning("Ваше тело бурно реагирует на свет.") + span_notice("Однако естественным образом исцеляется в темноте..")
output += "Помимо ваших новых качеств, вы психически не изменились и сохраняете свою прежнюю личность."
human.set_species(/datum/species/shadow)
user.regenerate_icons()
else
output += "Вы чувствуете как избежали горькой судьбы..."
output += "<B>Каким бы инопланетным разумом ни обладал [name], оно удовлетворяет ваше желание. Наступает тишина...</B>"

to_chat(user, output.Join("<br>"))

#define TRAIT_REVIVAL_IN_PROGRESS "revival_in_progress"

/mob/living/carbon/human/verb/immortality()
set category = "Бессмертие"
set name = "Возрождение"

if(stat != DEAD)
to_chat(src, span_notice("Вы еще живы!"))
return

if(HAS_TRAIT(src, TRAIT_REVIVAL_IN_PROGRESS))
to_chat(src, span_notice("Вы уже восстаёте из мертвых!"))
return

ADD_TRAIT(src, TRAIT_REVIVAL_IN_PROGRESS, "Immortality")
to_chat(src, span_notice("Смерть - ещё не конец!"))
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/carbon/human, resurrect)), rand(80 SECONDS, 120 SECONDS))

/mob/living/carbon/human/proc/resurrect()
// Stolen from ling stasis
revive()
REMOVE_TRAIT(src, TRAIT_REVIVAL_IN_PROGRESS, "Immortality")
to_chat(src, span_notice("Вы вернулись из небытия."))
visible_message(span_warning("[name] восстаёт из мертвых, исцелив все свои раны"))

#undef TRAIT_REVIVAL_IN_PROGRESS
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/mob/living/simple_animal/hostile/scavengers
name = "Scavenger"
desc = "One of the many random looters or bandits of the frontiers."
icon = 'modular_ss220/_maps220/icons/simple_human.dmi'
icon = 'modular_ss220/maps220/icons/simple_human.dmi'
icon_state = "scav"
icon_living = "scav"
icon_dead = "scavdead"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@

/* LOOTDROP */
/obj/effect/spawner/lootdrop/maintenance
icon = 'modular_ss220/_maps220/icons/spawner_icons.dmi'
icon = 'modular_ss220/maps220/icons/spawner_icons.dmi'

/obj/effect/spawner/lootdrop/maintenance/three
icon_state = "trippleloot"
Expand All @@ -47,7 +47,7 @@

/obj/effect/spawner/lootdrop/trash
name = "trash spawner"
icon = 'modular_ss220/_maps220/icons/spawner_icons.dmi'
icon = 'modular_ss220/maps220/icons/spawner_icons.dmi'
icon_state = "trash"
loot = list(
/obj/item/trash/bowl,
Expand Down
File renamed without changes.
3 changes: 1 addition & 2 deletions modular_ss220/modular_ss220.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@
// --- MAINTENANCE --- //
#include "_defines220/_defines220.dme"
#include "_signals220/_signals220.dme"
#include "_maps220/_maps220.dme"
#include "_misc/_misc.dme"
#include "_span/_span.dme"

#include "maps220/_maps220.dme"

// --- ICONS --- //
#include "aesthetics/_aesthetics.dme"
Expand Down

0 comments on commit 9a6be4c

Please sign in to comment.