示例#1
0
//---------------------------------------------------------------------------------------
        private void load()
        {
            World = PlayerPrefs.GetInt("World");

//Load in our character data
            PlayerCharacters = new Character_SO[_numberOfChars];
            Character_SO character;

            int cnt = -1;

            while (++cnt != _numberOfChars)
            {
                character             = Character_SO.CreateInstance(cnt);
                PlayerCharacters[cnt] = character;

                string loadedJson = PlayerPrefs.GetString("char_" + cnt);
                character.LoadData(loadedJson);
            }

//And load in the characters the player has selected
            SelectedCharacters = new bool[_numberOfChars];
            cnt = -1;
            while (++cnt != _numberOfChars)
            {
                SelectedCharacters[cnt] = PlayerPrefs.GetInt("selectedChar_" + cnt) != 0;
            }
        }
示例#2
0
//---------------------------------------------------------------------------------------
        public void Init()
        {
            _gameController = GameController.Instance;

//Get the positions in front of the player heroes, that's where the baddie will move to for attacking
            int len = BaddieAttackPositions.Length;

            _baddieAttackPositions = new Vector2[len];

            int cnt = -1;

            while (++cnt != len)
            {
                _baddieAttackPositions[cnt] = BaddieAttackPositions[cnt].position;
                BaddieAttackPositions[cnt].gameObject.SetActive(false);                         //No longer needed
            }

            int world = DataManager.Data.World;

//Get our Character_SO
            BaddieCharData = DataManager.Data.BaddieCharacter;
//Set the name
            var baddieNames = DataManager.Data.BaddieNames;

            BaddieCharData.Name = baddieNames[wrap(world - 1, 0, baddieNames.Length)];

//We don't care about the baddies XP, just it's level, as that affects it's stats
            BaddieCharData.Level = _gameController.SquadHandler.GetHighestHeroLevel();

//Attack and defence values
            int attackValue  = Random.Range(10, 20);
            int defenceValue = 35 - attackValue;

//We're going to cheat here a little and weaken the baddie on world 1 as we want the player to win the first
//time they play
            if (DataManager.Data.World == 1)
            {
                defenceValue -= 10;
            }

            BaddieCharData.Attack  = attackValue;
            BaddieCharData.Defence = defenceValue;


//Hardcoded 5 baddie types, it *is* a tight deadline
            int          baddieAnims = wrap(world, 0, 5);
            Animation_SO animData    = _gameController.BaddieAnimationDataHolder.CharacterAnimFrames[baddieAnims];

//Finally we can populate our (anti)Hero's data
            Baddie.SetInitialHealth(200);                       //They've got to have more health than the player
            Baddie.ThisHero = Hero.HeroType.Baddie;
            Baddie.Init(BaddieCharData, animData);
        }
示例#3
0
//---------------------------------------------------------------------------------------
        public void Init(Character_SO charData, Sprite avatarSprite, bool selected)
        {
            SelectedBorder.enabled = selected;
            Name.text     = charData.Name;
            Avatar.sprite = avatarSprite;

            id = charData.ID;

            HoldProgressDial.fillAmount = 0;
            HoldProgressDial.enabled    = false;

            PadLock.gameObject.SetActive(!charData.IsLocked);
        }
示例#4
0
//---------------------------------------------------------------------------------------
        private void populateDataAndDisplay(Character_SO charData)
        {
            Name.text        = charData.Name;
            AttackStat.text  = charData.Attack.ToString();
            DefenceStat.text = charData.Defence.ToString();
            LevelStat.text   = charData.Level.ToString();

//The XP bar is a little more convoluted to work out, because it seems I'm treating having a week to do this
//like a year
            int nextXPLevel = _dataManager.Ranks.GetNextRankXP(charData.Level - 1);
//So that's the next XP we need to bump a level, work out our percentage of being the way there
            int   currentXP = charData.XP;
            float perc      = ((float)currentXP / nextXPLevel);

            XPBar.fillAmount = perc;

//All done so we can display it now
            _canvasGroup.alpha = 0;
            _canvas.enabled    = true;
            Fader.Instance.FadeUp(_canvasGroup, 0.2f, null);
        }
