public SkeletonWarrior()
        {
            Name = "Skeleton Warrior";

            Figure = "$";
            Random rnd = new Random();

            Exp         = rnd.Next(300, 800);
            Lvl         = Convert.ToInt32(Math.Round(Convert.ToDecimal((Exp / 100)), MidpointRounding.AwayFromZero));
            HP_max      = Lvl;
            HP          = rnd.Next(1, HP_max + 1);
            Description = String.Format("a well-equipped skeleton. It used to be a good warrior in past ({0} lvl)", Lvl);
            for (int i = 0; i < Lvl; i++)
            {
                if (rnd.Next(2) == 1)
                {
                    Strength++;
                }
                else
                {
                    Dexterity++;
                }
            }
            if (rnd.Next(2) == 1)
            {
                Active_Weapon = new WoodenDagger();
            }
            else
            {
                Active_Weapon = new IronSword();
            }
        }
예제 #2
0
 void setItem()
 {
     var pot = new HOZON();
     var cane = new Sanctuary();
     var weapon = new IronSword();
     var potion = new SleepPotion();
     var potion2 = new LevelUpPotion();
     pot.init(5);
     cane.init();
     weapon.init(0);
     potion.init();
     potion2.init();
     Vector2 pos = new Vector2(5, 8);
     ObjectEntityFactory.createItemEntity(pot, pos + new Vector2(0,0),true);
     ObjectEntityFactory.createItemEntity(cane, pos+new Vector2(0,1), true);
     ObjectEntityFactory.createItemEntity(weapon, pos + new Vector2(0, 2), true);
     ObjectEntityFactory.createItemEntity(potion, pos + new Vector2(0, 3), true);
     pos += new Vector2(1, 0);
     ObjectEntityFactory.createItemEntity(pot, pos + new Vector2(0, 0), true);
     ObjectEntityFactory.createItemEntity(cane, pos + new Vector2(0, 1), true);
     ObjectEntityFactory.createItemEntity(weapon, pos + new Vector2(0, 2), true);
     ObjectEntityFactory.createItemEntity(potion, pos + new Vector2(0, 3), true);
     pos += new Vector2(1, 0);
     ObjectEntityFactory.createItemEntity(pot, pos + new Vector2(0, 0), true);
     ObjectEntityFactory.createItemEntity(cane, pos + new Vector2(0, 1), true);
     ObjectEntityFactory.createItemEntity(weapon, pos + new Vector2(0, 2), true);
     ObjectEntityFactory.createItemEntity(potion2, pos + new Vector2(0, 3), true);
     pos += new Vector2(1, 0);
     ObjectEntityFactory.createItemEntity(pot, pos + new Vector2(0, 0), true);
     ObjectEntityFactory.createItemEntity(cane, pos + new Vector2(0, 1), true);
     ObjectEntityFactory.createItemEntity(weapon, pos + new Vector2(0, 2), true);
     ObjectEntityFactory.createItemEntity(potion2, pos + new Vector2(0, 3), true);
     pos += new Vector2(1, 0);
 }
예제 #3
0
        public Guard()
        {
            Name = "Skeleton Guard";

            Figure = "G";
            Random rnd = new Random();

            Exp         = rnd.Next(700, 1301);
            Lvl         = Convert.ToInt32(Math.Round(Convert.ToDecimal((Exp / 100)), MidpointRounding.AwayFromZero));
            HP_max      = Lvl;
            HP          = HP_max;
            Description = String.Format("a skeleton Guard. It will put its life to make you stay in the dungeon forever ({0} lvl)", Lvl);
            for (int i = 0; i < Lvl; i++)
            {
                if (rnd.Next(2) == 1)
                {
                    Strength++;
                }
                else
                {
                    Dexterity++;
                }
            }
            if (rnd.Next(2) == 1)
            {
                Active_Weapon = new SilverSpear();
            }
            else
            {
                Active_Weapon = new IronSword();
            }
        }
