public bool TestCharacterTriggerEffect(CharacterTriggerRelicEffectParams relicEffectParams) { CharacterState characterState = relicEffectParams.characterState; if (characterState.IsDestroyed) { return(false); } if (characterState.GetTeamType() != targetTeam || characterState.HasStatusEffect("immune")) { return(false); } if (relicEffectParams.combatManager.GetCombatPhase() == CombatManager.Phase.HeroTurn || relicEffectParams.combatManager.GetCombatPhase() == CombatManager.Phase.PreCombat || relicEffectParams.combatManager.GetCombatPhase() == CombatManager.Phase.BossActionPreCombat) { return(false); } if (relicEffectParams.trigger != OnRelocate.OnRelocateCharTrigger.GetEnum()) { return(false); } if (relicEffectParams.paramInt <= 0) { return(false); } return(true); }
public bool TestCharacterTriggerEffect(CharacterTriggerRelicEffectParams relicEffectParams) { CharacterState characterState = relicEffectParams.characterState; if (characterState.IsDestroyed) { return(false); } if (relicEffectParams.trigger != CharacterTriggerData.Trigger.OnAttacking) { return(false); } if (relicEffectParams.combatManager.GetCombatPhase() == CombatManager.Phase.HeroTurn || relicEffectParams.combatManager.GetCombatPhase() == CombatManager.Phase.PreCombat || relicEffectParams.combatManager.GetCombatPhase() == CombatManager.Phase.BossActionPreCombat) { return(false); } if (characterState.GetStatusEffectStacks("ambush") <= 0) { return(false); } TargetMode targetMode = TargetMode.LastAttackedCharacter; if (characterState.GetStatusEffectStacks("sweep") > 0) { targetMode = TargetMode.Room; } try { TargetHelper.CollectTargetsData collectTargetsData = default(TargetHelper.CollectTargetsData); collectTargetsData.targetMode = targetMode; collectTargetsData.targetModeStatusEffectsFilter = new List <string>(); collectTargetsData.targetModeHealthFilter = CardEffectData.HealthFilter.Both; collectTargetsData.targetTeamType = Team.Type.Heroes; collectTargetsData.roomIndex = characterState.GetSpawnPoint().GetRoomOwner().GetRoomIndex(); collectTargetsData.heroManager = relicEffectParams.heroManager; collectTargetsData.monsterManager = relicEffectParams.monsterManager; collectTargetsData.roomManager = relicEffectParams.roomManager; collectTargetsData.inCombat = false; collectTargetsData.isTesting = true; collectTargetsData.selfTarget = characterState; _targets.Clear(); TargetHelper.CollectTargets(collectTargetsData, ref _targets); return(_targets.Count > 0); } catch (System.Exception) { return(false); } }
public IEnumerator ApplyCharacterTriggerEffect(CharacterTriggerRelicEffectParams relicEffectParams) { CharacterState characterState = relicEffectParams.characterState; int num = RandomManager.Range(0, statusEffects.Length, RngId.Battle); int numStacks = (statusEffects[num].count <= 0) ? 1 : statusEffects[num].count; CharacterState.AddStatusEffectParams addStatusEffectParams = default(CharacterState.AddStatusEffectParams); addStatusEffectParams.sourceRelicState = _srcRelicState; CharacterState.AddStatusEffectParams addStatusEffectParams2 = addStatusEffectParams; characterState.AddStatusEffect(statusEffects[num].statusId, numStacks, addStatusEffectParams2); string activatedDescription = GetActivatedDescription(); activatedDescription = string.Format(activatedDescription, statusEffects[num]); if (_srcRelicData.CanShowNotifications) { relicEffectParams.relicManager.ShowRelicActivated(_srcRelicState.GetIcon(), activatedDescription, characterState.GetCharacterUI()); } yield break; }
public IEnumerator ApplyCharacterTriggerEffect(CharacterTriggerRelicEffectParams relicEffectParams) { CharacterState characterState = relicEffectParams.characterState; if (alreadyGone.Contains(characterState)) { yield break; } foreach (var target in _targets) { target.AddStatusEffect(statusEffects[0].statusId, 1); string activatedDescription = GetActivatedDescription(); activatedDescription = string.Format(activatedDescription, statusEffects[0]); if (_srcRelicData.CanShowNotifications) { relicEffectParams.relicManager.ShowRelicActivated(_srcRelicState.GetIcon(), activatedDescription, target.GetCharacterUI()); } } alreadyGone.Add(characterState); yield break; }