public bool TryPerform(Battle context) { Debug.Assert(!IsRunning); if (IsBeforeDelaying) { Debug.LogError("now before delaying."); return false; } if (_boss.IsDead) return false; if (_boss.Data.Skills.Empty()) { Debug.LogError("has no skill."); return false; } var data = SampleOrGetDebugSkillData(context); if (data == null) return false; Running = _skillFactory.Create(data, context, _boss); Running.OnStop += OnStop; Running.Start(); Events.Boss.OnSkillStart.CheckAndCall(_boss, Running); return true; }
private void OnBossSkillStart(Boss boss, BossSkillActor skillActor) { BossView.PlaySkillStart(skillActor.Data, null); }
private void OnStop(BossSkillActor skill) { Debug.Assert(Running == skill); Running = null; ResetDelayTimers(); }