Functionality for Geb's rock golems. Inherits from MeleeEntityController, which inherits from BaseEntityController. What changed:
- The golems can also damage walls, not just player. (Modification to ActivateAttack())
- If a wall gets in the way of the golem chasing the player, the golem will attack the wall. (Modification to ChaseState())
Documentation updated 1/13/2025
- Author
- Alexander Art
- Copyright
- Lots of code from BaseEntityController and MeleeEntityController is used.
|
void | SpawnParticlesOnDeath () |
|
void | ChangeSpeed (float speedChange) |
| Speeds up or slows down the entity's movement speed. A negative value for speedChange will slow down the entity.
|
|
void | ChangeSpeed (float speedChange, float duration) |
| Temporarily speeds up or slows down the entity's movement speed. A negative value for speedChange will slow down the entity.
|
|
void | DestroyOnDeath () |
| Can be optionaly run by ObjectHealth.onDeath.
|
|
|
Transform | boulderParticles |
| Particles the golem will spawn when it dies.
|
|
float | attackRange = 0.5f |
| The distance from the attack point that enemies will be hit (size of attack point).
|
|
float | knockback = 75f |
| The strength of the knockback that the attack will apply.
|
|
bool | knockbackEnabled = true |
| If true, the melee attack will apply knockback to the attacked object.
|
|
|
override void | ChaseState () |
| Similar to base.ChaseState except for attackLayers also detected.
|
|
override void | ActivateAttack () |
| When the attack is activated, scan for the player and any walls. Then, apply damage (and knockback, if its the player).
|
|
override void | ActivateAttack () |
| Scan the attack range for enemies, and apply damage and knockback (if enabled)
|
|
override void | TriggerAttack () |
| Trigger attacking animation.
|
|
void | ActivateAttack () |
| Triggered by an event in the attack animation (or you can override TriggerAttack() if there is not attack animation). This function muse be overridden by any inheriting class.
|
|
virtual void | PatrolState () |
| When the entity hasn't detected any enemies...
|
|
virtual void | CloseAttackState () |
| If the entity is close enough to an enemy to attack...
|
|
|
LayerMask | attackLayers |
| The rock golem does not chase objects on these layers, but will attack them if they are in their way of chasing.
|
|
ObjectHealth | objectHealth |
| Reference to the object responsible for managing the player's health.
|
|
Transform | attackPoint |
| Reference to the entity's attack point. It's a point in space that's a child of the entity, existing some distance in front of it. Projectiles spawn from the attack point, and melee attacks scan for enemies to damage from a certain radius around it.
|
|
int | attackDamage = 30 |
| Amount of damage the entity's attack will deal.
|
|
float | attackCooldown = 0.8f |
| The amount of time between attacks.
|
|
float | cooldownEndTime = 0f |
| Amount of time until cooldown is over. Set to the current time + attackCooldown when the attack is triggered.
|
|
LayerMask | enemyLayers |
| Objects on these layers will be considered an enemy of this entity, and if detected, this entity will seek to attack. An object can be assigned to a layer in the Unity Editor from a drop down menu in the top right.
|
|
PatrolZone | patrolZone |
| A patrol zone is an object that has two points the entity will walk between if it does not detect an enemy.
|
|
float | horizontalDirection = 0f |
| Horizontal direction the entity is traveling in.
|
|
float | detectionRange = 6f |
| How far away the entity will detect an enemy from and start chasing.
|
|
float | activateAttackRange = 3f |
| How close the entity must be to an enemy to attack it.
|
|
float | entityCenter = 1.4f |
|
bool | hostileDetected = false |
| True if the entity has detected an enemy.
|
|
bool | hostileInCloseRange = false |
| True if the entity is close enough to an enemy to attack it.
|
|
Rigidbody2D | rb |
| Reference to the entity's rigidbody.
|
|
float | moveVelocity = 6.0f |
| How fast the entity should move.
|
|
float | speedModifier = 0f |
| The precent of moveVelocity the entity should move at. Used for slowing the entity down.
|
|
float | linearDrag = 1.0f |
| Amount of drag to apply to the rigidbody.
|
|
float | groundedRaycastLength = 1.8f |
|
GroundDetector | groundDetector |
| Reference to the entity's GroundDetector.
|
|
bool | groundNeeded = true |
| Can be set to false to let the entity walk even when it is not on the ground.
|
|
bool | canWalk = true |
| Used for disabling entity movement.
|
|
Animator | animator |
| Reference to the entity's animator.
|
|
◆ ActivateAttack()
override void RockGolemController.ActivateAttack |
( |
| ) |
|
|
protected |
When the attack is activated, scan for the player and any walls. Then, apply damage (and knockback, if its the player).
◆ ChaseState()
override void RockGolemController.ChaseState |
( |
| ) |
|
|
protectedvirtual |
Similar to base.ChaseState except for attackLayers also detected.
Reimplemented from BaseEntityController.
◆ SpawnParticlesOnDeath()
void RockGolemController.SpawnParticlesOnDeath |
( |
| ) |
|
◆ attackLayers
LayerMask RockGolemController.attackLayers |
|
protected |
The rock golem does not chase objects on these layers, but will attack them if they are in their way of chasing.
◆ boulderParticles
Transform RockGolemController.boulderParticles |
Particles the golem will spawn when it dies.
The documentation for this class was generated from the following file: