예제 #1
0
 // Default no-arg constructor with zero'd initial values
 public StageResult()
 {
     this.rawScore            = 0;
     this.userElementalPower  = new ElementalPower();
     this.stageElementalPower = new ElementalPower();
     this.stageItemDrops      = new List <StageItemDrop>();
     this.finalScore          = 0f;
     this.droppedItems        = new List <ItemData>();
 }
예제 #2
0
 public Card()
 {
     this.name           = "card";
     this.experience     = 0f;
     this.level          = 1;
     this.rarity         = 0;
     this.rank           = 0;
     this.elementalPower = new ElementalPower();
 }
예제 #3
0
 public SerializedStageData(StageData stageData)
 {
     this.description    = stageData.description;
     this.level          = stageData.level;
     this.stage          = stageData.stage;
     this.scoreTier      = stageData.scoreTier;
     this.elementalPower = stageData.elementalPower;
     this.notes          = Serializer.ListToArray(stageData.notes);
     this.stageItemDrops = Serializer.ListToArray(stageData.stageItemDrops);
 }
예제 #4
0
 public StageData(SerializedStageData serializedData)
 {
     this.description    = serializedData.description;
     this.level          = serializedData.level;
     this.stage          = serializedData.stage;
     this.scoreTier      = serializedData.scoreTier;
     this.elementalPower = serializedData.elementalPower;
     this.notes          = Serializer.ListFromArray <NoteData>(serializedData.notes);
     this.stageItemDrops = Serializer.ListFromArray <StageItemDrop>(serializedData.stageItemDrops);
 }
예제 #5
0
 public StageData(string description, int level, int stage, int[] scoreTier, ElementalPower elementalPower, List <NoteData> notes, List <StageItemDrop> stageItemDrops)
 {
     this.description    = description;
     this.level          = level;
     this.stage          = stage;
     this.scoreTier      = scoreTier;
     this.elementalPower = elementalPower;
     this.notes          = notes;
     this.stageItemDrops = stageItemDrops;
 }
예제 #6
0
 public Card(string name, float experience, int rarity, ElementalPower elementalPower, LevelRequirement[] levelReqs, RankRequirement[] rankReqs)
 {
     this.name           = name;
     this.experience     = experience;
     this.levelReqs      = levelReqs;
     this.rankReqs       = rankReqs;
     this.level          = this.GetLevelFromExperience(experience);
     this.rank           = this.GetRankFromLevel(this.level);
     this.rarity         = rarity;
     this.elementalPower = elementalPower;
 }
예제 #7
0
 // Created in TouchBoundary at stage completion
 public StageResult(
     int rawScore,
     ElementalPower userElementalPower,
     ElementalPower stageElementalPower,
     List <StageItemDrop> stageItemDrops)
 {
     this.rawScore            = rawScore;
     this.userElementalPower  = userElementalPower;
     this.stageElementalPower = stageElementalPower;
     this.stageItemDrops      = stageItemDrops;
     this.finalScore          = this.CalculateFinalScore();
     this.droppedItems        = this.DropItems();
 }
예제 #8
0
    // Called by EndBoundary on stage completion
    public void EndStage()
    {
        // The stage ends when the EndBoundary collides with the TouchBoundary
        this.IsStageOver = true;

        // Cache the user manager
        UserManager userManager = ModelLocator.GetModelInstance <UserManager>() as UserManager;
        UserData    userData    = userManager.GetUserData();

        // Cache the elementalPower of the selected card of the user
        ElementalPower userElementalPower = userData.SelectedCard.elementalPower;

        // Cache the elementalPower of the stage
        ElementalPower stageElementalPower = this.StageData.elementalPower;

        // Cache the stageItemDrops of the stage
        List <StageItemDrop> stageItemDrops = this.StageData.stageItemDrops;

        // Calculate stage results using user and stage properties
        this.StageResult = new StageResult(
            this.RawScore,
            userElementalPower,
            stageElementalPower,
            stageItemDrops);

        // If score meets the minimum of the stage score tier, clear the stage
        this.MetaData.isComplete = this.StageResult.FinalScore >= this.StageData.scoreTier[0];

        // Set high score when the score is greater than the current high score
        this.MetaData.highScore = Mathf.Max(
            this.StageResult.FinalScore,
            this.MetaData.highScore);

        // Decrement daily attempts for this stage
        this.MetaData.DecrementDailyAttempt();

        // Save updated user data
        Persistence.SaveUserData(userData);
    }