From eadb774f505ff0a684892bcd2556c02753deb7b9 Mon Sep 17 00:00:00 2001 From: wylab Date: Fri, 19 Dec 2025 03:59:17 +0100 Subject: [PATCH] feat(bloodcult): Add Blood Cult prototypes from Wega MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../Prototypes/_Wega/Actions/bloodcult.yml | 368 ++++++++++++ .../_Wega/Entities/Effects/bloodcult.yml | 143 +++++ .../_Wega/Entities/Mobs/Player/bloodcult.yml | 529 ++++++++++++++++++ .../Objects/Specific/BloodCult/stone.yml | 54 ++ .../Structures/Specific/bloodcult.yml | 404 +++++++++++++ .../_Wega/Guidebook/Entities/bloodcult.yml | 8 + .../Graphs/structures/bloodcult.yml | 107 ++++ .../_Wega/Roles/Antags/bloodcultist.yml | 102 ++++ .../_Wega/Roles/MindRoles/mind_roles.yml | 11 + .../Prototypes/_Wega/StatusIcon/faction.yml | 40 ++ Resources/Prototypes/_Wega/ai_factions.yml | 12 + 11 files changed, 1778 insertions(+) create mode 100644 Resources/Prototypes/_Wega/Actions/bloodcult.yml create mode 100644 Resources/Prototypes/_Wega/Entities/Effects/bloodcult.yml create mode 100644 Resources/Prototypes/_Wega/Entities/Mobs/Player/bloodcult.yml create mode 100644 Resources/Prototypes/_Wega/Entities/Objects/Specific/BloodCult/stone.yml create mode 100644 Resources/Prototypes/_Wega/Entities/Structures/Specific/bloodcult.yml create mode 100644 Resources/Prototypes/_Wega/Guidebook/Entities/bloodcult.yml create mode 100644 Resources/Prototypes/_Wega/Recipes/Construction/Graphs/structures/bloodcult.yml create mode 100644 Resources/Prototypes/_Wega/Roles/Antags/bloodcultist.yml create mode 100644 Resources/Prototypes/_Wega/StatusIcon/faction.yml diff --git a/Resources/Prototypes/_Wega/Actions/bloodcult.yml b/Resources/Prototypes/_Wega/Actions/bloodcult.yml new file mode 100644 index 0000000000..f82ce8fa09 --- /dev/null +++ b/Resources/Prototypes/_Wega/Actions/bloodcult.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Entities/Effects/bloodcult.yml b/Resources/Prototypes/_Wega/Entities/Effects/bloodcult.yml new file mode 100644 index 0000000000..362352ac58 --- /dev/null +++ b/Resources/Prototypes/_Wega/Entities/Effects/bloodcult.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Entities/Mobs/Player/bloodcult.yml b/Resources/Prototypes/_Wega/Entities/Mobs/Player/bloodcult.yml new file mode 100644 index 0000000000..bc503bc6ac --- /dev/null +++ b/Resources/Prototypes/_Wega/Entities/Mobs/Player/bloodcult.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Specific/BloodCult/stone.yml b/Resources/Prototypes/_Wega/Entities/Objects/Specific/BloodCult/stone.yml new file mode 100644 index 0000000000..cd0863b3f8 --- /dev/null +++ b/Resources/Prototypes/_Wega/Entities/Objects/Specific/BloodCult/stone.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Entities/Structures/Specific/bloodcult.yml b/Resources/Prototypes/_Wega/Entities/Structures/Specific/bloodcult.yml new file mode 100644 index 0000000000..e97b0ff969 --- /dev/null +++ b/Resources/Prototypes/_Wega/Entities/Structures/Specific/bloodcult.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Guidebook/Entities/bloodcult.yml b/Resources/Prototypes/_Wega/Guidebook/Entities/bloodcult.yml new file mode 100644 index 0000000000..d8a5ddeb54 --- /dev/null +++ b/Resources/Prototypes/_Wega/Guidebook/Entities/bloodcult.yml @@ -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" diff --git a/Resources/Prototypes/_Wega/Recipes/Construction/Graphs/structures/bloodcult.yml b/Resources/Prototypes/_Wega/Recipes/Construction/Graphs/structures/bloodcult.yml new file mode 100644 index 0000000000..bcf7401ad8 --- /dev/null +++ b/Resources/Prototypes/_Wega/Recipes/Construction/Graphs/structures/bloodcult.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Roles/Antags/bloodcultist.yml b/Resources/Prototypes/_Wega/Roles/Antags/bloodcultist.yml new file mode 100644 index 0000000000..bb0678233a --- /dev/null +++ b/Resources/Prototypes/_Wega/Roles/Antags/bloodcultist.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/Roles/MindRoles/mind_roles.yml b/Resources/Prototypes/_Wega/Roles/MindRoles/mind_roles.yml index a3f6af2401..1feb48c2c9 100644 --- a/Resources/Prototypes/_Wega/Roles/MindRoles/mind_roles.yml +++ b/Resources/Prototypes/_Wega/Roles/MindRoles/mind_roles.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/StatusIcon/faction.yml b/Resources/Prototypes/_Wega/StatusIcon/faction.yml new file mode 100644 index 0000000000..04060ccfd9 --- /dev/null +++ b/Resources/Prototypes/_Wega/StatusIcon/faction.yml @@ -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 diff --git a/Resources/Prototypes/_Wega/ai_factions.yml b/Resources/Prototypes/_Wega/ai_factions.yml index 2e8a768ada..c776b3856b 100644 --- a/Resources/Prototypes/_Wega/ai_factions.yml +++ b/Resources/Prototypes/_Wega/ai_factions.yml @@ -5,3 +5,15 @@ - NanoTrasen - PetsNT - SimpleHostile + - BloodCult + +# Blood Cult NPC Faction +- type: npcFaction + id: BloodCult + hostile: + - NanoTrasen + - Zombie + - Vampire + - SimpleHostile + - Xeno + - Dragon