|
|
using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
public class Bullet
|
{
|
protected BattleObject caster;
|
|
protected SkillConfig skillConfig;
|
|
protected List<H0604_tagUseSkillAttack.tagSkillHurtObj> hurtList;
|
|
protected BattleField battleField;
|
|
protected Action onComplete;
|
|
|
protected int curFrame = 0;
|
|
|
public Bullet(BattleObject _caster, SkillConfig skillConfig,
|
List<H0604_tagUseSkillAttack.tagSkillHurtObj> hurtList, BattleField battleField, Action _onComplete)
|
{
|
this.caster = _caster;
|
this.skillConfig = skillConfig;
|
this.hurtList = hurtList;
|
this.battleField = battleField;
|
this.onComplete = _onComplete;
|
|
}
|
|
public virtual void Start()
|
{
|
|
}
|
public virtual void Run()
|
{
|
|
}
|
|
protected virtual void PlayEffect(int effectId, SkillEffectAnchor target)
|
{
|
// 还需要SoAttackType来判断是怎样的特效
|
|
switch (target)
|
{
|
// 特效先不管 TODO YYL 等特效重新写过一遍后再写
|
|
case SkillEffectAnchor.Caster:
|
// caster.PlayEffect(effectId);
|
break;
|
case SkillEffectAnchor.Target:
|
// caster.teamHero.PlayEffectOnAllies(effectId);
|
break;
|
case SkillEffectAnchor.AlliesCenter:
|
// caster.teamHero.PlayEffectOnAlliesCenter(effectId);
|
break;
|
case SkillEffectAnchor.EnemiesCenter:
|
// caster.teamHero.PlayEffectOnEnemiesCenter(effectId);
|
break;
|
default:
|
Debug.LogWarning($"Unhandled effect target: {target}");
|
break;
|
}
|
}
|
|
|
protected virtual void PlayAudio(int audioId)
|
{
|
SoundPlayer.Instance.PlayUIAudio(audioId);
|
}
|
|
protected virtual void ShakeScreen(int intensity)
|
{
|
// Implement screen shaking logic here
|
Debug.Log($"Shaking screen with intensity: {intensity}");
|
}
|
|
protected virtual void PopDamage()
|
{
|
|
}
|
|
protected virtual void OnSkillComplete()
|
{
|
onComplete?.Invoke();
|
}
|
|
protected virtual void PlaySkill(int skillId)
|
{
|
|
}
|
}
|