예제 #4
0
        public IEnumerator EquipTest1()
        {
            Character character = GameManager.CurrentLevel.GetCharacter(0, 0);
            Item      item      = IronSword.Create();

            character.Equip(item);
            LogAssert.Expect(LogType.Error, "Iron Sword does not exist in inventory.");

            yield return(null);
        }
        public IEnumerator ValidateRightPlacement()
        {
            Character sourceCharacter = GameManager.CurrentLevel.GetCharacter(0, 0);

            sourceCharacter.Items.Clear();
            sourceCharacter.Items.Add(IronSword.Create());
            sourceCharacter.AddProficiency(new Proficiency(typeof(Sword), Proficiency.Rank.A));

            Character targetCharacter = GameManager.CurrentLevel.GetCharacter(0, 1);

            GameManager.AttackDetailPanel.Show(sourceCharacter, targetCharacter);

            Assert.True(GameManager.AttackDetailPanel.gameObject.activeSelf);
            yield return(null);
        }
예제 #6
0
        public IEnumerator EndActionTest4()
        {
            Character sourceCharacter = GameManager.CurrentLevel.GetCharacter(2, 2);

            sourceCharacter.Items.Clear();
            sourceCharacter.Items.Add(IronSword.Create());
            sourceCharacter.Items.Add(Fire.Create());

            Character targetCharacter = GameManager.CurrentLevel.GetCharacter(2, 1);

            targetCharacter.Items.Clear();
            targetCharacter.Items.Add(Fire.Create());

            // Move cursor
            yield return(MoveCursor(2, 2));

            // select character
            yield return(Submit());

            // select move
            yield return(Submit());

            // select trade
            yield return(DownArrow());

            yield return(Submit());

            // select trading character
            yield return(Submit());

            // trade item
            yield return(Submit());

            Assert.AreEqual(1, sourceCharacter.Items.Count);
            Assert.AreEqual(2, targetCharacter.Items.Count);

            //Assert.AreEqual(Cursor.State.Free, GameManager.Cursor.CurrentState);
            Assert.True(GameManager.CurrentLevel.GetCharacter(2, 2).HasMoved);
            Assert.True(GameManager.CurrentLevel.GetCharacter(2, 2).HasTraded);
            Assert.False(GameManager.CurrentLevel.GetCharacter(2, 1).HasMoved);
            Assert.False(GameManager.CurrentLevel.GetCharacter(2, 1).HasTraded);
        }
예제 #7
0
    // Use this for initialization
    public Alexis()
    {
        this.playerName    = "Alexis";
        this.playerClass   = "Soldier";
        this.playerProfile = "Images/Cloud";
        this.playerLevel   = 1;
        this.strength      = 35;
        this.intelligence  = 15;
        this.speed         = 15;
        this.spirit        = 10;
        this.defense       = 35;
        this.hitPoints     = 150;
        this.currentHP     = this.hitPoints;
        this.magicPoints   = 50;
        this.currentMP     = this.magicPoints;

        weapon    = new IronSword();
        armor     = new LeatherArmor();
        accessory = new HPRing();

        UpdatePlayer();
    }
예제 #8
0
    // Use this for initialization
    public Alexis()
    {
        this.playerName    = "Alexis";
        this.playerClass   = "Soldier";
        this.playerProfile = "Images/Cloud";
        this.playerLevel   = 1;
        this.strength      = 35;
        this.intelligence  = 15;
        this.speed         = 15;
        this.spirit        = 10;
        this.defense       = 35;
        this.hitPoints     = 150;
        this.currentHP     = this.hitPoints;
        this.magicPoints   = 50;
        this.currentMP     = this.magicPoints;

        weapon    = new IronSword ();
        armor     = new LeatherArmor ();
        accessory = new HPRing ();

        UpdatePlayer ();
    }
예제 #9
0
        public IEnumerator TradingTest3()
        {
            Character sourceCharacter = GameManager.CurrentLevel.GetCharacter(2, 2);

            sourceCharacter.Items.Clear();
            sourceCharacter.Items.Add(IronSword.Create());
            sourceCharacter.Items.Add(Fire.Create());

            Character targetCharacter = GameManager.CurrentLevel.GetCharacter(2, 1);

            targetCharacter.Items.Clear();
            targetCharacter.Items.Add(Fire.Create());

            // Move cursor
            yield return(MoveCursor(2, 2));

            // select character
            yield return(Submit());

            // select move
            yield return(Submit());

            // select trade
            yield return(DownArrow());

            yield return(Submit());

            // select trading character
            yield return(Submit());

            yield return(Cancel());

            Assert.False(GameManager.TradeDetailPanel.IsInFocus());
            Assert.True(GameManager.Cursor.IsInFocus());
            Assert.AreEqual(Cursor.State.ChoosingTradeTarget, GameManager.Cursor.CurrentState);
        }
예제 #10
0
        //Main Data Structure
        public GameWorldInfo()
        {
            RoomMapFileInfo rmmapInfo = null;

            WorldMapInfo = new WorldMap();
            rmmapInfo    = RoomInfoFileReader.ReadRoomMapInfo(ConfigManager.RoomInfoFile);

            RoomMapList       = rmmapInfo.roomaplist;
            dropPointlist     = rmmapInfo.dropPointlist;
            boundaryPointlist = rmmapInfo.boundaryPointlist;

            if (RoomMapList != null)
            {
                NumberOfRooms = RoomMapList.Count;
            }

            The_Player = new Player(0, 0);  //Init the Player

            GameRoom rm = null;

            for (int roomindex = 0; roomindex < NumberOfRooms; roomindex++)
            {
                GameRoomList.Add(new GameRoom(RoomMapList.ElementAt(roomindex)));
                rm = GameRoomList.ElementAt(roomindex);
                rm.GenerateEnvrionemnt();
                NumberOfMonster = NumberOfMonster + rm.MonsterList.Count;
                NumberOfGlobin  = NumberOfGlobin + rm.GlobinList.Count;
            }

            //Generate item in room

            int    maxnoitem = ConfigManager.MaxChestPerWorld;
            int    rmindex   = 0;
            Random random    = ConfigManager.RandomGen;
            Dictionary <string, string> ItemsHashTable = new Dictionary <string, string>();
            int    col      = 0;
            int    row      = 0;
            Chest  chestobj = null;
            String key      = null;

            //Chest First
            for (int item = 0; item < maxnoitem; item++)
            {
                while (true)
                {
                    rmindex = random.Next(0, NumberOfRooms - 1);   //Get a Random Room

                    if (!ItemsHashTable.ContainsKey(Convert.ToString(rmindex)))
                    {
                        ItemsHashTable.Add(Convert.ToString(rmindex), Convert.ToString(rmindex));
                        rm = GameRoomList.ElementAt(rmindex);

                        while (true)
                        {
                            col = random.Next(
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + 1,
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + RoomMap.RoomEffectiveWidth - 1);

                            row = random.Next(0, RoomMap.RoomHeight - 1);
                            if (!rm.IsLocationInRoomTaken(col, row) && rm.Room_Map.IsEmpty(col, row))
                            {
                                key      = col + "-" + row;
                                chestobj = new Chest("Treasure Chest", col + PlayUIWorldMap.mapBoxColPos, row + PlayUIWorldMap.mapBoxRowPos, key);
                                rm.ChestList.Add(chestobj);
                                rm.ItemsHashTable.Add(key, chestobj);
                                rm.TotalItem++;
                                break;
                            }
                        }
                    }
                    break;
                }
            }

            //Key Next
            maxnoitem = ConfigManager.MaxKeyPerWorld;
            Key keyobj = null;

            ItemsHashTable = new Dictionary <string, string>();

            for (int item = 0; item < maxnoitem; item++)
            {
                while (true)
                {
                    rmindex = random.Next(0, NumberOfRooms - 1);   //Get a Random Room

                    if (!ItemsHashTable.ContainsKey(Convert.ToString(rmindex)))
                    {
                        ItemsHashTable.Add(Convert.ToString(rmindex), Convert.ToString(rmindex));
                        rm = GameRoomList.ElementAt(rmindex);

                        while (true)
                        {
                            col = random.Next(
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + 1,
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + RoomMap.RoomEffectiveWidth - 1);

                            row = random.Next(0, RoomMap.RoomHeight - 1);
                            if (!rm.IsLocationInRoomTaken(col, row) && rm.Room_Map.IsEmpty(col, row))
                            {
                                key    = col + "-" + row;
                                keyobj = new Key("Treasure Chest Key", col + PlayUIWorldMap.mapBoxColPos, row + PlayUIWorldMap.mapBoxRowPos, key);
                                rm.KeyList.Add(keyobj);
                                rm.ItemsHashTable.Add(key, keyobj);
                                rm.TotalItem++;
                                break;
                            }
                        }
                    }
                    break;
                }
            }

            //Iron Armour Next
            maxnoitem = ConfigManager.MaxIronArmourPerWorld;
            IronArmour amobj = null;

            ItemsHashTable = new Dictionary <string, string>();

            for (int item = 0; item < maxnoitem; item++)
            {
                while (true)
                {
                    rmindex = random.Next(0, NumberOfRooms - 1);   //Get a Random Room

                    if (!ItemsHashTable.ContainsKey(Convert.ToString(rmindex)))
                    {
                        ItemsHashTable.Add(Convert.ToString(rmindex), Convert.ToString(rmindex));
                        rm = GameRoomList.ElementAt(rmindex);

                        while (true)
                        {
                            col = random.Next(
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + 1,
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + RoomMap.RoomEffectiveWidth - 1);

                            row = random.Next(0, RoomMap.RoomHeight - 1);
                            if (!rm.IsLocationInRoomTaken(col, row) && rm.Room_Map.IsEmpty(col, row))
                            {
                                key   = col + "-" + row;
                                amobj = new IronArmour("Iron Armour", col + PlayUIWorldMap.mapBoxColPos, row + PlayUIWorldMap.mapBoxRowPos, key);
                                rm.ArmourList.Add(amobj);
                                rm.ItemsHashTable.Add(key, amobj);
                                rm.TotalItem++;
                                break;
                            }
                        }
                    }
                    break;
                }
            }

            //Wooden Armour Next
            maxnoitem = ConfigManager.MaxWoodenArmourPerWorld;
            WoodenArmour wmobj = null;

            ItemsHashTable = new Dictionary <string, string>();

            for (int item = 0; item < maxnoitem; item++)
            {
                while (true)
                {
                    rmindex = random.Next(0, NumberOfRooms - 1);   //Get a Random Room

                    if (!ItemsHashTable.ContainsKey(Convert.ToString(rmindex)))
                    {
                        ItemsHashTable.Add(Convert.ToString(rmindex), Convert.ToString(rmindex));
                        rm = GameRoomList.ElementAt(rmindex);

                        while (true)
                        {
                            col = random.Next(
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + 1,
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + RoomMap.RoomEffectiveWidth - 1);

                            row = random.Next(0, RoomMap.RoomHeight - 1);
                            if (!rm.IsLocationInRoomTaken(col, row) && rm.Room_Map.IsEmpty(col, row))
                            {
                                key   = col + "-" + row;
                                wmobj = new WoodenArmour("Wooden Armour", col + PlayUIWorldMap.mapBoxColPos, row + PlayUIWorldMap.mapBoxRowPos, key);
                                rm.ArmourList.Add(wmobj);
                                rm.ItemsHashTable.Add(key, wmobj);
                                rm.TotalItem++;
                                break;
                            }
                        }
                    }
                    break;
                }
            }


            //Iron Sword Next
            maxnoitem = ConfigManager.MaxIronSwordPerWorld;
            IronSword iswbj = null;

            ItemsHashTable = new Dictionary <string, string>();

            for (int item = 0; item < maxnoitem; item++)
            {
                while (true)
                {
                    rmindex = random.Next(0, NumberOfRooms - 1);   //Get a Random Room

                    if (!ItemsHashTable.ContainsKey(Convert.ToString(rmindex)))
                    {
                        ItemsHashTable.Add(Convert.ToString(rmindex), Convert.ToString(rmindex));
                        rm = GameRoomList.ElementAt(rmindex);

                        while (true)
                        {
                            col = random.Next(
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + 1,
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + RoomMap.RoomEffectiveWidth - 1);

                            row = random.Next(0, RoomMap.RoomHeight - 1);
                            if (!rm.IsLocationInRoomTaken(col, row) && rm.Room_Map.IsEmpty(col, row))
                            {
                                key   = col + "-" + row;
                                iswbj = new IronSword("Iron Sword", col + PlayUIWorldMap.mapBoxColPos, row + PlayUIWorldMap.mapBoxRowPos, key);
                                rm.WeaponList.Add(iswbj);
                                rm.ItemsHashTable.Add(key, iswbj);
                                rm.TotalItem++;
                                break;
                            }
                        }
                    }
                    break;
                }
            }


            //Wooden Sword Next
            maxnoitem = ConfigManager.MaxWoodenSwordPerWorld;
            WoodenSword wswbj = null;

            ItemsHashTable = new Dictionary <string, string>();

            for (int item = 0; item < maxnoitem; item++)
            {
                while (true)
                {
                    rmindex = random.Next(0, NumberOfRooms - 1);   //Get a Random Room

                    if (!ItemsHashTable.ContainsKey(Convert.ToString(rmindex)))
                    {
                        ItemsHashTable.Add(Convert.ToString(rmindex), Convert.ToString(rmindex));
                        rm = GameRoomList.ElementAt(rmindex);

                        while (true)
                        {
                            col = random.Next(
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + 1,
                                ((RoomMap.RoomWidth - RoomMap.RoomEffectiveWidth) / 2) + RoomMap.RoomEffectiveWidth - 1);

                            row = random.Next(0, RoomMap.RoomHeight - 1);
                            if (!rm.IsLocationInRoomTaken(col, row) && rm.Room_Map.IsEmpty(col, row))
                            {
                                key   = col + "-" + row;
                                wswbj = new WoodenSword("Wooden Sword", col + PlayUIWorldMap.mapBoxColPos, row + PlayUIWorldMap.mapBoxRowPos, key);
                                rm.WeaponList.Add(wswbj);
                                rm.ItemsHashTable.Add(key, wswbj);
                                rm.TotalItem++;
                                break;
                            }
                        }
                    }
                    break;
                }
            }
        }
예제 #11
0
    private void setItemOld()
    {
        var ret = new ItemBasis[12];
        ret[0] = new IronSword();
        (ret[0] as EquipmentItemBasis).init(2);
        ret[1] = new WoodArrow();
        ret[2] = new ConfusionPotion();
        ret[3] = new ParalyzePotion();
        ret[4] = new SleepPotion();
        ret[5] = new PoisonPotion();
        ret[6] = new AntiPoisonPotion();
        ret[7] = new DragonPotion();
        ret[8] = new FirePotion();
        ret[9] = new BullRush(5);
        ret[10] = new FireBall(5);
        ret[11] = new BombPot();
        Commodities.Add(new BronzeShield());
        Commodities.AddRange(ret);
        Commodities.Add(new WoodFlooring());
        Commodities.Add(new WoodPillar());
        Commodities.Add(new WoodWall());
        Commodities.Add(new MiddleBread());
        Commodities.Add(new HealPotion2());
        Commodities.Add(new Water());
        Commodities.Add(new WarpPotion());
        Commodities.Add(new STRUpPotion());
        Commodities.Add(new HPUpPotion());
        Commodities.Add(new HungerUpPotion());
        Commodities.Add(new HungerDownPotion());
        Commodities.Add(new SpeedUpPotion());
        Commodities.Add(new LevelDownPotion2());
        Commodities.Add(new LevelUpPotion2());
        Commodities.Add(new HealPotion3());
        Commodities.Add(new PerceptionPotion());
        Commodities.Add(new BlindPotion());
        //
        Commodities.Add(new LargeBread());
        Commodities.Add(new VeryLargeBread());
        //
        Commodities.Add(new AppraiseBook());
        Commodities.Add(new BakeryBook());
        Commodities.Add(new ConfusionBook());
        Commodities.Add(new CoatBook());
        Commodities.Add(new DontMoveBook());
        Commodities.Add(new EnemeyGatherBook());
        Commodities.Add(new EscapeBook());
        Commodities.Add(new ExorcismBook());
        Commodities.Add(new HawkEyeBook());
        Commodities.Add(new ItemGatherBook());
        Commodities.Add(new NoTitleBook());
        Commodities.Add(new PotExpantionBook());
        Commodities.Add(new PotHardeningBook());
        Commodities.Add(new Inazuma());
        Commodities.Add(new RockFallBook());
        Commodities.Add(new WeaponEnchantmentBook());
        Commodities.Add(new ShieldEnchantmentBook());
        Commodities.Add(new SleepBook());
        Commodities.Add(new TrapDestroyBook());
        Commodities.Add(new TrapMakeBook());
        Commodities.Add(new Suidashi());
        //
        Commodities.Add(new DecoyCane());
        Commodities.Add(new SealedCane());
        Commodities.Add(new AtkDownCane());
        Commodities.Add(new DefDownCane());
        Commodities.Add(new BombCane());
        Commodities.Add(new HealCane());
        Commodities.Add(new ExciteCane());
        Commodities.Add(new LevelUpCana());
        Commodities.Add(new LevelDownCane());
        Commodities.Add(new MissedSwingCana());
        Commodities.Add(new PalliativeCane());
        Commodities.Add(new ParalyzeCane());
        Commodities.Add(new PullOnCane());
        Commodities.Add(new SnatchCane());
        Commodities.Add(new SpeedUpCane());
        Commodities.Add(new SpeedDownCane());
        Commodities.Add(new SwapHpCane());
        Commodities.Add(new SwapPositionCane());
        Commodities.Add(new TenFeetStick());
        //
        Commodities.Add(new AppraisePot());
        Commodities.Add(new CompositionPot());
        Commodities.Add(new CursingPot());
        Commodities.Add(new EnhancedPot());
        Commodities.Add(new WeakenedPot());
        Commodities.Add(new ExoricismPot());
        Commodities.Add(new HealPot());
        Commodities.Add(new ItemChangePot());
        Commodities.Add(new MaterialPot());
        Commodities.Add(new SoldPot());
        Commodities.Add(new VanilaPot());
        Commodities.Add(new VoidPot());
        Commodities.Add(new WarehousePot());
        //
        Commodities.Add(new IronArrow());
        Commodities.Add(new SilverArrow());
        Commodities.Add(new PoisonArrow());
        Commodities.Add(new SagittariusArrow());

        //
        Commodities.Add(new TestBangle());
        Commodities.Add(new AntiPoisonBangle());
        Commodities.Add(new AntiParalyzeBangle());
        Commodities.Add(new AntiSleepBangle());
        Commodities.Add(new AntiConfusionBangle());
        Commodities.Add(new LongCastBangle());
        Commodities.Add(new STRUpBangle());
        Commodities.Add(new HealBangle());
        Commodities.Add(new AutoWarpBangle());
        Commodities.Add(new ExorcismBangle());
        Commodities.Add(new AutoExpGainBangle());
        Commodities.Add(new BombBangle());
        Commodities.Add(new ItemClairvoyanceBangle());
        Commodities.Add(new EnemyClairvoyanceBangle());
        Commodities.Add(new HawkEyeBangle());
        Commodities.Add(new AutoAppraiseBangle());
        Commodities.Add(new WallWalkBangle());
        Commodities.Add(new SneakWalkBangle());
        Commodities.Add(new CriticalBangle());
        Commodities.Add(new PainBlowBangle());
        ////
        Commodities.Add(new IronSield());
        Commodities.Add(new TowerShield());
        Commodities.Add(new TurtleShield());
        Commodities.Add(new AegisShield());
        Commodities.Add(new DragonSteelShield());
        Commodities.Add(new PotLidShield());
        Commodities.Add(new OldShield());
        Commodities.Add(new MagicReflectionShield());

        Commodities.FindAll(item => !item.IsInitalized).ForEach(item => item.init());
    }
