Corgi Engine
v9.0
|
Projectile class that will bounce off walls instead of exploding on impact More...
Public Member Functions | |
virtual void | OnTriggerEnter2D (Collider2D collider) |
On trigger enter 2D, we call our colliding endpoint More... | |
virtual void | PreventedCollision2D (RaycastHit2D hit) |
If we get a prevent collision 2D message, we check if we should bounce More... | |
Public Member Functions inherited from MoreMountains.CorgiEngine.Projectile | |
virtual void | Movement () |
Handles the projectile's movement, every frame More... | |
virtual void | SetDirection (Vector3 newDirection, Quaternion newRotation, bool spawnerIsFacingRight=true) |
Sets the projectile's direction. More... | |
virtual void | Flip () |
Flip the projectile More... | |
virtual void | SetWeapon (Weapon newWeapon) |
Sets the projectile's parent weapon. More... | |
virtual void | SetOwner (GameObject newOwner) |
Sets the projectile's owner. More... | |
virtual GameObject | GetOwner () |
Returns the current Owner of the projectile More... | |
virtual void | SetDamage (int newDamage) |
Sets the damage caused by the projectile's DamageOnTouch to the specified value More... | |
Public Member Functions inherited from MoreMountains.Tools.MMPoolableObject | |
delegate void | Events () |
virtual void | Destroy () |
Turns the instance inactive, in order to eventually reuse it. More... | |
virtual void | TriggerOnSpawnComplete () |
Triggers the on spawn complete event More... | |
Public Member Functions inherited from MoreMountains.Tools.MMObjectBounds | |
virtual Bounds | GetBounds () |
Returns the bounds of the object, based on what has been defined More... | |
Public Attributes | |
float | BounceRaycastLength = 1f |
the length of the raycast used to detect bounces, should be proportionate to the size and speed of your projectile More... | |
LayerMask | BounceLayers |
the layers you want this projectile to bounce on More... | |
MMFeedbacks | BounceFeedback |
a feedback to trigger at every bounce More... | |
Vector2Int | AmountOfBounces = new Vector2Int(10, 10) |
the min and max amount of bounces (a value will be picked at random between both bounds) More... | |
Vector2 | SpeedModifier = Vector2.one |
the min and max speed multiplier to apply at every bounce (a value will be picked at random between both bounds) More... | |
Public Attributes inherited from MoreMountains.CorgiEngine.Projectile | |
bool | FaceDirection = true |
if true, the projectile will rotate at initialization towards its rotation More... | |
bool | FaceMovementDirection = false |
if this is true, the projectile will update its rotation every frame to match its movement direction More... | |
float | Speed = 200 |
the speed of the object (relative to the level's speed) More... | |
float | Acceleration = 0 |
the acceleration of the object over time. Starts accelerating on enable. More... | |
Vector3 | Direction = Vector3.left |
the current direction of the object More... | |
bool | DirectionCanBeChangedBySpawner = true |
if set to true, the spawner can change the direction of the object. If not the one set in its inspector will be used. More... | |
Vector3 | FlipValue = new Vector3(-1,1,1) |
the flip factor to apply if and when the projectile is mirrored More... | |
bool | ProjectileIsFacingRight = true |
determines whether or not the projectile is facing right More... | |
float | InitialInvulnerabilityDuration =0f |
the initial delay during which the projectile can't be destroyed More... | |
bool | DamageOwner = false |
should the projectile damage its owner ? More... | |
bool | SpawnSecurityCheck = false |
if this is true, the projectile will perform an extra check on initialization to make sure it's not within an obstacle. If it is, it'll disable itself. More... | |
LayerMask | SpawnSecurityCheckLayerMask |
the layermask to use when performing the security check More... | |
Public Attributes inherited from MoreMountains.Tools.MMPoolableObject | |
UnityEvent | ExecuteOnEnable |
UnityEvent | ExecuteOnDisable |
float | LifeTime = 0f |
The life time, in seconds, of the object. If set to 0 it'll live forever, if set to any positive value it'll be set inactive after that time. More... | |
Public Attributes inherited from MoreMountains.Tools.MMObjectBounds | |
WaysToDetermineBounds | BoundsBasedOn |
Protected Member Functions | |
override void | Initialization () |
On init we randomize our values, refresh our 2D collider because Unity is weird sometimes More... | |
virtual void | Colliding (GameObject collider) |
Colliding endpoint More... | |
virtual void | EvaluateHit (RaycastHit2D hit) |
Decides whether or not we should bounce More... | |
virtual void | Bounce (RaycastHit2D hit) |
Applies a bounce in 2D More... | |
virtual void | LateUpdate () |
On late update we store our position More... | |
Protected Member Functions inherited from MoreMountains.CorgiEngine.Projectile | |
virtual void | Awake () |
On awake, we store the initial speed of the object More... | |
virtual IEnumerator | InitialInvulnerability () |
Handles the projectile's initial invincibility More... | |
virtual void | CheckForCollider () |
Performs a local check to see if the projectile is within a collider or not More... | |
virtual void | FixedUpdate () |
On FixedUpdate(), we move the object based on the level's speed and the object's speed, and apply acceleration More... | |
virtual void | HandleFaceMovement () |
If FaceMovementDirection is true, orients the projectile to match its current movement direction More... | |
virtual void | OnHit () |
On hit, we trigger a hit on our owner weapon More... | |
virtual void | OnHitDamageable () |
On hit damageable, we trigger a hit damageable on our owner weapon More... | |
virtual void | OnHitNonDamageable () |
On hit non damageable, we trigger a hit non damageable on our owner weapon More... | |
virtual void | OnKill () |
On kill, we trigger a kill on our owner weapon More... | |
override void | OnEnable () |
On enable, we reset the object's speed More... | |
override void | OnDisable () |
On disable, we unsubscribe from our delegates More... | |
Protected Member Functions inherited from MoreMountains.Tools.MMPoolableObject | |
virtual void | Update () |
Called every frame More... | |
Protected Member Functions inherited from MoreMountains.Tools.MMObjectBounds | |
virtual void | Reset () |
When this component is added we define its bounds. More... | |
virtual void | DefineBoundsChoice () |
Tries to determine automatically what the bounds should be based on. In this order, it'll keep the last found of these : Collider2D, Collider or Renderer. If none of these is found, it'll be set as Undefined. More... | |
Protected Attributes | |
Vector3 | _positionLastFrame |
Vector3 | _raycastDirection |
Vector3 | _reflectedDirection |
int | _randomAmountOfBounces |
int | _bouncesLeft |
float | _randomSpeedModifier |
Protected Attributes inherited from MoreMountains.CorgiEngine.Projectile | |
Weapon | _weapon |
GameObject | _owner |
Vector3 | _movement |
float | _initialSpeed |
SpriteRenderer | _spriteRenderer |
DamageOnTouch | _damageOnTouch |
WaitForSeconds | _initialInvulnerabilityDurationWFS |
BoxCollider2D | _collider |
Vector2 | _raycastOrigin |
Vector2 | _raycastDestination |
bool | _facingRightInitially |
bool | _initialFlipX |
Vector3 | _initialLocalScale |
RaycastHit2D | _hit2D |
Health | _health |
bool | _spawnerIsFacingRight |
Additional Inherited Members | |
Public Types inherited from MoreMountains.Tools.MMObjectBounds | |
enum | WaysToDetermineBounds { WaysToDetermineBounds.Collider, WaysToDetermineBounds.Collider2D, WaysToDetermineBounds.Renderer, WaysToDetermineBounds.Undefined } |
Static Protected Attributes inherited from MoreMountains.CorgiEngine.Projectile | |
const float | _raycastSkinSecurity =0.01f |
Properties inherited from MoreMountains.CorgiEngine.Projectile | |
virtual DamageOnTouch | TargetDamageOnTouch [get] |
Returns the associated damage on touch zone. More... | |
Properties inherited from MoreMountains.Tools.MMObjectBounds | |
virtual Vector3 | Size [get, set] |
Events inherited from MoreMountains.Tools.MMPoolableObject | |
Events | OnSpawnComplete |
Projectile class that will bounce off walls instead of exploding on impact
|
protectedvirtual |
Applies a bounce in 2D
hit |
|
protectedvirtual |
Colliding endpoint
collider |
|
protectedvirtual |
Decides whether or not we should bounce
|
protectedvirtual |
On init we randomize our values, refresh our 2D collider because Unity is weird sometimes
Reimplemented from MoreMountains.CorgiEngine.Projectile.
|
protectedvirtual |
On late update we store our position
|
virtual |
On trigger enter 2D, we call our colliding endpoint
collider |
S
|
virtual |
If we get a prevent collision 2D message, we check if we should bounce
hit |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Vector2Int MoreMountains.CorgiEngine.BouncyProjectile.AmountOfBounces = new Vector2Int(10, 10) |
the min and max amount of bounces (a value will be picked at random between both bounds)
MMFeedbacks MoreMountains.CorgiEngine.BouncyProjectile.BounceFeedback |
a feedback to trigger at every bounce
LayerMask MoreMountains.CorgiEngine.BouncyProjectile.BounceLayers |
the layers you want this projectile to bounce on
float MoreMountains.CorgiEngine.BouncyProjectile.BounceRaycastLength = 1f |
the length of the raycast used to detect bounces, should be proportionate to the size and speed of your projectile
Vector2 MoreMountains.CorgiEngine.BouncyProjectile.SpeedModifier = Vector2.one |
the min and max speed multiplier to apply at every bounce (a value will be picked at random between both bounds)