Skip to content

Commit

Permalink
IPC Culture by Chichmuch
Browse files Browse the repository at this point in the history
  • Loading branch information
Lexanx committed Dec 20, 2023
1 parent 91ba398 commit 7a4ca8d
Show file tree
Hide file tree
Showing 16 changed files with 284 additions and 41 deletions.
2 changes: 1 addition & 1 deletion baystation12.dme
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@
#include "code\__defines\xenoarcheaology.dm"
#include "code\__defines\ZAS.dm"
#include "code\__defines\zmimic.dm"
#include "code\__defines\~mods\rust_g.dm"
#include "code\__defines\~mods\expanded_culture_descriptor.dm"
#include "code\__defines\~mods\rust_g.dm"
#include "code\__defines\~mods\~master_defines.dm"
#include "code\_global_vars\edible.dm"
#include "code\_global_vars\logging.dm"
Expand Down
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]
15 changes: 5 additions & 10 deletions code/modules/mob/new_player/new_player.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,6 @@
return
if (!force && !SScharacter_setup.initialized)
return
// [SIERRA-ADD] - LOBBYSCREEN
// Yeah, I know client will exist here
// It's like TRUE, but DreamChecker won't cry
if (client)
GLOB.using_map.update_titlescreen(client)
return
// [/SIERRA-ADD]
var/list/output = list()
output += "<div align='center'>"
if (config.wiki_url || config.rules_url || config.lore_url)
Expand Down Expand Up @@ -481,9 +474,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 Expand Up @@ -530,9 +527,7 @@

/mob/new_player/proc/close_spawn_windows()
close_browser(src, "window=latechoices") //closes late choices window
// [SIERRA-REMOVE] - LOBBYSCREEN
// panel.close()
// [/SIERRA-REMOVE]
panel.close()

/mob/new_player/proc/check_species_allowed(datum/species/S, show_alert=1)
if(!S.is_available_for_join() && !has_admin_rights())
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
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"
17 changes: 17 additions & 0 deletions mods/ipc_lore/_ipc_lore.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef MODPACK_IPC_LORE
#define MODPACK_IPC_LORE

#endif
// BEGIN_INTERNALS
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
// END_FILE_DIR
// BEGIN_PREFERENCES
// END_PREFERENCES
// BEGIN_INCLUDE
#include "_ipc_lore.dm"
#include "code\culture.dm"
#include "code\cultures_ipc.dm"
#include "code\machine.dm"
// END_INCLUDE
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

0 comments on commit 7a4ca8d

Please sign in to comment.