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"); }
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"); } }
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)); }
protected override IEnumerator CoAnimationCast(Model.BattleStatus.Skill.SkillInfo info) { ShowSpeech("PLAYER_SKILL", (int)info.ElementalType, (int)info.SkillCategory); yield return(StartCoroutine(base.CoAnimationCast(info))); }