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); } }
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); } }
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); }
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); } }
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(); }
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); } }
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); } }