protected override void RegistAttribute() { base.RegistAttribute(); _cfg = BossConfig.GetData(Id); gameObject.name = _cfg.Name; var _hp = new GameRangeAttribute(E_Attribute.Hp.ToString(), 0, _cfg.Hp); m_Hp = AddRangeAttribute(_hp); var _mp = new GameRangeAttribute(E_Attribute.Mp.ToString(), 0, _cfg.Mp, 0.1f); m_Mp = AddRangeAttribute(_mp); var _attack = new GameAttribute(E_Attribute.Atk.ToString(), _cfg.Attack); m_Attack = AddAttribute(_attack); var _moveSpeed = new GameAttribute(E_Attribute.MoveSpeed.ToString(), _cfg.MoveSpeed); m_MoveSpeed = AddAttribute(_moveSpeed); m_CaculateDelta = TimerManager.Instance.AddListener(0, 0.02f, m_MonoAttribute.CaculateRangeDelta, null, true); _shield = new GameRangeAttribute(E_Attribute.Shield.ToString(), 0, _cfg.Shield, 0.02f); m_Shield = AddRangeAttribute(_shield); UIBattleWindow.ShowBossUI(); UIBattleWindow.OnBossHpChange(m_Hp.Current, m_Hp.GetMinTotalValue(), m_Hp.GetMaxTotalValue()); UIBattleWindow.OnBossShieldChange(m_Shield.Current, m_Shield.GetMinTotalValue(), m_Shield.GetMaxTotalValue()); GetRangeAttribute(E_Attribute.Hp.ToString()).OnValueChanged += (delta) => { UIBattleWindow.OnBossHpChange(m_Hp.Current, m_Hp.GetMinTotalValue(), m_Hp.GetMaxTotalValue()); }; GetRangeAttribute(E_Attribute.Shield.ToString()).OnValueChanged += (delta) => { UIBattleWindow.OnBossShieldChange(m_Shield.Current, m_Shield.GetMinTotalValue(), m_Shield.GetMaxTotalValue()); }; AudioManager.Instance.PlayBGM(_cfg.FightBGM); }
private void TestBoss_OnBossAwaken(TestEntity obj) { if (obj is TestBoss) { var boss = obj as TestBoss; currentData = boss.Data; obj.HP.OnDataChanged += HP_OnDataChanged; } }
public void LoadConfigs() { ItemConfig.LoadCsvCfg(); AnimConfig.LoadCsvCfg(); PlayerConfig.LoadCsvCfg(); MonsterConfig.LoadCsvCfg(); BossConfig.LoadCsvCfg(); BuffConfig.LoadCsvCfg(); SkillConfig.LoadCsvCfg(); LevelConfig.LoadCsvCfg(); BulletConfig.LoadCsvCfg(); BarrageConfig.LoadCsvCfg(); ColliderConfig.LoadCsvCfg(); }
private void Start() { string path = ""; switch (Type) { case EnemyType.怪物: MonsterConfig mCfg = MonsterConfig.GetData(EnemyId); path = PathManager.RolePrefabsPath + mCfg.Name + "/" + mCfg.Name; break; case EnemyType.Boss: BossConfig bCfg = BossConfig.GetData(EnemyId); path = PathManager.RolePrefabsPath + bCfg.Name + "/" + bCfg.Name; break; } var obj = ResourceManager.Load <GameObject>(path); var go = GameObject.Instantiate(obj); go.transform.SetParent(transform, false); var character = go.GetComponent <Character>(); MonoBehaviourManager.Add(character); }
public AnalyzedDayBoss(AnalyzedDay day, int index) { boss = (this.day = day).day.bosses[bossIndex = index]; phases = SMAnalysis.AnalyzeDay(this, (StateMachineManager.FromText(boss.stateMachine) as PatternSM) !); }
public AnalyzedBoss(AnalyzedCampaign campaign, int index) { boss = (this.campaign = campaign).campaign.practiceBosses[bossIndex = index]; }
private static (List <Enemy>, List <BehaviorEntity>) ConfigureAllBosses(IUIManager?ui, SMHandoff smh, BossConfig main, BossConfig[]?all) { all ??= new[] { main }; //BossConfig may summon an Enemy or just a BehaviorEntity. //Enemies are tracked in the main boss for HP sharing. //BehaviorEntities are tracked var subbosses = new List <Enemy>(); var subsummons = new List <BehaviorEntity>(); foreach (var(i, b) in all.Enumerate()) { var target = smh.Exec; if (i > 0) { target = Object.Instantiate(b.boss).GetComponent <BehaviorEntity>(); var mov = new Movement(new Vector2(-50f, 0f), 0f); target.Initialize(null, mov, new ParametricInfo(in mov), SMRunner.Null); subsummons.Add(target); } if (target.TryAsEnemy(out var e)) { if (i > 0) { e.distorter = null; // i dont really like this but it overlaps weirdly subbosses.Add(e); } e.ConfigureBoss(b); e.SetVulnerable(Vulnerability.NO_DAMAGE); } string trackerName = b.BottomTrackerName; if (trackerName.Length > 0) { ui?.TrackBEH(target, trackerName, smh.cT); } } smh.Exec.Enemy.Subbosses = subbosses; return(subbosses, subsummons); }
private static void SetUniqueBossUI(IUIManager?ui, bool first, SMHandoff smh, BossConfig b) { if (first) { ui?.AddProfile(b.profile); } else { ui?.SwitchProfile(b.profile); } ui?.SetBossColor(b.colors.uiColor, b.colors.uiHPColor); }