public void AddLightingTargets(bool is_team, List <ISkillTarget> targets, ICreature active_creature) { foreach (var target in targets) { if (target == null || target.Character == null || target.Character.Creature.IsDead == true || target.Character.Creature == active_creature) { continue; } if (IsPause == ePauseType.Pause) { if (is_team == target.Character.Creature.IsTeam) { LightingTarget.SetType(target.Character, eLightingType.Team); } else { LightingTarget.SetType(target.Character, eLightingType.Enemy); } } else { m_LightingTargets.RemoveAll(t => t.Character == target.Character); if (is_team == target.Character.Creature.IsTeam) { m_LightingTargets.Add(new LightingTarget(target.Character, eLightingType.Team)); } else { m_LightingTargets.Add(new LightingTarget(target.Character, eLightingType.Enemy)); } } } }
virtual public void SetActionMode(bool set_mode, eActionMode mode, ICreature leader_creature, bool need_backup_scale) { if (BattleBase.CurrentBattleMode == eBattleMode.None) { return; } if (set_mode) { IsPause = ePauseType.Pause; m_Light.intensity = 1f; TextManager.Instance.Clear(); backup_container = leader_creature.Container; foreach (var creature in m_LightingCreatures) { creature.Creature.Character.transform.localScale = Vector3.one * creature.Creature.Scale; } List <ICreature> team_creatures = null; List <ICreature> enemy_creatures = null; if (leader_creature.IsTeam) { leader_creature.Character.transform.SetParent(battle_layout.m_Mine.Center.transform, false); team_creatures = characters; enemy_creatures = enemies; } else { leader_creature.Character.transform.SetParent(battle_layout.m_Enemy.Center.transform, false); team_creatures = enemies; enemy_creatures = characters; } backup_scale = leader_creature.Scale; if (need_backup_scale) { leader_creature.Character.transform.localScale = Vector3.one; leader_creature.Scale = 1f; } foreach (var creature in team_creatures) { eCharacterDummyMode dummy_mode = eCharacterDummyMode.Hidden; if (creature == leader_creature) { dummy_mode = eCharacterDummyMode.Active; } else if (mode == eActionMode.NotHidden || mode == eActionMode.EnemyHidden) { dummy_mode = eCharacterDummyMode.Dummy; } creature.SetDummyMode(dummy_mode); if (dummy_mode == eCharacterDummyMode.Active) { LightingTarget.SetType(creature.Character, eLightingType.Active); } } foreach (var creature in enemy_creatures) { eCharacterDummyMode dummy_mode = eCharacterDummyMode.Hidden; if (mode == eActionMode.NotHidden || mode == eActionMode.TeamHidden) { dummy_mode = eCharacterDummyMode.Dummy; } creature.SetDummyMode(dummy_mode); } foreach (var particle in m_PlayingParticles) { particle.SetHidden(true); } m_SkillCamera.transform.localPosition = Vector3.zero; m_SkillCamera.transform.localRotation = Quaternion.identity; m_SkillCamera.gameObject.SetActive(true); backup_camera = Camera.main; backup_camera.enabled = false; if (m_Bottom != null) { m_Bottom.SetActive(false); } } else { backup_camera.enabled = true; m_SkillCamera.gameObject.SetActive(false); IsPause = ePauseType.None; if (m_Bottom != null) { m_Bottom.SetActive(true); } leader_creature.Character.transform.SetParent(backup_container.transform, false); leader_creature.Scale = backup_scale; leader_creature.Character.transform.localScale = Vector3.one * backup_scale; backup_container = null; // LightingTarget.SetType(leader_creature.Character, eLightingType.None); List <ICreature> team_creatures = null; List <ICreature> enemy_creatures = null; if (leader_creature.IsTeam) { team_creatures = characters; enemy_creatures = enemies; } else { team_creatures = enemies; enemy_creatures = characters; } foreach (var creature in team_creatures) { if (creature != null) { creature.SetDummyMode(eCharacterDummyMode.None); var target = m_LightingTargets.Find(t => t.Character == creature.Character); if (target != null) { target.SetType(); } else { LightingTarget.SetType(creature.Character, eLightingType.None); } } } foreach (var creature in enemy_creatures) { if (creature != null) { creature.SetDummyMode(eCharacterDummyMode.None); var target = m_LightingTargets.Find(t => t.Character == creature.Character); if (target != null) { target.SetType(); } else { LightingTarget.SetType(creature.Character, eLightingType.None); } } } foreach (var particle in m_PlayingParticles) { particle.SetHidden(false); } } }