示例#5
0
//---------------------------------------------------------------------------------------
        public void Init(Character_SO CharacterData, Animation_SO animData)
        {
            _gameController = GameController.Instance;
            _hud            = _gameController.HUD;

            _characterData = CharacterData;
            _animFrames    = animData;

//Flip the sprite if it's a baddie
            HeroSprite.flipX = ThisHero == HeroType.Baddie;

//Set up the default frame
            _animOffset        = Random.Range(0, 3);                            //So the idle animations aren't in perfect sync
            HeroSprite.sprite  = _animFrames.IdleFrames[_animOffset];
            _animIdleLength    = _animFrames.IdleFrames.Length;
            _animWalkingLength = _animFrames.WalkingFrames.Length;

            AnimationState = AnimationTypes.Idle;

            _healthBarScale        = Vector2.one;
            _healthBarXScaleTarget = 1;
        }
示例#6
0
//---------------------------------------------------------------------------------------
        private void init()
        {
//Create our Rank SO
            Ranks = Rank_SO.CreateInstance();

//Set up the baddie next as we never save his data it's just created at runtime (Aside from the names)
            BaddieNames    = new string[10];
            BaddieNames[0] = "Clanon Jonesness";
            BaddieNames[1] = "Merlturner Hawkinsness";
            BaddieNames[2] = "Jarramos";
            BaddieNames[3] = "Chavethumper";
            BaddieNames[4] = "Bareth";
            BaddieNames[5] = "Andersonganto";
            BaddieNames[6] = "Cal";
            BaddieNames[7] = "Khanbell";
            BaddieNames[8] = "Tinkerdley";
            BaddieNames[9] = "Wandlee Fordelline";

            BaddieCharacter = Character_SO.CreateInstance(_numberOfChars);             //Unique ID

//Have we played this before ? If so we can just load that data in
            if (PlayerPrefs.HasKey("World"))
            {
                load();
                return;
            }

//From https://www.name-generator.org.uk/
            _names    = new string[_numberOfChars];
            _names[0] = "Hubus Harkrper";
            _names[1] = "Holmesstomper";
            _names[2] = "Sanchewand Anspell";
            _names[3] = "Gogmaders";
            _names[4] = "Nuaknight";
            _names[5] = "Evansspell Aumrobertson";
            _names[6] = "Shizne";
            _names[7] = "Elmsquez Bellden";
            _names[8] = "Gigantlane";
            _names[9] = "Hagmagog";

//Going to use random numbers for now, deadlines and all that
            _attack  = new int[_numberOfChars];
            _defence = new int[_numberOfChars];

            int attackValue;
            int defenceValue;

            int cnt = -1;

            while (++cnt != _numberOfChars)
            {
                attackValue   = Random.Range(5, 20);
                defenceValue  = 35 - attackValue;
                _attack[cnt]  = attackValue;
                _defence[cnt] = defenceValue;
            }

//Set our world unlock values and the default Character level
            int[] unlockWorldStorage = new int[_numberOfChars];
            int[] defaultCharLevel   = new int[_numberOfChars];

            int unlockWorld = 4;
            int charLevel   = 3;

            cnt = -1;
            while (++cnt != _numberOfChars)
            {
                if (cnt < 3)
                {
                    unlockWorldStorage[cnt] = 1;
                    defaultCharLevel[cnt]   = 1;
                }
                else
                {
                    unlockWorldStorage[cnt] = unlockWorld;
                    unlockWorld            += 3;
                    defaultCharLevel[cnt]   = charLevel;
                    charLevel++;
                }
            }


//Now we can finally create our characters
            Character_SO character;

            PlayerCharacters = new Character_SO[_numberOfChars];
            cnt = -1;
            while (++cnt != _numberOfChars)
            {
                character             = Character_SO.CreateInstance(cnt);
                character.Name        = _names[cnt];
                character.Attack      = _attack[cnt];
                character.Defence     = _defence[cnt];
                character.Level       = defaultCharLevel[cnt];
                character.UnlockWorld = unlockWorldStorage[cnt];
                character.TestForUnlocked(World);
                PlayerCharacters[cnt] = character;
            }

//Lets select the default characters
            SelectedCharacters    = new bool[_numberOfChars];
            SelectedCharacters[0] = true;
            SelectedCharacters[1] = true;
            SelectedCharacters[2] = true;

//We're at the stage where we can save our data
            save();
        }