Мозговой Червь (#17)
* - add: Added Cortic Borer. * - fix: Removed unnecessary imports, unused fields, variables, methods. * - fix: Изменён принцип вселения: теперь не создаётся новый энтити с переходом разума, вместо этого хост хранит в себе контейнер для червя, в который последний и погружается * - fix: Убрано использование устаревших методов и полей, исправлена ошибка, из-за которой при вселении в носителя уровень сахара не проверялся * - fix: Изменено тестировочное значение добавления очков химикатов * - fix: Borer can't speak now * - fix: Some bug and shitcode fixes * - fix: Some bug and shitcode fixes * - fix: Added cooldown after releasing the humanoid's body * - fix: fix * - add: Added russian localization * - add: Убрал использование метода _chatManager.ChatMessageToOne в некоторых местах, т.к. popup включает в себя вывод сообщения в чат. * - fix: fix * - fix: fix
52
Resources/Locale/en-US/borer/borer.ftl
Normal file
@@ -0,0 +1,52 @@
|
||||
ghost-role-information-borer-name = Cortical Borer
|
||||
ghost-role-information-borer-description = We are Borer!
|
||||
|
||||
borer-entity-name = Cortical Borer
|
||||
borer-entity-description = It looks like it's making you lose your mind.
|
||||
|
||||
borer-abilities-infest-name = Infest
|
||||
borer-abilities-infest-description = Allows you to [color=red]bury[/color] yourself into a host
|
||||
borer-abilities-paralyze-name = Paralyze Victim
|
||||
borer-abilities-paralyze-description = Sending a [color=red]psychic lance[/color] straight to an unsuspecting victim.
|
||||
borer-abilities-release-host-name = Release Host
|
||||
borer-abilities-release-host-description = Starts to [color=red]leave[/color] the host
|
||||
borer-abilities-converse-name = Converse with Host
|
||||
borer-abilities-converse-description = [color=red]Talks[/color] to the host. Nobody can intercept this. Only the host.
|
||||
borer-abilities-secrete-name = Secrete Chemicals
|
||||
borer-abilities-secrete-description = [color=red]Injects[/color] different kinda of chemicals into the host, from meth to bicardine.
|
||||
borer-abilities-scan-name = Chemical Scanning
|
||||
borer-abilities-scan-description = [color=red]Scan the host's blood[/color] for the presence of reagents in it.
|
||||
borer-abilities-control-name = Assume Control
|
||||
borer-abilities-control-description = Allows you to [color=red]assume direct control[/color] of your host.
|
||||
borer-abilities-reproduce-name = Reproduce
|
||||
borer-abilities-reproduce-description = Create one of your own kind.
|
||||
borer-abilities-restore-name = Restore Control
|
||||
borer-abilities-restore-description = [color=red]Restores[/color] control over the host's body.
|
||||
borer-abilities-resist-name = Resist
|
||||
borer-abilities-resist-description = [color=red]Resisting the control[/color] of your body.
|
||||
|
||||
borer-ui-scan-title = Scanning results
|
||||
borer-ui-scan-label = Reagents in the host's blood:
|
||||
borer-ui-secrete-title = Secrete chemicals
|
||||
borer-ui-secrete-inject-label = Inject {$reagent}(10u) - {$cost}c
|
||||
|
||||
borer-ui-converse-title = Converse
|
||||
borer-ui-converse-message = Message
|
||||
|
||||
borer-popup-infest-occupied = This creature's brain is already occupied
|
||||
borer-popup-infest-sugar = The creature has too much sugar in it's blood
|
||||
borer-popup-infest-failed = You can't infest into this creature
|
||||
|
||||
borer-popup-braintake-alert = Your brain has been taken over!
|
||||
borer-popup-braintake-success = You've taken control of the host's brain!
|
||||
borer-popup-braintake-critical = You cannot control the brain of a creature in critical condition
|
||||
|
||||
borer-popup-toomuchsugar = Your host's blood sugar prevents you from doing that
|
||||
borer-popup-lowchem = Not enough chemicals!
|
||||
borer-popup-injected = {$reagent}(10u) successfully injected!
|
||||
borer-popup-sugarleave = The host has too much sugar in his blood, you can't be in his body anymore
|
||||
|
||||
borer-message-braintake-success = You've taken control of the host's brain! The host may resist this and try to regain control. Have fun while you still have time!
|
||||
borer-message-braintake-alert = Your brain has been taken over! You can resist or just let it happen
|
||||
|
||||
borer-event-announcement = Detected unidentified life forms on the board. Secure all exterior entrances and exits, including ventilation and hoods.
|
||||
52
Resources/Locale/ru-RU/borer/borer.ftl
Normal file
@@ -0,0 +1,52 @@
|
||||
ghost-role-information-borer-name = Аскарида космическая
|
||||
ghost-role-information-borer-description = Мы - червь!
|
||||
|
||||
borer-entity-name = Аскарида космическая
|
||||
borer-entity-description = Выглядит так, будто от неё можно сойти с ума
|
||||
|
||||
borer-abilities-infest-name = Вселение
|
||||
borer-abilities-infest-description = [color=red]Поселиться в мозгу[/color] носителя.
|
||||
borer-abilities-paralyze-name = Паралич
|
||||
borer-abilities-paralyze-description = [color=red]Парализовать[/color] ничего не подозревающую жертву .
|
||||
borer-abilities-release-host-name = Покинуть носителя
|
||||
borer-abilities-release-host-description = [color=red]Покинуть[/color] тело носителя.
|
||||
borer-abilities-converse-name = Связь с носителем
|
||||
borer-abilities-converse-description = [color=red]Пообщаться[/color] с носителем, посылая сообщения прямо в его мозг.
|
||||
borer-abilities-secrete-name = Впрыск реагентов
|
||||
borer-abilities-secrete-description = [color=red]Вводит[/color] разлиные химикаты в кровь носителя.
|
||||
borer-abilities-scan-name = Анализ крови
|
||||
borer-abilities-scan-description = [color=red]Сканирует кровь[/color] носителя на наличие реагентов.
|
||||
borer-abilities-control-name = Захватить контроль
|
||||
borer-abilities-control-description = Отобрать [color=red]контроль над телом[/color] у носителя.
|
||||
borer-abilities-reproduce-name = Репродукция
|
||||
borer-abilities-reproduce-description = Создать себе подобного.
|
||||
borer-abilities-restore-name = Вернуть контроль
|
||||
borer-abilities-restore-description = [color=red]Возвращает[/color] контроль над телом разуму носителя.
|
||||
borer-abilities-resist-name = Сопротивляться
|
||||
borer-abilities-resist-description = Попытаться [color=red]вернуть[/color] себе контроль над телом.
|
||||
|
||||
borer-ui-scan-title = Scanning result
|
||||
borer-ui-scan-label = Реагенты в крови носителя:
|
||||
borer-ui-secrete-title = Ввод реагентов
|
||||
borer-ui-secrete-inject-label = Ввести {$reagent}(10u) - {$cost}c
|
||||
|
||||
borer-ui-converse-title = Связь
|
||||
borer-ui-converse-message = Сообщение
|
||||
|
||||
borer-popup-infest-occupied = Мозг этого существа уже кем-то занят
|
||||
borer-popup-infest-sugar = В крови существа слишком много сахара
|
||||
borer-popup-infest-failed = Вы не можете вселиться в это существо
|
||||
|
||||
borer-popup-braintake-alert = Вы не управляете своим телом!
|
||||
borer-popup-braintake-success = Вы забрали контроль над телом!
|
||||
borer-popup-braintake-critical = Вы не можете забрать контроль над телом у существа в критическом состоянии!
|
||||
|
||||
borer-popup-toomuchsugar = Сахар в крови носителя не позволяет Вам сделать это
|
||||
borer-popup-lowchem = Недостаточно химикатов!
|
||||
borer-popup-injected = {$reagent}(10u) успешно введено!
|
||||
borer-popup-sugarleave = В крови носителя слишком много сахара, Вы не можете больше находиться в его теле
|
||||
|
||||
borer-message-braintake-success = Вы захватили контроль над мозгом носителя! Носитель может воспротивиться этому и попытаться вернуть контроль. Веселитесь, пока есть время!
|
||||
borer-message-braintake-alert = Ваш мозг захвачен! Вы можете сопротивляться или просто позволить этому случиться
|
||||
|
||||
borer-event-announcement = Обнаружены неопознанные формы жизни на борту. Перекройте все внешние входы и выходы, включая вентиляцию и вытяжки.
|
||||
133
Resources/Prototypes/Actions/borer.yml
Normal file
@@ -0,0 +1,133 @@
|
||||
- type: entity
|
||||
id: ActionInfest
|
||||
name: borer-abilities-infest-name
|
||||
description: borer-abilities-infest-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: EntityTargetAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_infest
|
||||
event: !type:BorerInfestActionEvent
|
||||
itemIconStyle: BigAction
|
||||
canTargetSelf: false
|
||||
useDelay: 15
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerStunVictim
|
||||
name: borer-abilities-paralyze-name
|
||||
description: borer-abilities-paralyze-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: EntityTargetAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_stun
|
||||
event: !type:BorerStunActionEvent
|
||||
itemIconStyle: BigAction
|
||||
canTargetSelf: false
|
||||
useDelay: 40
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerOut
|
||||
name: borer-abilities-release-host-name
|
||||
description: borer-abilities-release-host-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_out
|
||||
event: !type:BorerOutActionEvent
|
||||
useDelay: 4
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerBrainSpeech
|
||||
name: borer-abilities-converse-name
|
||||
description: borer-abilities-converse-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_brainspeech
|
||||
event: !type:BorerBrainSpeechActionEvent
|
||||
useDelay: 4
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerInjectWindowOpen
|
||||
name: borer-abilities-secrete-name
|
||||
description: borer-abilities-secrete-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_inject
|
||||
event: !type:BorerInjectWindowOpenEvent
|
||||
useDelay: 4
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerScan
|
||||
name: borer-abilities-scan-name
|
||||
description: borer-abilities-scan-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_scanreagents
|
||||
event: !type:BorerScanInstantActionEvent
|
||||
useDelay: 5
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerBrainTake
|
||||
name: borer-abilities-control-name
|
||||
description: borer-abilities-control-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_braintake
|
||||
event: !type:BorerBrainTakeEvent
|
||||
useDelay: 4
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerReproduce
|
||||
name: borer-abilities-reproduce-name
|
||||
description: borer-abilities-reproduce-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_reproduce
|
||||
event: !type:BorerReproduceEvent
|
||||
useDelay: 30
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerBrainRelease
|
||||
name: borer-abilities-restore-name
|
||||
description: borer-abilities-restore-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_brainrelease
|
||||
event: !type:BorerBrainReleaseEvent
|
||||
useDelay: 4
|
||||
|
||||
- type: entity
|
||||
id: ActionBorerBrainResist
|
||||
name: borer-abilities-resist-name
|
||||
description: borer-abilities-resist-description
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon:
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
state: action_brainrelease
|
||||
event: !type:BorerBrainResistEvent
|
||||
useDelay: 4
|
||||
72
Resources/Prototypes/Entities/Mobs/NPCs/borer.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
- type: entity
|
||||
name: basic borer
|
||||
id: MobBorerBase
|
||||
parent: SimpleSpaceMobBase
|
||||
abstract: true
|
||||
description: It looks like it's making you lose your mind.
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: SmallMobs
|
||||
sprite: Mobs/Animals/borer.rsi
|
||||
layers:
|
||||
- map: [ "enum.DamageStateVisualLayers.Base" ]
|
||||
state: borer
|
||||
- type: DamageStateVisuals
|
||||
states:
|
||||
Alive:
|
||||
Base: borer
|
||||
Dead:
|
||||
Base: dead
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.2
|
||||
density: 100
|
||||
mask:
|
||||
- SmallMobMask
|
||||
layer:
|
||||
- SmallMobLayer
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
20: Dead
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed: 2
|
||||
baseSprintSpeed: 4
|
||||
- type: Tag
|
||||
tags:
|
||||
- CannotSuicide
|
||||
maxSaturation: 15
|
||||
- type: Bloodstream
|
||||
bloodReagent: Slime
|
||||
bloodlossDamage:
|
||||
types:
|
||||
Bloodloss:
|
||||
1
|
||||
bloodlossHealDamage:
|
||||
types:
|
||||
Bloodloss:
|
||||
-0.25
|
||||
- type: NoSlip
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: GhostRole
|
||||
makeSentient: true
|
||||
name: ghost-role-information-borer-name
|
||||
description: ghost-role-information-borer-description
|
||||
- type: CombatMode
|
||||
combatToggleAction: ActionCombatModeToggleOff
|
||||
- type: Actions
|
||||
- type: ActionsContainer
|
||||
- type: Speech
|
||||
enabled: false
|
||||
|
||||
- type: entity
|
||||
name: Cortical Borer
|
||||
parent: MobBorerBase
|
||||
id: MobSimpleBorer
|
||||
components:
|
||||
- type: Borer
|
||||
reproduceCost: 100
|
||||
assumeControlCost: 250
|
||||
@@ -373,6 +373,25 @@
|
||||
entries:
|
||||
- id: MobGiantSpiderAngry
|
||||
prob: 0.05
|
||||
|
||||
- type: entity
|
||||
id: BorerSpawn
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
earliestStart: 20
|
||||
minimumPlayers: 15
|
||||
weight: 5
|
||||
duration: 60
|
||||
startDelay: 30
|
||||
startAnnouncement: borer-event-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
- type: VentCrittersRule
|
||||
entries:
|
||||
- id: MobSimpleBorer
|
||||
prob: 0.04
|
||||
|
||||
- type: entity
|
||||
id: SpiderClownSpawn
|
||||
|
||||
BIN
Resources/Textures/Interface/Borer/chem_bg.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_brainspeech.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_braintake.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_infest.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_inject.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_out.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_reproduce.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/action_stun.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/borer.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/Textures/Mobs/Animals/borer.rsi/dead.png
Normal file
|
After Width: | Height: | Size: 524 B |
55
Resources/Textures/Mobs/Animals/borer.rsi/meta.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Created by Ogunefu",
|
||||
"states": [
|
||||
{
|
||||
"name": "borer",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "dead",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_out",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_infest",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_stun",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_brainspeech",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_inject",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_scanreagents",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_braintake",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_reproduce",
|
||||
"directions": 1
|
||||
},
|
||||
{
|
||||
"name": "action_brainrelease",
|
||||
"directions": 1
|
||||
}
|
||||
]
|
||||
}
|
||||