forked from SierraBay/SierraBay12
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'corecode-rewrite' of https://github.com/RepoStash/FD-Ne…
…wBay into corecode-rewrite
- Loading branch information
Showing
23 changed files
with
10,444 additions
and
0 deletions.
There are no files selected for viewing
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 |
---|---|---|
@@ -0,0 +1,76 @@ | ||
|
||
#### Список PRов: | ||
|
||
<!-- | ||
Ссылки на PRы, связанные с модом: | ||
- Создание | ||
- Большие изменения | ||
--> | ||
|
||
<!-- Название мода. Не важно на русском или на английском. --> | ||
## Контейнеры в структурах | ||
|
||
ID мода: GCCV_ULYANOVSK | ||
<!-- | ||
Название модпака прописными буквами, СОЕДИНЁННЫМИ_ПОДЧЁРКИВАНИЕМ, | ||
которое ты будешь использовать для обозначения файлов. | ||
--> | ||
|
||
### Описание мода | ||
|
||
Добавляет в игру корабль ГКК. | ||
<!-- | ||
Что он делает, что добавляет: что, куда, зачем и почему - всё здесь. | ||
А также любая полезная информация. | ||
--> | ||
|
||
### Изменения *кор кода* | ||
|
||
- Отсутствуют | ||
<!-- | ||
Если вы редактировали какие-либо процедуры или переменные в кор коде, | ||
они должны быть указаны здесь. | ||
Нужно указать и файл, и процедуры/переменные. | ||
Изменений нет - напиши "Отсутствуют" | ||
--> | ||
|
||
### Оверрайды | ||
|
||
- Отсутствуют | ||
<!-- | ||
Если ты добавлял новый модульный оверрайд, его нужно указать здесь. | ||
Здесь указываются оверрайды в твоём моде и папке `_master_files` | ||
Изменений нет - напиши "Отсутствуют" | ||
--> | ||
|
||
### Дефайны | ||
|
||
- Отсутствуют | ||
<!-- | ||
Если требовалось добавить какие-либо дефайны, укажи файлы, | ||
в которые ты их добавил, а также перечисли имена. | ||
И то же самое, если ты используешь дефайны, определённые другим модом. | ||
Не используешь - напиши "Отсутствуют" | ||
--> | ||
|
||
### Используемые файлы, не содержащиеся в модпаке | ||
|
||
- Отсутствуют | ||
<!-- | ||
Будь то немодульный файл или модульный файл, который не содержится в папке, | ||
принадлежащей этому конкретному моду, он должен быть упомянут здесь. | ||
Хорошими примерами являются иконки или звуки, которые используются одновременно | ||
несколькими модулями, или что-либо подобное. | ||
--> | ||
|
||
### Авторы: | ||
|
||
ChemistryOneLove | ||
<!-- | ||
Здесь находится твой никнейм | ||
Если работал совместно - никнеймы тех, кто помогал. | ||
В случае порта чего-либо должна быть ссылка на источник. | ||
--> |
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 @@ | ||
/singleton/modpack/gccv_ulyanovsk | ||
name = "Корабль ГКК 'Ульяновск'" | ||
desc = "Добавляет в игру корабль ГКК." | ||
author = "ChemistryOneLove" |
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,16 @@ | ||
#ifndef MODPACK_GCCV_ULYANOVSK | ||
#define MODPACK_GCCV_ULYANOVSK | ||
|
||
#include "_ulyanovsk.dm" | ||
|
||
#include "code/gccv_ulyanovsk.dm" | ||
#include "code/gccv_ulyanovsk_areas.dm" | ||
#include "code/gccv_ulyanovsk_jobs.dm" | ||
#include "code/gccv_ulyanovsk_radio.dm" | ||
#include "code/gccv_ulyanovsk_shuttles.dm" | ||
#include "code/armor.dm" | ||
#include "code/landmine.dm" | ||
#include "code/reactor.dm" | ||
#include "code/fabricator.dm" | ||
|
||
#endif |
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,180 @@ | ||
/* | ||
/ | ||
"REACTIVE" ARMOR UNITS FOR EXPLOSION PROTECTION (actually absorbing) | ||
/ | ||
*/ | ||
#define ARMORED_RESIST 30 | ||
/obj/structure/armor | ||
name = "absorbing armor" | ||
icon = 'mods/_fd/_maps/gccv_ulyanovsk/icons/ulyanovsk.dmi' | ||
icon_state = "armor_empty" | ||
anchored = TRUE | ||
density = TRUE | ||
layer = BELOW_OBJ_LAYER | ||
health_max = 400 | ||
explosion_resistance = 15 | ||
/// Our armor has outer layer? | ||
var/armored = 0 | ||
/// How much cover against projectiles. | ||
var/cover = 25 | ||
|
||
/obj/structure/armor/Initialize() | ||
set_extension(src, /datum/extension/penetration/simple, 100) | ||
. = ..() | ||
|
||
/obj/structure/armor/full | ||
icon_state = "armor" | ||
cover = 99 | ||
health_max = 800 | ||
armored = 1 | ||
explosion_resistance = 15 * ARMORED_RESIST | ||
|
||
/obj/structure/armor/get_explosion_resistance() | ||
if(armored) | ||
return health_current * explosion_resistance | ||
else | ||
return initial(explosion_resistance) | ||
|
||
/obj/structure/armor/examine(mob/user) | ||
. = ..() | ||
if(armored) | ||
to_chat(user, "<span class='notice'>There is an outer layer of armor on the [src].</span>") | ||
else | ||
to_chat(user, "<span class='notice'>The outer layer of the [src] is empty.</span>") | ||
|
||
/obj/structure/armor/bullet_act(obj/item/projectile/Proj) | ||
if(Proj.original != src && !prob(cover)) | ||
if(prob(50)) | ||
return PROJECTILE_CONTINUE | ||
else return | ||
. = ..() | ||
|
||
/obj/structure/armor/on_death() | ||
dismantle() | ||
..() | ||
|
||
/obj/structure/armor/CanFluidPass(coming_from) | ||
return TRUE | ||
|
||
/obj/structure/armor/proc/reset_armor() | ||
anchored = TRUE | ||
cover = initial(cover) | ||
revive_health() | ||
icon_state = initial(icon_state) | ||
if(armored) | ||
add_armor() | ||
|
||
/obj/structure/armor/use_tool(obj/item/W, mob/user) | ||
if (user.a_intent == I_HURT) | ||
..() | ||
return | ||
|
||
if(isWrench(W)) | ||
if(!armored) | ||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) | ||
to_chat(user, "<span class='notice'>Now disassembling the armor...</span>") | ||
if(do_after(user, 80,src)) | ||
to_chat(user, "<span class='notice'>You dissasembled the armor!</span>") | ||
dismantle() | ||
else | ||
to_chat(user, "<span class='notice'>You must first remove the armor before disassemble.</span>") | ||
return | ||
|
||
if(istype(W, /obj/item/gun/energy/plasmacutter) || istype(W, /obj/item/psychic_power/psiblade/master/grand/paramount)) | ||
if(istype(W, /obj/item/gun/energy/plasmacutter)) | ||
var/obj/item/gun/energy/plasmacutter/cutter = W | ||
if(!cutter.slice(user)) | ||
return | ||
playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) | ||
to_chat(user, "<span class='notice'>Now slicing apart the armor...</span>") | ||
if(do_after(user,armored ? 40: 20,src)) | ||
to_chat(user, "<span class='notice'>You slice apart the armor!</span>") | ||
if(armored) | ||
new /obj/item/stack/material/plasteel(get_turf(user), 2) | ||
dismantle() | ||
return | ||
|
||
if(isCrowbar(W) && armored) | ||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) | ||
to_chat(user, "<span class='notice'>Now removing the outer layer of armor...</span>") | ||
if(do_after(user, 40,src)) | ||
to_chat(user, "<span class='notice'>You removed the outer layer of armor!</span>") | ||
remove_armor() | ||
return | ||
|
||
if(istype(W, /obj/item/stack/material/plasteel)) | ||
if(!armored) | ||
if(!reinforce(W, user)) | ||
return ..() | ||
|
||
if(isWelder(W)) | ||
while(health_damaged()) | ||
var/obj/item/weldingtool/F = W | ||
if(istype(W, /obj/item/weldingtool) && !F.isOn()) | ||
return | ||
if(!health_damaged()) | ||
to_chat(user, "<span class='warning'>\The [src] does not need repairs.</span>") | ||
return | ||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) | ||
if(do_after(user, 20, src)) | ||
if(!health_damaged()) | ||
return | ||
user.visible_message("<span class='notice'>\The [user] repairs some damage to \the [src].</span>", "<span class='notice'>You repair some damage to \the [src].</span>") | ||
restore_health(health_max / 4) | ||
return | ||
|
||
..() | ||
|
||
/obj/structure/armor/proc/reinforce(obj/item/stack/material/plasteel/S, mob/user) | ||
if(armored) | ||
to_chat(user, "<span class='notice'>\The [src] is already have outer armor.</span>") | ||
return 0 | ||
|
||
if(S.get_amount() < 2) | ||
to_chat(user, "<span class='notice'>There isn't enough material here to add armor.</span>") | ||
return 0 | ||
|
||
to_chat(user, "<span class='notice'>Now adding the outer layer of armor...</span>") | ||
if (!do_after(user, 40,src) || !S.use(2)) | ||
return 1 | ||
to_chat(user, "<span class='notice'>You added armor!</span>") | ||
|
||
add_armor() | ||
return 1 | ||
|
||
/obj/structure/armor/proc/add_armor() | ||
cover = 99 | ||
armored = 1 | ||
health_max = 800 | ||
explosion_resistance += ARMORED_RESIST | ||
icon_state = "armor" | ||
if(health_current == initial(health_max)) | ||
revive_health() | ||
|
||
/obj/structure/armor/proc/remove_armor() | ||
cover = 25 | ||
armored = 0 | ||
health_max = 400 | ||
explosion_resistance -= ARMORED_RESIST | ||
icon_state = "armor_empty" | ||
if(health_current > health_max) | ||
health_current = health_max | ||
|
||
/obj/structure/armor/proc/dismantle() | ||
new /obj/item/stack/material/plasteel(get_turf(src), 2) | ||
qdel(src) | ||
|
||
/obj/structure/armor/CanPass() | ||
return 0 | ||
|
||
/material/plasteel/generate_recipes(reinforce_material) | ||
. = ..() | ||
. += new/datum/stack_recipe/armor(src) | ||
|
||
/datum/stack_recipe/armor | ||
title = "Absorbing Armor Frame" | ||
result_type = /obj/structure/armor | ||
req_amount = 4 | ||
time = 80 | ||
on_floor = 1 | ||
difficulty = 2 |
Oops, something went wrong.