public EffectEvent(FormationUnit performer, FormationUnit target, Effect effect, SubEffect subEffect) { Performer = performer; Target = target; Effect = effect; SubEffect = subEffect; }
public void PreloadGroup(string groupName, bool isCommon) { for (int i = 0; i < this._preloadedEffectGroupNames.Count; i++) { if (this._preloadedEffectGroupNames[i].groupName == groupName) { PreloadGroupEntry local1 = this._preloadedEffectGroupNames[i]; local1.refCount++; return; } } this._preloadedEffectGroupNames.Add(new PreloadGroupEntry(groupName, isCommon)); if (EffectData.HasEffectPattern(groupName)) { foreach (EffectPattern pattern in EffectData.GetEffectGroupPatterns(groupName)) { for (int j = 0; j < pattern.subEffects.Length; j++) { SubEffect effect = pattern.subEffects[j]; GameObject prototype = Miscs.LoadResource <GameObject>(EffectData.GetPrefabResPath(effect.prefabPath), BundleType.RESOURCE_FILE); if (prototype != null) { Singleton <EffectManager> .Instance.AddEffectPrototype(effect.prefabPath, prototype); this.PreloadSingleEffect(prototype, isCommon); } } } } }
private bool IsValidSubEffect(SubEffect subEffect) { if (subEffect.Type != EffectSubType.StatBuff) { return(false); } return(((CombatStatBuffEffect)subEffect).TargetStatus == EffectStatus); }
public void SetSubEffectDurationFromSettings() { SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); LinkedListNode <Effect> first = effectQueue.First; Assert.Equal(settings.subEffectSec * 1000, first.Value.Milliseconds); }
public void Execute() { if (StackParameter > 0) { SubEffect.ApplyFused(Performer, Target, Effect, StackParameter); } else { SubEffect.ApplyQueued(Performer, Target, Effect); } }
private BaseMonoEffect CreateEffectInstanceBySubEffectConfig(SubEffect subEffect, Vector3 initPos, Vector3 initDir, Vector3 initScale, BaseMonoEntity entity) { Vector3 vector = initPos; Vector3 vector2 = initDir; Vector3 vector3 = initScale; if (subEffect.onCreate != null) { subEffect.onCreate.Process(ref vector, ref vector2, ref vector3, entity); } return(this.CreateEffectInstance(subEffect.prefabPath, true, vector, vector2, initScale)); }
/*public EffectQueue(Settings settings) * { * this.settings = settings; * //queue = new LinkedList<Effect>(); * }*/ public void EnqueueSubEffect(SubEffect se) { se.Milliseconds = settings.subEffectSec * 1000; int months = se.Months; string subEffect = settings.subEffect1; if (months < 3) { subEffect = settings.subEffect1; } else if (months >= 3 && months < 6) { subEffect = settings.subEffect3; } else if (months >= 6) { subEffect = settings.subEffect6; } se.EffectName = subEffect; Effect firstSubEffect = this.FirstOrDefault(e => e.EffectType == EffectType.SUB); if (firstSubEffect != null) { // A sub effect is already in the queue se.Milliseconds = 1000; //firstSubEffect.Milliseconds += 1000; } BitEffect firstBitEffect = (BitEffect)this.FirstOrDefault(e => e.EffectType == EffectType.BITS); if (firstBitEffect != null) { // A bit effect is already in the queue LinkedListNode <Effect> seNode = AddBefore(Find(firstBitEffect), se); if (firstBitEffect.Running) { //Effect lastSubEffect = this.LastOrDefault(e => e.EffectType == EffectType.SUB); firstBitEffect.Milliseconds = firstBitEffect.RemainingMilliseconds; firstBitEffect.Running = false; firstBitEffect.Continued = true; Remove(firstBitEffect); AddAfter(seNode, firstBitEffect); } } else { AddLast(se); } }
public void AddSubEffectsBeforeBitEffects() { BitEffect bitEffect = new BitEffect("fish", "test", 100); effectQueue.EnqueueBitEffect(bitEffect); SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); BitEffect bitEffect2 = new BitEffect("fish", "test2", 100); effectQueue.EnqueueBitEffect(bitEffect2); Assert.Equal(effectQueue.First.Value, subEffect); }
public void AddBitEffectsAfterSubEffects() { SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); BitEffect bitEffect = new BitEffect("fish", "test", 100); effectQueue.EnqueueBitEffect(bitEffect); SubEffect subEffect2 = new SubEffect(2, SubscriptionPlan.Tier1, "test2"); effectQueue.EnqueueSubEffect(subEffect2); Assert.Equal(effectQueue.Last.Value, bitEffect); }
public void AddTwoSubEffectsInCorrectOrder() { SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); SubEffect subEffect2 = new SubEffect(2, SubscriptionPlan.Tier1, "test2"); effectQueue.EnqueueSubEffect(subEffect2); LinkedListNode <Effect> first = effectQueue.First; Assert.Equal(first.Value, subEffect); LinkedListNode <Effect> second = first.Next; Assert.Equal(second.Value, subEffect2); }
public void SetBitEffectAsContinuedIfResumedAfterSubEffect() { BitEffect bitEffect = new BitEffect("fish", "test", 100); bitEffect.Running = true; effectQueue.EnqueueBitEffect(bitEffect); Assert.False(bitEffect.Continued); SubEffect subEffect = new SubEffect(2, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); BitEffect queueEffect = (BitEffect)effectQueue.First(e => e.EffectType == EffectType.BITS); Assert.True(queueEffect.Continued); }
public void HandleSubEffectWithRunningBitEffect() { BitEffect bitEffect = new BitEffect("fish", "test", 100); effectQueue.EnqueueBitEffect(bitEffect); int duration = bitEffect.Milliseconds; // 60000 bitEffect.Begin(); Assert.True(bitEffect.Running); SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); LinkedListNode <Effect> sub = effectQueue.First; Assert.Equal(sub.Value, subEffect); Assert.Equal(sub.Next.Value, bitEffect); Assert.InRange(bitEffect.Milliseconds, bitEffect.RemainingMilliseconds, duration + sub.Value.Milliseconds); }
public void ChooseSubEffectFromNumberOfMonths() { SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); SubEffect subEffect2 = new SubEffect(4, SubscriptionPlan.Tier1, "test2"); effectQueue.EnqueueSubEffect(subEffect2); SubEffect subEffect3 = new SubEffect(7, SubscriptionPlan.Tier1, "test2"); effectQueue.EnqueueSubEffect(subEffect3); LinkedListNode <Effect> first = effectQueue.First; Assert.Equal(settings.subEffect1, first.Value.EffectName); LinkedListNode <Effect> second = first.Next; Assert.Equal(settings.subEffect3, second.Value.EffectName); LinkedListNode <Effect> third = second.Next; Assert.Equal(settings.subEffect6, third.Value.EffectName); }
public void DecreaseDurationForConsecutiveSubEffects() { SubEffect subEffect = new SubEffect(1, SubscriptionPlan.Tier1, "test"); effectQueue.EnqueueSubEffect(subEffect); SubEffect subEffect2 = new SubEffect(2, SubscriptionPlan.Tier1, "test2"); effectQueue.EnqueueSubEffect(subEffect2); SubEffect subEffect3 = new SubEffect(2, SubscriptionPlan.Tier1, "test2"); effectQueue.EnqueueSubEffect(subEffect3); LinkedListNode <Effect> first = effectQueue.First; Assert.Equal(10000, first.Value.Milliseconds); LinkedListNode <Effect> second = first.Next; Assert.Equal(1000, second.Value.Milliseconds); LinkedListNode <Effect> third = second.Next; Assert.Equal(1000, third.Value.Milliseconds); }
public void FuseSelf() { StackParameter = SubEffect.Fuse(Performer, Target, Effect); }
private bool IsValidSubEffect(SubEffect subEffect) { return(subEffect.Type == EffectSubType.Capture); }