Corgi Engine
v9.1
|
Public Types | |
enum | Modes { Modes.TwoD, Modes.ThreeD } |
the possible modes this weapon laser sight can run on, 3D by default More... | |
Public Types inherited from MoreMountains.CorgiEngine.Weapon | |
enum | TriggerModes { TriggerModes.SemiAuto, TriggerModes.Auto } |
the possible use modes for the trigger More... | |
enum | WeaponStates { WeaponStates.WeaponIdle, WeaponStates.WeaponStart, WeaponStates.WeaponDelayBeforeUse, WeaponStates.WeaponUse, WeaponStates.WeaponDelayBetweenUses, WeaponStates.WeaponStop, WeaponStates.WeaponReloadNeeded, WeaponStates.WeaponReloadStart, WeaponStates.WeaponReload, WeaponStates.WeaponReloadStop, WeaponStates.WeaponInterrupted, WeaponStates.WeaponInCooldown } |
the possible states the weapon can be in More... | |
Public Member Functions | |
override void | Initialization () |
Initialize this weapon More... | |
virtual void | SpawnProjectile (Vector3 spawnPosition, bool triggerObjectActivation=true) |
Spawns a new object and positions/resizes it More... | |
virtual void | DetermineSpawnPosition () |
Determines the spawn position based on the spawn offset and whether or not the weapon is flipped More... | |
Public Member Functions inherited from MoreMountains.CorgiEngine.Weapon | |
virtual void | InitializeComboWeapons () |
Initializes the combo comp if found More... | |
virtual void | SetOwner (Character newOwner, CharacterHandleWeapon handleWeapon) |
Sets the weapon's owner More... | |
virtual void | WeaponInputStart () |
Called by input, turns the weapon on More... | |
virtual void | WeaponInputReleased () |
Describes what happens when the weapon's input gets released More... | |
virtual void | WeaponInputStop () |
Called by input, turns the weapon off if in auto mode More... | |
virtual void | TurnWeaponOn () |
Describes what happens when the weapon starts More... | |
virtual void | TurnWeaponOff () |
Turns the weapon off. More... | |
virtual void | Interrupt () |
Call this method to interrupt the weapon More... | |
virtual bool | WeaponInCooldown () |
virtual void | SetCooldownStartAt () |
virtual IEnumerator | ShootRequestCo () |
Determines whether or not the weapon can fire More... | |
virtual void | InitiateReloadWeapon () |
virtual void | FlipWeapon () |
Flips the weapon. More... | |
virtual void | FlipWeaponModel () |
Flips the weapon model. More... | |
virtual IEnumerator | WeaponDestruction () |
Destroys the weapon More... | |
virtual void | ApplyRecoil (bool shouldApplyRecoil, WeaponRecoilProperties properties) |
virtual void | InitializeAnimatorParameters () |
Adds required animator parameters to the animator parameters list if they exist More... | |
virtual void | UpdateAnimator () |
Override this to send parameters to the character's animator. This is called once per cycle, by the Character class, after Early, normal and Late process(). More... | |
virtual void | ResetComboAnimatorParameter () |
virtual void | ResetAnimatorParameters () |
virtual void | WeaponHit () |
virtual void | WeaponHitDamageable () |
virtual void | WeaponHitNonDamageable () |
virtual void | WeaponMiss () |
virtual void | WeaponKill () |
Public Attributes | |
Vector3 | ProjectileSpawnOffset = Vector3.zero |
the offset position at which the projectile will spawn More... | |
Vector3 | Spread = Vector3.zero |
the spread (in degrees) to apply randomly (or not) on each angle when spawning a projectile More... | |
bool | RotateWeaponOnSpread = false |
whether or not the weapon should rotate to align with the spread angle More... | |
bool | RandomSpread = true |
whether or not the spread should be random (if not it'll be equally distributed) More... | |
Vector3 | SpawnPosition = Vector3.zero |
the projectile's spawn position More... | |
LayerMask | HitscanTargetLayers |
the layer(s) on which to hitscan ray should collide More... | |
float | HitscanMaxDistance = 100f |
the maximum distance of this weapon, after that bullets will be considered lost More... | |
float | MinDamageCaused = 5 |
the minimum amount of damage to apply to a damageable (something with a Health component) every time there's a hit More... | |
float | MaxDamageCaused = 5 |
the maximum amount of damage to apply to a damageable (something with a Health component) every time there's a hit More... | |
List< TypedDamage > | TypedDamages |
a list of typed damage definitions that will be applied on top of the base damage More... | |
float | DamageCausedInvincibilityDuration = 0.2f |
the duration of the invincibility after a hit (to prevent insta death in the case of rapid fire) More... | |
ParticleSystem | DamageableImpactParticles |
a particle system to move to the position of the hit and to play when hitting something with a Health component More... | |
ParticleSystem | NonDamageableImpactParticles |
a particle system to move to the position of the hit and to play when hitting something without a Health component More... | |
bool | TestShootButton |
a button to test the shoot method More... | |
Public Attributes inherited from MoreMountains.CorgiEngine.Weapon | |
TriggerModes | TriggerMode = TriggerModes.Auto |
is this weapon on semi or full auto ? More... | |
bool | Interruptable = false |
whether or not this weapon can be interrupted More... | |
bool | InitializeOnStart = false |
If this is true, the weapon will initialize itself on start, otherwise it'll have to be init manually, usually by the CharacterHandleWeapon class. More... | |
float | DelayBeforeUse = 0f |
the delay before use, that will be applied for every shot More... | |
bool | DelayBeforeUseReleaseInterruption = true |
whether or not the delay before used can be interrupted by releasing the shoot button (if true, releasing the button will cancel the delayed shot) More... | |
float | TimeBetweenUses = 1f |
the time (in seconds) between two shots More... | |
bool | TimeBetweenUsesReleaseInterruption = true |
whether or not the time between uses can be interrupted by releasing the shoot button (if true, releasing the button will cancel the time between uses) More... | |
float | CooldownDuration = 0f |
a duration, in seconds, at the end of the weapon's life cycle and before going back to Idle More... | |
bool | UseBurstMode = false |
if this is true, the weapon will activate repeatedly for every shoot request More... | |
int | BurstLength = 3 |
the amount of 'shots' in a burst sequence More... | |
float | BurstTimeBetweenShots = 0.1f |
the time between shots in a burst sequence (in seconds) More... | |
bool | MagazineBased = false |
whether or not the weapon is magazine based. If it's not, it'll just take its ammo inside a global pool More... | |
int | MagazineSize = 30 |
the size of the magazine More... | |
bool | AutoReload |
if this is true, pressing the fire button when a reload is needed will reload the weapon. Otherwise you'll need to press the reload button More... | |
float | ReloadTime = 2f |
the time it takes to reload the weapon More... | |
int | AmmoConsumedPerShot = 1 |
the amount of ammo consumed everytime the weapon fires More... | |
bool | AutoDestroyWhenEmpty |
if this is set to true, the weapon will auto destroy when there's no ammo left More... | |
float | AutoDestroyWhenEmptyDelay = 1f |
the delay (in seconds) before weapon destruction if empty More... | |
int | CurrentAmmoLoaded = 0 |
the current amount of ammo loaded inside the weapon More... | |
Vector3 | WeaponAttachmentOffset = Vector3.zero |
an offset that will be applied to the weapon once attached to the center of the WeaponAttachment transform. More... | |
bool | FlipWeaponOnCharacterFlip = true |
should that weapon be flipped when the character flips ? More... | |
Vector3 | FlipValue = new Vector3(-1,1,1) |
the FlipValue will be used to multiply the model's transform's localscale on flip. Usually it's -1,1,1, but feel free to change it to suit your model's specs More... | |
Transform | LeftHandHandle |
the transform to which the character's left hand should be attached to More... | |
Transform | RightHandHandle |
the transform to which the character's right hand should be attached to More... | |
bool | ModifyMovementWhileEquipped = false |
if this is true, a multiplier will be applied to movement while the weapon is equipped More... | |
float | PermanentMovementMultiplier = 0f |
the multiplier to apply to movement while equipped More... | |
bool | ModifyMovementWhileAttacking = false |
if this is true, a multiplier will be applied to movement while the weapon is active More... | |
float | MovementMultiplier = 0f |
the multiplier to apply to movement while attacking More... | |
bool | AlwaysResetMultiplierToInitial = true |
if this is true, movement will always be reset to initial speed after a multiplier stops being applied More... | |
bool | PreventHorizontalGroundMovementWhileInUse = false |
if this is true all movement will be prevented (even flip) while the weapon is active More... | |
bool | PreventHorizontalAirMovementWhileInUse = false |
if this is true all horizontal air movement will be prevented (even flip) while the weapon is active More... | |
bool | SetForceWhileInUse = false |
whether or not to apply a force when the weapon is in use More... | |
Vector2 | ForceWhileInUse = Vector2.zero |
the force to apply when the weapon is in use, if SetForceWhileInUse is true More... | |
bool | DisableGravityWhileInUse = false |
whether or not to disable gravity while the weapon is in use More... | |
bool | PreventFlipWhileInUse = false |
whether or not to disable flip while the weapon is in use More... | |
List< Animator > | Animators |
the other animators (other than the Character's) that you want to update every time this weapon gets used More... | |
bool | MirrorCharacterAnimatorParameters = false |
if this is true, the weapon's animator(s) will mirror the animation parameter of the owner character (that way your weapon's animator will be able to "know" if the character is walking, jumping, etc) More... | |
string | EquippedAnimationParameter |
string | IdleAnimationParameter |
the name of the weapon's idle animation parameter : this will be true all the time except when the weapon is being used More... | |
string | StartAnimationParameter |
the name of the weapon's start animation parameter : true at the frame where the weapon starts being used More... | |
string | DelayBeforeUseAnimationParameter |
the name of the weapon's delay before use animation parameter : true when the weapon has been activated but hasn't been used yet More... | |
string | SingleUseAnimationParameter |
the name of the weapon's single use animation parameter : true at each frame the weapon activates (shoots) More... | |
string | UseAnimationParameter |
the name of the weapon's in use animation parameter : true at each frame the weapon has started firing but hasn't stopped yet More... | |
string | DelayBetweenUsesAnimationParameter |
the name of the weapon's delay between each use animation parameter : true when the weapon is in use More... | |
string | InCooldownAnimationParameter |
the name of the weapon's in cooldown animation parameter : true when the weapon is in cooldown More... | |
string | StopAnimationParameter |
the name of the weapon stop animation parameter : true after a shot and before the next one or the weapon's stop More... | |
string | ReloadStartAnimationParameter |
the name of the weapon reload start animation parameter More... | |
string | ReloadAnimationParameter |
the name of the weapon reload animation parameter More... | |
string | ReloadStopAnimationParameter |
the name of the weapon reload end animation parameter More... | |
string | WeaponAngleAnimationParameter |
the name of the weapon's angle animation parameter More... | |
string | WeaponAngleRelativeAnimationParameter |
the name of the weapon's angle animation parameter, adjusted so it's always relative to the direction the character is currently facing More... | |
MMFeedbacks | WeaponStartMMFeedback |
the feedback to play when the weapon starts being used More... | |
MMFeedbacks | WeaponUsedMMFeedback |
the feedback to play while the weapon is in use More... | |
MMFeedbacks | WeaponStopMMFeedback |
the feedback to play when the weapon stops being used More... | |
MMFeedbacks | WeaponReloadMMFeedback |
the feedback to play when the weapon gets reloaded More... | |
MMFeedbacks | WeaponReloadNeededMMFeedback |
the feedback to play when the weapon gets reloaded More... | |
MMFeedbacks | WeaponOnHitFeedback |
A MMFeedback to play when the weapon hits anything (damageable or not) More... | |
MMFeedbacks | WeaponOnMissFeedback |
A MMFeedback to play when the weapon misses (what constitutes a miss is defined per Weapon subclass) More... | |
MMFeedbacks | WeaponOnHitDamageableFeedback |
A MMFeedback to play when the weapon hits a damageable. More... | |
MMFeedbacks | WeaponOnHitNonDamageableFeedback |
A MMFeedback to play when the weapon hits a non damageable object. More... | |
MMFeedbacks | WeaponOnKillFeedback |
A MMFeedback to play when the weapon kills something. More... | |
bool | ApplyRecoilOnUse = false |
Whether or not to apply recoil to the Weapon owner every time this weapon gets used, regardless of the outcome. More... | |
WeaponRecoilProperties | RecoilOnUseProperties |
The recoil to apply every time this weapon gets used. More... | |
bool | ApplyRecoilOnHitDamageable = false |
Whether or not to apply recoil to the Weapon owner every time this weapon hits a damageable object (an object with a Health component, basically) More... | |
WeaponRecoilProperties | RecoilOnHitDamageableProperties |
the recoil to apply when this weapon hits a damageable More... | |
bool | ApplyRecoilOnHitNonDamageable = false |
Whether or not to apply recoil to the Weapon owner every time this weapon hits a non damageable object (a platform, prop, etc) More... | |
WeaponRecoilProperties | RecoilOnHitNonDamageableProperties |
the recoil to apply when this weapon hits a non damageable More... | |
bool | ApplyRecoilOnMiss = false |
Whether or not to apply recoil to the Weapon owner every time the weapon misses its hit. More... | |
WeaponRecoilProperties | RecoilOnMissProperties |
the recoil to apply when this weapon hits nothing More... | |
bool | ApplyRecoilOnKill = false |
Whether or not to apply recoil to the Weapon owner every time the weapon kills its target. More... | |
WeaponRecoilProperties | RecoilOnKillProperties |
The recoil to apply on kill. More... | |
MMStateMachine< WeaponStates > | WeaponState |
the weapon's state machine More... | |
Protected Member Functions | |
virtual void | TestShoot () |
A test method that triggers the weapon More... | |
override void | WeaponUse () |
Called everytime the weapon is used More... | |
virtual void | DetermineDirection () |
Determines the direction of the ray we have to cast More... | |
virtual void | HandleDamage () |
Handles damage and the associated feedbacks More... | |
virtual void | OnDrawGizmosSelected () |
When the weapon is selected, draws a circle at the spawn's position More... | |
Protected Member Functions inherited from MoreMountains.CorgiEngine.Weapon | |
virtual void | Start () |
virtual void | InitializeFeedbacks () |
Initializes all the feedbacks associated to this weapon More... | |
virtual void | Update () |
On Update, we check if the weapon is or should be used More... | |
virtual void | LateUpdate () |
On LateUpdate, processes the weapon state More... | |
virtual void | PreventMovement () |
Handles movement prevention in air or on ground More... | |
virtual void | RestoreMovement () |
virtual IEnumerator | ApplyForceWhileInUseCo () |
An internal coroutine used to apply a force while the weapon's in use More... | |
virtual void | ProcessWeaponState () |
Called every lastUpdate, processes the weapon's state machine More... | |
virtual void | CaseWeaponIdle () |
virtual void | CaseWeaponStart () |
virtual void | CaseWeaponDelayBeforeUse () |
virtual void | CaseWeaponUse () |
virtual void | CaseWeaponDelayBetweenUses () |
virtual void | CaseWeaponStop () |
virtual void | CaseWeaponInCooldown () |
virtual void | CaseWeaponReloadNeeded () |
virtual void | CaseWeaponReloadStart () |
virtual void | CaseWeaponReload () |
virtual void | CaseWeaponReloadStop () |
virtual void | CaseWeaponInterrupted () |
virtual void | ShootRequest () |
Determines whether or not the weapon can fire More... | |
virtual void | ResetMovementMultiplier () |
virtual void | ReloadNeeded () |
Describes what happens when the weapon needs a reload More... | |
virtual void | ReloadWeapon () |
Reloads the weapon More... | |
virtual void | ApplyOffset () |
Applies the offset specified in the inspector More... | |
virtual IEnumerator | ApplyRecoilCoroutine (WeaponRecoilProperties properties) |
virtual void | ApplyRecoilInternal (WeaponRecoilProperties properties) |
virtual Vector2 | GetRecoilDirection (WeaponRecoilProperties properties) |
virtual void | TriggerWeaponStartFeedback () |
Plays the weapon's start sound More... | |
virtual void | TriggerWeaponUsedFeedback () |
Plays the weapon's used sound More... | |
virtual void | TriggerWeaponStopFeedback () |
Plays the weapon's stop sound More... | |
virtual void | TriggerWeaponReloadNeededFeedback () |
Plays the weapon's reload needed sound More... | |
virtual void | TriggerWeaponReloadFeedback () |
Plays the weapon's reload sound More... | |
virtual void | TriggerWeaponOnHitFeedback () |
Plays a feedback when the weapon hits something More... | |
virtual void | TriggerWeaponOnMissFeedback () |
Plays a feedback when the weapon doesn't hit something More... | |
virtual void | TriggerWeaponOnHitDamageableFeedback () |
Plays a feedback when the weapon hits a damageable More... | |
virtual void | TriggerWeaponOnHitNonDamageableFeedback () |
Plays a feedback when the weapon hits a non damageable More... | |
virtual void | TriggerWeaponOnKillFeedback () |
Plays a feedback when the weapon kills something More... | |
virtual void | AddParametersToAnimator (Animator animator, HashSet< int > list) |
virtual void | UpdateAnimator (Animator animator, HashSet< int > list) |
virtual void | ResetAnimatorParameters (Animator animator, HashSet< int > list) |
virtual void | OnDisable () |
Properties | |
RaycastHit | _hit [get, protected set] |
RaycastHit2D | _hit2D [get, protected set] |
Vector3 | _origin [get, protected set] |
Properties inherited from MoreMountains.CorgiEngine.Weapon | |
string | WeaponID [get, set] |
the name of the inventory item corresponding to this weapon. Automatically set (if needed) by InventoryEngineWeapon More... | |
Character | Owner [get, protected set] |
the weapon's owner More... | |
CharacterHandleWeapon | CharacterHandleWeapon [get, set] |
the weapon's owner's CharacterHandleWeapon component More... | |
bool | Flipped [get, set] |
if true, the weapon is flipped More... | |
WeaponAmmo | WeaponAmmo [get, protected set] |
the WeaponAmmo component optionnally associated to this weapon More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from MoreMountains.CorgiEngine.Weapon | |
const string | _aliveAnimationParameterName = "Alive" |
|
strong |
|
protectedvirtual |
Determines the direction of the ray we have to cast
|
virtual |
Determines the spawn position based on the spawn offset and whether or not the weapon is flipped
|
protectedvirtual |
Handles damage and the associated feedbacks
|
virtual |
Initialize this weapon
Reimplemented from MoreMountains.CorgiEngine.Weapon.
|
protectedvirtual |
When the weapon is selected, draws a circle at the spawn's position
|
virtual |
Spawns a new object and positions/resizes it
|
protectedvirtual |
A test method that triggers the weapon
|
protectedvirtual |
Called everytime the weapon is used
Reimplemented from MoreMountains.CorgiEngine.Weapon.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
ParticleSystem MoreMountains.CorgiEngine.HitscanWeapon.DamageableImpactParticles |
a particle system to move to the position of the hit and to play when hitting something with a Health component
float MoreMountains.CorgiEngine.HitscanWeapon.DamageCausedInvincibilityDuration = 0.2f |
the duration of the invincibility after a hit (to prevent insta death in the case of rapid fire)
float MoreMountains.CorgiEngine.HitscanWeapon.HitscanMaxDistance = 100f |
the maximum distance of this weapon, after that bullets will be considered lost
LayerMask MoreMountains.CorgiEngine.HitscanWeapon.HitscanTargetLayers |
the layer(s) on which to hitscan ray should collide
float MoreMountains.CorgiEngine.HitscanWeapon.MaxDamageCaused = 5 |
the maximum amount of damage to apply to a damageable (something with a Health component) every time there's a hit
float MoreMountains.CorgiEngine.HitscanWeapon.MinDamageCaused = 5 |
the minimum amount of damage to apply to a damageable (something with a Health component) every time there's a hit
ParticleSystem MoreMountains.CorgiEngine.HitscanWeapon.NonDamageableImpactParticles |
a particle system to move to the position of the hit and to play when hitting something without a Health component
Vector3 MoreMountains.CorgiEngine.HitscanWeapon.ProjectileSpawnOffset = Vector3.zero |
the offset position at which the projectile will spawn
bool MoreMountains.CorgiEngine.HitscanWeapon.RandomSpread = true |
whether or not the spread should be random (if not it'll be equally distributed)
bool MoreMountains.CorgiEngine.HitscanWeapon.RotateWeaponOnSpread = false |
whether or not the weapon should rotate to align with the spread angle
Vector3 MoreMountains.CorgiEngine.HitscanWeapon.SpawnPosition = Vector3.zero |
the projectile's spawn position
Vector3 MoreMountains.CorgiEngine.HitscanWeapon.Spread = Vector3.zero |
the spread (in degrees) to apply randomly (or not) on each angle when spawning a projectile
bool MoreMountains.CorgiEngine.HitscanWeapon.TestShootButton |
a button to test the shoot method
List<TypedDamage> MoreMountains.CorgiEngine.HitscanWeapon.TypedDamages |
a list of typed damage definitions that will be applied on top of the base damage
|
getprotected set |
|
getprotected set |
|
getprotected set |