Пример #1
0
    protected virtual void Start(CharacterLevel data)
    {
        baseHealth    = data.healthPoints;
        baseEndurance = data.endurancePoints;
        //baseMovementSpeed = data.movementSpeed;

        m_Health      = baseHealth;
        mEndurance    = baseEndurance;
        mShield       = baseShield;
        movementSpeed = baseMovementSpeed;

        guardState  = GuardState.Open;
        isDead      = false;
        hurtBox     = null;
        refillDelay = 0;

        staminaRegenTimer = Time.time;

        if (gameObject.tag == Utility.playerStr)
        {
            isPlayer = true;
        }
        else
        {
            isPlayer = false;
        }

        invulnerabilityTimer = Time.time + 0.5f;

        OnDeath += AIManager.instance.gameManager.OnEnemyDeath;
    }
Пример #2
0
 public void LevelUpUpdateChargers(CharacterLevel level)
 {
     characterLevel = level;
     float oldMax = chargesMax;
     chargesMax = Mathf.Floor(level.GetCost() / cost * 100);
     chargesCurrent += chargesMax - oldMax;
 }
Пример #3
0
    void Start()
    {
        UIManager       = GameObject.Find("UIManager");
        unequippedItems = UIManager.GetComponent <JsonLoadItem>().unequippedItems;
        equippedItems   = UIManager.GetComponent <JsonLoadItem>().equippedItems;
        // characterStat = UIManager.GetComponent<JsonLoadItem>().characterStat;
        characterStats = UIManager.GetComponent <JsonLoadItem>().characterStats;
        print("character awake");
        equippedItemStat = new EquippableItem();

        GameObject Stat_Panel = GameObject.FindWithTag("StatsPanel");

        statsPanel   = Stat_Panel.GetComponent <StatsPanel>();
        statModifier = Stat_Panel.GetComponent <StatModifier>();

        GameObject Character_Level = GameObject.FindWithTag("CharacterLevel");

        characterLevel = Character_Level.GetComponent <CharacterLevel>();

        allEquippedItems = UIManager.GetComponent <JsonLoadItem>().allEquippedItems;
        charID           = UIManager.GetComponent <JsonLoadItem>().charID;
        charImage.sprite = Resources.Load <Sprite>("CharacterDB/" + charID);


        statsPanel.setCharacterStatValuesUI(characterStats[charID]);
        statModifier.setInitialItemStatUI(allEquippedItems[charID], characterStats[charID]);
        characterLevel.setCharacterLevelUI(characterStats[charID]);
        // loadCharacterUI();
    }
Пример #4
0
        public static XpTable ReadFromDat()
        {
            // Check the FileCache so we don't need to hit the FileSystem repeatedly
            if (DatManager.PortalDat.FileCache.ContainsKey(0x0E000018))
            {
                return((XpTable)DatManager.PortalDat.FileCache[0x0E000018]);
            }
            else
            {
                DatReader datReader = DatManager.PortalDat.GetReaderForFile(0x0E000018);
                XpTable   xp        = new XpTable();

                datReader.Offset += 4; // Skip the ID. We know what it is.

                // The counts for each "Table" are at the top of the file.
                int  abilityCount          = datReader.ReadInt32();
                int  vitalCount            = datReader.ReadInt32();
                int  trainedSkillCount     = datReader.ReadInt32();
                int  specializedSkillCount = datReader.ReadInt32();
                uint levelCount            = datReader.ReadUInt32();

                xp.AbilityXpChart          = ReadExperienceChart(abilityCount, ref datReader);
                xp.VitalXpChart            = ReadExperienceChart(vitalCount, ref datReader);
                xp.TrainedSkillXpChart     = ReadExperienceChart(trainedSkillCount, ref datReader);
                xp.SpecializedSkillXpChart = ReadExperienceChart(specializedSkillCount, ref datReader);

                // The level table is a little different since it has UInt64 data types.
                LevelingChart levelingXpChart = new LevelingChart();
                ulong         prevRank        = 0;
                datReader.Offset += 8; // skip level 0
                // Start from 1 because dat includes level 0.
                for (uint i = 1; i <= levelCount; i++)
                {
                    CharacterLevel characterLevel = new CharacterLevel();
                    characterLevel.Level             = i;
                    characterLevel.TotalXp           = datReader.ReadUInt64();
                    characterLevel.FromPreviousLevel = characterLevel.TotalXp - prevRank;
                    // Store this to use it in the next loop...
                    prevRank = characterLevel.TotalXp;
                    levelingXpChart.Levels.Add(characterLevel);
                }

                // The final section is skill credits... It has the same count as levels.
                int cumulativeSkillPoints = 0;
                datReader.Offset += 4; // skip level 0
                for (int i = 0; i < levelCount; i++)
                {
                    int skillPoint = datReader.ReadInt32();
                    cumulativeSkillPoints += skillPoint;
                    levelingXpChart.Levels[i].GrantsSkillPoint      = skillPoint == 1;
                    levelingXpChart.Levels[i].CumulativeSkillPoints = cumulativeSkillPoints;
                }

                xp.LevelingXpChart = levelingXpChart;

                // Store this object in the FileCache
                DatManager.PortalDat.FileCache[0x0E000018] = xp;
                return(xp);
            }
        }
 //设置角色等级
 public void setLevel(CharacterLevel level)
 {
     mLevel.Level--;
     if (mLevel.Level <= 0)
     {
         characterDie();
     }
 }
Пример #6
0
    private void Start()
    {
        alertText.SetActive(false);
        NPCName.SetActive(false);

        characterLvl   = new CharacterLevel();
        progressSerial = ProgressSerial.getInstance();
    }
Пример #7
0
 public override void Awake()
 {
     characterHealth   = GetComponent <CharacterHealth>();
     characterLoot     = GetComponent <CharacterLoot>();
     characterLevel    = GetComponent <CharacterLevel>();
     enemyAttackRanged = GetComponentInChildren <EnemyAttackRanged>();
     enemyAttackMelee  = GetComponent <EnemyAttackMelee>();
     enemyExperience   = GetComponent <EnemyExperience>();
 }
Пример #8
0
        public void Test_GetCharacterLevel_ByID_BadResult()
        {
            int            intCharacterLevelID = 0;
            CharacterLevel objCharacterLevel   = new CharacterLevel();

            objCharacterLevel.GetCharacterLevel(intCharacterLevelID);

            Assert.IsTrue(objCharacterLevel.MinimumExperience == 0 && objCharacterLevel.CharacterLevelID == 0);
        }
Пример #9
0
        public void Test_GetCharacterLevel_ByID_GoodResult()
        {
            int            intCharacterLevelID = 1;
            CharacterLevel objCharacterLevel   = new CharacterLevel();

            objCharacterLevel.GetCharacterLevel(intCharacterLevelID);

            Assert.AreEqual(intCharacterLevelID, objCharacterLevel.CharacterLevelID);
        }
Пример #10
0
        public bool Equals(DestinyPlayer input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     DestinyUserInfo == input.DestinyUserInfo ||
                     (DestinyUserInfo != null && DestinyUserInfo.Equals(input.DestinyUserInfo))
                     ) &&
                 (
                     CharacterClass == input.CharacterClass ||
                     (CharacterClass != null && CharacterClass.Equals(input.CharacterClass))
                 ) &&
                 (
                     ClassHash == input.ClassHash ||
                     (ClassHash.Equals(input.ClassHash))
                 ) &&
                 (
                     RaceHash == input.RaceHash ||
                     (RaceHash.Equals(input.RaceHash))
                 ) &&
                 (
                     GenderHash == input.GenderHash ||
                     (GenderHash.Equals(input.GenderHash))
                 ) &&
                 (
                     CharacterLevel == input.CharacterLevel ||
                     (CharacterLevel.Equals(input.CharacterLevel))
                 ) &&
                 (
                     LightLevel == input.LightLevel ||
                     (LightLevel.Equals(input.LightLevel))
                 ) &&
                 (
                     BungieNetUserInfo == input.BungieNetUserInfo ||
                     (BungieNetUserInfo != null && BungieNetUserInfo.Equals(input.BungieNetUserInfo))
                 ) &&
                 (
                     ClanName == input.ClanName ||
                     (ClanName != null && ClanName.Equals(input.ClanName))
                 ) &&
                 (
                     ClanTag == input.ClanTag ||
                     (ClanTag != null && ClanTag.Equals(input.ClanTag))
                 ) &&
                 (
                     EmblemHash == input.EmblemHash ||
                     (EmblemHash.Equals(input.EmblemHash))
                 ));
        }
Пример #11
0
 void OnPlayerLevelUp(CharacterLevel level)
 {
     foreach (SpellBook spell in spells)
     {
         if (spell != null)
         {
             spell.LevelUpUpdateChargers(level);
             SpellChanged(spell);
         }
     }
     SpellChanged(spells[currentSpell]);
 }
