aboutsummaryrefslogtreecommitdiffstats
path: root/Assets/Scripts/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Core')
-rw-r--r--Assets/Scripts/Core/Interfaces.meta8
-rw-r--r--Assets/Scripts/Core/Interfaces/IFollowable.cs18
-rw-r--r--Assets/Scripts/Core/Interfaces/IFollowable.cs.meta11
-rw-r--r--Assets/Scripts/Core/Stats.cs50
-rw-r--r--Assets/Scripts/Core/Stats.cs.meta11
5 files changed, 98 insertions, 0 deletions
diff --git a/Assets/Scripts/Core/Interfaces.meta b/Assets/Scripts/Core/Interfaces.meta
new file mode 100644
index 0000000..050910c
--- /dev/null
+++ b/Assets/Scripts/Core/Interfaces.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bfa16d0e0353499459486776ae1559ea
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Core/Interfaces/IFollowable.cs b/Assets/Scripts/Core/Interfaces/IFollowable.cs
new file mode 100644
index 0000000..92320de
--- /dev/null
+++ b/Assets/Scripts/Core/Interfaces/IFollowable.cs
@@ -0,0 +1,18 @@
+
+using UnityEngine;
+
+namespace MontanaJohns.Core.Interfaces
+{
+ public interface IFollowable
+ {
+ Transform ActorTransform { get; }
+ Camera MainCamera { get; }
+
+ public void Follow()
+ {
+ Vector3 pos = MainCamera.transform.position;
+ pos.x = Mathf.Lerp(ActorTransform.position.x, MainCamera.transform.position.x, 0.25f);
+ MainCamera.transform.position = pos;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/Scripts/Core/Interfaces/IFollowable.cs.meta b/Assets/Scripts/Core/Interfaces/IFollowable.cs.meta
new file mode 100644
index 0000000..4330668
--- /dev/null
+++ b/Assets/Scripts/Core/Interfaces/IFollowable.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 51a83677c8f15834bb02f2ac447d6727
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Core/Stats.cs b/Assets/Scripts/Core/Stats.cs
new file mode 100644
index 0000000..29afbe3
--- /dev/null
+++ b/Assets/Scripts/Core/Stats.cs
@@ -0,0 +1,50 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace MontanaJohns.Core
+{
+ public static class StatsExtensions
+ {
+ public static Stats Sum(this IEnumerable<Stats> source)
+ {
+ var sum = default(Stats);
+ using (var iter = source.GetEnumerator())
+ {
+ if (!iter.MoveNext()) return sum;
+ while (iter.MoveNext()) sum += iter.Current;
+ return sum;
+ }
+ }
+ }
+
+ [System.Serializable]
+ public struct Stats
+ {
+ [SerializeField] public int lives;
+ [SerializeField] public float speedMultiplier;
+ [SerializeField] public int maxJumps;
+ [SerializeField] public float jumpForce;
+
+ public static Stats operator +(Stats x, Stats y)
+ {
+ return new Stats
+ {
+ lives = x.lives + y.lives,
+ speedMultiplier = x.speedMultiplier + y.speedMultiplier,
+ maxJumps = x.maxJumps + y.maxJumps,
+ jumpForce = x.jumpForce + y.jumpForce
+ };
+ }
+
+ public static Stats DefaultBaseStats()
+ {
+ return new Stats
+ {
+ lives = 3,
+ speedMultiplier = 1,
+ maxJumps = 1,
+ jumpForce = 500f,
+ };
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/Scripts/Core/Stats.cs.meta b/Assets/Scripts/Core/Stats.cs.meta
new file mode 100644
index 0000000..3862953
--- /dev/null
+++ b/Assets/Scripts/Core/Stats.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fc3f0c9b9011d6d4d974a49bf8a39201
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: