Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BloodSuckers port from monkey #941

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

Lime-7
Copy link

@Lime-7 Lime-7 commented Dec 29, 2024

Что этот PR делает

Портирует антагониста Bloodsucker с монки.

Почему это хорошо для игры

Новый интересный антагонист!

Изображения изменений

Тестирование

нет, требует тестирования

Changelog

🆑
add: Портирован антагонист Bloodsucker c Monkey station
/:cl:

Summary by Sourcery

Port the Bloodsucker antagonist from Monkey Station.

New Features:

  • Added the Bloodsucker antagonist.

Tests:

  • Requires testing.

@github-actions github-actions bot added TGUI Добавление или изменение существующего интерфейса на базе фреймворка TGUI 🔉 Звук Вау... этот звук такой... хуёвый? 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! labels Dec 29, 2024
@Lime-7
Copy link
Author

Lime-7 commented Dec 29, 2024

блять, я то думал манки это как ТГ... в итоге пошел я нахуй, куча трейтов с которых нет на офф тг и с которыми я хуй знает как работать... ну да ладно прорвемся... попытаемся

@Lime-7
Copy link
Author

Lime-7 commented Dec 29, 2024

приключение на 5 минут, вошел вышел думал я...

@Lime-7
Copy link
Author

Lime-7 commented Dec 30, 2024

тесты проведены, нихуя не работает, пока надо:

  1. перенос трейтов с монки
  2. перенос звуков с монки
  3. перенос всего не модульного под модуль

@Lime-7
Copy link
Author

Lime-7 commented Jan 1, 2025

До конца января забью

@Lime-7
Copy link
Author

Lime-7 commented Jan 7, 2025

@sourcery-ai review

Copy link

sourcery-ai bot commented Jan 7, 2025

Reviewer's Guide by Sourcery

This pull request ports the Bloodsucker antagonist from another codebase. It introduces a new antagonist role, the Bloodsucker, and includes associated game mechanics such as blood level, feeding, and vassalization. It also adds several new craftable items related to the Bloodsucker role, including a persuasion rack, candelabrum, and blood throne. Finally, it adds support for Bloodsucker clans, each with unique abilities and objectives.

Sequence diagram for vassalization process

sequenceDiagram
    participant B as Bloodsucker
    participant R as VassalRack
    participant V as Victim

    B->>R: attach_victim(victim)
    R->>V: buckle_mob()
    loop Torture Process
        B->>R: torture_victim()
        R->>V: apply_damage()
        R->>V: check_disloyalty()
        alt Accepts vassalization
            V-->>R: disloyalty_confirm = true
            R-->>B: ready for conversion
            B->>V: make_vassal()
        else Refuses vassalization
            V-->>R: disloyalty_confirm = false
            R-->>B: conversion failed
        end
    end
Loading

Class diagram for Bloodsucker antagonist structure

classDiagram
    class BloodsuckerAntagonist {
        +bloodsucker_blood_volume: int
        +max_blood_volume: int
        +humanity_lost: int
        +broke_masquerade: bool
        +bloodsucker_level: int
        +powers: list
        +vassals: list
        +AddBloodVolume(value)
        +HandleHealing()
        +handle_feeding()
        +claim_coffin()
    }

    class BloodsuckerStructure {
        +owner: mob
        +ghost_desc: string
        +vamp_desc: string
        +vassal_desc: string
        +bolt()
        +unbolt()
    }

    class VassalRack {
        +convert_progress: int
        +disloyalty_confirm: bool
        +attach_victim()
        +torture_victim()
    }

    class Candelabrum {
        +lit: bool
        +toggle()
    }

    class BloodThrone {
        +handle_speech()
    }

    BloodsuckerStructure <|-- VassalRack
    BloodsuckerStructure <|-- Candelabrum
    BloodsuckerStructure <|-- BloodThrone
Loading

State diagram for Bloodsucker blood levels

stateDiagram-v2
    [*] --> Normal: Blood > BLOOD_VOLUME_NORMAL
    Normal --> Warning: Blood < BLOOD_VOLUME_OKAY
    Warning --> Danger: Blood < BLOOD_VOLUME_BAD
    Danger --> Frenzy: Blood < FRENZY_THRESHOLD_ENTER
    Frenzy --> Danger: Blood > FRENZY_THRESHOLD_EXIT
    Danger --> Warning: Blood > BLOOD_VOLUME_BAD
    Warning --> Normal: Blood > BLOOD_VOLUME_OKAY

    Normal: Regeneration Rate 0.5
    Warning: Regeneration Rate 0.3
    Danger: Regeneration Rate 0.1
    Frenzy: Aggressive State
Loading

File-Level Changes

