예제 #1
0
        public override int GetSetValue(Scorepad scorepad)
        {
            //if we already have enough bows and arrows, just score it
            if (scorepad == null)
            {
                return(0);
            }

            int itemValue = GetComponent <Item>().Value;

            if (scorepad.CanScoreRanged())
            {
                return(itemValue);
            }

            //if we don't add this item to the tally
            if (RangedType == Type.ARROW)
            {
                scorepad.Arrows++;
            }
            else
            {
                scorepad.Bows++;
            }
            scorepad.RangedValue += itemValue;

            //if we have enough bows and arrows now, score this item along with the previous ones
            if (scorepad.CanScoreRanged())
            {
                return(scorepad.RangedValue);
            }

            //if we still don't have enough this item has no value
            return(0);
        }
예제 #2
0
    public void ScoreAll()
    {
        if (scored)
        {
            return;
        }
        Debug.Log("Score All");
        Scorepad scorepad = new Scorepad();

        for (int i = 0; i < inventorySize; i++)
        {
            ScoreAtIndex(i, scorepad);
        }
        scored = true;

        GameObject gameManagerObj = GameObject.FindGameObjectWithTag("Game Manager");

        gameManagerObj.GetComponent <LevelManager>().EndGame(inventoryScore);

        //Save Score to Pref
        int level            = SceneManager.GetActiveScene().buildIndex;
        int currentHighScore = PlayerPrefs.GetInt("Level" + level);

        if (currentHighScore < inventoryScore)
        {
            PlayerPrefs.SetInt("Level" + level, inventoryScore);
        }
    }
예제 #3
0
        public override int GetSetValue(Scorepad scorepad)
        {
            Item.ItemSet?set   = GetComponent <Item>().getSet();
            int          value = GetComponent <Item>().Value;

            if (set == null)
            {
                return(SetSize <= 1 ? value * SetMultiplier : value);
            }

            if (scorepad == null)
            {
                return(0);
            }

            scorepad.IncrementSetCount(set.Value);
            scorepad.IncreaseSetValue(set.Value, value * (SetMultiplier - 1));

            if (scorepad.GetSetCount(set.Value) < SetSize)
            {
                return(value);
            }

            int setValue = scorepad.GetSetValue(set.Value);

            scorepad.ResetSet(set.Value);
            return(setValue + value);
        }
예제 #4
0
 // Start is called before the first frame update
 void Start()
 {
     lwc        = LWC.GetComponent <Lwc>();
     rs         = right.GetComponent <Scorepad>();
     ls         = left.GetComponent <Scorepad>();
     rs.powerON = true;
     ls.powerON = true;
     if (rightscore > leftscore)
     {
         winscore = rightscore;
     }
     else
     {
         winscore   = leftscore;
         lwc.change = true;
         GetComponent <CharaChange>().charachange = true;
     }
     sumscore    = rightscore + leftscore;
     lwc.powerON = true;
     GetComponent <CharaChange>().powerON       = true;
     Daizawin.GetComponent <DWupdown>().powerON = true;
 }
예제 #5
0
    void ScoreAtIndex(int index, Scorepad scorepad)
    {
        Item item = Items[index];

        if (item == null || item.Destroyed)
        {
            return;
        }
        if (!item.isInSet())
        {
            inventoryScore += item.getValue();
        }
        else
        {
            ItemModifier[] modifiers = item.GetComponents <ItemModifier>();
            foreach (ItemModifier modifier in modifiers)
            {
                inventoryScore += modifier.GetSetValue(scorepad);
            }
        }

        Debug.Log("Total Score: " + inventoryScore);
    }
예제 #6
0
 public virtual int  GetSetValue(Scorepad scorepad)
 {
     return(0);
 }