/CorgiEngineExtensions

Corgi Engine extensions created by the community

Primary LanguageC#MIT LicenseMIT

Corgi Engine Extensions

This repository contains community-created extensions for the Corgi Engine, More Mountains' bestselling platforming solution, available on the Unity Asset Store. These extensions can be anything, from an alternate take on an existing Character Ability, to brand new ones, or new ways to use the engine.

Contents

  • CharacterMultiButtonActivation, by AlexanderGheorghe : extension of CharacterButtonActivation that lets characters interact with multiple ButtonActivated that they're touching
  • ProjectileHoming, by AlexanderGheorghe : component that goes on a Projectile, detects a target and rotates the Projectile's direction each frame to point towards the target
  • PogoWeapon, by AlexanderGheorghe : Hollow Knight-like pogo weapon implementation example
  • FlyingCharacterDash, by AlexanderGheorghe : CharacterDash extension for flying characters
  • PlayerInvisibility, by AlexanderGheorghe : an example of making the player invisible to the AI
  • BlockAbilities, by AlexanderGheorghe : components for blocking selected character abilities while grabbing/attacking
  • CharacterTimeToJumpApex, by AlexanderGheorghe : a component that adjusts the character's gravity while jumping such that it reaches the apex of the jump in the given time
  • TriggerEventOnAreaClear, by AlexanderGheorghe : a script that triggers a UnityEvent when all the targets within an area (defined by a 2D collider) have been destroyed (useful for example in the room system to open doors/portals or spawn chests when all enemies have been killed). tag targets using the AreaClearTarget script included
  • Stamina, by AlexanderGheorghe : simple stamina that gets consumed when running, dashing or rolling and stops either if it's too low. includes a progress bar updater, a demo scene and a .unitypackage for easy installation
  • ProgressionSystem, by AlexanderGheorghe : a simple, extendable, scriptable object based progression system (get experience, level up). includes a demo scene and a .unitypackage for easy installation
  • StatusEffectSystem, by AlexanderGheorghe : a simple, extendable, scriptable object and event based status system. includes status effect examples, a minimal demo scene and a .unitypackage for easy installation
  • CharacterDamageMultiplier, by AlexanderGheorghe : a collection of extension scripts that implement character-level damage multiplier. includes an example of pickable damage multiplier. requires adding public virtual void ApplyDamageMultiplier(float multiplier) {} declaration to Weapon.cs
  • TypedDamage, by AlexanderGheorghe : a collection of extension scripts that implement typed damage with scriptable objects, like explained in this video.
  • FreezingDamageOnTouch, by AlexanderGheorghe : An extension of DamageOnTouch that freezes characters for a configurable duration. Also includes FreezingMeleeWeapon, which creates a damaging zone that freezes enemies for the duration given.
  • MultipleWeapons, by AlexanderGheorghe : two scripts, extensions of CharacterHandleWeapon and InputManager that go together to allow you to have your characters handle any number of weapons you want at once, from 0 to 1000000, the possibilities are infinite! includes an InputManager.asset with already configured bindings for the second weapon reload and third weapon input (2, 3 for reloading second and third weapon, middle mouse for shooting the third weapon)
  • ActionsAndDecisions, by Muppo : a collection of actions and decisions to use with the new (v5.0) Advanced AI system.
  • AICrawler, by Muppo : lets you create an AI that will crawl on surfaces and rotate accordingly
  • BGMToggler, by Muppo : a component used to change/mute background music when a player stays or exits a collider.
  • CharacterLadderExtended, by Keith : This script will allow you to reset your jump counter after attaching to a ladder. It also allows you jump from a ladder with your Run Speed if the Run Button is pressed while jumping off.
  • CharacterPushCorgiControllerExtended, by Morriekken : It's normal push ability but you can move Raycast position vertically to detect pushable object.
  • CharacterWallclingOverride, by Muppo : a wallclinging ability override to allow player wallcling on every wall or just overriden ones.
  • ControlFreak2Integration, by christougher : Control Freak 2 integration with the Corgi Engine.
  • CustomAutoRespawn, by Muppo : Add this to an AI and it will be allowed to respawn after the set time and activate an animation on both itself and the spawner prefab (if set).
  • DialogueZoneExtended, by Keith : This will allow your AI to patrol and then stop to speak to the player, and then continue on a regular patrol.
  • DialogueZoneItems, by Muppo : A class that will enable the possibility for dialogues to request and give items.
  • HealthGUI, by Nathan : a component you can use to display your current Health as hearts instead of as a progress bar
  • InControlIntegration, by moatdd : two classes to add InControl support to your Corgi Engine project
  • ItemDrop, by Quinn221 : a class to have a random item drop when an enemy dies. Add this to your enemy death effect prefab, then drag in the items you want to drop, then fill in the drop rate.
  • JumpToJetpack, by DavidMBradbury : simulates a sort of "struggle jump"
  • KeyOperatedZonesExtended, by Muppo : allows you to set an ammount of needed keys to open whatever you add this component, the only limitation is keys must not be stackable and have to be the same ID, that's it: one key per slot on inventory.
  • LevelManagerCinemachineBased, by Prog-Maker : a level manager that makes your Cinemachine powered camera follow your character.
  • MoveAwayPlatform, by Muppo : Moving platform extension with Moving Away feature.
  • MovingPlatformExtended, by Muppo : moving platforms that teleport to their initial point once they've reached the end of their path.
  • MultiInventoryDetails, by men8 : an addon to handle all active inventories on scene. See this repo for more info.
  • MultipleCharactersPointsOfEntryLevelManager, by Levrault : an extension of the LevelManager class to handle multiple points of entry in multiplayer games.
  • NoClip, by Muppo : add this to your player Character to be able to press F4 and toggle a no clip mode (Invulnerable, no collisions, fly mode).
  • ObjectActivatedZones, by Keith : This will allow you to create zones that are activated when colliding with the specified object, similar to the way the native KeyOperatedZones are activated by a key.
  • RespawnWhenPlayerEntersRoom, by AlexanderGheorghe : a script that goes with the room system, respawning objects/enemies when the player enters the room where they're located
  • Retroid, by Muppo : is a metroidvania prototype done with Corgi 7.3 out of the box resources and a few extra custom scripts. This is a prototype, it will not be supported nor extended.
  • SimpleConditionalAction, by Muppo : Add this component to an emtpy gameobject and set a reference tag, when all the tagged objects are disabled, feedbacks and actions will be played before this script disable itself.
  • SplitScreen, by Levrault : A couple of classes to add split screen to your game, while having the option to fuse both cameras into one if your targets are close enough. You'll need three camera in your scene, a main, a left and right. For the left and right, set the viewport rect to 0.5 to make it take only half of the screen.
  • StackablePushable, by Morriekken : Modified pushable script along with CorgiController which allows stacking stacking boxes on top of each other.
  • TeleporterWithZoom, by Muppo : Teleporter with Pixel Perfect Camera pixel per unit custom value, allows you to simulate zooms on selected rooms (i.e. entering a little room).
  • WeaponDisable, by NAiLz : This component handles the disabling of weapons during both wall hanging and ladder climbing. This is to create a more visually pleasing situation and should be supplimented in the animator with animations that include the weapon in the position the designer would like it to be in while climbing or wall hanging.
  • AI Brain Extensions, by TheBitCave : These are hosted separately, at https://github.com/thebitcave/ai-brain-extensions-for-corgi-engine, and provide a way to interact with AI Brains using visual nodes.

Why aren't these in the engine directly?

Because they weren't created by Renaud, the creator of the Corgi Engine, because I want to keep the Engine simple to use and just pouring features into it (as cool as they may be) wouldn't be such a great idea, and because the Engine is meant to be extended upon, and these extensions are great examples of that.

Do I need to pay something? Give credit?

No you don't, it's all free to use. Feel free to give credit to their creators though (they'll mention that in the class' comments if they want to).

Are more extensions coming? Can I contribute?

Absolutely, contributions are always welcome. If you want to contribute, drop me a line using the form on this page, or create a pull request on this very repository.

Hey this extension is not working!

You'd need to contact the creator of the extension if they've put their contact info in the class somewhere. If not, not much I can do, I won't provide support for these.