예제 #12
0
 public static void testWrite()
 {
     if (!Directory.Exists(savedir)) {
         Debug.LogError("Save Directory is None!");
         Directory.CreateDirectory(savedir);
     }
     LocalSaveData test = new LocalSaveData();
     test.Player.Position = new Vector2(3, 7);
     test.Player.PlayerName = "たかし";
     var ken = new IronSword();
     ken.init(3);
     var arrow = new WoodArrow();
     arrow.init(12);
     var tubo = new HOZON();
     tubo.init(4);
     tubo.putinItem(arrow);
     Debug.Log("Pot: "+tubo.showInventory());
     ItemInventory inv = new ItemInventory(10);
     inv.add(ken,tubo,arrow);
     test.Player.ParameterData.Inventory = ItemData.convert(inv);
     test.Player.ParameterData.InventorySize = inv.InventorySize;
     string json =  JsonUtility.ToJson(test,true);
     Debug.Log(json);
     string savepath = savedir + @"\saveTest";
     using (FileStream fs = new FileStream(savepath,FileMode.Create,FileAccess.Write)) {
         BinaryFormatter bf = new BinaryFormatter();
         bf.Serialize(fs, json);
     }
     testLoad();
 }
예제 #13
0
        public IEnumerator TradingTest2()
        {
            Character sourceCharacter = GameManager.CurrentLevel.GetCharacter(2, 2);

            sourceCharacter.Items.Clear();
            sourceCharacter.Items.Add(IronSword.Create());
            sourceCharacter.Items.Add(Fire.Create());

            Character targetCharacter = GameManager.CurrentLevel.GetCharacter(2, 1);

            targetCharacter.Items.Clear();
            targetCharacter.Items.Add(Fire.Create());

            // Move cursor
            yield return(MoveCursor(2, 2));

            // select character
            yield return(Submit());

            // select move
            yield return(Submit());

            // select trade
            yield return(DownArrow());

            yield return(Submit());

            // select trading character
            yield return(Submit());

            yield return(Submit());

            Assert.AreEqual(1, sourceCharacter.Items.Count);
            Assert.AreEqual(2, targetCharacter.Items.Count);

            yield return(DownArrow());

            Assert.AreEqual(TradeDetailPanel.Side.SOURCE, GameManager.TradeDetailPanel.CurrentSide);

            // Press right
            yield return(RightArrow());

            Assert.AreEqual(TradeDetailPanel.Side.DESTINATION, GameManager.TradeDetailPanel.CurrentSide);

            yield return(DownArrow());

            Assert.AreEqual(TradeDetailPanel.Side.DESTINATION, GameManager.TradeDetailPanel.CurrentSide);

            yield return(DownArrow());

            Assert.AreEqual(TradeDetailPanel.Side.DESTINATION, GameManager.TradeDetailPanel.CurrentSide);

            yield return(LeftArrow());

            Assert.AreEqual(TradeDetailPanel.Side.SOURCE, GameManager.TradeDetailPanel.CurrentSide);

            yield return(LeftArrow());

            Assert.AreEqual(TradeDetailPanel.Side.SOURCE, GameManager.TradeDetailPanel.CurrentSide);

            yield return(RightArrow());

            Assert.AreEqual(TradeDetailPanel.Side.DESTINATION, GameManager.TradeDetailPanel.CurrentSide);

            yield return(Submit());

            Assert.AreEqual(2, sourceCharacter.Items.Count);
            Assert.AreEqual(1, targetCharacter.Items.Count);
        }
