All Projects → JarLowrey → GodotWeapons

JarLowrey / GodotWeapons

Licence: MIT License
Weapon logic plugin for Godot

Programming Languages

GDScript
375 projects

Labels

Projects that are alternatives of or similar to GodotWeapons

godot-unirest
Unirest in GDScript: Simplified, lightweight HTTP client library.
Stars: ✭ 32 (-49.21%)
Mutual labels:  godot
DartGodot
Godot + Dart 🎯
Stars: ✭ 79 (+25.4%)
Mutual labels:  godot
godot-exporter
Godot Engine Automation Pipeline Android – iOS – Linux – MacOS – Windows – HTML5 – Itch.io.
Stars: ✭ 54 (-14.29%)
Mutual labels:  godot
godot-skills
A generic, compositional skill system for Godot Engine that uses scenes to design abilities and their effects.
Stars: ✭ 25 (-60.32%)
Mutual labels:  godot
fmod-gdnative
FMOD Studio integration and bindings for the Godot game engine
Stars: ✭ 102 (+61.9%)
Mutual labels:  godot
godot-interpolated-camera3d
Provides an InterpolatedCamera3D node that replicates its 3.2.x functionality (and more)
Stars: ✭ 40 (-36.51%)
Mutual labels:  godot
gd-obj
Obj file parser for Godot
Stars: ✭ 32 (-49.21%)
Mutual labels:  godot
particles-sandbox
GPU-accelerated cellular automata in Godot (WIP)
Stars: ✭ 17 (-73.02%)
Mutual labels:  godot
StateMachine system for Godot
Flexible and lightweight StateMachine for Godot
Stars: ✭ 19 (-69.84%)
Mutual labels:  godot
addons-btree
Visual Behavior Tree
Stars: ✭ 90 (+42.86%)
Mutual labels:  godot
godot-gameshell
Godot export templates and instructions for the GameShell portable game console and other single-board computers
Stars: ✭ 34 (-46.03%)
Mutual labels:  godot
PostgreSQLClient
PostgreSQL connector for Godot Engine in GDScript.
Stars: ✭ 28 (-55.56%)
Mutual labels:  godot
godot-performance-comparison
Godot performance comparison between the `3.x` and `master` branch
Stars: ✭ 12 (-80.95%)
Mutual labels:  godot
TowerDefense
Simple Tower Defense Game made with Godot Engine
Stars: ✭ 32 (-49.21%)
Mutual labels:  godot
PixiesPixel
A cross-platform realtime online multiplayer PvP game made with Godot and GDScript. Voted runner up (out of 243 teams) at NUS Orbital 2019.
Stars: ✭ 21 (-66.67%)
Mutual labels:  godot
MySQL Module
MySQL connector to Godot Engine.
Stars: ✭ 30 (-52.38%)
Mutual labels:  godot
build-godot-action
GitHub action that builds a Godot project for multiple platforms
Stars: ✭ 62 (-1.59%)
Mutual labels:  godot
WarZone 2
Top down multiplayer shooting game made using godot engine for android
Stars: ✭ 14 (-77.78%)
Mutual labels:  godot
godot-vs-rapier
compare gdnative rust based physics against Godot built-in physics
Stars: ✭ 67 (+6.35%)
Mutual labels:  godot
viewport-spy
Godot editor UI to spy on what a Viewport is rendering. Useful for debugging.
Stars: ✭ 28 (-55.56%)
Mutual labels:  godot

Quick Start Video

Weapon Plugin for Godot

Weapon bootstrapping in Godot 3.1, written in GDScript.

What is a weapon?

Essentially, I view it as a tool that can be used periodically. This project aims to flexibly implement tool/weapon usage and provide common components.

How To

View the examples in Test/ for a full introduction to the API.

Elevator Explanation

A weapon is an action with a cooldown. This action may end immediately, after a time period, through an animation, or however you decide (just be sure to call end_attack [or end_action/end_reload depending on situation]).

Components can be added as direct children to modify the action's ability to start or end, and may have further customization options in the editor. This project aims to cover most common component needs, but you can extend them or add your own if you like.

Base components

These components will work immediately.

  • Ammo: Disables the gun when the capacity drops to zero. Could also work as Stamina
  • Charge: Disables the weapon when capacity is less than Max_Capaciy.
  • AutoAttack: auto starts the attack upon entering the tree. Restarts the attack once it finished successfully
  • StartBlocker: conditions/trigger to start action
  • EndBlocker: conditions/trigger to end action (useful for a charged weapon with a manual release)
  • BulletSpawner: for instancing scenes on weapon state change. For a bullet hell or intensive application, this should be refactored to pull from an object pool.
  • Magazine (includes reload action): a magazine. Must make children editable to customize via the Capacity and LongAction children nodes.

Common Components

These components require further scripting to customize them to your weapon-specific implementation.

  • Combo: change weapon data (animation played, cooldown delay, etc) if it is used quickly enough. Need to add extra data to the JSON and apply it.
  • Burst: changes multiple attacks into a single atomic attack. Will stop partway through if gun cannot fire (ran out of ammo etc). Relies on developer to implement different cooldown times for burst and non-burst attacks. Need to implement "_apply_burst/original_cooldown"
  • Recoil: bounce the weapon after shooting. Need to write application for 3D, or change 2D application if your gun needs it.

Util

  • Capacity: Parent class for Ammo, Charge, MagCapacity, and others. Has a min, max, and step (for easy increment/decrement).
  • LongAction: Base class for attacking and cooldowns. Leaves implementation up to developer but allows the components to interact predictably

Notes

All weapons/components currently only tested in 2D, but should work in 3D too.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].