private EffectHolder GetExitEffects(out bool exited) { var ed = area.Element as Exit; Effects effects = new Effects(); exited = false; if (ConditionChecker.check(ed.getConditions())) { exited = true; effects.AddRange(ed.getEffects()); if (Game.Instance.GameState.IsCutscene(ed.getNextSceneId())) { effects.Add(new TriggerCutsceneEffect(ed.getNextSceneId())); } else { effects.Add(new TriggerSceneEffect(ed.getNextSceneId(), ed.getDestinyX(), ed.getDestinyY(), ed.getDestinyScale(), ed.getTransitionTime(), ed.getTransitionType())); } if (ed.getPostEffects() != null) { effects.AddRange(ed.getPostEffects()); } } else { if (ed.isHasNotEffects()) { effects.AddRange(ed.getNotEffects()); } } var effectHolder = new EffectHolder(effects); if (exited) { effectHolder.effects[ed.getEffects().Count].AddAdditionalInfo("not_trace", true); } return(effectHolder); }
private InteractuableResult FinishCutscene(Cutscene cutscene) { InteractuableResult res = InteractuableResult.DOES_SOMETHING; TriggerSceneEffect triggerScene = null; switch ((cutscene).getNext()) { default: // By default Cutscene.GOBACK var previousTarget = Game.Instance.GameState.PreviousChapterTarget; if (previousTarget == null) { var possibleTargets = Game.Instance.GameState.GetObjects <IChapterTarget>(); previousTarget = possibleTargets.FirstOrDefault(t => t.getId() != this.SceneData.getId()); } if (previousTarget != null) { triggerScene = new TriggerSceneEffect(previousTarget.getId(), int.MinValue, int.MinValue, float.MinValue, cutscene.getTransitionTime(), (int)cutscene.getTransitionType()); } break; case Cutscene.NEWSCENE: triggerScene = new TriggerSceneEffect(cutscene.getTargetId(), int.MinValue, int.MinValue, float.MinValue, cutscene.getTransitionTime(), (int)cutscene.getTransitionType()); break; case Cutscene.ENDCHAPTER: // TODO: When we add more chapters, we must trigger the next chapter instead of quiting que aplication GUIManager.Instance.ExitApplication(); break; } if (triggerScene != null) { var effects = new Effects { triggerScene }; var cutsceneEffects = cutscene.getEffects(); if (cutsceneEffects != null) { effects.AddRange(cutsceneEffects); } Game.Instance.Execute(new EffectHolder(effects)); } return(res); }
private void Start() { _animator = GetComponentInChildren <Animator>(); _healthBar = transform.Find("Status").Find("Health").Find("Fill"); _statusIndicators = transform.Find("Status").Find("Indicators").GetComponentsInChildren <SpriteRenderer>(); UpdateHealth(0f); Effects.AddRange(GetComponents <EffectBase>()); foreach (var effect in Effects) { effect.Source = this; effect.IncludeGain = false; effect.UpdateLevel(_level + 1); effect.IsLoading = true; } AllEffects.UnionWith(Effects); }
private void Start() { _collider = GetComponent <CircleCollider2D>(); if (!_isLoading) { SellCost.Base = Cost / 2f; SellCost.Gain = SellCost.Base / 10f; } SellCost.Value = SellCost.Base; Effects.AddRange(GetComponents <EffectBase>()); Effects.ForEach(effect => { effect.Source = this; effect.UpdateLevel(Level); effect.IsLoading = _isLoading; }); AllEffects.UnionWith(Effects); Upgrades = GetComponents <UpgradeBase>(); for (var i = 0; i < Upgrades.Length; i++) { Upgrades[i].Tower = this; if (_isLoading && _upgradeLevels.Any()) { Upgrades[i].Level = _upgradeLevels[i]; Upgrades[i].IsLoading = true; } } if (_isLoading) { Items.ForEach(item => { AllEffects.UnionWith(item.Effects); item.UpdateTower(this); }); } UpdateStats(); }
//Loads the cache into the current data, without deleting the cache public void RestoreCache() { Name = CachedName; Moves.Clear(); Moves.AddRange(CachedMoves); Passive = CachedPassive; Picture = CachedPicture; Dead = CachedDead; TotalHP = CachedTotalHP; CurrentHP = CachedCurrentHP; TotalActions = CachedTotalActions; Actions = CachedActions; IsPuppet = CachedIsPuppet; CanPassTurn = CachedCanPassTurn; DeathMessage = CachedDeathMessage; Effects.Clear(); Effects.AddRange(Effects); Markers.Clear(); Markers.AddRange(CachedMarkers); }
//Copies all essential elements from one card to this one public void CopyCard(BasicCard card) { Name = card.Name; Moves.Clear(); Moves.AddRange(card.Moves); Passive = card.Passive; Picture = card.Picture; HasUltimate = card.HasUltimate; HasPassive = card.HasPassive; Dead = card.Dead; TotalHP = card.TotalHP; CurrentHP = card.CurrentHP; TotalActions = card.TotalActions; Actions = card.Actions; IsPuppet = card.IsPuppet; CanPassTurn = card.CanPassTurn; DeathMessage = card.DeathMessage; Effects.Clear(); Effects.AddRange(card.Effects); Markers.Clear(); Markers.AddRange(card.Markers); }
//Swaps current data with the cache public void SwapCache() { var tempName = Name; Name = CachedName; CachedName = tempName; List <BasicMove> tempMoves = new List <BasicMove>(); tempMoves.AddRange(Moves); Moves.Clear(); Moves.AddRange(CachedMoves); CachedMoves.Clear(); CachedMoves.AddRange(tempMoves); var tempPassive = Passive; Passive = CachedPassive; CachedPassive = tempPassive; var tempPicture = Picture; Picture = CachedPicture; CachedPicture = tempPicture; var tempDead = Dead; Dead = CachedDead; CachedDead = tempDead; var tempTotalHP = TotalHP; TotalHP = CachedTotalHP; CachedTotalHP = tempTotalHP; var tempCurrentHP = CurrentHP; CurrentHP = CachedCurrentHP; CachedCurrentHP = tempCurrentHP; var tempTotalActions = TotalActions; TotalActions = CachedTotalActions; CachedTotalActions = tempTotalActions; var tempActions = Actions; Actions = CachedActions; CachedActions = tempActions; var tempIsPuppet = IsPuppet; IsPuppet = CachedIsPuppet; CachedIsPuppet = tempIsPuppet; var tempCanPassTurn = CanPassTurn; CanPassTurn = CachedCanPassTurn; CachedCanPassTurn = tempCanPassTurn; var tempDeathMessage = DeathMessage; DeathMessage = CachedDeathMessage; CachedDeathMessage = tempDeathMessage; List <BuffDebuff> tempEffects = new List <BuffDebuff>(); tempEffects.AddRange(Effects); Effects.Clear(); Effects.AddRange(CachedEffects); CachedEffects.Clear(); CachedEffects.AddRange(tempEffects); List <Marker> tempMarkers = new List <Marker>(); tempMarkers.AddRange(Markers); Markers.Clear(); Markers.AddRange(CachedMarkers); CachedMarkers.Clear(); CachedMarkers.AddRange(tempMarkers); }
/// <summary> /// 値をセットする /// </summary> /// <param name="paramName">フィールド名</param> /// <param name="value">値</param> public void SetValue(string paramName, object value) { switch (paramName) { case "id": Id = (int)((double)(value)); break; case "animationId": AnimationId = (int)((double)(value)); break; case "consumable": Consumable = (bool)(value); break; case "damage": Damage = (DamageEffect)(value); break; case "description": Description = (string)(value); break; case "effects": Effects.Clear(); Effects.AddRange((List <Effect>)(value)); break; case "hitType": HitType = (int)((double)(value)); break; case "iconIndex": IconIndex = (int)((double)(value)); break; case "itypeId": ItemTypeId = (int)((double)(value)); break; case "name": Name = (string)(value); break; case "note": Note = (string)(value); break; case "occasion": Occasion = (int)((double)(value)); break; case "price": Price = (int)((double)(value)); break; case "repeats": Repeats = (int)((double)(value)); break; case "scope": Scope = (int)((double)(value)); break; case "speed": Speed = (int)((double)(value)); break; case "successRate": SuccessRate = (int)((double)(value)); break; case "tpGain": TpGain = (int)((double)(value)); break; } }