Change Details Files
Added Bloodsucker role and mechanics.
  • Added ROLE_BLOODSUCKER to role preferences.
  • Added new traits and defines related to bloodsuckers.
  • Implemented bloodsucker game mechanics, including blood level, feeding, and vassalization.
  • Created bloodsucker objectives.
code/__DEFINES/role_preferences.dm
code/__DEFINES/traits/sources.dm
modular_bandastation/modular_bandastation.dme
tgstation.dme
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_datum.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_objectives.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_life.dm
Introduced Bloodsucker related craftable structures.
  • Added craftable structures such as persuasion rack, candelabrum, and blood throne.
  • Implemented structure functionality and interactions.
  • Added crafting recipes for new structures.
modular_bandastation/blood_suckers/code/structures/bloodsucker_crypt.dm
modular_bandastation/blood_suckers/code/structures/bloodsucker_objects.dm
modular_bandastation/blood_suckers/code/structures/bloodsucker_coffin.dm
modular_bandastation/blood_suckers/code/structures/bloodsucker_recipes.dm
Added Bloodsucker clan support.
  • Implemented clan mechanics and unique abilities.
  • Created different clans with specific traits and objectives.
  • Added support for clan selection and management.
modular_bandastation/blood_suckers/code/clans/_clan_base.dm
modular_bandastation/blood_suckers/code/clans/venture.dm
modular_bandastation/blood_suckers/code/clans/malkavian.dm
modular_bandastation/blood_suckers/code/clans/_clan_flavortext.dm
Created UI elements for Bloodsuckers.
  • Developed UI for displaying blood level, rank, and other information.
  • Implemented UI for clan selection and power management.
tgui/packages/tgui/interfaces/AntagInfoBloodsucker.tsx
Implemented Bloodsucker powers.
  • Created various bloodsucker powers, such as feeding, dominating, and using blood magic.
  • Implemented power activation, deactivation, and level-based upgrades.
  • Balanced power costs and cooldowns.
modular_bandastation/blood_suckers/code/powers/feed.dm
modular_bandastation/blood_suckers/code/powers/tremere/dominate.dm
modular_bandastation/blood_suckers/code/powers/targeted/brawn.dm
modular_bandastation/blood_suckers/code/powers/tremere/thaumaturgey.dm
modular_bandastation/blood_suckers/code/powers/targeted/mesmerize.dm
modular_bandastation/blood_suckers/code/powers/veil.dm
modular_bandastation/blood_suckers/code/powers/targeted/_base_targeted.dm
modular_bandastation/blood_suckers/code/powers/targeted/haste.dm
modular_bandastation/blood_suckers/code/powers/cloak.dm
modular_bandastation/blood_suckers/code/powers/go_home.dm
modular_bandastation/blood_suckers/code/powers/tremere/auspex.dm
modular_bandastation/blood_suckers/code/powers/fortitude.dm
modular_bandastation/blood_suckers/code/powers/masquerade.dm
modular_bandastation/blood_suckers/code/powers/_base_power.dm
modular_bandastation/blood_suckers/code/powers/vassal/recuperate.dm
modular_bandastation/blood_suckers/code/powers/vassal/vassal_fold.dm
Added support for Vassals.
  • Implemented vassal creation and management.
  • Defined vassal roles, abilities, and objectives.
  • Added support for ex-vassals and their mechanics.
modular_bandastation/blood_suckers/code/vassals/vassal_datum.dm
modular_bandastation/blood_suckers/code/vassals/ex_vassal.dm
modular_bandastation/blood_suckers/code/vassals/vassal_misc_procs.dm
modular_bandastation/blood_suckers/code/vassals/types/revenge.dm
Integrated Bloodsuckers with existing game systems.
  • Overwrote existing game functions to handle bloodsucker interactions.
  • Added bloodsucker-specific traumas and effects.
  • Defined new bloodsucker constants and macros.
  • Implemented bloodsucker conversion mechanics.
  • Created bloodsucker names and titles.
  • Integrated bloodsuckers with the frenzy and sunlight systems.
  • Added bloodsucker HUD elements.
  • Implemented bloodsucker guardian mechanics.
  • Integrated bloodsuckers with the existing game rules and preferences.
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_misc_procs.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_overwrites.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_traumas.dm
code/__DEFINES/bloodsuckers.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_conversion.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_names.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_frenzy.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_hud.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_guardian.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_sol.dm
modular_bandastation/blood_suckers/code/bloodsucker/bloodsucker_flaws.dm
tgui/packages/tgui/interfaces/AntagInfoRevengeVassal.tsx
tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodsucker.ts
modular_bandastation/blood_suckers/_blood_suckers.dme

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🔉 Звук Вау... этот звук такой... хуёвый? TGUI Добавление или изменение существующего интерфейса на базе фреймворка TGUI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant