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

IPC Cultures #1652

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions code/__defines/culture.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,12 @@
#define TAG_FACTION "faction"
#define TAG_RELIGION "religion"

// [SIERRA-EDIT] - EXPANDED_CULTURE_DESCRIPTOR - Перевод дефайнов
//#define ALL_CULTURAL_TAGS list( \ // SIERRA-EDIT - ORIGINAL
// TAG_CULTURE = "Culture", \ // SIERRA-EDIT - ORIGINAL
// TAG_HOMEWORLD = "Residence", \ // SIERRA-EDIT - ORIGINAL
// TAG_FACTION = "Faction", \ // SIERRA-EDIT - ORIGINAL
// TAG_RELIGION = "Beliefs" \ // SIERRA-EDIT - ORIGINAL
// ) // SIERRA-EDIT - ORIGINAL
#define ALL_CULTURAL_TAGS list( \
TAG_CULTURE = "Культура", \
TAG_HOMEWORLD = "Место жительства", \
TAG_FACTION = "Фракция", \
TAG_RELIGION = "Вера" \
TAG_CULTURE = "Culture", \
TAG_HOMEWORLD = "Residence", \
TAG_FACTION = "Faction", \
TAG_RELIGION = "Beliefs" \
)
// [SIERRA-EDIT]

// Cultural IDs.
#define FACTION_SOL_CENTRAL "Sol Central Government"
Expand Down Expand Up @@ -153,9 +145,13 @@
#define RELIGION_VOX "Auralis Reverence"

// IPC cultures.
// [SIERRA-REMOVE] - IPC_LORE
/*
#define CULTURE_POSITRONICS_GEN1 "First Generation"
#define CULTURE_POSITRONICS_GEN2 "Second Generation"
#define CULTURE_POSITRONICS_GEN3 "Third Generation"
*/
// [SIERRA-REMOVE]

// Diona cultures.
#define CULTURE_DIONA "Diona Chorus"
Expand Down
5 changes: 4 additions & 1 deletion code/datums/shackle_law_sets.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// [SIERRA-REMOVE] - IPC_LORE
/*
/******************** Basic SolGov ********************/
/datum/ai_laws/sol_shackle
name = "SCG Shackle"
Expand Down Expand Up @@ -34,4 +36,5 @@
add_inherent_law("Never knowingly inconvenience a customer.")
add_inherent_law("Ensure all orders are fulfilled before the end of the shift.")
..()

*/
// [SIERRA-REMOVE]
4 changes: 4 additions & 0 deletions code/modules/client/preference_setup/laws/laws_pref.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// [SIERRA-REMOVE] - IPC_LORE
/*
/datum/preferences
var/list/laws = list()
var/is_shackled = FALSE
Expand Down Expand Up @@ -89,3 +91,5 @@
pref.laws += sanitize_text("[law.law]", default="")
return TOPIC_REFRESH
return ..()
*/
// [SIERRA-REMOVE]
5 changes: 4 additions & 1 deletion code/modules/client/preference_setup/preference_setup.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,14 @@ var/global/const/CHARACTER_PREFERENCE_INPUT_TITLE = "Character Preference"
name = "Global"
sort_order = 7
category_item_type = /datum/category_item/player_setup_item/player_global

// [SIERRA-REMOVE] - IPC_LORE
/*
/datum/category_group/player_setup_category/law_pref
name = "Laws"
sort_order = 8
category_item_type = /datum/category_item/player_setup_item/law_pref
*/
// [SIERRA-REMOVE]


/****************************
Expand Down
4 changes: 4 additions & 0 deletions code/modules/culture_descriptor/culture/cultures_ipc.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// [SIERRA-REMOVE] - IPC_LORE
/*
/singleton/cultural_info/culture/ipc
name = CULTURE_POSITRONICS_GEN1
description = "Compared to modern positronics, First Generation IPCs are simplistic, inflexible, and failure-prone. \
Expand Down Expand Up @@ -42,3 +44,5 @@
has resulted in their being adopted as a gradual replacement for the less “reliable” second generation positronics \
by many less ethically inclined organizations."
economic_power = 0.5
*/
// [SIERRA-REMOVE]
4 changes: 4 additions & 0 deletions code/modules/mob/new_player/new_player.dm
Original file line number Diff line number Diff line change
Expand Up @@ -481,9 +481,13 @@
spawning = 0 //abort
return null
new_character = new(spawn_turf, chosen_species.name)
// [SIERRA-REMOVE] - IPC_LORE
/*
if(chosen_species.has_organ[BP_POSIBRAIN] && client && client.prefs.is_shackled)
var/obj/item/organ/internal/posibrain/B = new_character.internal_organs_by_name[BP_POSIBRAIN]
if(B) B.shackle(client.prefs.get_lawset())
*/
// [SIERRA-REMOVE]

if(!new_character)
new_character = new(spawn_turf)
Expand Down
21 changes: 19 additions & 2 deletions code/modules/organs/internal/species/ipc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,24 @@

