示例#1
0
        public XPEvent AddXp(int xp)
        {
            XPEvent xpEvent = new XPEvent();

            xpEvent.initialLevel = characterLevel;
            xpEvent.initialXP    = exp;
            xpEvent.gainedXP     = xp;
            exp += xp;
            Debug.Log(character.characterName + " new XP = " + exp);
            // HACK figure out rule for XP to level, where to store that data, etc
            // for now, just do 100xp to level up
            while (exp >= XPToLevel)
            {
                exp -= XPToLevel;
                LevelUpEvent levelEvent = LevelUp();
                if (levelEvent)
                {
                    levelEvent.levelRank = characterLevel;
                    xpEvent.levelUps.Add(levelEvent);
                }
                Debug.Log(character.characterName + " levelled up to L " + characterLevel + ", XP = " + exp);
            }
            if (characterLevel == MaxLevel)
            {
                exp = 0;
            }
            xpEvent.finalXP    = exp;
            xpEvent.finalLevel = characterLevel;
            return(xpEvent);
        }
示例#2
0
        public LevelUpEvent LevelUp()
        {
            // start with fail event
            LevelUpEvent levelUpEvent = new LevelUpEvent();

            if (characterLevel < MaxLevel)
            {
                levelUpEvent = levels[characterLevel - 1].ApplyLevelUp(character);
                ++characterLevel;
            }
            return(levelUpEvent);
        }
示例#3
0
        public List <LevelUpEvent> LevelUp(int newLevel)
        {
            List <LevelUpEvent> levelEvents = new List <LevelUpEvent>();

            newLevel = Mathf.Min(newLevel, MaxLevel);
            while (characterLevel < newLevel)
            {
                LevelUpEvent currentEvent = LevelUp();
                if (currentEvent)
                {
                    currentEvent.levelRank = characterLevel;
                    levelEvents.Add(currentEvent);
                }
                else
                {
                    // Break from loop if LevelUp fails to increase level
                    break;
                }
            }
            return(levelEvents);
        }