Ejemplo n.º 1
0
    protected void HandleNPCEatenMessage(Message message)
    {
        NPCEatenMessage mess = message as NPCEatenMessage;

        NPCsEaten++;

        //if (mess.eaten)
        //NPCsEaten++;

        if (UseTargetNPC && mess.NPC == TargetNPC)
        {
            AddWin(LevelFinishedReason.TargetNPCEaten, null);
        }
        else if (UseNPCsEaten && NPCsEaten == NumNPCsEaten)
        {
            AddWin(LevelFinishedReason.NumNPCsEaten, null);
        }
    }
Ejemplo n.º 2
0
    void HandleNPCEaten(Message message)
    {
        NPCEatenMessage mess = message as NPCEatenMessage;

        if (mess.NPC == null)
        {
            return;
        }

        // initial multiplier values
        int lure     = 1;
        int quick    = 1;
        int stealth  = 1;
        int npcScore = NPC_EATEN;

        eatenString = npcEatenString;

        int tmpMultiplier = 0;

        // update score multipliers and base scores
        if (timeSinceLastKill < lastKillBonus)
        {
            quick          = droppingFliesMultiplier;
            isQuick        = true;
            tmpMultiplier += droppingFliesMultiplier;
        }
        if (BountyNPC != null && BountyNPC.Equals(mess.NPC))
        {
            npcScore       = BOUNTY_EATEN;
            eatenString    = bountyEatenString;
            BountyNPC      = null;
            BountyNPCImage = new Texture2D(1, 1);
        }
        if (mess.NPC.GetComponent <EnemyAIController>() != null)
        {
            npcScore    = AXEMAN_EATEN;
            eatenString = enemyEatenString;
        }
        if (luredNPCs.Contains(mess.NPC))
        {
            luredNPCs.Remove(mess.NPC);
            lure           = lureMultiplier;
            isLured        = true;
            tmpMultiplier += lureMultiplier;
        }
        if (alertedNPCs.Contains(mess.NPC))
        {
            alertedNPCs.Remove(mess.NPC);
            isStealth = false;
        }
        else
        {
            stealth        = stealthMultiplier;
            isStealth      = true;
            tmpMultiplier += stealthMultiplier;
        }

        displayMultiplier = streakMultiplier;         // get multiplier
        displayScore      = npcScore * stealth * quick * lure * streakMultiplier;


        if (tmpMultiplier != 0)
        {
            addMultiplier(tmpMultiplier);
        }
        currentMultiplier = 1 + multiplierPoints / multIncre;
        addScore(displayScore * currentMultiplier);

        scoreState = (int)ScoreState.START_SCORING;

        // update global variables
        lastKillTime = Time.time;
        streakMultiplier++;
    }