コード例 #1
0
ファイル: FightTracker.cs プロジェクト: knall/cactbot
 private void StartFight(BossFightPhaseDetails boss)
 {
     if (current_boss_ != null)
     {
         EndFight();
     }
     current_boss_ = boss;
     tracker_.OnBossFightStart(boss.boss_id);
 }
コード例 #2
0
ファイル: FightTracker.cs プロジェクト: knall/cactbot
 private void EndFight()
 {
     if (current_boss_ == null)
     {
         return;
     }
     tracker_.OnBossFightEnd();
     current_boss_ = null;
 }
コード例 #3
0
ファイル: FightTracker.cs プロジェクト: knall/cactbot
        public FightTracker(CactbotOverlay overlay)
        {
            this.overlay_ = overlay;

            overlay_.OnZoneChanged += OnZoneChange;
            overlay_.OnLogsChanged += OnLogsChanged;
            overlay_.OnPartyWipe   += OnPartyWipe;

            SetZoneListener(new GenericDungeonListener(this));

            var o1s = new BossFightPhaseDetails {
                boss_id       = "o1s",
                start_strings = { MakeCountdownString(), ":Alte Roite uses Wyrm Tail" },
                end_strings   = { ":Alte Roite was defeated by" },
            };
            var o2s = new BossFightPhaseDetails {
                boss_id       = "o2s",
                start_strings = { MakeCountdownString(), ":Catastrophe uses Earthquake" },
                end_strings   = { ":Catastrophe was defeated by" },
            };
            var o3s = new BossFightPhaseDetails {
                boss_id       = "o3s",
                start_strings = { MakeCountdownString(), ":Halicarnassus uses Critical Hit" },
                end_strings   = { ":Halicarnassus was defeated by" },
            };
            var o4s = new BossFightPhaseDetails {
                boss_id       = "o4s-exdeath",
                start_strings = { ":Exdeath uses Dualcast" },
                end_strings   = { ":The limit gauge resets!" },
            };
            var o4s_neo = new BossFightPhaseDetails {
                boss_id       = "o4s-neo",
                start_strings = { ":Neo Exdeath uses Almagest" },
                end_strings   = { ":Neo Exdeath is defeated" },
            };
            var shinryu_ex = new BossFightPhaseDetails {
                boss_id       = "Shinryu Ex",
                start_strings = { MakeCountdownString(), ":Shinryu starts using Earthen Fury" },
                end_strings   = { "Removing combatant Shinryu.  Max HP: 17167557." },
                // TODO: implement phase triggers here
                // Phase 1 starts with combat, ends with dark matter cast
                // Phase 2 starts with "Added new Combatant Hakkinryu", ends with protostar cast
                // Phase 3 starts with protostar cast??, ends
                // Phase 4 starts with tidal wave
            };
            var ucu_twintania = new BossFightPhaseDetails {
                boss_id       = "ucu-twintania",
                start_strings = { MakeCountdownString(), ":Twintania:26A7:Unknown_26A7:" },
                end_strings   = { ":Something happens" },
            };

            var test_boss = new BossFightPhaseDetails {
                boss_id       = "savage_test",
                start_strings = { MakeSealString("The Thinger") },
                end_strings   = { MakeSealString("The Thinger") },
            };

            boss_fights_ = new Dictionary <string, List <BossFightPhaseDetails> >()
            {
                { "Mist", new List <BossFightPhaseDetails> {
                      test_boss
                  } },

                { "Deltascape V1.0 (Savage)", new List <BossFightPhaseDetails> {
                      o1s
                  } },
                { "Deltascape V2.0 (Savage)", new List <BossFightPhaseDetails> {
                      o2s
                  } },
                { "Deltascape V3.0 (Savage)", new List <BossFightPhaseDetails> {
                      o3s
                  } },
                { "Deltascape V4.0 (Savage)", new List <BossFightPhaseDetails> {
                      o4s, o4s_neo
                  } },

                { "Unknown Zone (2B7)", new List <BossFightPhaseDetails> {
                      o1s
                  } },
                { "Unknown Zone (2B8)", new List <BossFightPhaseDetails> {
                      o2s
                  } },
                { "Unknown Zone (2B9)", new List <BossFightPhaseDetails> {
                      o3s
                  } },
                { "Unknown Zone (2Ba)", new List <BossFightPhaseDetails> {
                      o4s, o4s_neo
                  } },

                { "", new List <BossFightPhaseDetails> {
                      ucu_twintania
                  } },

                { "The Minstrel's Ballad: Shinryu's Domain", new List <BossFightPhaseDetails> {
                      shinryu_ex
                  } },
            };
        }