Ejemplo n.º 1
0
        private Pokemon CreatePokemon(PokemonModel dataModel, int level)
        {
            var saveModel = new PokemonSaveModel();
            PopulateSaveModel(dataModel, saveModel, level);
            var pokemon = new Pokemon(_gameMode, dataModel, saveModel);

            pokemon.LearnStartupMoves();
            if (level > 1)
                pokemon.LevelUp(true, level);

            return pokemon;
        }
Ejemplo n.º 2
0
        public void CanCreateAsciiRun()
        {
            var buffer = new byte[0x200];
            var model  = new PokemonModel(buffer);

            model[0x10] = (byte)'a';
            model[0x11] = (byte)'b';
            model[0x12] = (byte)'c';
            model[0x13] = (byte)'d';

            var viewPort = new ViewPort("file.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.SelectionStart = new Point(0, 1);
            viewPort.Edit("^data`asc`4 ");

            var format = (Ascii)viewPort[1, 1].Format;

            Assert.Equal('b', format.ThisCharacter);
        }
Ejemplo n.º 3
0
        public void CopyAnUnnamedStringInsertsAName()
        {
            var text   = "This is the song that never ends.";
            var bytes  = PCSString.Convert(text).ToArray();
            var buffer = new byte[0x200];

            Array.Copy(bytes, 0, buffer, 0x30, bytes.Length);
            Array.Copy(new byte[] { 0x30, 0, 0, 0x08 }, 0, buffer, 0x10, 4); // the pointer to the data. Pointer is aligned, but data is not.
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.gba", model)
            {
                Width = 0x10, Height = 0x10
            };
            var fileSystem = new StubFileSystem();

            viewPort.SelectionStart = new Point(0, 3);
            viewPort.ExpandSelection(0, 3);
            viewPort.Copy.Execute(fileSystem);

            Assert.Contains("^This", fileSystem.CopyText);
            Assert.Contains("\"\" \"This", fileSystem.CopyText); // format, then space, then start of text
        }
Ejemplo n.º 4
0
        public void CanNameExistingStringAnchor()
        {
            var buffer = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();
            var bytes  = PCSString.Convert("Hello World!").ToArray();

            buffer[0] = 0x08;
            buffer[1] = 0x00;
            buffer[2] = 0x00;
            buffer[3] = 0x08;
            Array.Copy(bytes, 0, buffer, 0x08, bytes.Length);
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.SelectionStart = new Point(0x08, 0);
            viewPort.Edit("^");
            viewPort.Edit("bob\"\" ");

            Assert.Equal("bob", ((Pointer)viewPort[0, 0].Format).DestinationName);
        }
Ejemplo n.º 5
0
        public void CanCopyStrings()
        {
            var buffer = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();

            for (int i = 0; i < 0x10; i++)
            {
                buffer[i] = 0x00;
            }
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.txt", model)
            {
                Width = 0x10, Height = 0x10
            };
            var fileSystem = new StubFileSystem();

            viewPort.Edit("^bob\"\" \"Hello World!\"");
            viewPort.SelectionStart = new Point(0, 0);
            viewPort.SelectionEnd   = new Point(12, 0);
            viewPort.Copy.Execute(fileSystem);

            Assert.Equal("^bob\"\" \"Hello World!\"", fileSystem.CopyText);
        }
Ejemplo n.º 6
0
        public void UsingBackspaceMidStringMakesTheStringEndThere()
        {
            var buffer = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();

            for (int i = 0; i < 0x10; i++)
            {
                buffer[i] = 0x00;
            }
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            // add an anchor with some data on the 2nd line
            viewPort.SelectionStart = new Point(0, 1);
            viewPort.Edit("^bob\"\" \"Hello World!\"");
            viewPort.SelectionStart = new Point(6, 1);
            viewPort.Edit(ConsoleKey.Backspace);

            Assert.Equal("\"Hello \"", PCSString.Convert(model, 0x10, PCSString.ReadString(model, 0x10, true)));
        }
Ejemplo n.º 7
0
    void SetArena()
    {
        //set only if there are pokemons (because this is called at start game before deactive fightManager, but the enemy has no pokemons until player find one in the grass)
        if (GameManager.instance.Player.PlayerPokemons.Count <= 0 || fightManager.enemyPokemons.Count <= 0)
        {
            return;
        }

        PokemonModel playerPokemon = null;

        //find first pokemon alive
        foreach (PokemonModel pokemon in GameManager.instance.Player.PlayerPokemons)
        {
            if (pokemon.CurrentHealth > 0)
            {
                playerPokemon = pokemon;
                break;
            }
        }

        //if no pokemon alive, show the first
        if (playerPokemon == null)
        {
            playerPokemon = GameManager.instance.Player.PlayerPokemons[0];
        }

        PokemonModel enemyPokemon = fightManager.enemyPokemons[0];

        //reset pokemons who fought
        fightManager.ResetPokemonsWhoFought();

        //set currents pokemon in arena
        fightManager.SetCurrentPlayerPokemon(playerPokemon);
        fightManager.SetCurrentEnemyPokemon(enemyPokemon);

        //and set arena UI
        fightManager.FightUIManager.SetArena();
    }
Ejemplo n.º 8
0
        public void ThumbCompilerLabelTest()
        {
            var model = new PokemonModel(new byte[0x200]);

            model.ObserveAnchorWritten(new ModelDelta(), "DoStuff", new NoInfoRun(0x40));
            var result = parser.Compile(model, 0x100
                                        // sums all numbers from 1 to 10 in a loop
                                        // then calls the routine at "DoStuff"
                                        // then returns
                                        , "push lr, {}"
                                        , "mov r1, #1"
                                        , "mov r0, #0"
                                        , "Loop:"
                                        , "add r0, r0, r1"
                                        , "cmp r1, #10"
                                        , "bne <loop>"
                                        , "bl <DoStuff>"
                                        , "pop pc, {}"
                                        );

            var expected = new byte[] {
                0x00, 0b10110101,
                0x01, 0b00100_001,
                0x00, 0b00100_000,
                // loop
                0b01_000_000, 0b0001100_0, // 0001100_001_000_000
                0x0A, 0b00101_001,
                0xFC, 0b1101_0001,
                0xFF, 0b11110_111, 0x98, 0b11111_111, // (sbyte)0x98 = -68
                0x00, 0b10111101,
            };

            Assert.Equal(expected.Length, result.Count);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.Equal(expected[i], result[i]);
            }
        }
Ejemplo n.º 9
0
        public void StartingAnAnchorAndGivingItNoNameClearsAnyAnchorNameAtThatPosition()
        {
            var buffer   = new byte[0x100];
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("file.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.SelectionStart = new Point(0, 1);
            viewPort.Edit("<bob>");
            viewPort.SelectionStart = new Point(0, 2);
            viewPort.Edit("^bob ");
            viewPort.Edit("^ ");

            var format = (Pointer)viewPort[0, 1].Format;

            Assert.Equal(0x20, format.Destination);
            Assert.Equal(string.Empty, format.DestinationName);
            var address = model.GetAddressFromAnchor(new ModelDelta(), -1, string.Empty);

            Assert.Equal(Pointer.NULL, address);
        }
Ejemplo n.º 10
0
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            DataTemplate template = null;
            PokemonModel pokemon  = item as PokemonModel;

            if (pokemon != null)
            {
                if (pokemon.TimesEncountered > 0)
                {
                    template = pokemon.TimesCaptured == 0 ? PokemonSeen : PokemonCaptured;
                }
                else
                {
                    template = PokemonUnseen;
                }
            }
            else
            {
                template = PokemonUnseen;
            }

            return(template);
        }
Ejemplo n.º 11
0
        public void AnchorWithNoNameIsNotValidIfNothingPointsToIt()
        {
            var buffer   = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.txt", model)
            {
                Width = 0x10, Height = 0x10
            };
            var errors = new List <string>();

            viewPort.OnError += (sender, e) => errors.Add(e);

            viewPort.Edit("^ ");
            Assert.Equal(NoInfoRun.NullRun, model.GetNextRun(0));
            Assert.Single(errors);
            Assert.IsType <None>(viewPort[0, 0].Format);

            errors.Clear();

            viewPort.Edit("^\"\" ");
            Assert.Equal(NoInfoRun.NullRun, model.GetNextRun(0));
            Assert.Single(errors);
        }
Ejemplo n.º 12
0
        public void TableToolNotOfferedOnNormalText()
        {
            // Arrange
            var data     = Enumerable.Range(0, 0x200).Select(i => (byte)0xFF).ToArray();
            var model    = new PokemonModel(data);
            var viewPort = new ViewPort("name.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.Edit("^array[name\"\"16]3 ");
            viewPort.SelectionStart = new Point(0, 4);
            viewPort.Edit("^text\"\" Some Text\"");

            // Act
            viewPort.SelectionStart = new Point(2, 4);
            var items = viewPort.GetContextMenuItems(viewPort.SelectionStart);

            // Assert
            var matches = items.Where(item => item.Text.Contains("Table"));

            Assert.Empty(matches);
        }
Ejemplo n.º 13
0
        public void TableToolUpdatesWhenTextToolDataChanges()
        {
            // Arrange
            var data     = Enumerable.Range(0, 0x200).Select(i => (byte)0xFF).ToArray();
            var model    = new PokemonModel(data);
            var viewPort = new ViewPort("name.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.Edit("^array[name\"\"16]3 ");
            viewPort.SelectionStart = new Point(8, 1);

            // Act: Update via the Text Tool
            viewPort.Tools.SelectedIndex      = Enumerable.Range(0, 10).First(i => viewPort.Tools[i] == viewPort.Tools.StringTool);
            viewPort.Tools.StringTool.Content = Environment.NewLine + "Larry";

            // Assert: Table Tool is updated
            viewPort.Tools.SelectedIndex = Enumerable.Range(0, 10).First(i => viewPort.Tools[i] == viewPort.Tools.TableTool);
            var field = (FieldArrayElementViewModel)viewPort.Tools.TableTool.Children[0];

            Assert.Equal("Larry", field.Content);
        }
Ejemplo n.º 14
0
        public void CanUndoStringTruncate()
        {
            var buffer = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();
            var bytes  = PCSString.Convert("Hello World!").ToArray();

            Array.Copy(bytes, 0, buffer, 0x08, bytes.Length);
            buffer[0] = 0x08;
            buffer[1] = 0x00;
            buffer[2] = 0x00;
            buffer[3] = 0x08;
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.SelectionStart = new Point(0x0C, 0);
            viewPort.Edit(ConsoleKey.Backspace);
            viewPort.Undo.Execute();

            Assert.Equal(13, model.GetNextRun(0x08).Length);
            Assert.Equal("\"Hello World!\"", ((PCS)viewPort[0x0C, 0].Format).FullString);
        }
Ejemplo n.º 15
0
        public void FormatIsRemovedWhenEditingAnAnchor()
        {
            var buffer = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();
            var bytes  = PCSString.Convert("Hello World!").ToArray();

            buffer[0] = 0x08;
            buffer[1] = 0x00;
            buffer[2] = 0x00;
            buffer[3] = 0x08;
            Array.Copy(bytes, 0, buffer, 0x08, bytes.Length);
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("test.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.SelectionStart = new Point(0x08, 0);
            viewPort.Edit("^");

            var underEdit = (UnderEdit)viewPort[8, 0].Format;

            Assert.Equal("^", underEdit.CurrentText);
        }
Ejemplo n.º 16
0
    public void StartBattele(PokemonModel myPokemonModel)
    {
        IsBattle = true;
        BattleVissibility(IsBattle);

        GameObject player = Instantiate(BattelePokemonPrefab[(int)_playerHelper.MyPokemonModel.PokemonType]);

        player.transform.SetParent(PlayerBattlePossition, false);
        player.transform.localScale = new Vector3(Scale / 2, Scale / 2, Scale / 2);

        PlayerBattleHelper = player.GetComponent <BattlePokemonHelper>();
        PlayerBattleHelper.Load(_playerHelper.MyPokemonModel);

        GameObject enemy = Instantiate(BattelePokemonPrefab[(int)myPokemonModel.PokemonType]);

        enemy.transform.SetParent(BattlePossition, false);
        enemy.transform.localScale = new Vector3(Scale, Scale, Scale);

        EnemyBattleHelper = enemy.GetComponent <BattlePokemonHelper>();
        EnemyBattleHelper.Load(myPokemonModel);

        StartCoroutine(CloseBattle());
    }
Ejemplo n.º 17
0
        public async Task <PokemonModel> GetOnePokemon(string pokemonName)
        {
            using (var http = new HttpClient())
            {
                PokemonModel pokemon = null;
                var          url     = $"{baseUri}{pokemonName}";
                http.BaseAddress = new Uri(url);

                if (http.BaseAddress == null)
                {
                    throw new Exception("Sem conexão com a internet.");
                }

                var resultGet = await http.GetAsync(url);

                if (resultGet.IsSuccessStatusCode)
                {
                    pokemon = JsonConvert.DeserializeObject <PokemonModel>(await resultGet.Content.ReadAsStringAsync());
                }

                return(pokemon);
            }
        }
Ejemplo n.º 18
0
    public void SetPokemonInArena(bool isPlayer)
    {
        //get player or enemy pokemon
        PokemonModel pokemon = isPlayer ? fightManager.currentPlayerPokemon : fightManager.currentEnemyPokemon;

        if (isPlayer)
        {
            //set player sprite, life and all
            playerImage.sprite = pokemon.pokemonData.PokemonBack;
            playerName.text    = pokemon.GetObjectName();
            playerLevel.text   = playerLevelString + pokemon.CurrentLevel;
            SetHealthUI(true, 0, 1);
            playerExpSlider.value = (pokemon.CurrentExp - pokemon.ExpCurrentLevel) / (pokemon.ExpNextLevel - pokemon.ExpCurrentLevel);
        }
        else
        {
            //set enemy sprite, life and all
            enemyImage.sprite = pokemon.pokemonData.PokemonFront;
            enemyName.text    = pokemon.GetObjectName();
            enemyLevel.text   = enemyLevelString + pokemon.CurrentLevel;
            SetHealthUI(false, 0, 1);
            enemyExpSlider.value = (pokemon.CurrentExp - pokemon.ExpCurrentLevel) / (pokemon.ExpNextLevel - pokemon.ExpCurrentLevel);
        }
    }
Ejemplo n.º 19
0
    void ChangePokemon(Button button, PokemonModel pokemon)
    {
        //don't change if dead
        if (pokemon.CurrentHealth <= 0)
        {
            return;
        }

        //call it in fight manager
        fightManager.ChangePokemon(pokemon);

        //reset interactable of previous button
        foreach (Button poolButton in pokemonsPooling.PooledObjects)
        {
            if (poolButton.interactable == false)
            {
                poolButton.interactable = true;
                break;
            }
        }

        //set not interactable this new one
        button.interactable = false;
    }
Ejemplo n.º 20
0
        //选择Pokemon
        private void OnSelectPokemon()
        {
            string id = pokemonDP.captionText.text.Substring(0, 3);

            pokemon             = PublicDataManager.instance.GetPokemonModel(int.Parse(id));
            pokemonImage.sprite = Resources.Load <Sprite>("PokemonSprites/" + id + "/Front/IMG00000");
            //特性
            charactersTemp.Clear();
            string[] chIds = PublicDataManager.instance.GetCharacterIds(pokemon.id).Split('|');
            foreach (string s in chIds)
            {
                int    n    = int.Parse(s);
                string name = PublicDataManager.instance.GetCharacterModelNameCh(n);
                charactersTemp.Add(StringUtil.FormatIdName(n, name));
            }
            characterDP.ClearOptions();
            characterDP.AddOptions(charactersTemp);

            //技能
            string[] skillIds = pokemon.skills.Split('|');
            skillsTemp.Clear();
            foreach (string s in skillIds)
            {
                int    n    = int.Parse(s);
                string name = PublicDataManager.instance.GetSkillModelNameCh(n);
                skillsTemp.Add(StringUtil.FormatIdName(n, name));
            }
            for (int i = 0; i < skillDPs.Length; i++)
            {
                skillDPs[i].ClearOptions();
                skillDPs[i].AddOptions(skillsTemp);
                skillDPs[i].value = i;
                skillDPs[i].RefreshShownValue();
            }
            RefreshAbilityValue();
        }
Ejemplo n.º 21
0
    public BattleStartMessage(Pokemon _pokemon, int _index)
    {
        index = _index;
        PokemonModel     pM   = _pokemon.GetModel();
        CharacterModel   cM   = _pokemon.GetCharacter().GetModel();
        PersonalityModel perM = _pokemon.GetPersonality().GetModel();
        ItemModel        iM   = _pokemon.GetItem().GetModel();

        Skill[] skM = _pokemon.GetSkills();//固定为4个技能
        pokemonId     = pM.id;
        hpAv          = pM.hp;
        attackAv      = pM.attack;
        defenceAv     = pM.defense;
        sp_attackAv   = pM.sp_attack;
        sp_defenceAv  = pM.sp_defense;
        speedAv       = pM.speed;
        charavterId   = cM.id;
        personalityId = perM.id;
        itemId        = iM.id;
        for (int i = 0; i < 4; i++)
        {
            skillIds[i] = skM[i].GetModel().id;
        }
    }
Ejemplo n.º 22
0
        public void CanUseViewPortToAutoFindTextWithoutKnowingAboutPointersToIt()
        {
            var text   = PCSString.Convert("This is some text.");
            var buffer = Enumerable.Range(0, 0x200).Select(i => (byte)0xFF).ToArray();

            text.CopyTo(buffer, 0x10);
            var model = new PokemonModel(buffer);

            model.WritePointer(new ModelDelta(), 0x00, 0x10);

            var viewPort = new ViewPort("file.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            viewPort.SelectionStart = new Point(3, 1); // just a random byte in the middle of the text
            var errors = new List <string>();

            viewPort.OnError += (sender, e) => errors.Add(e);

            viewPort.IsText.Execute(); // this line should find the start of the text and add a run, even with no pointer to it

            Assert.IsType <PCS>(viewPort[3, 1].Format);
        }
Ejemplo n.º 23
0
 public override void Open()
 {
     //初始化Pokemon阵容
     for (int i = 0; i < slots.Length; i++)
     {
         PokemonModel p    = RuntimeData.GetMyPokemonByIndex(i).GetModel();
         Sprite       icon = Resources.Load <Sprite>("PokemonSprites/" + StringUtil.FormatId(p.id) + "/Icon/IMG00000");
         slots[i].SetProperty(icon, p.name_ch, p.hp);
         int index = i;
         //更换Pokemon
         slots[i].gameObject.GetComponent <Button>().onClick.AddListener(() =>
         {
             RuntimeData.SetCurrentMyIndex(index);
             ChangePokemon(RuntimeData.GetCurrentMyPokemon(), true);
         });
     }
     //默认第一个Pokemon先上场
     ChangePokemon(RuntimeData.GetCurrentMyPokemon(), true);
     ChangePokemon(RuntimeData.GetCurrentOppPokemon(), false);
     UIDelegateManager.AddObserver(UIMessageType.RefreshMyHpText, RefreshMyHpText);
     UIDelegateManager.AddObserver(UIMessageType.RefreshMyHpBar, RefreshMyHpBar);
     UIDelegateManager.AddObserver(UIMessageType.RefreshOpponentHpBar, RefreshOpponentHpBar);
     base.Open();
 }
Ejemplo n.º 24
0
        public void PointerGetsSetToZeroAfterAnchorGetsDeleted()
        {
            var buffer   = new byte[0x100];
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("file.txt", model)
            {
                Width = 0x10, Height = 0x10
            };
            var token = new ModelDelta();

            viewPort.SelectionStart = new Point(0, 1);
            viewPort.Edit("^bob ");
            viewPort.SelectionStart = new Point(0, 2);
            viewPort.Edit("<bob>");
            viewPort.SelectionStart = new Point(0, 1);

            // as an alternative to being able to delete an anchor from the viewPort,
            // just edit the model directly and then scroll to force the viewPort to refresh
            model.ClearFormatAndData(token, 0xF, 2);
            viewPort.ScrollValue = 1;
            viewPort.ScrollValue = 0;

            Assert.Equal(Pointer.NULL, ((Pointer)viewPort[0, 2].Format).Destination);
        }
Ejemplo n.º 25
0
        public void UndoRedoRestoresSaveStar()
        {
            var buffer   = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("file.txt", model)
            {
                Width = 0x10, Height = 0x10
            };
            int nameChangedCount = 0;

            viewPort.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(viewPort.Name))
                                                         {
                                                             nameChangedCount++;
                                                         }
            };
            var fileSystem = new StubFileSystem();

            viewPort.Edit("AA");     // notify 1 -> adding the star
            viewPort.Undo.Execute(); // notify 2 -> removing the star
            viewPort.Redo.Execute(); // notify 3 -> re-adding the star

            Assert.Contains("*", viewPort.Name);
            Assert.Equal(3, nameChangedCount);
        }
Ejemplo n.º 26
0
        public void UndoCanHandleNameMove()
        {
            var buffer   = Enumerable.Repeat((byte)0xFF, 0x200).ToArray();
            var model    = new PokemonModel(buffer);
            var viewPort = new ViewPort("file.txt", model)
            {
                Width = 0x10, Height = 0x10
            };

            // operation 1
            viewPort.Edit("<bob> 03 08 24 16 <bob>");

            // operation 2
            viewPort.SelectionStart = new Point(0, 1);
            viewPort.Edit("^bob ");

            Assert.Equal(0x10, model.ReadPointer(0x00));
            Assert.Equal("bob", ((Pointer)viewPort[0, 0].Format).DestinationName);

            // undo operation 2
            viewPort.Undo.Execute();
            Assert.Equal(Pointer.NULL, model.ReadPointer(0x00));
            Assert.Equal("bob", ((Pointer)viewPort[0, 0].Format).DestinationName);

            // operation 3
            viewPort.SelectionStart = new Point(0, 2);
            viewPort.Edit("^bob ");

            Assert.Equal(0x20, model.ReadPointer(0x00));
            Assert.Equal("bob", ((Pointer)viewPort[0, 0].Format).DestinationName);

            // undo operation 3
            viewPort.Undo.Execute();
            Assert.Equal(Pointer.NULL, model.ReadPointer(0x00));
            Assert.Equal("bob", ((Pointer)viewPort[0, 0].Format).DestinationName);
        }
Ejemplo n.º 27
0
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                var pokemon = new PokemonModel
                {
                    Name   = collection["Name"],
                    Number = int.Parse(collection["Number"])
                };

                if (pokemon.Save())
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View(pokemon));
                }
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 28
0
    void AddPokemon(int index)
    {
        //remove menu
        fightManager.FightUIManager.HideCatchPokemonMenu();

        //get pokemon to replace
        PokemonModel pokemonToReplace = index < GameManager.instance.Player.PlayerPokemons.Count ? GameManager.instance.Player.PlayerPokemons[index] : null;

        //add or replace pokemon
        GameManager.instance.Player.AddPokemon(fightManager.currentEnemyPokemon, index);

        //if need to replace a pokemon, show replacePokemonDescription before confirm
        if (pokemonToReplace != null)
        {
            string s = Utility.Parse(replacePokemonDescription, pokemonToReplace.GetObjectName());

            fightManager.FightUIManager.SetDescription(s, ConfirmPokemonDescription);
        }
        //else show immediatly the confirm
        else
        {
            ConfirmPokemonDescription();
        }
    }
Ejemplo n.º 29
0
        public void LoadRegisterCommmandsLoadWordAligned()
        {
            //01101 # rn rd
            var code = new ushort[] {
                0b0000_0000_0000_0000, // nop
                0b01001_000_00000001,  // ldr #1 <-- 8, not 10
                0b10111101_00000000,   // pop pc {}
                0b00000000_00000000,   // nop
                0xBEEF,                // .word
                0xDEAD,
            };

            var bytes = code.SelectMany(pair => new[] { (byte)pair, (byte)(pair >> 8) }).ToArray();
            var model = new PokemonModel(bytes);
            var lines = parser.Parse(model, 0, bytes.Length).Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            Assert.Equal(6, lines.Length);
            Assert.Equal("000000:", lines[0]);
            Assert.Equal("    nop", lines[1]);
            Assert.Equal("    ldr   r0, [pc, <000008>]", lines[2]);
            Assert.Equal("    pop   {pc}", lines[3]);
            Assert.Equal("000008:", lines[4]);
            Assert.Equal("    .word 0xDEADBEEF", lines[5]);
        }
Ejemplo n.º 30
0
 public void AddPokemon(PokemonModel model)
 {
     _pokemonModel.Add(model);
 }
Ejemplo n.º 31
0
        public ActionResult Create()
        {
            var model = new PokemonModel();

            return(View(model));
        }
