コード例 #1
0
    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));
                }
            }
        }
    }
コード例 #2
0
    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);
            }
        }
    }