Exemplo n.º 1
0
 protected override void ProcessAttack(CharacterBase target, Model.BattleStatus.Skill.SkillInfo skill, bool isLastHit,
                                       bool isConsiderElementalType)
 {
     ShowSpeech("ENEMY_SKILL", (int)skill.ElementalType, (int)skill.SkillCategory);
     base.ProcessAttack(target, skill, isLastHit, isConsiderElementalType);
     ShowSpeech("ENEMY_ATTACK");
 }
Exemplo n.º 2
0
        protected override IEnumerator CoProcessDamage(Model.BattleStatus.Skill.SkillInfo info, bool isConsiderDie,
                                                       bool isConsiderElementalType)
        {
            yield return(StartCoroutine(base.CoProcessDamage(info, isConsiderDie, isConsiderElementalType)));

            if (!IsDead)
            {
                ShowSpeech("ENEMY_DAMAGE");
            }
        }
Exemplo n.º 3
0
        public T Get <T>(CharacterBase target, Model.BattleStatus.Skill.SkillInfo skillInfo)
            where T : SkillVFX
        {
            if (target is null)
            {
                return(null);
            }

            var position  = target.transform.position;
            var size      = target.SizeType == SizeType.XS ? SizeType.S : SizeType.M;
            var elemental = skillInfo.ElementalType;

            if (skillInfo.SkillCategory == SkillCategory.AreaAttack)
            {
                size = SizeType.L;
                //FIXME 현재 무속성 범위공격 이펙트는 존재하지 않기때문에 임시처리.
                if (elemental == ElementalType.Normal)
                {
                    elemental = ElementalType.Fire;
                }
                var pos = ActionCamera.instance.Cam.ScreenToWorldPoint(
                    new Vector2((float)Screen.width / 2, 0));
                position.x = pos.x + 0.5f;
                position.y = Stage.StageStartPosition;
            }

            var skillName = $"{skillInfo.SkillCategory}_{size}_{elemental}".ToLower();

            if (skillInfo.SkillCategory == SkillCategory.BlowAttack &&
                skillInfo.SkillTargetType == SkillTargetType.Enemies)
            {
                skillName = $"{skillInfo.SkillCategory}_m_{elemental}_area".ToLower();
            }
            else
            {
                position.x -= 0.2f;
                position.y += 0.32f;
            }

            var go = _pool.Get(skillName, false, position) ??
                     _pool.Get(skillName, true, position);

            return(GetEffect <T>(go, target));
        }
Exemplo n.º 4
0
 protected override IEnumerator CoAnimationCast(Model.BattleStatus.Skill.SkillInfo info)
 {
     ShowSpeech("PLAYER_SKILL", (int)info.ElementalType, (int)info.SkillCategory);
     yield return(StartCoroutine(base.CoAnimationCast(info)));
 }