OXMN3LHBNH7CWHEZRPSZTN244O3ACTOEKZEAKQNKFXQ7VQSM26YQC LAFCS4AAOMBOBURWXRZEDUI4J5QGBP7CJQXIPLKXEDXNBCVE7SLQC I33Z5QD6JHPO7W7G3EHGBIXQABW6ZOC2W4NJP6L5ENDPFRORUFNAC VPXUP5WZTVC3OVD73TNKPK43IAGFXGUGCEJT56JM4IT4APYQXUHAC HUULCHM5GFGZ7GKLCULFHC333LQ3LBI62VKII3YL5O4C5CDGCT4AC FQZF2IY4T2F7KEVSHMFID35WNAU55CRRDF6XEXZB7PYZH26UGYPQC VUAVVMQEUYSXHBIUJHGRX237EZFT5MCB73ZKVWMGJDRHYZH4XZKAC DTKCWM4J7PFNWAAES3RZHQGDA6PTDNX4TZVOXAKF5V7LCZBI3XUAC FNS4LRFQNFM4BCB23CYHOWA2N4MG2DEUMNK6D55BQ26TX6OJLIBQC TKLR43RQKXB47J2YVVSJ7CAZAJZYOKXSDUXAUOVQMFUN73KZVUVQC R475KN7MR3OG7EBLVNOO7QRIKXDGY2PIDXXV3HW4KBD5QM7B5OJQC ROTMK5LNNK7T5YXVOMUODVMCQWIHPZYOME4WDIAMZJ4VXD7SOEBAC 4JF64OZ2FPMTXL5XV3Z6HCEKKGCLXPLMNV3YCNX35RL5CXL42VNQC HMDPEJRZK3PO6M5Z655Y4HWCUKC5I35GRMVVQOZYXWWCIH5ZWNPQC GBGS6RTZTCKRMLLDVCBGMRTJNNOSAUTXN5D2EMEQMQAREORE54PAC P5O6MKCMZL3DK7ZO5SBWTCHOQB6O2MZA5VPSCQX6X4LJQVOWYV7AC JLT7KOJ5QGXMRLXQXOHDTF62W3EGPX7XTHNEYAKGMJKK3V4QUPGQC CD5FF75KTOBTMVMTMCKMR6F5DFKOF26I5K43ITNHGBI3ZAZHA4RAC HXTSBPAP75A7EC4RKWYQMVPPHPNZFPHUORBZWDHGEB6MPAGI7G7AC using System;namespace TagFighter.Resources{[Serializable]public sealed class BlueTag : Resource<BlueTagUnit> { }}
fileFormatVersion: 2guid: a805c007a08e37b4d86153c5426ae728MonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class GreenTag : Resource<GreenTagUnit> { }}
fileFormatVersion: 2guid: 748244e87f3d420469b7e5bd23f876ccMonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class RedTag : Resource<RedTagUnit> { }}
fileFormatVersion: 2guid: 75c933b4f95911047ad31a06d80bbfd4MonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
fileFormatVersion: 2guid: b24f5f4c556b5c2439398a7d59da24b1MonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class Pain : Resource<PainUnit> { }}
fileFormatVersion: 2guid: f3afa09e4365bf74aa8ea874ddc7e2deMonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class Fatigue : Resource<FatigueUnit> { }}
fileFormatVersion: 2guid: 796cd3d97a59c1c40af54ef3c643d2defolderAsset: yesDefaultImporter:externalObjects: {}userData:assetBundleName:assetBundleVariant:
fileFormatVersion: 2guid: 75c933b4f95911047ad31a06d80bbfd4MonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class RedTag : Resource<RedTagUnit> { }}
fileFormatVersion: 2guid: b24f5f4c556b5c2439398a7d59da24b1MonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class Pain : Resource<PainUnit> { }}
fileFormatVersion: 2guid: 748244e87f3d420469b7e5bd23f876ccMonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class GreenTag : Resource<GreenTagUnit> { }}
fileFormatVersion: 2guid: f3afa09e4365bf74aa8ea874ddc7e2deMonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class Fatigue : Resource<FatigueUnit> { }}
fileFormatVersion: 2guid: a805c007a08e37b4d86153c5426ae728MonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;namespace TagFighter.Resources{[Serializable]public sealed class BlueTag : Resource<BlueTagUnit> { }}
fileFormatVersion: 2guid: e78dfb08f97e9fa43bd46d6327e243ecMonoImporter:externalObjects: {}serializedVersion: 2defaultReferences: []executionOrder: 0icon: {instanceID: 0}userData:assetBundleName:assetBundleVariant:
using System;using System.Collections;using CareBoo.Serially;using TagFighter.Resources;using UnityEngine;namespace TagFighter.Effects.Triggers{public interface ITrigger{public ITrigger ShallowCopy();public void Register(PawnCondition condition);public void UnRegister();}[Serializable]public abstract class OnResourceChange : ITrigger{[SerializeReference, ShowSerializeReference]public IWatchableResourceGetter Resource;protected PawnCondition _condition;private IWatchableResource _resource;[SerializeField]private int _threshold;private int _beforeValue;public void Register(PawnCondition condition) {if (_condition != null) {UnRegister();}_condition = condition;_resource = Resource.GetWatchableResource(condition.transform);_beforeValue = _resource.Status.Current;_resource.OnChanged += OnChanged;}public ITrigger ShallowCopy() {return (ITrigger)MemberwiseClone();}public void UnRegister() {_resource.OnChanged -= OnChanged;_resource = null;_condition = null;_beforeValue = 0;}protected void OnChanged(object sender, OnChangeArgs e) {Trigger(e.Current, _beforeValue, _threshold);_beforeValue = e.Current;}protected abstract void Trigger(int current, int before, int threshold);}[Serializable]public class OnResourceIncrease : OnResourceChange{protected override void Trigger(int current, int before, int threshold) {if (current >= before + threshold) {_condition.OnTrigger();}}}[Serializable]public class OnResourceDecrease : OnResourceChange{protected override void Trigger(int current, int before, int threshold) {if (current <= before - threshold) {_condition.OnTrigger();}}}[Serializable]public class OnTimePass : ITrigger{private PawnCondition _condition;[SerializeField]private float _frequency;// public ResourceInfoGet<IResourceTypeAccessor, ResourceLocationAccessors.Get.Context> Frequency;public void Register(PawnCondition condition) {if (_condition != null) {UnRegister();}_condition = condition;_condition.StartCoroutine(Tick());}public ITrigger ShallowCopy() {return (ITrigger)MemberwiseClone();}public void UnRegister() {_condition.StopCoroutine(Tick());}private IEnumerator Tick() {while (true) {yield return new WaitForSeconds(_frequency);_condition.OnTrigger();Debug.Log("Tick");}}}}
while (_remainingDuration > 0) {yield return new WaitForSeconds(Frequency);Debug.Log("Tick");foreach (var effect in Context.EffectsToTrigger) {effect.DelayedAction(data);}_remainingDuration -= Frequency;// print($"Regenerated {typeof(T).Name}, value = {Current}");
foreach (var effect in Context.EffectsToTrigger) {effect.DelayedAction(data);
public ResourceInfoGet<IResourceTypeAccessor, ResourceLocationAccessors.Get.Context> Frequency;
// public ResourceInfoGet<IResourceTypeAccessor, ResourceLocationAccessors.Get.Context> Frequency;[SerializeReference, ShowSerializeReference]public Triggers.ITrigger Trigger;
Frequency:Resource:rid: -2Location:rid: -2Multiplier: 1Addend: 1
Trigger:rid: 4320157327971844096
- rid: 4320157327971844097type: {class: PeriodicWeave, ns: TagFighter.Effects, asm: Assembly-CSharp}data:AreaOfEffect:rid: 4320157327971844098Duration:Resource:rid: -2Location:rid: -2Multiplier: 1Addend: 30Trigger:rid: 4320157327971844106- rid: 4320157327971844098type: {class: Single, ns: TagFighter.Effects.AoeShapes, asm: Assembly-CSharp}- rid: 4320157327971844106type: {class: OnResourceIncrease, ns: TagFighter.Effects.Triggers, asm: Assembly-CSharp}data:Resource:rid: 4320157327971844107_threshold: 11- rid: 4320157327971844107type: {class: Pain, ns: TagFighter.Effects.ResourceTypeAccessors, asm: Assembly-CSharp}
- rid: 7043444593006739633type: {class: TransientWeave, ns: TagFighter.Effects, asm: Assembly-CSharp}data:Duration:Resource:rid: -2Location:rid: -2Multiplier: 1Addend: 5
--- !u!114 &-5079747134705416876MonoBehaviour:m_ObjectHideFlags: 0m_CorrespondingSourceObject: {fileID: 0}m_PrefabInstance: {fileID: 0}m_PrefabAsset: {fileID: 0}m_GameObject: {fileID: 2775200704764093955}m_Enabled: 1m_EditorHideFlags: 0m_Script: {fileID: 11500000, guid: a805c007a08e37b4d86153c5426ae728, type: 3}m_Name:m_EditorClassIdentifier:_current:_base:_value: 0_capacity:_base:_value: 10--- !u!114 &-2384431249593873901MonoBehaviour:m_ObjectHideFlags: 0m_CorrespondingSourceObject: {fileID: 0}m_PrefabInstance: {fileID: 0}m_PrefabAsset: {fileID: 0}m_GameObject: {fileID: 2775200704764093955}m_Enabled: 1m_EditorHideFlags: 0m_Script: {fileID: 11500000, guid: 748244e87f3d420469b7e5bd23f876cc, type: 3}m_Name:m_EditorClassIdentifier:_current:_base:_value: 0_capacity:_base:_value: 10--- !u!114 &6624014535947515258MonoBehaviour:m_ObjectHideFlags: 0m_CorrespondingSourceObject: {fileID: 0}m_PrefabInstance: {fileID: 0}m_PrefabAsset: {fileID: 0}m_GameObject: {fileID: 2775200704764093955}m_Enabled: 1m_EditorHideFlags: 0m_Script: {fileID: 11500000, guid: 75c933b4f95911047ad31a06d80bbfd4, type: 3}m_Name:m_EditorClassIdentifier:_current:_base:_value: 0_capacity:_base:_value: 10--- !u!114 &-3477051471225209728MonoBehaviour:m_ObjectHideFlags: 0m_CorrespondingSourceObject: {fileID: 0}m_PrefabInstance: {fileID: 0}m_PrefabAsset: {fileID: 0}m_GameObject: {fileID: 2775200704764093955}m_Enabled: 1m_EditorHideFlags: 0m_Script: {fileID: 11500000, guid: b24f5f4c556b5c2439398a7d59da24b1, type: 3}m_Name:m_EditorClassIdentifier:_current:_base:_value: 0_capacity:_base:_value: 100--- !u!114 &-6862634721499991204MonoBehaviour:m_ObjectHideFlags: 0m_CorrespondingSourceObject: {fileID: 0}m_PrefabInstance: {fileID: 0}m_PrefabAsset: {fileID: 0}m_GameObject: {fileID: 2775200704764093955}m_Enabled: 1m_EditorHideFlags: 0m_Script: {fileID: 11500000, guid: f3afa09e4365bf74aa8ea874ddc7e2de, type: 3}m_Name:m_EditorClassIdentifier:_current:_base:_value: 0_capacity:_base:_value: 100