예제 #14
0
        /// <summary>
        /// Initialize the terrain map and characters. Should only be called by Level.Init(GameManager,Player,Player)
        /// </summary>
        protected override void Init()
        {
            TerrainMap   = new Terrain.Terrain[4, 4];
            CharacterMap = new Character[4, 4];

            TerrainMap[0, 0] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[0, 1] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[0, 2] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[0, 3] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[1, 0] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[1, 1] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[1, 2] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[1, 3] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[2, 0] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[2, 1] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[2, 2] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[2, 3] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[3, 0] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[3, 1] = Create <Terrain.Terrain>(GameManager.GrassTerrain);
            TerrainMap[3, 2] = Create <Terrain.Terrain>(GameManager.WallTerrain);
            TerrainMap[3, 3] = Create <Terrain.Terrain>(GameManager.ForrestTerrain);

            CharacterMap[0, 0]        = Create <Character>(GameManager.KnightPrefab);
            CharacterMap[0, 0].Player = AiPlayer;
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].Items.Add(IronSword.Create());
            CharacterMap[0, 0].AddProficiency(new Proficiency(typeof(Sword), Proficiency.Rank.E));

            CharacterMap[0, 1]        = Create <Character>(GameManager.KnightPrefab);
            CharacterMap[0, 1].Player = AiPlayer;
            CharacterMap[0, 1].Items.Add(IronSword.Create());

            CharacterMap[0, 2]        = Create <Character>(GameManager.KnightPrefab);
            CharacterMap[0, 2].Player = AiPlayer;
            CharacterMap[0, 2].Items.Add(IronSword.Create());

            CharacterMap[0, 3]        = Create <Character>(GameManager.KnightPrefab);
            CharacterMap[0, 3].Player = AiPlayer;
            CharacterMap[0, 3].Items.Add(IronSword.Create());

            CharacterMap[2, 3]        = Create <Character>(GameManager.KnightPrefab);
            CharacterMap[2, 3].Player = AiPlayer;
            CharacterMap[2, 3].Items.Add(IronSword.Create());

            CharacterMap[1, 2]        = Create <Character>(GameManager.WizardPrefab);
            CharacterMap[1, 2].Player = AiPlayer;
            CharacterMap[1, 2].Items.Add(IronSword.Create());
            CharacterMap[1, 2].Items.Add(Incinerate.Create());

            CharacterMap[2, 2]        = Create <Character>(GameManager.WizardPrefab);
            CharacterMap[2, 2].Player = HumanPlayer;
            CharacterMap[2, 2].Items.Add(IronSword.Create());
            CharacterMap[2, 2].Items.Add(Fire.Create());
            CharacterMap[2, 2].AddProficiency(new Proficiency(typeof(FireMagic), Proficiency.Rank.E));
            CharacterMap[2, 2].AddProficiency(new Proficiency(typeof(HealingStaff), Proficiency.Rank.E));

            CharacterMap[2, 1]           = Create <Character>(GameManager.WizardPrefab);
            CharacterMap[2, 1].Player    = HumanPlayer;
            CharacterMap[2, 1].CurrentHp = 10;
            CharacterMap[2, 1].AddProficiency(new Proficiency(typeof(HealingStaff), Proficiency.Rank.E));
            CharacterMap[2, 1].Items.Add(Fire.Create());
            CharacterMap[2, 1].AddProficiency(new Proficiency(typeof(FireMagic), Proficiency.Rank.E));

            CharacterMap[3, 3]        = Create <Character>(GameManager.KnightPrefab);
            CharacterMap[3, 3].Player = AiPlayer;
            CharacterMap[3, 3].Items.Add(IronAxe.Create());

            StartPosition = new Vector2(0, 0);
        }