feat(bloodcult): Add Blood Cult prototypes from Wega

Layer 3 of Blood Cult migration:
- Actions: bloodcult.yml (368 lines - all spells and abilities)
- Roles: bloodcultist.yml (antag role + gear definitions)
- Mind role: MindRoleBloodCultist (TeamAntagonist)
- Entity prototypes: Effects, Mobs (constructs), Objects (stone), Structures (runes)
- Faction: BloodCult NPC faction (hostile to NT, Zombie, Vampire, etc.)
- StatusIcon: BloodCultistFaction icon
- Recipes: Construction graphs for blood cult structures
- Guidebook: Entity definition

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-19 03:59:17 +01:00
parent 300ccb1b88
commit eadb774f50
11 changed files with 1778 additions and 0 deletions

View File

@@ -0,0 +1,368 @@
# Basic
- type: entity
id: ActionBloodCultObjective
parent: BaseAction
name: "[color=red]Objective[/color]"
description: "Shows the current purpose of the cult."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "vote" }
useDelay: 5
- type: InstantAction
event: !type:BloodCultObjectiveActionEvent
- type: entity
id: ActionBloodCultComms
parent: BaseAction
name: "[color=red]Communication[/color]"
description: "Allows you to talk to your fellow humans."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "comms" }
checkCanInteract: false
useDelay: 5
- type: InstantAction
event: !type:BloodCultCommuneActionEvent
- type: entity
id: ActionBloodMagic
parent: BaseAction
name: "[color=red]Blood magic[/color]"
description: "Summon abilities with your blood."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "blood_magic" }
useDelay: 15
priority: 1
- type: InstantAction
event: !type:BloodCultBloodMagicActionEvent
- type: entity
id: ActionRecallBloodDagger
parent: BaseAction
name: "[color=red]Recall dagger[/color]"
description: "If it exists, it will definitely come back to you."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "recall_dagger" }
useDelay: 5
- type: InstantAction
event: !type:RecallBloodDaggerEvent
# Blood Magic
- type: entity
id: ActionBloodCultStun
parent: BaseAction
name: "[color=red]Stun[/color]"
description: "A powerful spell that will knock out and deafen victims upon contact. A simple, clean and very effective tool for a variety of situations."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "stun" }
useDelay: 5
- type: LimitedCharges
maxCharges: 1
- type: InstantAction
event: !type:BloodCultStunActionEvent
- type: entity
id: ActionBloodCultTeleport
parent: BaseAction
name: "[color=red]Teleport[/color]"
description: "Teleports the target to a random teleport rune."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "teleport" }
useDelay: 5
- type: LimitedCharges
maxCharges: 1
- type: InstantAction
event: !type:BloodCultTeleportActionEvent
- type: entity
id: ActionBloodCultElectromagneticPulse
parent: BaseAction
name: "[color=red]Electromagnetic Pulse[/color]"
description: "It will trigger an EMP pulse that affects everyone except the cultists."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "electromagneticpulse" }
useDelay: 5
- type: LimitedCharges
maxCharges: 1
- type: InstantAction
event: !type:BloodCultElectromagneticPulseActionEvent
- type: entity
id: ActionBloodCultShadowShackles
parent: BaseAction
name: "[color=red]Shadow Shackles[/color]"
description: "The use will put the victim in chains."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "shadowshackles" }
useDelay: 20
- type: LimitedCharges
maxCharges: 4
- type: InstantAction
event: !type:BloodCultShadowShacklesActionEvent
- type: entity
id: ActionBloodCultTwistedConstruction
parent: BaseAction
name: "[color=red]Twisted Construction[/color]"
description: "A sinister spell used to transform."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "twistedconstruction" }
useDelay: 5
- type: LimitedCharges
maxCharges: 1
- type: InstantAction
event: !type:BloodCultTwistedConstructionActionEvent
- type: entity
id: ActionBloodCultSummonEquipment
parent: BaseAction
name: "[color=red]Summon Equipment[/color]"
description: "A sinister spell used to transform."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "summonequipment" }
useDelay: 5
- type: LimitedCharges
maxCharges: 1
- type: InstantAction
event: !type:BloodCultSummonEquipmentActionEvent
- type: entity
id: ActionBloodCultSummonDagger
parent: BaseAction
name: "[color=red]Summon Dagger[/color]"
description: ""
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "dagger" }
useDelay: 5
- type: LimitedCharges
maxCharges: 1
- type: InstantAction
event: !type:BloodCultSummonDaggerActionEvent
- type: entity
id: ActionBloodCultHallucinations
parent: BaseAction
name: "[color=red]Hallucinations[/color]"
description: "A spell useful for stealth that will destroy the victim's consciousness with nightmarish hallucinations. Fun for victims, rarely useful in practice."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "hallucinations" }
itemIconStyle: BigAction
useDelay: 20
- type: TargetAction
range: 6
- type: LimitedCharges
maxCharges: 4
- type: EntityTargetAction
event: !type:BloodCultHallucinationsActionEvent
- type: entity
id: ActionBloodCultConcealPresence
parent: BaseAction
name: "[color=red]Conceal Presence[/color]"
description: "A multifunctional spell that alternates between hiding and revealing nearby runes and cultist structures."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "concealpresence" }
useDelay: 5
- type: LimitedCharges
maxCharges: 10
- type: InstantAction
event: !type:BloodCultConcealPresenceActionEvent
- type: entity
id: ActionBloodCultBloodRites
parent: BaseAction
name: "[color=red]Blood rites[/color]"
description: "A unique spell for collecting blood or healing allies. It is also used to create powerful weapons such as the Blood Spear, or to activate attacking abilities."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "blood_rites" }
useDelay: 15
- type: InstantAction
event: !type:BloodCultBloodRitesActionEvent
# Blood Rites
- type: entity
id: ActionBloodCultOrb
parent: BaseAction
name: "[color=red]Blood orb[/color]"
description: "An ability that allows you to transfer blood to another cultist."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "orb" }
useDelay: 5
- type: InstantAction
event: !type:BloodCultBloodOrbActionEvent
- type: entity
id: ActionBloodCultRecharge
parent: BaseAction
name: "[color=red]Blood recharge[/color]"
description: "An ability that allows you to recharge magical equipment."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "recharge" }
itemIconStyle: BigAction
useDelay: 5
- type: TargetAction
- type: EntityTargetAction
event: !type:BloodCultBloodRechargeActionEvent
- type: entity
id: ActionBloodCultSpear
parent: BaseAction
name: "[color=red]Blood spear[/color]"
description: "An ability that allows you to summon a blood spear."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "spear" }
useDelay: 5
- type: InstantAction
event: !type:BloodCultBloodSpearActionEvent
- type: entity
id: RecallBloodCultSpear
parent: BaseAction
name: "[color=red]Recall spear[/color]"
description: "Returns the spear to his hands if it is nearby."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "recall_spear" }
useDelay: 5
- type: InstantAction
event: !type:RecallBloodSpearEvent
- type: entity
id: ActionBloodCultBoltBarrage
parent: BaseAction
name: "[color=red]Blood barrage[/color]"
description: ""
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "barrage" }
useDelay: 5
- type: InstantAction
event: !type:BloodCultBloodBoltBarrageActionEvent
# Construct
- type: entity
id: TeleportConstructSpell
parent: BaseAction
name: Disembodied
description: "An ability that allows you to descri pass through the visible and invisible."
categories: [ HideSpawnMenu ]
components:
- type: Action
useDelay: 20
itemIconStyle: BigAction
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "wraith_teleport" }
- type: TargetAction
range: 100
- type: WorldTargetAction
event: !type:TeleportSpellEvent
- type: entity
id: WallBuildConstructSpell
parent: BaseAction
name: Build wall
description: "Build a wall."
components:
- type: Action
icon: { sprite: Structures/Walls/cult.rsi, state: "full" }
itemIconStyle: BigAction
useDelay: 60
- type: TargetAction
checkCanAccess: false
range: 3
- type: WorldTargetAction
event: !type:WorldSpawnSpellEvent
prototypes:
- id: WallCult
amount: 1
- type: entity
id: ConstructBuildConstructSpell
parent: BaseAction
name: Build construct
description: "Build a construct."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Structures/Specific/bloodcult_structures.rsi, state: "construct-cult" }
itemIconStyle: BigAction
useDelay: 180
- type: TargetAction
range: 3
- type: WorldTargetAction
event: !type:WorldSpawnSpellEvent
prototypes:
- id: BloodCultConstruct
amount: 1
- type: entity
id: SoulStoneConstructSpell
parent: BaseAction
name: Create soul stone
description: "Summons an empty soul stone."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Objects/Specific/BloodCult/stone.rsi, state: "stone" }
itemIconStyle: BigAction
useDelay: 300
- type: TargetAction
range: 3
- type: WorldTargetAction
event: !type:WorldSpawnSpellEvent
prototypes:
- id: BloodCultSoulStone
amount: 1
- type: entity
id: CloneConstructSpell
parent: BaseAction
name: Summoning harvester
description: "Summons your exact copy."
categories: [ HideSpawnMenu ]
components:
- type: Action
icon: { sprite: _Wega/Interface/Actions/actions_bloodcult.rsi, state: "harvester_clone" }
itemIconStyle: BigAction
startDelay: true
useDelay: 60
- type: TargetAction
range: 9
- type: WorldTargetAction
event: !type:WorldSpawnSpellEvent
prototypes:
- id: MobConstructHarvester
amount: 1

View File

@@ -0,0 +1,143 @@
- type: entity
id: BloodCultFloorGlowEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Effects/floorglow.rsi
state: floorglow
- type: TimedDespawn
lifetime: 0.5
- type: entity
id: BloodCultOrb
parent: BaseItem
name: blood orb
description: ""
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Effects/bloodorb.rsi
state: blood_orb
- type: BloodOrb
- type: entity
id: BloodCultOutEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Effects/bloodcultteleport.rsi
state: cultout
- type: TimedDespawn
lifetime: 1.2
- type: entity
id: BloodCultInEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Effects/bloodcultteleport.rsi
state: cultin
- type: TimedDespawn
lifetime: 1.2
- type: entity
id: BaseBloodCultRuneEffect
abstract: true
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
- type: Appearance
appearanceDataInit:
enum.RuneColorVisuals.Color:
!type:String
"#ff0000"
- type: BloodRune
prototype: default
- type: TimedDespawn
lifetime: 4.0
- type: entity
id: BloodRuneOfferingEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: offering_anim
- type: entity
id: BloodRuneTeleportEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: teleport_anim
- type: entity
id: BloodRuneEmpoweringEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: empowering_anim
- type: entity
id: BloodRuneReviveEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: revive_anim
- type: entity
id: BloodRuneBarrierEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: barrier_anim
- type: entity
id: BloodRuneSummoningEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: summoning_anim
- type: entity
id: BloodRuneBloodBoilEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: bloodboil_anim
- type: entity
id: BloodRuneSpiritealmEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
state: spiritrealm_anim
- type: entity
id: BloodRuneRitualDimensionalRendingEffect
parent: BaseBloodCultRuneEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures_large.rsi
state: rune_large_anim
- type: TimedDespawn
lifetime: 9.75
- type: entity
id: BloodCultDistortedEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures_large.rsi
state: rune_large_distorted
color: "#800000"
- type: TimedDespawn
lifetime: 1.0

View File

@@ -0,0 +1,529 @@
- type: entity
id: MobObserverIfrit
parent:
- Incorporeal
- BaseMob
name: ifrit
description: "???"
components:
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
state: ifrit
- type: ContentEye
maxZoom: 1.44,1.44
- type: Eye
drawFov: false
- type: Input
context: "ghost"
- type: Examiner
skipChecks: true
- type: Ghost
- type: Spectral
- type: entity
id: MobBanshee
parent:
- Incorporeal
- BaseMob
name: banshee
description: A spooky ghostie.
components:
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
state: banshee
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
name: ghost-role-information-banshee-name
description: ghost-role-information-banshee-description
rules: ghost-role-information-familiar-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Damageable
damageContainer: ManifestedSpirit
damageModifierSet: ManifestedSpirit
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/demon_dies.ogg
- type: NoSlip
- type: ContentEye
maxZoom: 1.2, 1.2
- type: CombatMode
- type: MeleeWeapon
altDisarm: false
hidden: true
animation: WeaponArcSlash
soundHit:
path: /Audio/Weapons/bladeslice.ogg
attackRate: 0.90
damage:
types:
Blunt: 2.5
Slash: 5
- type: Input
context: "ghost"
- type: ShowCultistIcons
- type: MovementSpeedModifier
baseWalkSpeed: 5
baseSprintSpeed: 5
- type: entity
abstract: true
id: SimpleMobConstruct
parent: SimpleSpaceMobBase
components:
- type: UserInterface
interfaces:
enum.StrippingUiKey.Key:
type: StrippableBoundUserInterface
- type: Physics
bodyType: KinematicController
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.40
density: 100
mask:
- FlyingMobMask
layer:
- FlyingMobLayer
- type: MovementAlwaysTouching
- type: TemperatureProtection
heatingCoefficient: 0.001
coolingCoefficient: 0.001
- type: FlashImmunity
- type: PressureImmunity
- type: ZombieImmune
- type: Puller
needsHands: false
- type: Prying
pryPowered: true
force: true
speedModifier: 1.5
useSound:
path: /Audio/Items/crowbar.ogg
- type: CombatMode
- type: Hands
showInHands: false
- type: NoSlip
- type: HTN
rootTask:
task: SimpleHostileCompound
blackboard:
NavClimb: !type:Bool
true
NavInteract: !type:Bool
true
NavPry: !type:Bool
true
NavSmash: !type:Bool
true
- type: TypingIndicator
proto: guardian
- type: PointLight
color: red
radius: 3
softness: 1
autoRot: true
- type: GhostTakeoverAvailable
- type: GhostRole
allowMovement: true
allowSpeech: true
makeSentient: true
rules: ghost-role-information-construct-rules
- type: Speech
- type: Bloodstream
bloodMaxVolume: 75
bloodReagent: Blood
bloodlossDamage:
types:
Bloodloss:
0.1
bloodlossHealDamage:
types:
Bloodloss:
-1
- type: NpcFactionMember
factions:
- BloodCult
- type: ShowCultistIcons
- type: BloodCultConstruct
- type: Barotrauma
damage:
types:
Blunt: 0
- type: Metabolizer
solutionOnBody: false
metabolizerTypes: [ Bloodsucker ]
groups:
- id: Medicine
- id: Poison
- type: Tag
tags:
- DoorBumpOpener
- CannotSuicide
- type: entity
parent: SimpleMobConstruct
id: MobConstructJuggernaut
name: juggernaut
description: A terrifying, unholy creature, the product of the devil himself!
components:
- type: MobThresholds
thresholds:
0: Alive
250: Dead
- type: SlowOnDamage
speedModifierThresholds:
130: 0.8
170: 0.7
220: 0.5
- type: Stamina
critThreshold: 300
- type: MovementSpeedModifier
baseWalkSpeed : 2.4
baseSprintSpeed : 3.8
- type: Reflect
reflectProb: 0.4
spread: 90
reflects:
- Energy
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
noRot: true
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: juggernaut
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
state: glow_juggernaut_cult
shader: unshaded
- type: GhostRole
name: ghost-role-information-juggernaut-name
description: ghost-role-information-juggernaut-description
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 250
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/demon_dies.ogg
- !type:ExplodeBehavior
- !type:SpawnEntitiesBehavior
spawn:
Ash:
min: 1
max: 4
- type: Tool
speedModifier: 1.5
qualities:
- Prying
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
altDisarm: false
hidden: true
angle: 30
animation: WeaponArcBite
soundHit:
path: /Audio/Weapons/block_metal1.ogg
attackRate: 0.70
damage:
types:
Blunt: 25
Structural: 60
- type: entity
parent: SimpleMobConstruct
id: MobConstructWraith
name: wraith
components:
- type: ActionGrant
actions:
- TeleportConstructSpell
- type: MobThresholds
thresholds:
0: Alive
100: Dead
- type: SlowOnDamage
speedModifierThresholds:
70: 0.8
85: 0.5
- type: Stamina
critThreshold: 150
- type: MovementSpeedModifier
baseWalkSpeed : 3.5
baseSprintSpeed : 4.9
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
noRot: true
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: wraith
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
state: glow_wraith_cult
shader: unshaded
- type: GhostRole
name: ghost-role-information-wraith-name
description: ghost-role-information-wraith-description
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/demon_dies.ogg
- !type:ExplodeBehavior
- !type:SpawnEntitiesBehavior
spawn:
Ash:
min: 1
max: 2
- type: MeleeWeapon
altDisarm: false
hidden: true
animation: WeaponArcSlash
soundHit:
path: /Audio/Weapons/bladeslice.ogg
attackRate: 0.90
damage:
types:
Blunt: 5
Piercing: 6
Slash: 10
- type: entity
parent: SimpleMobConstruct
id: MobConstructArtificer
name: artificer
components:
- type: ActionGrant
actions:
- WallBuildConstructSpell
- ConstructBuildConstructSpell
- SoulStoneConstructSpell
- type: MobThresholds
thresholds:
0: Alive
50: Dead
- type: SlowOnDamage
speedModifierThresholds:
40: 0.8
- type: Stamina
critThreshold: 80
- type: MovementSpeedModifier
baseWalkSpeed : 3.5
baseSprintSpeed : 4.5
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
noRot: true
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: artificer
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
state: glow_artificer_cult
shader: unshaded
- type: GhostRole
name: ghost-role-information-artificer-name
description: ghost-role-information-artificer-description
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/demon_dies.ogg
- !type:ExplodeBehavior
- !type:SpawnEntitiesBehavior
spawn:
Ash:
min: 1
max: 1
- type: Tool
speedModifier: 1.5
qualities:
- Prying
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
altDisarm: false
hidden: true
animation: WeaponArcBite
soundHit:
path: /Audio/Weapons/genhit3.ogg
attackRate: 0.75
damage:
types:
Blunt: 5
Piercing: 5
Structural: 25
- type: entity
parent: SimpleMobConstruct
id: MobConstructHarvester
name: harvester
components:
- type: ActionGrant
actions:
- WallBuildConstructSpell
- CloneConstructSpell
- type: MobThresholds
thresholds:
0: Alive
150: Dead
- type: SlowOnDamage
speedModifierThresholds:
100: 0.9
130: 0.7
- type: Stamina
critThreshold: 300
- type: MovementSpeedModifier
baseWalkSpeed : 3.5
baseSprintSpeed : 4.8
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
noRot: true
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: harvester
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
state: glow_harvester_cult
shader: unshaded
- type: GhostRole
name: ghost-role-information-harvester-name
description: ghost-role-information-harvester-description
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 150
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/demon_dies.ogg
- !type:ExplodeBehavior
- !type:SpawnEntitiesBehavior
spawn:
Ash:
min: 1
max: 3
- type: Tool
speedModifier: 1.5
qualities:
- Prying
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
altDisarm: false
hidden: true
animation: WeaponArcSlash
soundHit:
path: /Audio/Weapons/bladeslice.ogg
attackRate: 0.80
damage:
types:
Blunt: 5
Piercing: 10
Slash: 10
- type: StaminaDamageOnHit
damage: 40
- type: entity
parent: SimpleMobConstruct
id: MobConstructProteon
name: proteon
components:
- type: MobThresholds
thresholds:
0: Alive
100: Dead
- type: SlowOnDamage
speedModifierThresholds:
70: 0.8
85: 0.5
- type: Stamina
critThreshold: 100
- type: MovementSpeedModifier
baseWalkSpeed : 3.5
baseSprintSpeed : 4.6
- type: Sprite
sprite: _Wega/Mobs/Demons/bloodcultmobs.rsi
noRot: true
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: proteon
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
state: glow_proteon_cult
shader: unshaded
- type: GhostRole
name: ghost-role-information-proteon-name
description: ghost-role-information-proteon-description
- type: HTN
rootTask:
task: SimpleRangedHostileCompound
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/demon_dies.ogg
- !type:ExplodeBehavior
- !type:SpawnEntitiesBehavior
spawn:
Ash:
min: 1
max: 1
- type: MeleeWeapon
altDisarm: false
hidden: true
animation: WeaponArcSlash
soundHit:
path: /Audio/Weapons/bladeslice.ogg
attackRate: 0.90
damage:
types:
Blunt: 5
Slash: 10
- type: RechargeBasicEntityAmmo
rechargeCooldown: 0.5
- type: BasicEntityAmmoProvider
proto: ProjectileBloodBolt
capacity: 1
count: 1
- type: Gun
fireRate: 0.5
useKey: false
selectedMode: FullAuto
availableModes:
- FullAuto
soundGunshot: /Audio/Weapons/Guns/Gunshots/Magic/staff_animation.ogg

View File

@@ -0,0 +1,54 @@
- type: entity
id: BloodCultSoulStone
parent: BaseItem
name: soul stone
description: A shiny red stone with a mysterious aura.
components:
- type: Sprite
sprite: _Wega/Objects/Specific/BloodCult/stone.rsi
layers:
- state: stone_soul
map: ["enum.StoneSoulVisualLayers.Soul"]
visible: false
- state: stone
map: ["enum.StoneSoulVisualLayers.Base"]
- type: MindContainer
- type: BlockMovement
- type: GhostRole
allowMovement: false
allowSpeech: false
name: ghost-role-information-soul-stone-name
description: ghost-role-information-soul-stone-description
rules: ghost-role-information-familiar-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Appearance
- type: StoneSoul
soulProto: MobBanshee
- type: Tag
tags:
- CannotSuicide
- SoulStone
- type: entity
id: BloodCultShuttleCurse
parent: BaseItem
name: cursed sphere
description: It looks ominous.
components:
- type: Sprite
sprite: _Wega/Objects/Specific/BloodCult/stone.rsi
state: shuttlecurse
- type: BloodShuttleCurse
- type: entity
id: BloodCultEldritchSharpener
parent: BaseItem
name: eldritch sharpener
description: He looks extremely fragile.
components:
- type: Sprite
sprite: _Wega/Objects/Specific/BloodCult/stone.rsi
state: sharpener
- type: BloodSharpener

View File

@@ -0,0 +1,404 @@
- type: entity
id: BaseBloodRune
name: rune
abstract: true
placement:
mode: SnapgridCenter
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
- type: Clickable
- type: InteractionOutline
- type: Appearance
appearanceDataInit:
enum.RuneColorVisuals.Color:
!type:String
"#ff0000"
- type: Physics
bodyType: Static
- type: UseDelay
delay: 5
- type: entity
id: BloodRuneOffering
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: offering
- type: BloodRune
prototype: offering
- type: entity
id: BloodRuneTeleport
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: teleport
- type: BloodRune
prototype: teleport
- type: entity
id: BloodRuneEmpowering
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: empowering
- type: BloodRune
prototype: empowering
- type: entity
id: BloodRuneRevive
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: revive
- type: BloodRune
prototype: revive
- type: entity
id: BloodRuneBarrier
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: barrier
- type: Physics
bodyType: Dynamic
canCollide: false
- type: Fixtures
fixtures:
barrier:
shape:
!type:PhysShapeCircle
radius: 0.45
layer:
- WallLayer
hard: false
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: BloodRune
prototype: barrier
- type: entity
id: BloodRuneSummoning
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: summoning
- type: BloodRune
prototype: summoning
- type: entity
id: BloodRuneBloodBoil
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: bloodboil
- type: BloodRune
prototype: bloodboil
- type: entity
id: BloodRuneSpiritealm
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
state: spiritrealm
- type: BloodRune
prototype: spiritrealm
- type: entity
id: BloodRuneRitualDimensionalRending
parent: BaseBloodRune
name: rune
description: ""
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures_large.rsi
state: rune_large
- type: BloodRitualDimensionalRending
- type: NavMapBeacon
color: "#ff0000"
text: "???"
enabled: true
- type: entity
id: BloodCultConstruct
parent: BaseStructure
name: construct
description: A strange floating structure in the air.
suffix: DO NOT MAP
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
state: construct-cult
- type: Physics
bodyType: Dynamic
- type: Construct
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 150
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel10:
min: 1
max: 1
- !type:EmptyContainersBehaviour
containers:
- item
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: Anchorable
tool: BloodDagger
- type: InteractionOutline
- type: ContainerContainer
containers:
item: !type:ContainerSlot
- type: ItemSlots
slots:
item:
name: ""
whitelist:
tags:
- SoulStone
- type: entity
id: BaseBloodCultStructure
parent: BaseStructure
abstract: true
components:
- type: Anchorable
tool: BloodDagger
- type: Physics
bodyType: Dynamic
- type: InteractionOutline
- type: BloodStructure
fixture: fix1
- type: entity
parent: BaseBloodCultStructure
id: BloodCultStructureArchives
name: archives
description: A desk covered with mysterious manuscripts and volumes in unknown languages. Looking at the text, goosebumps pass.
suffix: DO NOT MAP
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
state: archive
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
density: 190
mask:
- MachineMask
layer:
- MachineLayer
- type: Appearance
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
- !type:SpawnEntitiesBehavior
spawn:
SheetRuneMetal1:
min: 0
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: BloodStructure
fixture: fix1
structureGear:
- ClothingEyesZealotBlindfold
- BloodCultVeilShifter
- BloodCultShuttleCurse
- type: Construction
graph: BloodCultStructureArchivesGraph
node: BloodCultStructureArchives
- type: entity
id: BloodCultStructureAltar
parent: BaseBloodCultStructure
name: altar of blood
description: The altar of a certain goddess.
suffix: DO NOT MAP
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
state: altar
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
density: 190
mask:
- MachineMask
layer:
- MachineLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 125
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
- !type:SpawnEntitiesBehavior
spawn:
SheetRuneMetal1:
min: 0
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: BloodStructure
fixture: fix1
structureGear:
- BloodCultEldritchSharpener
- DrinkUnholyFlaskFull
- BloodCultConstruct
- type: PointLight
radius: 1.1
energy: 1
color: "#f08080"
- type: Construction
graph: BloodCultStructureAltarGraph
node: BloodCultStructureAltar
- type: entity
parent: BaseBloodCultStructure
id: BloodCultStructureForge
name: forge of souls
description: An occult forge. Not only evil is being done here, but also a lot of evil.
suffix: DO NOT MAP
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
state: forge
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
density: 190
mask:
- MachineMask
layer:
- MachineLayer
- type: Appearance
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
- !type:SpawnEntitiesBehavior
spawn:
SheetRuneMetal1:
min: 0
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: BloodStructure
fixture: fix1
sound: "/Audio/_Wega/Effects/anvil.ogg"
structureGear:
- ClothingOuterArmorCult
- ClothingOuterFlagellantRobe
- MirrorShield
- type: Construction
graph: BloodCultStructureForgeGraph
node: BloodCultStructureForge
- type: entity
id: BloodCultStructurePylon
parent: BaseBloodCultStructure
name: pylon
description: A mysterious face is looking at you.
suffix: DO NOT MAP
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures.rsi
state: pylon
- type: Physics
bodyType: Dynamic
- type: BloodPylon
- type: BloodStructure
fixture: fix1
canInteract: false
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
- !type:SpawnEntitiesBehavior
spawn:
SheetRuneMetal1:
min: 0
max: 3
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Construction
graph: BloodCultStructurePylonGraph
node: BloodCultStructurePylon

