forked from ParadiseSS13/Paradise
-
Notifications
You must be signed in to change notification settings - Fork 131
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PORT&FEAT] Mobs pack - Part 1 (#310)
## Что этот PR делает Первая часть порта пака зоопарка и холдеров из моего старого ПРа: ss220-space/Paradise#2058 ### Переноска Переноска позволяет переносить маленьких и небольших животных с уменьшением шанса их побега. Купить переноску возможно в вендомате для животных. Чтобы выгрузить питомца из переноски, нужно перетащить переноску на пол или нажать на неё ПКМ, Альт-Клик. Если дверца открыта - животное сбежит за 5 секунд. Если дверца закрыта - животное сможет сбежать за 60 секунд, если не шевелиться. Чем больше переноска, тем больше животное в размере она может поместить в себя. Помещенное животное отражается на переноске, переименовывая её, изменяя описание и отображаясь на предмете. **Типы переносок:** Маленькая, Средняя. **Цвета переносок:** Черная, Голубая, Красная, Желтая, Зеленая, Фиолетовая ![image](https://user-images.githubusercontent.com/41479614/218785616-681f68a3-c7b3-4e1c-af68-a58560588258.png) Переноски в руках: ![image](https://user-images.githubusercontent.com/41479614/218785502-ea4a0c09-64b5-43a3-8270-81bf307ee170.png) ![image](https://user-images.githubusercontent.com/41479614/218785441-3657e48c-e58a-4c87-af1e-43faa1e0e71a.png) ## Животные ### Перенос Существ небольшого размера можно переносить в руках, рюкзаке, карманах и даже надевать их на голову! Чтобы взять существо малого размера (мышь, хомяк, крыса) - нужно взаимодействовать в HELP интенте. Чтобы взять существо небольшого размера (собака, лиса, кот) - нужно взаимодействовать в GRAB интенте. Чтобы взять обезьянку на руки - нужно взять её в GRAB обеими руками. ![image](https://user-images.githubusercontent.com/41479614/218787933-7b20ba55-a0de-487b-819e-d5194c9c6e63.png) ### Новые животные ![image](https://user-images.githubusercontent.com/41479614/218805622-1c5a7f7b-baab-4551-8f87-a1031fcf013b.png) ![image](https://user-images.githubusercontent.com/41479614/218799164-933e7249-3254-4ca1-bc41-b040b61d224b.png) ### Обновление животных Добавлено 32 новых животных. Добавлено 14 именованных животных размещенных по карте. Изменено уже существующие ~10 животных - доработаны, перенесены с карт в код #### Обновление животных и связанного с ними: ## Почему это хорошо для игры Каргония может заказать новых животных, педали могут защитспавнить больше мобов. Звуки придают живости окружающему ## Изображения изменений ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/cddcb123-91fd-4617-80dc-097b7b9f4d68) ## Тестирование ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/753c0dfa-62a3-45db-a921-e4cb2f968e66) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/e6f299c1-8eec-43de-97ce-372bb14bfafc) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/fb3f0240-34f5-4f65-96c4-1d9e7b58c48c) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/32df4f72-14e6-4478-9e36-ca31dfbfff4f) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/0d8dc3b6-c3bf-45ab-a210-2fe426804fd7) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/6aaeb18b-cd14-4e89-ba3b-3b9184c32e09) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/978737e4-4297-492a-a956-9f4dec38ad15) ![image](https://github.com/ss220club/Paradise-SS220/assets/41479614/b600b6de-a6e2-4153-b657-f7d13fdcdfbd) ## Changelog :cl: add: Добавлен ЗООПАРК add: Добавлены крысы и возможностью стать ей add: Добавлены переноски add: Добавлено немного животных на карту tweak: Расширенные холдеры, многих животных можно держать soundadd: Добавлены звуки животным fix: возвращен ивент с хедкрабами add: добавлен ивент с расширенным заражением /:cl: <!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы можете написать свой ник справа от первого :cl:, если хотите. Иначе будет использован ваш ник на ГитХабе. --> <!-- Вы можете использовать несколько записей с одинаковым префиксом (Они используются только для иконки в игре) и удалить ненужные. Помните, что чейнджлог должен быть понятен обычным игроком. --> <!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы можете исключить всю секцию. --> --------- Co-authored-by: dj-34 <[email protected]>
- Loading branch information
Showing
145 changed files
with
4,542 additions
and
58 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
/datum/modpack/events | ||
name = "Кастомные ивенты" | ||
desc = "Добавление новых ивентов" | ||
author = "dj-34" | ||
author = "dj-34, PhantomRU" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
#include "_events.dm" | ||
|
||
#include "code/new_space_laws.dm" | ||
#include "code/headcrabs.dm" | ||
#include "code/infestation_extended.dm" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
#define HEADCRAB_NORMAL 0 | ||
#define HEADCRAB_FASTMIX 1 | ||
#define HEADCRAB_FAST 2 | ||
#define HEADCRAB_POISONMIX 3 | ||
#define HEADCRAB_POISON 4 | ||
#define HEADCRAB_SPAWNER 5 | ||
|
||
/datum/event/headcrabs | ||
announceWhen = 10 | ||
endWhen = 11 | ||
var/locstring | ||
var/headcrab_type | ||
|
||
/datum/event/headcrabs/start() | ||
var/list/availableareas = list() | ||
for(var/area/station/maintenance/A in world) | ||
availableareas += A | ||
var/area/randomarea = pick(availableareas) | ||
var/list/turf/simulated/floor/turfs = list() | ||
for(var/turf/simulated/floor/F in randomarea) | ||
if(turf_clear(F)) | ||
turfs += F | ||
var/list/spawn_types = list() | ||
var/max_number | ||
headcrab_type = rand(0, 5) | ||
switch(headcrab_type) | ||
if(HEADCRAB_NORMAL) | ||
spawn_types = list(/mob/living/simple_animal/hostile/headcrab) | ||
max_number = 6 | ||
if(HEADCRAB_FASTMIX) | ||
spawn_types = list(/mob/living/simple_animal/hostile/headcrab, /mob/living/simple_animal/hostile/headcrab/fast) | ||
max_number = 8 | ||
if(HEADCRAB_FAST) | ||
spawn_types = list(/mob/living/simple_animal/hostile/headcrab/fast) | ||
max_number = 6 | ||
if(HEADCRAB_POISONMIX) | ||
spawn_types = list(/mob/living/simple_animal/hostile/headcrab, /mob/living/simple_animal/hostile/headcrab/poison) | ||
max_number = 4 | ||
if(HEADCRAB_POISON) | ||
spawn_types = list(/mob/living/simple_animal/hostile/headcrab/poison) | ||
max_number = 3 | ||
if(HEADCRAB_SPAWNER) | ||
spawn_types = list(/obj/structure/spawner/headcrab) | ||
max_number = 2 | ||
|
||
|
||
var/num = rand(2,max_number) | ||
|
||
while(turfs.len > 0 && num > 0) | ||
var/turf/simulated/floor/T = pick(turfs) | ||
turfs.Remove(T) | ||
num-- | ||
var/spawn_type = pick(spawn_types) | ||
new spawn_type(T) | ||
|
||
if(prob(15)) | ||
var/turf/simulated/floor/T = pick(turfs) | ||
new /obj/structure/spawner/headcrab(T) | ||
|
||
/datum/event/headcrabs/announce() | ||
GLOB.major_announcement.Announce("Биосканеры фиксируют размножение хедкрабов на борту станции. Избавьтесь от них, прежде чем это начнет влиять на продуктивность станции", "ВНИМАНИЕ: НЕОПОЗНАННЫЕ ФОРМЫ ЖИЗНИ.") | ||
|
||
/datum/event_container/mundane/New() | ||
. = ..() | ||
available_events |= new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Headcrab Infestation", /datum/event/headcrabs, 100, list(ASSIGNMENT_SECURITY = 30), TRUE) | ||
|
||
#undef HEADCRAB_NORMAL | ||
#undef HEADCRAB_FASTMIX | ||
#undef HEADCRAB_FAST | ||
#undef HEADCRAB_POISONMIX | ||
#undef HEADCRAB_POISON | ||
#undef HEADCRAB_SPAWNER |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
#define VERM_RATS 0 | ||
#define VERM_AXOLOTL 1 | ||
#define VERM_FROGS 2 | ||
#define VERM_IGUANAS 3 | ||
#define VERM_SNAKES 4 | ||
#define VERM_MOTH 5 | ||
#define VERM_MOTHROACH 6 | ||
|
||
/datum/event/infestation/extended | ||
announceWhen = 10 | ||
endWhen = 11 | ||
var/static/list/spawn_areas_extended = list( | ||
/area/station/service/chapel, | ||
/area/station/service/library, | ||
/area/station/service/hydroponics, | ||
/area/station/service/cafeteria, | ||
/area/station/service/hydroponics, | ||
/area/station/service/bar, | ||
/area/station/service/kitchen, | ||
/area/station/service/janitor, | ||
/area/station/public/construction, | ||
/area/station/public/arcade, | ||
/area/station/public/toilet, | ||
/area/station/public/fitness, | ||
/area/station/engineering/atmos, | ||
/area/station/engineering/tech_storage, | ||
/area/station/security/armory/secure, | ||
/area/station/security/permabrig, | ||
/area/station/security/lobby, | ||
/area/station/security/prison/cell_block/A, | ||
/area/station/security/prison/cell_block/B, | ||
/area/station/security/prison/cell_block/C, | ||
) | ||
|
||
/datum/event/infestation/extended/start() | ||
var/list/turf/simulated/floor/turfs = list() | ||
spawn_area_type = pick(spawn_areas_extended) | ||
for(var/areapath in typesof(spawn_area_type)) | ||
var/area/A = locate(areapath) | ||
if(!A) | ||
log_debug("Failed to locate area for extended infestation event!") | ||
kill() | ||
return | ||
for(var/turf/simulated/floor/F in A.contents) | ||
if(turf_clear(F)) | ||
turfs += F | ||
|
||
var/list/spawn_types = list() | ||
var/max_number | ||
vermin = rand(0, 6) | ||
switch(vermin) | ||
if(VERM_RATS) | ||
max_number = 12 | ||
var/possible_vermin = rand(0, 2) | ||
switch(possible_vermin) | ||
if(0) | ||
spawn_types = list(/mob/living/simple_animal/mouse/rat) | ||
vermstring = "крыс" | ||
if(1) | ||
spawn_types = list(/mob/living/simple_animal/mouse/rat/irish) | ||
vermstring = "ирландских крыс борцов за независимость" | ||
if(2) | ||
spawn_types = list(/mob/living/simple_animal/mouse/rat/white) | ||
vermstring = "лабораторных крыс" | ||
if(VERM_AXOLOTL) | ||
spawn_types = list(/mob/living/simple_animal/lizard/axolotl) | ||
max_number = 9 | ||
vermstring = "аксолотлей" | ||
if(VERM_IGUANAS) | ||
spawn_types = list(/mob/living/simple_animal/hostile/lizard) | ||
max_number = 5 | ||
vermstring = "игуанн" | ||
if(prob(10)) | ||
spawn_types = list(/mob/living/simple_animal/hostile/lizard/gator) | ||
max_number = 3 | ||
vermstring = "аллигаторов" | ||
if(VERM_SNAKES) | ||
spawn_types = list(/mob/living/simple_animal/hostile/poison_snake) | ||
max_number = 9 | ||
vermstring = "ядовитых змей" | ||
if(VERM_MOTH) | ||
spawn_types = list(/mob/living/simple_animal/moth) | ||
max_number = 5 | ||
vermstring = "молей" | ||
if(VERM_MOTHROACH) | ||
spawn_types = list(/mob/living/simple_animal/mothroach) | ||
max_number = 5 | ||
vermstring = "молетараканов" | ||
var/amount_to_spawn = rand(2, max_number) | ||
while(length(turfs) && amount_to_spawn > 0) | ||
var/turf/simulated/floor/T = pick_n_take(turfs) | ||
amount_to_spawn-- | ||
var/spawn_type = pick(spawn_types) | ||
new spawn_type(T) | ||
|
||
|
||
/datum/event/infestation/extended/announce(false_alarm) | ||
var/vermin_chosen = vermstring || pick("неопознанных форм жизни", "золотых жуков", "ошибок", "насекомых", "тараканов", "муравьев", "щиткьюров", "ассистентов", "экипажа", "вульпканинов", "таяринов", "слаймов", "слаймоменов") | ||
if(!spawn_area_type) | ||
if(false_alarm) | ||
spawn_area_type = pick(spawn_areas + spawn_areas_extended) | ||
else | ||
log_debug("Extended Infestation Event didn't provide an area to announce(), something is likely broken.") | ||
kill() | ||
|
||
GLOB.minor_announcement.Announce("Биосканеры фиксируют размножение [vermin_chosen] в [initial(spawn_area_type.name)]. Избавьтесь от них, прежде чем это начнет влиять на продуктивность станции.", "ВНИМАНИЕ: НЕОПОЗНАННЫЕ ФОРМЫ ЖИЗНИ.") | ||
spawn_area_type = null | ||
|
||
/datum/event/falsealarm/start() | ||
possible_event_types |= /datum/event/infestation/extended | ||
. = ..() | ||
|
||
/datum/event_container/mundane/New() | ||
. = ..() | ||
available_events |= new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation Extended", /datum/event/infestation/extended, 10, list(ASSIGNMENT_JANITOR = 100, ASSIGNMENT_SECURITY = 30)) | ||
|
||
#undef VERM_RATS | ||
#undef VERM_AXOLOTL | ||
#undef VERM_FROGS | ||
#undef VERM_IGUANAS | ||
#undef VERM_SNAKES | ||
#undef VERM_MOTH | ||
#undef VERM_MOTHROACH |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
/datum/modpack/mobs | ||
name = "Мобы" | ||
desc = "Пак животных, питомцев, холдеров для их держания и изменения." | ||
author = "PhantomRU, dj-34" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#include "_mobs.dm" | ||
|
||
#include "code/simple_animal/friendly/crab.dm" | ||
#include "code/simple_animal/friendly/farm_animals.dm" | ||
#include "code/simple_animal/friendly/frog.dm" | ||
#include "code/simple_animal/friendly/hamster.dm" | ||
#include "code/simple_animal/friendly/lizard.dm" | ||
#include "code/simple_animal/friendly/moth.dm" | ||
#include "code/simple_animal/friendly/mouse.dm" | ||
#include "code/simple_animal/friendly/possum.dm" | ||
#include "code/simple_animal/friendly/rat.dm" | ||
#include "code/simple_animal/friendly/snail.dm" | ||
#include "code/simple_animal/hostile/alien.dm" | ||
#include "code/simple_animal/hostile/bear.dm" | ||
#include "code/simple_animal/hostile/headcrab.dm" | ||
#include "code/simple_animal/hostile/lizard.dm" | ||
#include "code/simple_animal/hostile/snake.dm" | ||
#include "code/simple_animal/hostile/spider.dm" | ||
#include "code/simple_animal/hostile/syndi_rat.dm" | ||
#include "code/simple_animal/hostile/undead.dm" | ||
#include "code/simple_animal/pets/cat.dm" | ||
#include "code/simple_animal/pets/dog.dm" | ||
#include "code/simple_animal/pets/fashion.dm" | ||
#include "code/simple_animal/pets/fox.dm" | ||
#include "code/simple_animal/pets/pet.dm" | ||
#include "code/simple_animal/pets/rouge.dm" | ||
#include "code/simple_animal/pets/security_dogs.dm" | ||
#include "code/simple_animal/pets/slugcat.dm" | ||
#include "code/simple_animal/items.dm" | ||
#include "code/simple_animal/mobs.dm" | ||
#include "code/simple_animal/named_animals.dm" | ||
#include "code/simple_animal/overrides.dm" | ||
#include "code/supplypacks/crittercrate.dm" | ||
#include "code/supplypacks/pack_animals.dm" | ||
#include "code/mob_holder.dm" | ||
#include "code/mob_spawner.dm" | ||
#include "code/pet_carrier.dm" |
Oops, something went wrong.