net.dreditor.itemrolling 0.0.0-stage → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "DREditor.ItemRolling",
3
+ "rootNamespace": "",
4
+ "references": [
5
+ "DREditor",
6
+ "DREditor.TextDisplaying"
7
+ ],
8
+ "includePlatforms": [],
9
+ "excludePlatforms": [],
10
+ "allowUnsafeCode": false,
11
+ "overrideReferences": false,
12
+ "precompiledReferences": [],
13
+ "autoReferenced": true,
14
+ "defineConstraints": [],
15
+ "versionDefines": [],
16
+ "noEngineReferences": false
17
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 9509528fbcea9c9409e7e7d7c4e85459
3
+ AssemblyDefinitionImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
package/IItemRoller.cs ADDED
@@ -0,0 +1,30 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+
3
+ namespace DREditor.ItemRolling
4
+ {
5
+ /// <summary>
6
+ ///
7
+ /// </summary>
8
+ public interface IItemRoller
9
+ {
10
+ /// <summary>
11
+ ///
12
+ /// </summary>
13
+ /// <param name="objects"></param>
14
+ /// <returns></returns>
15
+ object RollForItem(params object[] objects);
16
+
17
+ /// <summary>
18
+ ///
19
+ /// </summary>
20
+ void GivePlayerRolledItem();
21
+
22
+ /// <summary>
23
+ ///
24
+ /// </summary>
25
+ /// <typeparam name="T"></typeparam>
26
+ /// <param name="rolledObject"></param>
27
+ /// <returns></returns>
28
+ bool TryGetRolledObject<T>(out T rolledObject);
29
+ }
30
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: 5bfc1c241ad8d224190fb7b8012df80c
@@ -0,0 +1,16 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+
3
+ namespace DREditor.ItemRolling
4
+ {
5
+ /// <summary>
6
+ ///
7
+ /// </summary>
8
+ public interface IItemRollerResponse
9
+ {
10
+ /// <summary>
11
+ ///
12
+ /// </summary>
13
+ /// <param name="itemRoller"></param>
14
+ void InitializeForResponse(IItemRoller itemRoller);
15
+ }
16
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: 0e448919692b84148b022ad664c80ab0
@@ -0,0 +1,16 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+
3
+ namespace DREditor.ItemRolling
4
+ {
5
+ /// <summary>
6
+ ///
7
+ /// </summary>
8
+ public interface IRepeatableRoller : IItemRoller
9
+ {
10
+ /// <summary>
11
+ ///
12
+ /// </summary>
13
+ /// <returns></returns>
14
+ float GetRepeatRate();
15
+ }
16
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: 53b15527318ecfb4d8c9d3db9763295e
@@ -0,0 +1,15 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ namespace DREditor.ItemRolling
3
+ {
4
+ /// <summary>
5
+ ///
6
+ /// </summary>
7
+ public interface IRollerContainer
8
+ {
9
+ /// <summary>
10
+ ///
11
+ /// </summary>
12
+ /// <returns></returns>
13
+ IItemRoller GetRoller();
14
+ }
15
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: c5915ea2423ce07429265b89795a45f9
@@ -0,0 +1,47 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using UnityEngine;
3
+
4
+ namespace DREditor.ItemRolling
5
+ {
6
+ /// <summary>
7
+ ///
8
+ /// </summary>
9
+ public abstract class ItemRollerBase : MonoBehaviour, IItemRoller
10
+ {
11
+ /// <inheritdoc/>
12
+ public virtual bool TryGetRolledObject<T>(out T rolledObject)
13
+ {
14
+ bool result = (rolledObject = GetRolledObject() is T resultObject ? resultObject : default(T)) != null;
15
+
16
+ return ReportElse(result,
17
+ $"ALERT: The request to get the rolled item failed because it was not of the expected type!" +
18
+ $"\nANALYSIS: Expected type: {typeof(T).Name} : Got type: {GetRolledObject().GetType().Name}");
19
+ }
20
+
21
+ /// <summary>
22
+ ///
23
+ /// </summary>
24
+ /// <param name="condition"></param>
25
+ /// <param name="message"></param>
26
+ /// <returns></returns>
27
+ protected virtual bool ReportElse(bool condition, string message)
28
+ {
29
+ if (!condition)
30
+ Debug.Log(message);
31
+
32
+ return condition;
33
+ }
34
+
35
+ /// <summary>
36
+ ///
37
+ /// </summary>
38
+ /// <returns></returns>
39
+ protected abstract object GetRolledObject();
40
+
41
+ /// <inheritdoc/>
42
+ public abstract object RollForItem(params object[] objects);
43
+
44
+ /// <inheritdoc/>
45
+ public abstract void GivePlayerRolledItem();
46
+ }
47
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: 156b80d051ca08e49a21de7f65745c0c
@@ -0,0 +1,66 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using UnityEngine;
3
+ using UnityEngine.Events;
4
+
5
+ namespace DREditor.ItemRolling
6
+ {
7
+ /// <summary>
8
+ ///
9
+ /// </summary>
10
+ public abstract class RepeatableRollerBase : ItemRollerBase, IRepeatableRoller
11
+ {
12
+ [Header("")]
13
+ [Divider]
14
+ [Header("")]
15
+ [SerializeField] protected UnityEvent onRepeatPull;
16
+
17
+ [Header("")]
18
+ [SerializeField] protected UnityEvent onNewPull;
19
+
20
+
21
+ /// <inheritdoc/>
22
+ public virtual float GetRepeatRate() => CalculateBaseRepeatRate();
23
+
24
+ /// <summary>
25
+ ///
26
+ /// </summary>
27
+ /// <returns></returns>
28
+ protected abstract float CalculateBaseRepeatRate();
29
+
30
+
31
+ /// <summary>
32
+ ///
33
+ /// </summary>
34
+ /// <param name="item"></param>
35
+ /// <returns></returns>
36
+ protected abstract bool PlayerOwnsItem(object item);
37
+
38
+
39
+ /// <inheritdoc/>
40
+ public override void GivePlayerRolledItem()
41
+ {
42
+ if (GetRolledObject() == null)
43
+ return;
44
+
45
+ InvokePulledType();
46
+
47
+ AddItemToInventory();
48
+ }
49
+
50
+ /// <summary>
51
+ ///
52
+ /// </summary>
53
+ protected virtual void InvokePulledType()
54
+ {
55
+ if (PlayerOwnsItem(GetRolledObject()))
56
+ onRepeatPull?.Invoke();
57
+ else
58
+ onNewPull?.Invoke();
59
+ }
60
+
61
+ /// <summary>
62
+ ///
63
+ /// </summary>
64
+ protected abstract void AddItemToInventory();
65
+ }
66
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: 371fccd7bf84b8e4eb2d51c5e3a8a20a
@@ -0,0 +1,86 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.EventObjects;
3
+ using DREditor.TextDisplaying;
4
+ using UnityEngine;
5
+
6
+ namespace DREditor.ItemRolling
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ [ClassHeader(nameof(DisplayFormattedString) +
12
+ "\n\n")]
13
+ public class RollerRepeatRateText : DisplayFormattedString
14
+ {
15
+ /// <summary>
16
+ ///
17
+ /// </summary>
18
+ [Header("")]
19
+ [Divider]
20
+ [Tooltip("")]
21
+ [SerializeField] protected BaseValueWithEvent paidAmount = null;
22
+
23
+ /// <summary>
24
+ ///
25
+ /// </summary>
26
+ [Tooltip("")]
27
+ [SerializeField] protected bool useAssignedRoller;
28
+
29
+ /// <summary>
30
+ ///
31
+ /// </summary>
32
+ [ShowIf(nameof(UsingAssignedRoller))]
33
+ [Tooltip("")]
34
+ [SerializeField] protected ItemRollerBase assignableRoller;
35
+
36
+
37
+ /// <summary>
38
+ ///
39
+ /// </summary>
40
+ protected IItemRoller roller;
41
+
42
+
43
+ /// <summary>
44
+ ///
45
+ /// </summary>
46
+ /// <returns></returns>
47
+ protected virtual bool UsingAssignedRoller() => useAssignedRoller;
48
+
49
+
50
+ protected virtual void Start() => Display();
51
+
52
+ protected virtual void OnEnable() => paidAmount.AddListener(OnUpdated);
53
+
54
+ protected virtual void OnDisable() => paidAmount.RemoveListener(OnUpdated);
55
+
56
+ /// <summary>
57
+ ///
58
+ /// </summary>
59
+ protected virtual void OnUpdated() => Display();
60
+
61
+ /// <summary>
62
+ ///
63
+ /// </summary>
64
+ /// <returns></returns>
65
+ protected override object GetObjectToBeFormatted() =>
66
+ GetRoller() is IRepeatableRoller repeatable ? repeatable.GetRepeatRate() : -1;
67
+
68
+ /// <summary>
69
+ ///
70
+ /// </summary>
71
+ /// <returns></returns>
72
+ protected virtual IItemRoller GetRoller() => UsingAssignedRoller() ? GetAssignedRoller() : GetParentRoller();
73
+
74
+ /// <summary>
75
+ ///
76
+ /// </summary>
77
+ /// <returns></returns>
78
+ protected virtual IItemRoller GetAssignedRoller() => assignableRoller != null ? assignableRoller : GetParentRoller();
79
+
80
+ /// <summary>
81
+ ///
82
+ /// </summary>
83
+ /// <returns></returns>
84
+ protected virtual IItemRoller GetParentRoller() => roller ??= GetComponentInParent<IRollerContainer>().GetRoller();
85
+ }
86
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: a3bc5debeae46af489942e13ff71a127
package/package.json CHANGED
@@ -1,6 +1,40 @@
1
1
  {
2
2
  "name": "net.dreditor.itemrolling",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.7",
4
+ "displayName": "DREditor Item Rolling",
5
+ "description": "The beta for DREditor. A tool to create death game style projects without having to code.",
6
+ "unity": "6000.4",
7
+ "dependencies": {
8
+ "net.dreditor.core": "0.1.7",
9
+ "net.dreditor.textdisplaying": "0.1.7"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "author": {
15
+ "name": "Benjamin \"Sweden\" Jillson",
16
+ "email": "dreditortool@gmail.com",
17
+ "url": "https://dreditor.net"
18
+ },
19
+ "keywords": [
20
+ "editor",
21
+ "tool",
22
+ "dreditor"
23
+ ],
24
+ "samples": [
25
+ {
26
+ "displayName": "Samples",
27
+ "description": "",
28
+ "path": "Samples~"
29
+ }
30
+ ],
31
+ "documentationUrl": "https://dreditor.net",
32
+ "license": "Apache-2.0",
33
+ "licensesUrl": "https://dreditor.net/docs/LICENSE.html",
34
+ "changelogUrl": "https://dreditor.net/docs/CHANGELOG.html",
35
+ "repository": {
36
+ "url": "https://github.com/CertifiedSharp/DREditor",
37
+ "type": "git",
38
+ "revision": "14ca252fbb33eb6f53557ecaed1c10902877698f"
39
+ }
40
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 626ae316d46166a4ba568386c0ad607c
3
+ TextScriptImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.