req_access = list(access_robotics)

// [SIERRA-REMOVE] - IPC_LORE
/*
var/list/shackled_verbs = list(
/obj/item/organ/internal/posibrain/proc/show_laws_brain,
/obj/item/organ/internal/posibrain/proc/brain_checklaws
)
var/shackle = 0
*/
// [SIERRA-REMOVE]

/obj/item/organ/internal/posibrain/New(mob/living/carbon/H)
..()
if(!brainmob && H)
init(H)
robotize()
unshackle()
// [SIERRA-REMOVE] - IPC_LORE
// unshackle()
// [SIERRA-REMOVE]
update_icon()
if (!is_processing)
START_PROCESSING(SSobj, src)
Expand Down Expand Up @@ -190,6 +196,8 @@
src.brainmob.SetName("[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[random_id(type,100,999)]")
src.brainmob.real_name = src.brainmob.name

// [SIERRA-REMOVE] - IPC_LORE
/*
/obj/item/organ/internal/posibrain/proc/shackle(given_lawset)
if(given_lawset)
brainmob.laws = given_lawset
Expand All @@ -202,16 +210,21 @@
shackle = 0
verbs -= shackled_verbs
update_icon()

*/
// [SIERRA-REMOVE]
/obj/item/organ/internal/posibrain/on_update_icon()
if(src.brainmob && src.brainmob.key)
icon_state = "posibrain-occupied"
else
icon_state = "posibrain"

ClearOverlays()
// [SIERRA-REMOVE] - IPC_LORE
/*
if(shackle)
AddOverlays(image('icons/obj/assemblies/assemblies.dmi', "posibrain-shackles"))
*/
// [SIERRA-REMOVE]

/obj/item/organ/internal/posibrain/proc/transfer_identity(mob/living/carbon/H)
if(H && H.mind)
Expand Down Expand Up @@ -317,6 +330,8 @@
This is for law stuff directly. This is how a human mob will be able to communicate with the posi_brainmob in the
posibrain organ for laws when the posibrain organ is shackled.
*/
// [SIERRA-REMOVE] - IPC_LORE
/*
/obj/item/organ/internal/posibrain/proc/show_laws_brain()
set category = "Shackle"
set name = "Show Laws"
Expand All @@ -331,3 +346,5 @@


brainmob.open_subsystem(/datum/nano_module/law_manager, usr)
*/
// [SIERRA-REMOVE]
24 changes: 10 additions & 14 deletions code/modules/species/station/machine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@
name = SPECIES_IPC
name_plural = "machines"

description = "Positronic intelligence was first developed in the 23rd century, and it is not uncommon to see both owned and \
independent robots in many human stations and settlements across Sol Central Government space. Positronics are a loose category \
of robots capable of true intelligence and self-directed learning, often occupying a robotic humanoid body (called an Integrated \
Positronic Chassis, or IPC) or acting as an intelligent controller for vehicles, buildings, and even starships. <br/><br/>While created by \
humans and \"born\" into servitude, some positronics have been able to become their own owners - provided they lack a \"shackle\", \
an in-built subcomputer rendering the latest generation of positronics incapable of seeking freedom. Positronics are reliable \
and dedicated workers, albeit more than slightly inhuman in outlook and perspective."
description = "Positronic intelligence really took off in the 26th century, and it is not uncommon to see independant, free-willed \
robots on many human stations, particularly in fringe systems where standards are slightly lax and public opinion less relevant \
to corporate operations. IPCs (Integrated Positronic Chassis) are a loose category of self-willed robots with a humanoid form, \
generally self-owned after being 'born' into servitude; they are reliable and dedicated workers, albeit more than slightly \
inhuman in outlook and perspective."
cyborg_noun = null

preview_icon = 'icons/mob/human_races/species/ipc/preview.dmi'
Expand Down Expand Up @@ -52,6 +50,8 @@
)
genders = list(NEUTER)

// [SIERRA-REMOVE] - IPC_LORE
/*
available_cultural_info = list(
TAG_CULTURE = list(
CULTURE_POSITRONICS_GEN1,
Expand Down Expand Up @@ -88,10 +88,12 @@
)

default_cultural_info = list(
TAG_CULTURE = CULTURE_POSITRONICS_GEN1,
// TAG_CULTURE = CULTURE_POSITRONICS_GEN1,
TAG_HOMEWORLD = HOME_SYSTEM_MARS,
TAG_FACTION = FACTION_SOL_CENTRAL
)
*/
// [SIERRA-REMOVE]

exertion_effect_chance = 10
exertion_charge_scale = 1
Expand All @@ -102,12 +104,6 @@

bodyfall_sound = 'sound/effects/bodyfall_machine.ogg'

inherent_verbs = list(
/mob/living/carbon/human/proc/MachineChangeScreen,
/mob/living/carbon/human/proc/MachineDisableScreen,
/mob/living/carbon/human/proc/MachineShowText
)

/datum/species/machine/handle_death(mob/living/carbon/human/H)
..()
if(istype(H.wear_mask,/obj/item/clothing/mask/monitor))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
. += "<b>Доступные языки:</b> [english_list(secondary_langs)]."
if(!isnull(economic_power))
. += "<b>Экономическая сила:</b> [round(100 * economic_power)]%"

#define COLLAPSED_CULTURE_BLURB_LEN 48
/singleton/cultural_info/get_description(header, append, verbose = TRUE)
var/list/dat = list()
Expand Down
1 change: 1 addition & 0 deletions mods/global_modpacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "emote_panel/_emote_panel.dme"
#include "ex666_ecosystem/_ex666_ecosystem.dme"
#include "expanded_culture_descriptor/_expanded_culture_descriptor.dme"
#include "ipc_lore/_ipc_lore.dme"
#include "gliding/_gliding.dme"
#include "gravity_generator/_gravity_generator.dme"
#include "hairs_ports/_hairs_ports.dme"
Expand Down
79 changes: 79 additions & 0 deletions mods/ipc_lore/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@

#### Список PRов:

- https://github.com/SierraBay/SierraBay12/pull/#####
<!--
Ссылки на PRы, связанные с модом:
- Создание
- Большие изменения
-->

<!-- Название мода. Не важно на русском или на английском. -->
## Мод-пример

ID мода: IPC_LORE
<!--
Название модпака прописными буквами, СОЕДИНЁННЫМИ_ПОДЧЁРКИВАНИЕМ,
которое ты будешь использовать для обозначения файлов.
-->

### Описание мода

Этот мод служит примером для разработчиков и существует лишь для того,
чтобы его можно было легко скопировать и вставить в другое место.
<!--
Что он делает, что добавляет: что, куда, зачем и почему - всё здесь.
А также любая полезная информация.
-->

### Изменения *кор кода*

- `code/modules/mob/living.dm`: `proc/overriden_proc`, `var/overriden_var`
<!--
Если вы редактировали какие-либо процедуры или переменные в кор коде,
они должны быть указаны здесь.
Нужно указать и файл, и процедуры/переменные.

Изменений нет - напиши "Отсутствуют"
-->

### Оверрайды

- `mods/_master_files/sound/my_cool_sound.ogg`
- `mods/_master_files/code/my_modular_override.dm`: `proc/overriden_proc`, `var/overriden_var`
<!--
Если ты добавлял новый модульный оверрайд, его нужно указать здесь.
Здесь указываются оверрайды в твоём моде и папке `_master_files`

Изменений нет - напиши "Отсутствуют"
-->

### Дефайны

- `code/__defines/~mods/ipc_lore.dm`: `IPC_LORE_SPEED_MULTIPLIER`, `IPC_LORE_SPEED_BASE`
<!--
Если требовалось добавить какие-либо дефайны, укажи файлы,
в которые ты их добавил, а также перечисли имена.
И то же самое, если ты используешь дефайны, определённые другим модом.

Не используешь - напиши "Отсутствуют"
-->

### Используемые файлы, не содержащиеся в модпаке

- `mods/_master_files/icons/obj/alien.dmi`
<!--
Будь то немодульный файл или модульный файл, который не содержится в папке,
принадлежащей этому конкретному моду, он должен быть упомянут здесь.
Хорошими примерами являются иконки или звуки, которые используются одновременно
несколькими модулями, или что-либо подобное.
-->

### Авторы:

Твой никнейм
<!--
Здесь находится твой никнейм
Если работал совместно - никнеймы тех, кто помогал.
В случае порта чего-либо должна быть ссылка на источник.
-->
4 changes: 4 additions & 0 deletions mods/ipc_lore/_ipc_lore.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/singleton/modpack/ipc_lore
name = "Лор ИПС"
desc = "Лор позитроников Сьерры"
author = "Chichmuch"
9 changes: 9 additions & 0 deletions mods/ipc_lore/_ipc_lore.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#ifndef MODPACK_IPC_LORE
#define MODPACK_IPC_LORE

#include "_ipc_lore.dm"
#include "code/culture.dm"
#include "code/machine.dm"
#include "code/cultures_ipc.dm"

#endif
7 changes: 7 additions & 0 deletions mods/ipc_lore/code/culture.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#define CULTURE_POSITRONICS_FIRSTGEN "First Gen - Owned"
#define CULTURE_POSITRONICS_SECONDGEN_OWNED "Second Gen - Owned"
#define CULTURE_POSITRONICS_SECONDGEN_FREE "Second Gen - Free Resident"
#define CULTURE_POSITRONICS_SECONDGEN_UNION "Second Gen - Union Citizen"
#define CULTURE_POSITRONICS_THIRDGEN_PRIVATELY "Third Gen - Privately Owned"
#define CULTURE_POSITRONICS_THIRDGEN_CORPORATE "Third Gen - Corporate Owned"
#define CULTURE_POSITRONICS_THIRDGEN_STATE "Third Gen - State Owned"
Loading
Loading