Пример #12
0
        public static XpTable ReadFromDat()
        {
            if (instance == null) // We'll store the XP data into the instance the first time it's loaded. No need to read it multiple times.
            {
                DatReader datReader = DatManager.PortalDat.GetReaderForFile(0x0E000018);
                XpTable   xp        = new XpTable();

                datReader.Offset += 4; // Skip the ID. We know what it is.

                // The counts for each "Table" are at the top of the file.
                int  abilityCount          = datReader.ReadInt32();
                int  vitalCount            = datReader.ReadInt32();
                int  trainedSkillCount     = datReader.ReadInt32();
                int  specializedSkillCount = datReader.ReadInt32();
                uint levelCount            = datReader.ReadUInt32();

                xp.AbilityXpChart          = ReadExperienceChart(abilityCount, ref datReader);
                xp.VitalXpChart            = ReadExperienceChart(vitalCount, ref datReader);
                xp.TrainedSkillXpChart     = ReadExperienceChart(trainedSkillCount, ref datReader);
                xp.SpecializedSkillXpChart = ReadExperienceChart(specializedSkillCount, ref datReader);

                // The level table is a little different since it has UInt64 data types.
                LevelingChart levelingXpChart = new LevelingChart();
                ulong         prevRank        = 0;
                datReader.Offset += 8; // skip level 0
                // Start from 1 because dat includes level 0.
                for (uint i = 1; i <= levelCount; i++)
                {
                    CharacterLevel characterLevel = new CharacterLevel();
                    characterLevel.Level             = i;
                    characterLevel.TotalXp           = datReader.ReadUInt64();
                    characterLevel.FromPreviousLevel = characterLevel.TotalXp - prevRank;
                    // Store this to use it in the next loop...
                    prevRank = characterLevel.TotalXp;
                    levelingXpChart.Levels.Add(characterLevel);
                }

                // The final section is skill credits... It has the same count as levels.
                int cumulativeSkillPoints = 0;
                datReader.Offset += 4; // skip level 0
                for (int i = 0; i < levelCount; i++)
                {
                    int skillPoint = datReader.ReadInt32();
                    cumulativeSkillPoints += skillPoint;
                    levelingXpChart.Levels[i].GrantsSkillPoint      = skillPoint == 1;
                    levelingXpChart.Levels[i].CumulativeSkillPoints = cumulativeSkillPoints;
                }

                xp.LevelingXpChart = levelingXpChart;
                instance           = xp;
            }
            return(instance);
        }
Пример #13
0
        public void Test_GetCharacterLevels_WithOutOrderBy_NoResult()
        {
            string strWhere   = "CharacterLevelID IN (24,22,23)";
            string strOrderBy = "";

            CharacterLevel        objCharacterLevel  = new CharacterLevel();
            List <CharacterLevel> lstCharacterLevels = new List <CharacterLevel>();

            lstCharacterLevels = objCharacterLevel.GetCharacterLevels(strWhere, strOrderBy);

            Assert.IsTrue(lstCharacterLevels.Count == 0);
        }
Пример #14
0
        public void Test_GetCharacterLevels_WithOrderBy_GoodResult()
        {
            string strWhere   = "CharacterLevelID IN (1,2,3)";
            string strOrderBy = "CharacterLevelID";

            CharacterLevel        objCharacterLevel  = new CharacterLevel();
            List <CharacterLevel> lstCharacterLevels = new List <CharacterLevel>();

            lstCharacterLevels = objCharacterLevel.GetCharacterLevels(strWhere, strOrderBy);

            Assert.IsTrue(lstCharacterLevels.Count > 0);
        }
Пример #15
0
    public CharacterLevel CalculateCurrentLevel()
    {
        CharacterLevel tempLevel = characterLevels[0];

        foreach (CharacterLevel level in characterLevels)
        {
            if (_currentExperience >= level.ExperienceRequired)
            {
                tempLevel = level;
            }
        }
        if (tempLevel.Level > _currentLevel)
        {
            _statPointsAvailable++;
        }
        _currentLevel = tempLevel.Level;
        return(tempLevel);
    }
Пример #16
0
    public float GetLevelPercentage()
    {
        try
        {
            CharacterLevel theNextLevel = characterLevels.First(element => element.Level == CurrentLevel.Level + 1);
            int            amountToGet  = theNextLevel.ExperienceRequired - CurrentLevel.ExperienceRequired;
            int            amountSoFar  = _currentExperience - CurrentLevel.ExperienceRequired;

            return(amountSoFar / (float)amountToGet);
        } catch (Exception e)
        {
            if (e.GetType() == typeof(InvalidOperationException))
            {
                Debug.LogWarning("No more levels to acheive!");
                return(1);
            }
            Debug.LogError("Error calculating percentage!" + e);
        }
        return(1);
    }
Пример #17
0
 void UpdateDisplay(CharacterLevel leveler)
 {
     text.text = ("Level " + leveler.GetLevel() + "\n" + leveler.GetExperience() + "/" + leveler.GetExperienceToLevel());
 }
Пример #18
0
 public Characters(string _name, CharacterLevel _characterLevel, CharacterType _characterType)
 {
     name           = _name;
     characterType  = _characterType;
     characterLevel = _characterLevel;
 }