Esempio n. 1
0
    void BlocksCleared(BlocksClearedEventArgs args)
    {
        foreach (CurrentQuest currentQuest in player.Quests)
        {
            Quest q = currentQuest.Quest;

            for (int i = 0; i < q.QuestObjectives.Count; i++)
            {
                if (currentQuest.Objectives[i].Completed)
                {
                    continue; //Dont need to do any checking if the quest is completed.
                }

                QuestObjective qo = q.QuestObjectives[i];

                if (qo as BlockClearObjective)
                {
                    BlockClearObjective bco = (qo as BlockClearObjective);
                    if (args.Color == bco.BlockColorToClear)
                    {
                        currentQuest.Objectives[i].Progress += args.AmountCleared;
                        Debug.Log(bco.ObjectiveString(currentQuest.Objectives[i].Progress));

                        if (currentQuest.Objectives[i].Progress >= bco.AmountToClear)
                        {
                            currentQuest.Objectives[i].Completed = true;
                        }
                    }
                }
            }
        }
    }
Esempio n. 2
0
    public int Attack(BlocksClearedEventArgs args)
    {
        int damage = 0;

        damage = Random.Range(MinDamage * args.AmountCleared, MaxDamage * args.AmountCleared + 1);

        return(damage);
    }
Esempio n. 3
0
    void BlockClear(BlocksClearedEventArgs args)
    {
        Enemy enemy = (CurrentEncounter as Enemy);

        if (enemy)
        {
            if (args.AttackCount > 0)
            {
                if (DamageEnemy(Player.Attack(args)))
                {
                    KillEnemy(enemy);
                    return;
                }
            }
            if (args.HealCount > 0)
            {
                int healAmt = Player.HealPower * args.HealCount;
                if (OnPlayerHealDamage != null)
                {
                    PlayerHealDamageArgs healArgs;
                    healArgs.amount = healAmt;
                    OnPlayerHealDamage(healArgs);
                }
                Player.Heal(healAmt);
            }


            turnCount++;



            if (turnCount >= enemy.AttackSpeed)
            {
                //Enemy's turn to attack.
                int enemyDamage = Random.Range(enemy.AttackDamageMin, enemy.AttackDamageMax + 1);
                if (OnPlayerTakeDamage != null)
                {
                    PlayerTakeDamageArgs dmgArgs;
                    dmgArgs.amount   = enemyDamage;
                    dmgArgs.attacker = CurrentEncounter as Enemy;
                    OnPlayerTakeDamage(dmgArgs);
                }
                Player.TakeDamage(enemyDamage);
                turnCount = 0;
            }
        }
    }