View File

@@ -0,0 +1,8 @@
- type: entity
id: GuidebookDistortedEffect
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _Wega/Structures/Specific/bloodcult_structures_large.rsi
state: rune_large_distorted
color: "#800000"

View File

@@ -0,0 +1,107 @@
- type: constructionGraph
id: BloodCultStructureAltarGraph
start: start
graph:
- node: start
actions:
- !type:DestroyEntity {}
edges:
- to: BloodCultStructureAltar
completed:
- !type:SnapToGrid { }
steps:
- material: RuneMetal
amount: 3
doAfter: 1
- node: BloodCultStructureAltar
entity: BloodCultStructureAltar
edges:
- to: start
completed:
- !type:SpawnPrototype
prototype: SheetRuneMetal1
amount: 3
steps:
- tool: Screwing
doAfter: 4
- type: constructionGraph
id: BloodCultStructureArchivesGraph
start: start
graph:
- node: start
actions:
- !type:DestroyEntity {}
edges:
- to: BloodCultStructureArchives
completed:
- !type:SnapToGrid { }
steps:
- material: RuneMetal
amount: 3
doAfter: 1
- node: BloodCultStructureArchives
entity: BloodCultStructureArchives
edges:
- to: start
completed:
- !type:SpawnPrototype
prototype: SheetRuneMetal1
amount: 3
steps:
- tool: Screwing
doAfter: 8
- type: constructionGraph
id: BloodCultStructureForgeGraph
start: start
graph:
- node: start
actions:
- !type:DestroyEntity {}
edges:
- to: BloodCultStructureForge
completed:
- !type:SnapToGrid { }
steps:
- material: RuneMetal
amount: 3
doAfter: 1
- node: BloodCultStructureForge
entity: BloodCultStructureForge
edges:
- to: start
completed:
- !type:SpawnPrototype
prototype: SheetRuneMetal1
amount: 3
steps:
- tool: Screwing
doAfter: 8
- type: constructionGraph
id: BloodCultStructurePylonGraph
start: start
graph:
- node: start
actions:
- !type:DestroyEntity {}
edges:
- to: BloodCultStructurePylon
completed:
- !type:SnapToGrid { }
steps:
- material: RuneMetal
amount: 4
doAfter: 1
- node: BloodCultStructurePylon
entity: BloodCultStructurePylon
edges:
- to: start
completed:
- !type:SpawnPrototype
prototype: SheetRuneMetal1
amount: 4
steps:
- tool: Screwing
doAfter: 8

