Variable Movement Added
This commit is contained in:
parent
2c996a9a29
commit
1139293328
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f05a188c063295a459be521ca7cb5edb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
namespace Syntriax.Modules.Movement.VariableMovement
|
||||
{
|
||||
public class DefaulVariableMovementAsset : IVariableMovementAsset
|
||||
{
|
||||
public string MovementName => "Default Movement";
|
||||
|
||||
public float MovementMultiplier { get; } = 1f;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 51c6b19fd2c0c9f4e9a0b28528c875dd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
|||
namespace Syntriax.Modules.Movement.VariableMovement
|
||||
{
|
||||
public interface IVariableMovement : IState
|
||||
{
|
||||
IVariableMovementAsset VariableMovementAsset { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f5b11f55ed07dd9428e35c40af90714d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
namespace Syntriax.Modules.Movement.VariableMovement
|
||||
{
|
||||
public interface IVariableMovementAsset
|
||||
{
|
||||
string MovementName { get; }
|
||||
float MovementMultiplier { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 18c50e4da3596b64d9cd3a01ab22a2ca
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,10 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Syntriax.Modules.Movement.VariableMovement
|
||||
{
|
||||
public interface IVariableMovementController : IState
|
||||
{
|
||||
List<IVariableMovement> VariableMovements { get; }
|
||||
IVariableMovement CurrentVariableMovement { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a04461d521f1e754f85154d2548da368
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bc3b3517b04c51746a6f678728212d27
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,11 @@
|
|||
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
|
||||
{
|
||||
public class SimpleVariableMovement : IVariableMovement
|
||||
{
|
||||
public IVariableMovementAsset VariableMovementAsset { get; protected set; } = null;
|
||||
public bool StateEnabled { get; set; } = false;
|
||||
|
||||
public SimpleVariableMovement(IVariableMovementAsset variableMovementAsset)
|
||||
=> VariableMovementAsset = variableMovementAsset;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 05bc4dd9eef91cf4b82018ce47c7b9c9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,13 @@
|
|||
using UnityEngine;
|
||||
|
||||
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Simple Variable Movement Asset", menuName = "Syntriax/Modules/Movement/VariableMovement/Simple Variable Movement Asset", order = 0)]
|
||||
public class SimpleVariableMovementAsset : ScriptableObject, IVariableMovementAsset
|
||||
{
|
||||
[SerializeField] protected float movementMultiplier = 1f;
|
||||
|
||||
public string MovementName => this.name;
|
||||
public float MovementMultiplier => movementMultiplier;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f0b94067bad67de4689a6a41749e1b1b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,28 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
|
||||
{
|
||||
public class SimpleVariableMovementController : MonoBehaviour, IVariableMovementController
|
||||
{
|
||||
private static IVariableMovement DefaultVariableMovement = new SimpleVariableMovement(new DefaulVariableMovementAsset());
|
||||
|
||||
public bool StateEnabled { get; set; } = false;
|
||||
|
||||
public List<IVariableMovement> VariableMovements { get; protected set; } = new List<IVariableMovement>();
|
||||
public IVariableMovement CurrentVariableMovement
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!StateEnabled)
|
||||
return DefaultVariableMovement;
|
||||
|
||||
foreach (IVariableMovement variableMovement in VariableMovements)
|
||||
if (variableMovement.StateEnabled)
|
||||
return variableMovement;
|
||||
|
||||
return DefaultVariableMovement;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 580058b11e72667419d381dbffba60e8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue