A class meant to spawn objects (usually item pickers, but not necessarily) The spawn can be triggered by any script, at any time, and comes with automatic hooks to trigger loot on damage or death.
More...
|
| virtual void | ResetRemainingQuantity () |
| | Resets the remaining quantity to the maximum quantity.
|
| virtual void | InitializeLootTable () |
| | Computes the associated loot table's weights.
|
| virtual void | SpawnLoot () |
| | This method spawns the specified loot after applying a delay (if there's one)
|
| virtual void | SpawnOneLoot () |
| | Spawns a single loot object, without delay, and regardless of the defined quantities.
|
|
| LootModes | LootMode = LootModes.Unique |
| GameObject | GameObjectToLoot |
| | the object to loot, when in LootMode
|
| MMLootTableGameObject | LootTable |
| | a loot table defining what objects to spawn
|
| MMLootTableGameObjectSO | LootTableSO |
| | a loot table scriptable object defining what objects to spawn
|
| bool | SpawnLootOnDeath = true |
| | if this is true, loot will happen when this object dies
|
| bool | SpawnLootOnDamage = false |
| | if this is true, loot will happen when this object takes damage
|
| bool | PoolLoot = false |
| | if this is true, lootables will be pooled
|
| int | PoolSize = 20 |
| | determines the size of the pool for each object in the loot table
|
| string | MutualizedPoolName = "" |
| | a unique name for this pool, has to be common between all Loot objects sharing the same loot table if you want to mutualize their pools
|
| float | Delay = 0f |
| | a delay (in seconds) to wait for before spawning loot
|
| Vector2 | Quantity = Vector2.one |
| | the minimum and maximum quantity of objects to spawn
|
| MMSpawnAroundProperties | SpawnProperties |
| | the position, rotation and scale objects should spawn at
|
| bool | LimitedLootQuantity = true |
| | if this is true, loot will be limited to MaximumQuantity, any new loot attempt beyond that will have no outcome. If this is false, loot is unlimited and can happen forever.
|
| int | MaximumQuantity = 100 |
| | The maximum quantity of objects that can be looted from this Loot object.
|
| int | RemainingQuantity = 100 |
| | The remaining quantity of objects that can be looted from this Loot object, displayed for debug purposes.
|
| bool | AvoidObstacles = false |
| | Whether or not spawned objects should try and avoid obstacles.
|
| LayerMask | AvoidObstaclesLayerMask = LayerManager.ObstaclesLayerMask |
| | the layer mask containing layers the spawned objects shouldn't collide with
|
| float | AvoidRadius = 0.25f |
| | the radius around the object within which no obstacle should be found
|
| int | MaxAvoidAttempts = 5 |
| | the amount of times the script should try finding another position for the loot if the last one was within an obstacle. More attempts : better results, higher cost
|
| MMFeedbacks | LootFeedback |
| | A MMFeedbacks to play when spawning loot. Only one feedback will play. If you want one per item, it's best to place it on the item itself, and have it play when the object gets instantiated.
|
| bool | DrawGizmos = false |
| | if this is true, gizmos will be drawn to show the shape within which loot will spawn
|
| int | GizmosQuantity = 1000 |
| | the amount of gizmos to draw
|
| Color | GizmosColor = MMColors.LightGray |
| | the color the gizmos should be drawn with
|
| float | GimosSize = 1f |
| | the size at which to draw the gizmos
|
| bool | SpawnLootButton |
| | a debug button used to trigger a loot
|
|
| virtual void | Awake () |
| | On Awake we grab the health component if there's one, and initialize our loot table.
|
| virtual void | InitializePools () |
| virtual MMSimpleObjectPooler | FindSimplePooler () |
| virtual MMMultipleObjectPooler | FindMultiplePooler () |
| virtual void | Spawn (GameObject gameObjectToSpawn) |
| virtual void | SpawnLootDebug () |
| | A debug method called by the inspector button.
|
| virtual IEnumerator | SpawnLootCo () |
| | A coroutine used to spawn loot after a delay.
|
| virtual GameObject | GetObject () |
| | Gets the object that should be spawned.
|
| virtual void | OnHit () |
| | On hit, we spawn loot if needed.
|
| virtual void | OnDeath () |
| | On death, we spawn loot if needed.
|
| virtual void | OnEnable () |
| | OnEnable we start listening for death and hit if needed.
|
| virtual void | OnDisable () |
| | OnDisable we stop listening for death and hit if needed.
|
| virtual void | OnDrawGizmos () |
| | OnDrawGizmos, we display the shape at which objects will spawn when looted.
|
A class meant to spawn objects (usually item pickers, but not necessarily) The spawn can be triggered by any script, at any time, and comes with automatic hooks to trigger loot on damage or death.
◆ LootModes
the possible modes by which loot can be defined
| Enumerator |
|---|
| Unique | |
| LootTable | |
| LootTableScriptableObject | |
◆ Awake()
| virtual void MoreMountains.CorgiEngine.Loot.Awake |
( |
| ) |
|
|
protectedvirtual |
On Awake we grab the health component if there's one, and initialize our loot table.
◆ FindMultiplePooler()
◆ FindSimplePooler()
◆ GetObject()
| virtual GameObject MoreMountains.CorgiEngine.Loot.GetObject |
( |
| ) |
|
|
protectedvirtual |
Gets the object that should be spawned.
- Returns
◆ InitializeLootTable()
| virtual void MoreMountains.CorgiEngine.Loot.InitializeLootTable |
( |
| ) |
|
|
virtual |
Computes the associated loot table's weights.
◆ InitializePools()
| virtual void MoreMountains.CorgiEngine.Loot.InitializePools |
( |
| ) |
|
|
protectedvirtual |
◆ InitializeStatics()
| void MoreMountains.CorgiEngine.Loot.InitializeStatics |
( |
| ) |
|
|
staticprotected |
◆ OnDeath()
| virtual void MoreMountains.CorgiEngine.Loot.OnDeath |
( |
| ) |
|
|
protectedvirtual |
On death, we spawn loot if needed.
◆ OnDisable()
| virtual void MoreMountains.CorgiEngine.Loot.OnDisable |
( |
| ) |
|
|
protectedvirtual |
OnDisable we stop listening for death and hit if needed.
◆ OnDrawGizmos()
| virtual void MoreMountains.CorgiEngine.Loot.OnDrawGizmos |
( |
| ) |
|
|
protectedvirtual |
OnDrawGizmos, we display the shape at which objects will spawn when looted.
◆ OnEnable()
| virtual void MoreMountains.CorgiEngine.Loot.OnEnable |
( |
| ) |
|
|
protectedvirtual |
OnEnable we start listening for death and hit if needed.
◆ OnHit()
| virtual void MoreMountains.CorgiEngine.Loot.OnHit |
( |
| ) |
|
|
protectedvirtual |
On hit, we spawn loot if needed.
◆ ResetRemainingQuantity()
| virtual void MoreMountains.CorgiEngine.Loot.ResetRemainingQuantity |
( |
| ) |
|
|
virtual |
Resets the remaining quantity to the maximum quantity.
◆ Spawn()
| virtual void MoreMountains.CorgiEngine.Loot.Spawn |
( |
GameObject | gameObjectToSpawn | ) |
|
|
protectedvirtual |
◆ SpawnLoot()
| virtual void MoreMountains.CorgiEngine.Loot.SpawnLoot |
( |
| ) |
|
|
virtual |
This method spawns the specified loot after applying a delay (if there's one)
◆ SpawnLootCo()
| virtual IEnumerator MoreMountains.CorgiEngine.Loot.SpawnLootCo |
( |
| ) |
|
|
protectedvirtual |
A coroutine used to spawn loot after a delay.
- Returns
◆ SpawnLootDebug()
| virtual void MoreMountains.CorgiEngine.Loot.SpawnLootDebug |
( |
| ) |
|
|
protectedvirtual |
A debug method called by the inspector button.
◆ SpawnOneLoot()
| virtual void MoreMountains.CorgiEngine.Loot.SpawnOneLoot |
( |
| ) |
|
|
virtual |
Spawns a single loot object, without delay, and regardless of the defined quantities.
◆ _health
| Health MoreMountains.CorgiEngine.Loot._health |
|
protected |
◆ _multipleObjectPooler
◆ _objectToSpawn
| GameObject MoreMountains.CorgiEngine.Loot._objectToSpawn |
|
protected |
◆ _overlapBox
| Collider [] MoreMountains.CorgiEngine.Loot._overlapBox |
|
protected |
◆ _raycastHit2D
| RaycastHit2D MoreMountains.CorgiEngine.Loot._raycastHit2D |
|
protected |
◆ _raycastOrigin
| Vector3 MoreMountains.CorgiEngine.Loot._raycastOrigin |
|
protected |
◆ _simplePooler
◆ _spawnedObject
| GameObject MoreMountains.CorgiEngine.Loot._spawnedObject |
|
protected |
◆ AvoidObstacles
| bool MoreMountains.CorgiEngine.Loot.AvoidObstacles = false |
Whether or not spawned objects should try and avoid obstacles.
◆ AvoidObstaclesLayerMask
the layer mask containing layers the spawned objects shouldn't collide with
◆ AvoidRadius
| float MoreMountains.CorgiEngine.Loot.AvoidRadius = 0.25f |
the radius around the object within which no obstacle should be found
◆ Delay
| float MoreMountains.CorgiEngine.Loot.Delay = 0f |
a delay (in seconds) to wait for before spawning loot
◆ DrawGizmos
| bool MoreMountains.CorgiEngine.Loot.DrawGizmos = false |
if this is true, gizmos will be drawn to show the shape within which loot will spawn
◆ GameObjectToLoot
| GameObject MoreMountains.CorgiEngine.Loot.GameObjectToLoot |
the object to loot, when in LootMode
◆ GimosSize
| float MoreMountains.CorgiEngine.Loot.GimosSize = 1f |
the size at which to draw the gizmos
◆ GizmosColor
| Color MoreMountains.CorgiEngine.Loot.GizmosColor = MMColors.LightGray |
the color the gizmos should be drawn with
◆ GizmosQuantity
| int MoreMountains.CorgiEngine.Loot.GizmosQuantity = 1000 |
the amount of gizmos to draw
◆ LimitedLootQuantity
| bool MoreMountains.CorgiEngine.Loot.LimitedLootQuantity = true |
if this is true, loot will be limited to MaximumQuantity, any new loot attempt beyond that will have no outcome. If this is false, loot is unlimited and can happen forever.
◆ LootFeedback
| MMFeedbacks MoreMountains.CorgiEngine.Loot.LootFeedback |
A MMFeedbacks to play when spawning loot. Only one feedback will play. If you want one per item, it's best to place it on the item itself, and have it play when the object gets instantiated.
◆ LootMode
the selected loot mode :
- unique : a simple object
- loot table : a LootTable specific to this Loot object
- loot definition : a LootTable scriptable object (created by right click > Create > MoreMountains > Corgi Engine > Loot Definition This loot definition can then be reused in other Loot objects.
◆ LootTable
a loot table defining what objects to spawn
◆ LootTableSO
a loot table scriptable object defining what objects to spawn
◆ MaxAvoidAttempts
| int MoreMountains.CorgiEngine.Loot.MaxAvoidAttempts = 5 |
the amount of times the script should try finding another position for the loot if the last one was within an obstacle. More attempts : better results, higher cost
◆ MaximumQuantity
| int MoreMountains.CorgiEngine.Loot.MaximumQuantity = 100 |
The maximum quantity of objects that can be looted from this Loot object.
◆ MultiplePoolers
◆ MutualizedPoolName
| string MoreMountains.CorgiEngine.Loot.MutualizedPoolName = "" |
a unique name for this pool, has to be common between all Loot objects sharing the same loot table if you want to mutualize their pools
◆ PoolLoot
| bool MoreMountains.CorgiEngine.Loot.PoolLoot = false |
if this is true, lootables will be pooled
◆ PoolSize
| int MoreMountains.CorgiEngine.Loot.PoolSize = 20 |
determines the size of the pool for each object in the loot table
◆ Quantity
| Vector2 MoreMountains.CorgiEngine.Loot.Quantity = Vector2.one |
the minimum and maximum quantity of objects to spawn
◆ RemainingQuantity
| int MoreMountains.CorgiEngine.Loot.RemainingQuantity = 100 |
The remaining quantity of objects that can be looted from this Loot object, displayed for debug purposes.
◆ SimplePoolers
◆ SpawnLootButton
| bool MoreMountains.CorgiEngine.Loot.SpawnLootButton |
a debug button used to trigger a loot
◆ SpawnLootOnDamage
| bool MoreMountains.CorgiEngine.Loot.SpawnLootOnDamage = false |
if this is true, loot will happen when this object takes damage
◆ SpawnLootOnDeath
| bool MoreMountains.CorgiEngine.Loot.SpawnLootOnDeath = true |
if this is true, loot will happen when this object dies
◆ SpawnProperties
the position, rotation and scale objects should spawn at
The documentation for this class was generated from the following file:
- Assets/CorgiEngine/Common/Scripts/Items/Loot.cs