View File

@@ -0,0 +1,102 @@
- type: antag
id: BloodCultist
name: roles-antag-blood-cultist-name
antagonist: true
setPreference: true
objective: roles-antag-blood-cultist-objective
guides: [ BloodCult ]
requirements:
- !type:OverallPlaytimeRequirement
time: 54000 # 15h # Corvax-RoleTime
# Ability gears
- type: startingGear
id: BloodCultWeaponBloodGear
inhand:
- WeaponBloodBlade
- CultBola
- type: startingGear
id: BloodCultWeaponDeathGear
inhand:
- WeaponDeathBlade
- CultBola
- type: startingGear
id: BloodCultWeaponHellGear
inhand:
- WeaponHellBlade
- CultBola
- type: startingGear
id: BloodCultJumpsuitGear
equipment:
jumpsuit: ClothingUniformJumpsuitColorBlack
- type: startingGear
id: BloodCultShoesGear
equipment:
shoes: ClothingShoesCult
- type: startingGear
id: BloodCultOuterGear
equipment:
outerClothing: ClothingOuterCultRobesAlt
- type: startingGear
id: BloodCultBackpackGear
equipment:
back: ClothingBackpackBloodCult
storage:
back:
- HandheldHealthAnalyzer
- type: startingGear
id: BloodDaggerGear
inhand:
- WeaponBloodDagger
- type: startingGear
id: DeathDaggerGear
inhand:
- WeaponDeathDagger
- type: startingGear
id: HellDaggerGear
inhand:
- WeaponHellDagger
- type: startingGear
id: BloodCultSpellStunGear
inhand:
- BloodCultSpellStun
- type: startingGear
id: BloodCultSpellTeleportGear
inhand:
- BloodCultSpellTeleport
- type: startingGear
id: BloodCultSpellShadowShacklesGear
inhand:
- BloodCultSpellShadowShackles
- type: startingGear
id: BloodCultSpellTwistedConstructionGear
inhand:
- BloodCultSpellTwistedConstruction
- type: startingGear
id: BloodCultSpellSummonEquipmentGear
inhand:
- BloodCultSpellSummonEquipment
- type: startingGear
id: BloodCultSpellBloodRitesGear
inhand:
- BloodCultSpellBloodRites
- type: startingGear
id: BloodCultSpellBloodBarrageGear
inhand:
- BloodCultSpellBloodBarrage