Ejemplo n.º 32
0
        private void PopulateSaveModel(PokemonModel dataModel, PokemonSaveModel saveModel, int level)
        {
            // when generating a new Pokémon, the save model is empty, as it is a blank slate.
            // some values are generated by default or just set to their base values, so we do that here.

            saveModel.Id = dataModel.Id;

            // setting personality value:
            saveModel.PersonalityValue = GeneratePersonalityValue();

            // setting gender:
            if (dataModel.IsGenderless)
            {
                saveModel.Gender = PokemonGender.Genderless;
            }
            else
            {
                var r = GlobalRandomProvider.Instance.Rnd.NextDouble();
                if (r <= (dataModel.IsMale / 100))
                {
                    saveModel.Gender = PokemonGender.Male;
                }
                else
                {
                    saveModel.Gender = PokemonGender.Female;
                }
            }

            // presetting catch info with empty information:
            saveModel.CatchInfo = new PokemonCatchInfo()
            {
                BallItemId = "",
                Location = "",
                Method = "",
                TrainerName = "",
                OT = ""
            };

            // no egg, 0 experience:
            saveModel.EggSteps = 0;
            saveModel.Experience = 0;

            // set all effort values to 0:
            saveModel.EVs = new PokemonStatSetModel()
            {
                Atk = 0,
                Def = 0,
                SpAtk = 0,
                SpDef = 0,
                HP = 0,
                Speed = 0
            };
            // randomize IVs:
            saveModel.IVs = new PokemonStatSetModel()
            {
                Atk = GlobalRandomProvider.Instance.Rnd.Next(0, 32),
                Def = GlobalRandomProvider.Instance.Rnd.Next(0, 32),
                SpAtk = GlobalRandomProvider.Instance.Rnd.Next(0, 32),
                SpDef = GlobalRandomProvider.Instance.Rnd.Next(0, 32),
                HP = GlobalRandomProvider.Instance.Rnd.Next(0, 32),
                Speed = GlobalRandomProvider.Instance.Rnd.Next(0, 32)
            };

            // set to random nature:
            var natureModels = _gameMode.GetNatures();
            saveModel.NatureId = natureModels[_random.Next(natureModels.Length)].Id;

            // set to base friendship:
            saveModel.Friendship = dataModel.BaseFriendship;

            // chance of 1/4096 to be shiny:
            saveModel.IsShiny = (GlobalRandomProvider.Instance.Rnd.Next(0, 4096) == 0);

            saveModel.Nickname = "";

            saveModel.Status = PokemonStatus.None;

            saveModel.AdditionalData = "";

            saveModel.Moves = new PokemonMoveModel[0];
        }
Ejemplo n.º 33
0
        public Pokemon(GameMode gameMode, PokemonModel dataModel, PokemonSaveModel saveModel)
        {
            _gameMode = gameMode;

            _dataModel = dataModel;
            _saveModel = saveModel;
        }
Ejemplo n.º 34
0
        public (int pAHP, int pBHP) HandleRound(PokemonModel startingPokemon, PokemonModel pA, int pAHP, PokemonModel pB, int pBHP)
        {
            if (startingPokemon == pA)
            {
                pBHP -= (pA.Props["Attack"] - pB.Props["Defense"]);

                if (pBHP <= 0)
                {
                    return(pAHP, pBHP);
                }

                pAHP -= (pB.Props["Attack"] - pA.Props["Defense"]);
            }
            else
            {
                pAHP -= (pB.Props["Attack"] - pA.Props["Defense"]);

                if (pAHP <= 0)
                {
                    return(pAHP, pBHP);
                }

                pBHP -= (pA.Props["Attack"] - pB.Props["Defense"]);
            }

            return(pAHP, pBHP);
        }