Exemplo n.º 1
0
 void Awake()
 {
     if (!_gameStart)
     {
         _instance  = this;
         _gameStart = true;
     }
 }
Exemplo n.º 2
0
 void OnDestroy()
 {
     s_Sigleton = null;
     if (this.m_IsBattleStart)
     {
         BattleData.IsNewbie = false;
     }
 }
Exemplo n.º 3
0
    void Awake()
    {
        s_Sigleton = this;
        this.m_TotalObserveTick = ConfigInterface.Instance.SystemConfig.MatchObserveLimitSecond *
                                  ClientConfigConstants.Instance.TicksPerSecond;
        this.m_TotalMatchTick = ConfigInterface.Instance.SystemConfig.MatchDurationSecond *
                                ClientConfigConstants.Instance.TicksPerSecond;

        AudioController.PlayMusic("BattleVisit");
    }
Exemplo n.º 4
0
        public void WhenBuildingBattle_ReturnValidBattle()
        {
            var builder  = new BattleBuilder();
            var director = new BattleDirector();

            director.Build(builder);

            var battle = builder.Build();

            battle.Should().BeOfType <Battle>();
            battle.Arena.Should().NotBeNull();
            battle.BattleSystem.Should().BeOfType <ConditionalTurnBasedBattle>();
            battle.Mob.Should().NotBeNull();
            battle.Party.Should().NotBeNull();
            battle.ProgressionSystem.Should().BeOfType <SphereGrid>();
        }
Exemplo n.º 5
0
        public void WhenBuildingBattle_ReturnValidBattle()
        {
            var builder  = new BattleBuilder();
            var director = new BattleDirector();

            director.Build(builder);

            var battle = builder.Build();

            battle.Should().BeOfType <Battle>();
            battle.AggroedEnemies.Should().NotBeNull();
            battle.BattleSystem.Should().BeOfType <RealTimeBattle>();
            battle.Map.Should().NotBeNull();
            battle.Player.Should().NotBeNull();
            battle.ProgressionSystem.Should().BeOfType <ActivityBasedProgression>();
        }
Exemplo n.º 6
0
    public void Heal(Character target)
    {
        int healRoll = Random.Range(0, 11) + wisdom / 10;

        target.currentHealth += healRoll;
        if (target.currentHealth > target.maximumHealth)
        {
            target.currentHealth = target.maximumHealth;
        }
        BattleDirector bd = GameObject.Find("MessagePanel").GetComponentInChildren <BattleDirector>();

        bd.StartCoroutine(bd.MakeMessage(this, "Healed " + target.FullName() + " for " + healRoll + " health!", target));
        target.battleIcon.DisplayHealing(healRoll);
        healReserves--;
        if (healReserves == 0)
        {
            bd.StartCoroutine(bd.MakeMessage(this, FullName() + " has exhausted their healing reserves!", this));
        }
    }
Exemplo n.º 7
0
    public void BasicAttack(Character target, int modifier)
    {
        BattleDirector bd = GameObject.Find("MessagePanel").GetComponentInChildren <BattleDirector>();

        if (AttackRoll(target))
        {
            int damageDealt = DealDamage(target, modifier);

            if (CritCheck())
            {
                bd.StartCoroutine(bd.MakeMessage(this, "CRITICAL! " + FullName() + " attacked " + target.FullName() + " for " + damageDealt + " damage!", target));
                //half damage to left and right of target
                if (traits.Contains("Wild Strikes"))
                {
                    int targetIndex = 0;
                    if (characterFaction == Character.Faction.friend)
                    {
                        targetIndex = BattleDirector.enemyCombatants.IndexOf(target);
                    }
                    else
                    {
                        targetIndex = BattleDirector.playerCombatants.IndexOf(target);
                    }
                    Character leftOfTarget;
                    Character rightOfTarget;


                    if (targetIndex > 0 && targetIndex < 4)
                    {
                        if (target.characterFaction == Character.Faction.enemy)
                        {
                            leftOfTarget  = ((Character)BattleDirector.enemyCombatants[targetIndex - 1]);
                            rightOfTarget = ((Character)BattleDirector.enemyCombatants[targetIndex + 1]);
                        }
                        else
                        {
                            leftOfTarget  = ((Character)BattleDirector.playerCombatants[targetIndex - 1]);
                            rightOfTarget = ((Character)BattleDirector.playerCombatants[targetIndex + 1]);
                        }
                        attackRolld20 = 1;
                        DealDamage(leftOfTarget, modifier);
                        DealDamage(rightOfTarget, modifier);
                        bd.StartCoroutine(bd.MakeMessage(this,
                                                         leftOfTarget.FullName() + " took " + damageDealt / 2 + " damage!",
                                                         leftOfTarget));
                        bd.StartCoroutine(bd.MakeMessage(this,
                                                         rightOfTarget.FullName() + " took " + damageDealt / 2 + " damage!",
                                                         rightOfTarget));
                    }
                    else if (targetIndex > 0)
                    {
                        if (target.characterFaction == Character.Faction.enemy)
                        {
                            leftOfTarget = ((Character)BattleDirector.enemyCombatants[targetIndex - 1]);
                        }
                        else
                        {
                            leftOfTarget = ((Character)BattleDirector.playerCombatants[targetIndex - 1]);
                        }
                        attackRolld20 = 1;
                        DealDamage(leftOfTarget, (damageDealt / 2));
                        bd.StartCoroutine(bd.MakeMessage(this,
                                                         leftOfTarget.FullName() + " took " + damageDealt / 2 + " damage!",
                                                         leftOfTarget));
                    }
                    else
                    {
                        if (target.characterFaction == Character.Faction.enemy)
                        {
                            rightOfTarget = ((Character)BattleDirector.enemyCombatants[targetIndex + 1]);
                        }
                        else
                        {
                            rightOfTarget = ((Character)BattleDirector.playerCombatants[targetIndex + 1]);
                        }
                        attackRolld20 = 1;
                        DealDamage(rightOfTarget, (damageDealt / 2));
                        bd.StartCoroutine(bd.MakeMessage(this,
                                                         rightOfTarget.FullName() + " took " + damageDealt / 2 + " damage!",
                                                         rightOfTarget));
                    }
                }
            }
            else
            {
                bd.StartCoroutine(bd.MakeMessage(this, FullName() + " attacked " + target.FullName() + " for " + damageDealt + " damage!", target));
            }
            if (target.currentHealth <= 0)
            {
                bd.StartCoroutine(bd.MakeMessage(this, FullName() + " killed " + target.FullName() + "!", target));
            }
        }
        else
        {
            bd.StartCoroutine(bd.MakeMessage(this, FullName() + "'s attack missed " + target.FullName() + "!", target));
        }
    }
Exemplo n.º 8
0
 public void Add(BattleDirector director)
 {
     battleDirectors.Add(director);
 }