示例#1
0
    private void TrigCorrectChoice(ShooterCharacter correct_char, ChoiceStatus choice_status)
    {
        ClearChoices();
        bool new_character = choice_status == ChoiceStatus.Start;
        List <ShooterCharacter> choices;

        if (choice_status != ChoiceStatus.Tone)
        {
            choices = character_manager.GetChoices(number_choices, new_character);
        }
        else
        {
            choices = character_manager.GetToneChoices();
        }

        if (new_character)
        {
            player.TrigCorrectEvent(correct_char, CalculateScore());
        }

        foreach (ShooterCharacter choice in choices)
        {
            AddChoice(choice, choice_status);
        }
    }
示例#2
0
 private void DecreaseScore(ChoiceStatus choice_status)
 {
     print("Descrease score triggered");
     has_no_errors = false;
     if (choice_status == ChoiceStatus.Start)
     {
         if (curr_meaning_score > 0)
         {
             curr_meaning_score -= 1;
         }
         print("meaning: " + curr_meaning_score);
     }
     else if (choice_status == ChoiceStatus.Pinyin)
     {
         if (curr_pinyin_score > 0)
         {
             curr_pinyin_score -= 1;
         }
         print("pinyin: " + curr_pinyin_score);
     }
     else if (choice_status == ChoiceStatus.Tone)
     {
         if (curr_tone_score > 0)
         {
             curr_tone_score -= 1;
         }
         print("tone: " + curr_tone_score);
     }
     else
     {
         throw new Exception("Unsupported status: " + choice_status);
     }
 }
示例#3
0
    private void AddChoice(ShooterCharacter character, ChoiceStatus choice_status)
    {
        GameObject instance = Instantiate(choice_object);

        instance.transform.SetParent(gameObject.transform);
        // instance.transform.localScale = new Vector2(200, 100);

        Choice choice = instance.GetComponent <Choice>();

        choice.SetShooterCharacter(character, choice_status);
        string key = buttons[NbrChoices - 1].KeyString;

        choice.SetKey(key);
    }
示例#4
0
 private ChoiceStatus IterateChoiceStatus(ChoiceStatus choice_status, bool with_tone = false)
 {
     if (choice_status == ChoiceStatus.Start)
     {
         return(ChoiceStatus.Pinyin);
     }
     else if (choice_status == ChoiceStatus.Pinyin && with_tone)
     {
         return(ChoiceStatus.Tone);
     }
     else
     {
         return(ChoiceStatus.Start);
     }
 }
示例#5
0
    void Start()
    {
        pending_switch = false;
        buttons        = SetupButtonDict();
        choice_status  = ChoiceStatus.Start;

        ClearChoices();
        List <ShooterCharacter> choices = character_manager.GetChoices(number_choices, set_new_character: true);

        foreach (ShooterCharacter choice in choices)
        {
            AddChoice(choice, choice_status);
        }

        SetupNewCharacter();
    }
示例#6
0
    public void SetShooterCharacter(ShooterCharacter character, ChoiceStatus choice_status)
    {
        this.character = character;

        if (choice_status == ChoiceStatus.Start)
        {
            this.choice_description.GetComponent <Text>().text = character.Meaning;
        }
        else if (choice_status == ChoiceStatus.Pinyin)
        {
            this.choice_description.GetComponent <Text>().text = character.FlatPinying;
        }
        else if (choice_status == ChoiceStatus.Tone)
        {
            this.choice_description.GetComponent <Text>().text = "" + character.Tone;
        }
        else
        {
            throw new System.Exception("Unknown choice status: " + choice_status);
        }
    }
示例#7
0
    public void TrigClick(int choice_i)
    {
        if ((choice_status != ChoiceStatus.Tone &&
             Choices[choice_i].Character.StrChar == character_manager.CurrChar) ||
            (choice_status == ChoiceStatus.Tone &&
             Choices[choice_i].Character.Tone == character_manager.CurrTone))
        {
            Choices[choice_i].TrigCorrect();
            choice_status = IterateChoiceStatus(choice_status, with_tone);

            TrigCorrectChoice(Choices[choice_i].Character, choice_status);
            if (choice_status == ChoiceStatus.Start)
            {
                SetupNewCharacter();
            }
        }
        else
        {
            incorrect_characters.Add(character_manager.CurrChar);
            Choices[choice_i].TrigIncorrect();
            //score_display.increment_score(-2);
            DecreaseScore(choice_status);
        }
    }