View File

@@ -1,3 +1,14 @@
# BloodCultist
- type: entity
parent: BaseMindRoleAntag
id: MindRoleBloodCultist
name: Blood Cultist Role
components:
- type: MindRole
antagPrototype: BloodCultist
roleType: TeamAntagonist
- type: BloodCultistRole
# BloodBrother
- type: entity
parent: BaseMindRoleAntag

View File

@@ -0,0 +1,40 @@
# Vampire
- type: factionIcon
id: VampireFaction
isShaded: true
priority: 11
showTo:
components:
- Vampire
- Thrall
locationPreference: Right
icon:
sprite: /Textures/_Wega/Interface/Misc/vampire_icons.rsi
state: Vampire
- type: factionIcon
id: ThrallFaction
isShaded: true
priority: 11
showTo:
components:
- Vampire
- Thrall
locationPreference: Right
icon:
sprite: /Textures/_Wega/Interface/Misc/vampire_icons.rsi
state: Thrall
# Blood Cult
- type: factionIcon
id: BloodCultistFaction
isShaded: true
priority: 11
showTo:
components:
- BloodCultist
- ShowCultistIcons
locationPreference: Right
icon:
sprite: /Textures/_Wega/Interface/Misc/bloodcult_icons.rsi
state: Cultist

View File

@@ -5,3 +5,15 @@
- NanoTrasen
- PetsNT
- SimpleHostile
- BloodCult
# Blood Cult NPC Faction
- type: npcFaction
id: BloodCult
hostile:
- NanoTrasen
- Zombie
- Vampire
- SimpleHostile
- Xeno
- Dragon