Birdtalon
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # **Vision - What I want to do** * Make Xenomorph endgame (1 - 2 hour +) gameplay more interesting and engaging for players. * Allow the Xenomorph team an option to draw stalemated rounds to a decisive close once map control has been established. * Replace pylon larva gain with a more dynamic and interesting system which encourages aggressive and decisive gameplay. * Give the marine team adiquate feedback to allow a gameplay response to the actions of the Xenomorph team. * Create a system which can be added to or modified later by future contributors. # **Mission - How I will do it** * Create and implement a framework for buffs which can be purchased by the Xenomorph team which is sustained by the communication tower pylons. * Design a buff datum which is simple enough for future contributors to add their own buffs or modify the basic ones with their own behaviour. * Create a new Xenomorph Caste at tier 4 which has the capability to decisively break FOB sieges and force a hijack leading to a round victory for Xenomorphs. * Hook the game ender xenomorph caste into the buff system to streamline all endgame content into one easy to understand system for players. # **Design Philosophy** * When drafting ideas for this system I really wanted something that presented the Xenomorph team with options beyond current dry "wait for larva" gameplay. I wanted to design a system from which multiple options could be chosen based on the Xenomorph team's current needs. * I wanted to make a system that was simple and clearly documented so that future Xenomorph contributors could design and make their own endgame hive buffs which could plug into it. * I wanted to make a system whereby if we wanted to add further objectives into the CM gameplay loop in the future then this system would be scalable to include those. * I wanted to make a system which would fit nicely into the current CM gameplay loop and not majorly disrupt current gameplay flow. * I wanted to make a game-ender caste which was both rare enough to be exciting to see but common enough that players would stand a reasonable chance of playing it given enough rounds played. * I wanted to design a system whereby all players could potentially benefit and be included. --- # Step 1: Hive Buffs Although I started this journey by designing the game-ender caste, it really begins with the Hive Buffs. This system is the entry point for the Xenomorph endgame content which would eventually lead to the deployment of the game-ender. ## **Outline** Hive buffs are purchasable after at least 1 hour has passed in the round and are purchasble from a Hive Pylon, this means that the Xenomorphs need to hold at least one communications tower to access the system. Any hive leader can attempt to purchase a buff by interacting with a full health Hive Pylon with help intent. The Xenomorph will be then presented with a menu to choose the buff they wish to purchase for the hive. The Living Xenomorph Queen would then have to approve this hivebuff and pay a cost in "royal resin" (limited points per round) in order to engage the buff. The buff could either be a one-time effect such as an instant number of free larva or a sustained effect such as 10% more health for all xenomorphs. ## **Details** Each Hive Buff has a few attributes. * Name * Description * Tier * Cost * Number of Pylons Required * If the buff is unique (cannot be used with other buffs concurrently) * If the buff is repeatable (can be used in the same round more than once) * Cooldown * Duration (if sustained over time) * Time to live (round time before the buff is available) These attributes allow designers to choose exactly when they want their buff to be available, and with how many pylons (how much map control) they want to give. ## **Implementaion - Code** Hive buffs are implemented through a class `/datum/hivebuff` of which all buffs are children of. ### **Variables** * `hive<datum/hive_status>` * The hive that the buff belongs to * `susained_pylons<list(/obj/effect/alien/resin/special/pylon/endgame)>` * A list of pylons currently sustaining the buff * `name<string>` * This is the name of the hive buff, presented to the Xenomorph purchaser. * `desc<string>` * A short description of what the hive buff does. * `radial_icon<string>` * State of the icon to show in the hivebuff radial menu stored in 'icons/ui_icons/hivebuff_radial.dmi' * `tier<string>` * Defines `HIVEBUFF_TIER_MINOR` and `HIVEBUFF_TIER_MAJOR` which determines the type of buff. This governs the importance of the buff and how announcements are presented to marines and xenomorphs. * `number_of_required_pylons<int>` * Number of controled pylons required for the buff to be purchasable. * `is_unique<bool>` * If the hive buff can be used with any other buffs consequtively, if TRUE this buff is the one and only. * `is_reusable<bool>` * If the hive buff can be purchased more than once per round. If TRUE it can only be purchased one time and never again. * `duration<int>` * How long the buff should be active for before ending its effects. * `cost<int>` * How many points does this buff cost to purchase * `engage_flavourmessage<string>` * The flavour message to present to the Xenomorphs when the buff engages. * `cease_flavourmessage<string>` * The flavour message to present to the Xenomorphs when the buff ceases. * `engage_failure_message<string>` * A message to present to the user and queen if the buff fails to engage even after all purchasing conditons are met. * `marine_flavourmessage<string>` * A message to announce to the marine team when the buff successfully engages. ### **Procs - Overridable** * `on_engage() Returns: Bool` * Behaviour related to the effect of the hive buff lives here, use this proc to apply the effect to the hive or xenomorphs within it. This is called by `_on_engage()` if all conditions are met. This proc should return `TRUE` if the effects applied correctly and `FALSE` if not. * `on_cease() Returns: Bool` * Behaviour relating to returning the hive to its unbuffed state should go in here. All effects applied in `on_engage()` should be reversed. ### **Procs - Not to be overridden** * `_on_pylon_deletion(obj/effect/alien/resin/special/pylon/sustained_pylon)` * Signal Handler for pylons being qdeleted, handles ending any buffs they were involved in sustaining. * `_on_engage(mob/living/carbon/xenomorph/purchasing_mob, obj/effect/alien/resin/special/pylon/endgame/purchased_pylon) Returns: Bool` * Wrapper for `on_engage()` which handles checking that the conditons are met to purchase the buff, as well as seeking authorisation from the queen. Also logs to the gamelog that a buff has been purchased. Once all conditons are met this will call `on_engage()` and set up require signal registrations as well as appending to the lists of current and used hive buffs. Also handles presenting announcements to Xeno and Marines. * `_on_cease() Returns: null` * Wrapper for `on_cease()` which handles signal unregistrations, announceing to the Xenomorph tea and nulling references before deleting the `datum/hivebuff`. Procs to do with checking states are not listed here and should not be overridden, all are documents with comments in `code\modules\cm_aliens\hivebuffs\hivebuff.dm` ## **Implementaion - Player** To purchase a hive buff the player must interact with a fully repaired Pylon in help intent. They are then presented with a radial menu which is filtered based on which buffs are currently available. ![dreamseeker_2024-02-10_13-13-46](https://hackmd.io/_uploads/B1wiIgBi6.png) ![dreamseeker_2024-02-10_13-13-50](https://hackmd.io/_uploads/B1wj8eBjT.png) After the player selects the buff they wish to purchase via this menu,a prompt is presented to the queen to approve the purchase which she must approve. ![dreamseeker_2024-02-10_13-32-36](https://hackmd.io/_uploads/H1tZseriT.png) After the buff has been approved by the queen it is engaged, its effects are applied and a message is presented to all living xenomorphs in the hive to tell them that a hive buff has been purchased. If the buff is a major buff, an announcement is also made to all marines. ![dreamseeker_2024-02-10_13-33-20](https://hackmd.io/_uploads/H1NrjlSop.png) Once the buff has run its duration, another message is presented to the living xenomorphs to let them know that the effects of the buff have ended. ![dreamseeker_2024-02-10_13-33-24](https://hackmd.io/_uploads/H1aHjxBo6.png) *(yes this is a placeholder message ~~no it won't make the final release~~)* --- # Step 2: Game Ender Caste, The Destroyer The purchase of this caste is to bring the game to an end in the favour of the Xenomorphs. ![dreamseeker_2024-02-10_13-43-44](https://hackmd.io/_uploads/r1fnperjT.png)![dreamseeker_2024-02-10_13-43-56](https://hackmd.io/_uploads/rJz3aeSj6.png) ## Outline The Destroyer is a hulking mass of muscle and chitin, brought to bear when the Xenomorphs hold the entire map but are unable to break a FOB siege or bring the round to a close. Purchased via a hive buff - this caste will require both pylons to be held for 10 minutes after the 2 hour mark has passed in the round in order to spawn. Marines and Xeno players alike are notified when the spawning procedure has begun. The Destroyer will firstly pick candidates from the living Xenomorphs so all current living Xenomorphs will get a roll to play it (excluding Queen). If no candidates are found it will fall back onto observers. A player must have 25 hours minimum playing Xenomorph to be eligible to play the Destroyer. If no candidates are found with > 25 hours played then the game will roll again with no hour requirements. A cocoon will spawn at the hive core from which the Destroyer will emerge after the 10 minute timer has elapsed. Destroying a pylon will pause the timer, which will resume once both pylons are once again held. ## Attributes * Health: High (exact value undecided) * Armour: Medium (exact value undecided) * Speed: Slow * Plasma: 1000 ## Abilities ### Passive - "Unstoppable" The destroyer cannot be bodyblocked and will trample all underfoot, including its own hive mates. This deals damage to humans. ![dreamseeker_2024-02-10_13-52-04](https://hackmd.io/_uploads/BkV5yZBja.png) ### Ability 1 - "Rend" * Cooldown: 2.5 seconds * Damage: 25 The destroyer spins and hits all adjacent mobs around itself for a small amount of damage. ![dreamseeker_2024-02-10_13-49-14](https://hackmd.io/_uploads/S1GlybBoa.gif) ### Ability 2 - "Doom" * Cooldown: 90 seconds * Range: 7 tiles The destroyer screeches, overwhelming the senses of nearby humans and extinguishing lights in the area. Applies a blur, daze and superslow to humans caught in the area. ![dreamseeker_2024-02-10_13-53-19](https://hackmd.io/_uploads/BkN1gWrja.png) ## Ability 3 - "Bulwark" * Cooldown: 180 seconds * Range: 6 A defensive ability which provides a shield to all nearby Xenomorphs. This shield caps damage taken to 10% of the xeno's max health per individual source of damage. ![dreamseeker_2024-02-10_13-55-24](https://hackmd.io/_uploads/S1lDg-Hoa.png) ## Ability 4 - "Destroy" * Cooldown: 120 seconds * Range: 7 * Damage: 75 to humans in AoE, 250 to cades in AoE After channeling for 2 seconds, the destroyer leaps into the air, crashing down on its target and dealing large damage and throwing back all mobs in the landing area. ![destroy](https://i.imgur.com/N7tdRXm.gif)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully