Пример #1
0
        /// <summary>
        /// 保存物品
        /// </summary>
        /// <param name="treasure">物品对象</param>
        public void SaveTreasure(Treasure treasure)
        {
            //获取当前操作的物品对象
            var dbEntry = context.Treasures.Find(treasure.TreasureUID);

            //如果当前物品的GUID不存在,则新建
            if (dbEntry == null)
            {
                context.Treasures.Add(treasure);
            }
            //否则就更新数据
            else
            {
                //当前对象不为空,更新操作
                if (dbEntry != null)
                {
                    dbEntry.TreasureName     = treasure.TreasureName ?? dbEntry.TreasureName;
                    dbEntry.DetailContent    = treasure.DetailContent ?? dbEntry.DetailContent;
                    dbEntry.UpdateTime       = DateTime.Now;
                    dbEntry.TreasureType     = treasure.TreasureType ?? dbEntry.TreasureType;
                    dbEntry.TradeRange       = treasure.TradeRange ?? dbEntry.TradeRange;
                    dbEntry.Remarks          = treasure.Remarks ?? dbEntry.Remarks;
                    dbEntry.LocationProvince = treasure.LocationProvince ?? dbEntry.LocationProvince;
                    dbEntry.LocationDistrict = treasure.LocationDistrict ?? dbEntry.LocationDistrict;
                    dbEntry.LocationCity     = treasure.LocationCity ?? dbEntry.LocationCity;
                    dbEntry.DamageDegree     = treasure.DamageDegree ?? dbEntry.DamageDegree;
                    dbEntry.EditCount       += 1;
                }
            }

            //保存更改
            context.SaveChanges();
        }
Пример #2
0
        public async Task <IActionResult> PostTreasure([FromBody] Treasure treasure)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Treasure.Add(treasure);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (TreasureExists(treasure.Id))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetTreasure", new { id = treasure.Id }, treasure));
        }
Пример #3
0
    void OnTriggerEnter2D(Collider2D collision)
    {
        if (Status == MiningMachineStatus.Drop)
        {
            if (collision.tag == "Wall")
            {
                Status = MiningMachineStatus.Drag;
            }
            else if (collision.tag == "Treasures")
            {
                Treasure treasure          = collision.transform.GetComponentInParent <Treasure>();
                float    treasureHalfWidth = treasure.GetComponent <SpriteRenderer>().sprite.bounds.size.x * 0.5f;

                treasure.transform.position = hook.transform.position + hook.transform.right * treasureHalfWidth;
                treasure.transform.SetParent(hook.transform);

                DragTreasure = treasure;
                Status       = MiningMachineStatus.Drag;
            }
            else if (collision.tag == "Chest")
            {
                Status = MiningMachineStatus.Drag;
            }
        }
    }
 public Coin(Treasure.CoinNames name, string description, Treasure.Material typeOfMaterial, int quantityOfMaterial)
 {
     _name = name;
     _description = description;
     _typeOfMaterial = typeOfMaterial;
     _quantitiyOfMaterial = quantityOfMaterial;
 }
Пример #5
0
    /// <summary>
    /// Gets the permanent data
    /// </summary>
    public void getData()
    {
        //Get quests
        quests = new List <Quest>();
        string questsResult = SQL.Instance.executeQuery("select * from quest");

        if (questsResult != "TRUE")
        {
            string[] questSplitResult = questsResult.Split('*');
            foreach (string quest in questSplitResult)
            {
                quests.Add(JsonUtility.FromJson <Quest>(quest));
            }
        }

        //Get players
        players.list = new List <Player>();
        players      = JsonUtility.FromJson <playerWrapper>(board.players);

        //Get treasure
        treasure = JsonUtility.FromJson <Treasure>(board.treasure);

        //Get layout
        layout = JsonUtility.FromJson <layoutWrapper>(board.layout);

        //Set map
        setMap();

        //Assign quests to player
        defineQuests();
    }
Пример #6
0
        public void AddTreasureToMap_ShouldAddTreasureTileToMap()
        {
            Treasure treasure = new Treasure(1, 5, 5);

            TestMap.AddTreasureToMap(treasure);
            Assert.AreEqual(TileType.TREASURE, TestMap.TileMap[5, 5].tileType);
        }
Пример #7
0
 public void SwpanTreasure()
 {
     float    treasureX        = Random.Range(transform.position.x + 1, transform.position.x + blockWidth - 1);
     float    treasureY        = Random.Range(transform.position.y - 1, transform.position.y - blockWidth + 1);
     Vector2  treasurePoistion = new Vector2(treasureX, treasureY);
     Treasure treasure         = ((GameObject)Instantiate(Resources.Load("Item/Treasure"), treasurePoistion, Quaternion.identity)).GetComponent <Treasure>();
 }
Пример #8
0
    private void Update()
    {
        text.transform.LookAt(Camera.main.transform.position);

        if (clickCount == 3)
        {
            if (treasure.bombs > 0)
            {
                BombField.instance.Init(this, treasure);
                clickCount++;
            }
            else
            {
                GamePreferences.instance.oranges   += treasure.oranges;
                GamePreferences.instance.reindeers += treasure.reindeers;
                GamePreferences.instance.SaveData();

                //FindObjectOfType<Vuforia.VuforiaBehaviour>().enabled = true;
                Destroy(gameObject);

                var addTreasure = new Treasure
                {
                    oranges   = treasure.oranges,
                    reindeers = treasure.reindeers,
                    bombs     = 1 + 2 * treasure.bombs
                };
                AddManager.isntance.InitWatchAdd(addTreasure);
            }
        }
    }
        public Treasure GenerateFor(Creature creature, int level)
        {
            var creatureName = GetCreatureNameForTreasure(creature.Name, creature.Description);
            var coinMultiplier = adjustmentSelector.Select<double>(TableNameConstants.TreasureAdjustments, creatureName, TreasureConstants.Coin);
            var goodsMultiplier = adjustmentSelector.Select<double>(TableNameConstants.TreasureAdjustments, creatureName, TreasureConstants.Goods);
            var itemsMultiplier = adjustmentSelector.Select<double>(TableNameConstants.TreasureAdjustments, creatureName, TreasureConstants.Items);

            var treasure = new Treasure();
            treasure.Coin = coinGenerator.GenerateAtLevel(level);

            var rawQuantity = coinMultiplier * treasure.Coin.Quantity;
            treasure.Coin.Quantity = Convert.ToInt32(rawQuantity);

            while (booleanPercentileSelector.SelectFrom(goodsMultiplier--))
            {
                var goods = goodsGenerator.GenerateAtLevel(level);
                treasure.Goods = treasure.Goods.Union(goods);
            }

            while (booleanPercentileSelector.SelectFrom(itemsMultiplier--))
            {
                var items = itemsGenerator.GenerateAtLevel(level);
                treasure.Items = treasure.Items.Union(items);
            }

            var setTreasure = GetSetTreasure(creatureName, creature.Quantity);
            treasure.Items = treasure.Items.Union(setTreasure);

            return treasure;
        }
Пример #10
0
        static void Main(string[] args)
        {
        #if (!DEBUG)
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
        #endif

            Console.Title = ServerVersion.GetBuildString();
            ConfigReader.OpenConfig();
            CrossDomainPolicy.GetPolicy();
            Database.OpenDatabase();
            GameDataJson.ReadGamedata();

            Map.OpenMap();
            World.ReadWorldData();
            Treasure.Init();

            DroppedItems.Init();
            WildHorse.Init();

            Drawingroom.LoadAllDrawingRooms();
            Brickpoet.LoadPoetryRooms();
            Multiroom.CreateMultirooms();

            Auction.LoadAllAuctionRooms();

            Item.DoSpecialCases();

            GameServer.StartServer();

            while (true)
            {
            }
            ;
        }
Пример #11
0
    public void Open()
    {
        Treasure treasure = Instantiate(_treasure, transform.position, Quaternion.identity).GetComponent <Treasure>();

        treasure.Data = TreasureData;
        Destroy(gameObject);
    }
Пример #12
0
        private void RandomiseBtn_Click(object sender, EventArgs e)
        {
            if (this.fParcel.MagicItemID != Guid.Empty)
            {
                MagicItem magicItem = Treasure.RandomMagicItem(this.fParcel.FindItemLevel());
                if (magicItem != null)
                {
                    this.fParcel.SetAsMagicItem(magicItem);
                }
                this.set_controls();
                return;
            }
            if (this.fParcel.ArtifactID != Guid.Empty)
            {
                Artifact artifact = Treasure.RandomArtifact(this.fParcel.FindItemTier());
                if (artifact != null)
                {
                    this.fParcel.SetAsArtifact(artifact);
                }
                this.set_controls();
                return;
            }
            int value = this.fParcel.Value;

            if (value == 0)
            {
                value = Treasure.GetItemValue(Session.Project.Party.Level);
            }
            this.fParcel         = Treasure.CreateParcel(value, false);
            this.NameBox.Text    = this.fParcel.Name;
            this.DetailsBox.Text = this.fParcel.Details;
            this.set_controls();
        }
Пример #13
0
        public ActionResult Create([Bind(Include = "TreasureID,Name,LocationID")] Treasure image)
        {
            // since we can uplaod just one file, we get the first one
            var file = Request.Files[0];
            // save images in server root in treasures dir
            var filePath = file.FileName;
            var fullPath = Server.MapPath("~/treasures/") + file.FileName;

            LovNaZaklad_WebAPI.EmguCV.ImageComparer imgCompare = new EmguCV.ImageComparer();
            float[] features = imgCompare.features(file.InputStream);

            // save features to database
            if (ModelState.IsValid)
            {
                db.Treasures.Add(new Treasure
                {
                    Name  = image.Name,
                    Image = new Image
                    {
                        Path     = filePath,
                        Features = string.Join(" ", features)
                    },
                    LocationID = image.LocationID
                });
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.LocationID = new SelectList(db.Locations, "LocationID", "Name", image.LocationID);
            return(View(image));
        }
Пример #14
0
        /// <summary>
        /// Calculates the level of the contained magic item.
        /// </summary>
        /// <returns>Returns the level.</returns>
        public int FindItemLevel()
        {
            MagicItem item = Session.FindMagicItem(fMagicItemID, SearchType.Global);

            if (item != null)
            {
                return(item.Level);
            }

            int index = Treasure.PlaceholderIDs.IndexOf(fMagicItemID);

            if (index != -1)
            {
                return(index + 1);
            }

            if (fValue > 0)
            {
                for (int level = 30; level >= 1; --level)
                {
                    int value = Treasure.GetItemValue(level);
                    if (value < fValue)
                    {
                        return(level);
                    }
                }
            }

            return(-1);
        }
Пример #15
0
    private void Update()
    {
        if (treasure == null)
        {
            treasure = FindObjectOfType <Treasure>();
        }

        if (waveEnded)
        {
            StopWave();
        }

        else if (cooldownEnded)
        {
            cooldownEnded = false;
            StartWave(currentWave + 1);
        }

        else if (gameEnded)
        {
            gameEnded = false;
            Debug.LogWarning("Game Set and Match");
            ScoreText.text = "Congratulations!! Chester made it home!!";
            EndgameUI.SetActive(true);
            eventSystem.SetSelectedGameObject(menuButton);
        }
    }
Пример #16
0
        public async Task <IActionResult> PutTreasure([FromRoute] int id, [FromBody] Treasure treasure)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != treasure.Id)
            {
                return(BadRequest());
            }

            _context.Entry(treasure).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TreasureExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #17
0
 void randomise_parcel(Parcel parcel)
 {
     if (parcel.MagicItemID != Guid.Empty)
     {
         int level = parcel.FindItemLevel();
         if (level != -1)
         {
             MagicItem new_item = Treasure.RandomMagicItem(level);
             if (new_item != null)
             {
                 parcel.SetAsMagicItem(new_item);
             }
         }
     }
     else if (parcel.ArtifactID != Guid.Empty)
     {
         Tier     tier     = parcel.FindItemTier();
         Artifact new_item = Treasure.RandomArtifact(tier);
         if (new_item != null)
         {
             parcel.SetAsArtifact(new_item);
         }
     }
     else
     {
         if (parcel.Value != 0)
         {
             parcel.Details = Treasure.RandomMundaneItem(parcel.Value);
         }
     }
 }
Пример #18
0
    void Start()
    {
        m_PlayerTrans = gameObject.transform.parent;
        Input.location.Start();
        Input.compass.enabled = true;
        m_Camera = GetComponent <Camera>();
        startOrthoGraphicSize = m_Camera.orthographicSize;
        m_CameraBounds        = GameObject.Find("CameraBoundsGlobal").GetComponent <BoxCollider2D>();
        m_Min = m_CameraBounds.bounds.min;
        m_Max = m_CameraBounds.bounds.max;

        GameObject   district = GameManager.s_Singleton.DistrictManager.GetDistrictByName(CurrentGame.Instance.GetMainSquare());
        HeadDistrict hd       = district.GetComponent <HeadDistrict>();
        Treasure     t        = hd.transform.GetComponentInChildren <Treasure>();

        m_headDistrictObject = t.gameObject;

        btnPos = GameObject.Find("BtnPosition").GetComponent <Button>();
        btnPos.onClick.AddListener(ResetCameraPosition);

        hdPos = GameObject.Find("BtnMainSquare").GetComponent <Button>();
        hdPos.onClick.AddListener(SetHdPosition);

        btnRot = GameObject.Find("BtnRotation").GetComponent <Button>();
        btnRot.onClick.AddListener(ResetCameraRotation);
    }
Пример #19
0
    private void Loose()
    {
        GamePreferences.instance.oranges   -= treasure.oranges;
        GamePreferences.instance.reindeers -= treasure.reindeers;

        if (GamePreferences.instance.oranges < 0)
        {
            GamePreferences.instance.oranges = 0;
        }
        if (GamePreferences.instance.reindeers < 0)
        {
            GamePreferences.instance.reindeers = 0;
        }

        GamePreferences.instance.SaveData();

        var exp = Instantiate(explosion, bombObj.transform.position, Quaternion.identity) as GameObject;

        Destroy(exp, 2);

        bombObj.transform.localScale = Vector3.zero;

        Invoke("DestroyedEnd", 2);
        treasure = null;
    }
Пример #20
0
        public Task <Treasure> GetTreasure(Guid Tid)
        {
            Treasure treasure = db.Treasures
                                .Where(t => t.Id.Equals(Tid)).FirstOrDefault();

            return(Task.FromResult(treasure));
        }
Пример #21
0
        public void initializeTest()
        {
            instruct = new InstructionDto();

            var advent1 = new Adventurer {
                PosX = 0, PosY = 0, MovementList = "A", Name = "Indiana", FinishMoving = false, PlayerOrientation = "S", Treasures = 0
            };
            var advent2 = new Adventurer {
                PosX = 3, PosY = 3, MovementList = "ADDGA", Name = "Shia", FinishMoving = false, PlayerOrientation = "O", Treasures = 0
            };

            instruct.adventurer = new List <IAdventurer> {
                advent1, advent2
            };
            instruct.mapSizeX = 5;
            instruct.mapSizeY = 5;
            var mountain = new Mountain(1, 1)
            {
                GotAdventurer = false, tileType = TileType.MOUNTAIN
            };
            var treasure = new Treasure(2, 2, 2)
            {
                GotAdventurer = false, tileType = TileType.TREASURE
            };

            instruct.tiles = new List <ITile> {
                mountain, treasure
            };
            map           = new Map(5, 5);
            loopClassTest = new LoopClass(map);
            //Assert
        }
Пример #22
0
        public Game(IMonsterFactory factory)
        {
            gamer = new Hero(); // герой, за которого играем

            //Список комнат в локации
            Room[] rooms = new Room[]
            {
                new Room(),
                new Room(),
                new Room()
            };

            //Список сокровищ в локации
            Treasure[] treasures = new Treasure[]
            {
                new Treasure(),
                new Treasure(),
                new Treasure()
            };

            IMonster[] monsters = new IMonster[50]; // Список монстров в локации

            for (int i = 0; i < monsters.Length; i++)
            {
                monsters[i] = factory.Create(); // задаем тип монстра
            }

            location = new Dangeon(monsters, rooms, treasures); // инициализация игровой локации
        }
Пример #23
0
        public Layer CreateLayer(LayersInfo info, int depth, int skip, bool forceTreasure)
        {
            var layer = new DirtLayer();

            Sprite sprite = default;

            if (depth == 0)
            {
                sprite = info.TopVariants.GetRandomElement();
            }
            else if (depth == _maxDepth - 1)
            {
                sprite = info.BottomVariants.GetRandomElement();
            }
            else
            {
                sprite = info.MiddleVariants.GetRandomElement();
            }

            if (depth != 0)
            {
                if (forceTreasure || (skip == 0 && Random.Range(0f, 1f) < info.TreasureProbability))
                {
                    var treasure = new Treasure();
                    treasure.Initialize(info.TreasureVariants.GetRandomElement(), _treasurePool.GetTreasure);
                    layer.SetTreasure(treasure);
                }
            }

            var color = info.DepthGradient.Evaluate((float)depth / _maxDepth);

            layer.Initialize(sprite, color, depth == _maxDepth - 1);

            return(layer);
        }
Пример #24
0
    public void Awake()
    {
#if UNITY_EDITOR
        totalValue = 300;
#endif
        collectedValue = 0;
        interactable   = false;
        warningPresent = true;
        I = this;

        LocationManager.Exit += OnExit;

        List <Spawn> spawns;
        treasures = new List <Treasure>();
        // Split up treasure
        spawns = new List <Spawn>(treasureSpawns.GetComponentsInChildren <Spawn>());
        spawns.Shuffle();
        treasures = new List <Treasure>(spawns.Count);
        foreach (Spawn spawn in spawns)
        {
            // Pick value based on leftover value
            int value;
            if (totalValue > 150)
            {
                value = Random.Range(150, 250);
            }
            else if (totalValue > 50)
            {
                value = Mathf.Min(Random.Range(50, 100), totalValue - Random.Range(1, 50));
            }
            else
            {
                value = totalValue;
            }
            // Spawn
            if (totalValue > 0)
            {
                Treasure treasure = Instantiate(treasurePrefab);
                treasure.value = value;
                treasure.transform.SetParent(transform, false);
                treasure.transform.position = spawn.transform.position;
                // Add to list
                treasures.Add(treasure);
                // Subtract value
                totalValue -= value;
            }
        }

        // Warning sign
        spawns = new List <Spawn>(warningSignSpawns.GetComponentsInChildren <Spawn>());
        spawns.Shuffle();
        _warningSign      = Instantiate(warningSignPrefab);
        _warningSign.name = warningSignPrefab.name;
        _warningSign.transform.SetParent(transform, false);
        _warningSign.transform.position = spawns[0].transform.position;

        // Start off screen
        transform.localPosition = Vector3.right * 10f;
    }
    private void OnLevelInitialized()
    {
        _playerDie = FindObjectOfType <PlayerDie>();
        _treasure  = FindObjectOfType <Treasure>();

        _playerDie.PlayerDied       += OnPlayerDied;
        _treasure.TreasureCollected += OnTreasureCollected;
    }
Пример #26
0
 public void SetAsMagicItem(MagicItem item)
 {
     this.fName        = item.Name;
     this.fDetails     = item.Description;
     this.fMagicItemID = item.ID;
     this.fArtifactID  = Guid.Empty;
     this.fValue       = Treasure.GetItemValue(item.Level);
 }
Пример #27
0
    /// <summary>
    /// Initialises the class.
    /// </summary>
    private void Start()
    {
        GameObject   district = GameManager.s_Singleton.DistrictManager.GetDistrictByName(CurrentGame.Instance.GetMainSquare());
        HeadDistrict hd       = district.GetComponent <HeadDistrict>();
        Treasure     t        = hd.transform.GetComponentInChildren <Treasure>();

        m_headDistrictObject = t.gameObject;
    }
Пример #28
0
        public TreasureDetailsPage(Game game, Treasure treasure)
        {
            ViewModel.Treasure = treasure;
            ViewModel.SetGame(game);

            InitializeComponent();
            heroImage.GestureRecognizers.Add(new TapGestureRecognizer((obj) => HeroImageClicked()));
        }
Пример #29
0
        private static Treasure[] InitTreasures()
        {
            Treasure[] result = new Treasure[COUNT_TREASURES];

            //создать oбъекты каждого сокровища

            return(result);
        }
Пример #30
0
    public void Init(Gift gift, Treasure treasure)
    {
        this.treasure = treasure;
        this.gift     = gift;
        progress      = startProgress;

        print("Init!");
    }
Пример #31
0
 public void AcquireTreasure(Treasure treasure)
 {
     ModifyGold(treasure.GetGold());
     ModifyHealth(treasure.GetHealth());
     ModifySanity(treasure.GetSanity());
     ModifyAttack(treasure.GetAttack());
     ModifyDieStrength(treasure.GetDieStrength());
 }
Пример #32
0
        public void Initialize(Dice dice)
        {
            Dice             = dice;
            HitPointDice     = Dice.Roll(HitPointDiceRollEvent);
            CurrentHitPoints = MaxHitPoints;

            Treasure = Treasure.Create(dice, TreasureType);
        }
Пример #33
0
 // TODO Sprint 3 Mod 05b - modify the ConsoleView constructor to accept the treasure object
 /// <summary>
 /// constructor to create the console view, send all major data objects
 /// </summary>
 /// <param name="myPlayer">active player object</param>
 /// <param name="hall">current hall object</param>
 /// <param name="hall">current guest list object</param>
 public ConsoleView(Player myPlayer, Hall hall, GuestList guests, StaffList staff, Treasure treasure)
 {
     _myPlayer = myPlayer;
     _hall = hall;
     _guestList = guests;
     _staffList = staff;
     _treasure = treasure;
     InitializeConsoleWindow();
 }
Пример #34
0
 public Treasure(DataRow data, Treasure parent = null)
 {
     Parent = parent;
     Name = data["treasureClass"].ToString();
     NoDrop = 100 - (float) data["noDrop"];
     PickType = (PickTypes) data["pickType"];
     SpawnCondition = (Bitmask01) data["spawnCondition"];
     Difficulty = (int) data["gameModeRestriction1"];
     for (var i = 0; i < 8; i++)
         Drops.Add(GetDropClass(data, i + 1));
 }
Пример #35
0
  public bool startTurn()
  {
    iteration++;
    int count = 0;
    count = Client.getPirateCount(connection);
    pirates = new Pirate[count];
    for(int i = 0; i < count; i++)
    {
      pirates[i] = new Pirate(Client.getPirate(connection, i));
    }
    count = Client.getPlayerCount(connection);
    players = new Player[count];
    for(int i = 0; i < count; i++)
    {
      players[i] = new Player(Client.getPlayer(connection, i));
    }
    count = Client.getPortCount(connection);
    ports = new Port[count];
    for(int i = 0; i < count; i++)
    {
      ports[i] = new Port(Client.getPort(connection, i));
    }
    count = Client.getShipCount(connection);
    ships = new Ship[count];
    for(int i = 0; i < count; i++)
    {
      ships[i] = new Ship(Client.getShip(connection, i));
    }
    count = Client.getTileCount(connection);
    tiles = new Tile[count];
    for(int i = 0; i < count; i++)
    {
      tiles[i] = new Tile(Client.getTile(connection, i));
    }
    count = Client.getTreasureCount(connection);
    treasures = new Treasure[count];
    for(int i = 0; i < count; i++)
    {
      treasures[i] = new Treasure(Client.getTreasure(connection, i));
    }

    if(!initialized)
    {
      initialized = true;
      init();
    }
    return run();
  }
Пример #36
0
 public void AddTreasure(Treasure myTreasure)
 {
     //Ran by anything with the Treasure componenet, this will sort them and add them to the appropriate scripts
     switch (myTreasure._treasureType){
     case TreasureType.blue:
         blueTreasure.Add (myTreasure);
     break;
     case TreasureType.red:
         redTreasure.Add (myTreasure);
     break;
     case TreasureType.green:
         greenTreasure.Add (myTreasure);
     break;
     case TreasureType.yellow:
         yellowTreasure.Add (myTreasure);
     break;
     }
 }
        public void GenerateHiddenContainedTreasure()
        {
            selectedContents.Contents.Miscellaneous = new[] { ContentsTypeConstants.Treasure };

            var generatedTreasure = new Treasure();
            mockTreasureGenerator.Setup(g => g.GenerateAtLevel(9266)).Returns(generatedTreasure);

            mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.TreasureContainers)).Returns("container");
            mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.TreasureConcealment)).Returns("peek-a-boo");

            var contents = contentsGenerator.Generate(9266);
            Assert.That(contents.IsEmpty, Is.False);
            Assert.That(contents.Miscellaneous.Single(), Is.EqualTo(ContentsTypeConstants.Treasure));

            var treasure = contents.Treasures.Single();
            Assert.That(treasure.Treasure, Is.EqualTo(generatedTreasure));
            Assert.That(treasure.Container, Is.EqualTo("container"));
            Assert.That(treasure.Concealment, Is.EqualTo("peek-a-boo"));
        }
Пример #38
0
        private void GiveTreasure(int playerId, Treasure treasure)
        {
            // Treasure may have coins
            if (treasure.Coins > 0)
            {
                eventManager.QueueEvent(EventType.GiveCoins, new GiveCoinsEventArgs(playerId, treasure.Coins));
            }

            // Treasure may have equipment
            if (treasure.Equipment != null)
            {
                eventManager.QueueEvent(EventType.GiveEquipment, new GiveEquipmentEventArgs(playerId, treasure.Equipment.Id, true));
            }

            if (treasure.IsTreasureCache)
            {
                // If treasure is a cache
                GiveTreasure(playerId, gameState.getTreasures(1, treasure.Rarity).First());
            }
            else
            {
                return; // We are done here!
            }
        }
        // TODO Sprint 3 Mod 02b - add a method to initialze the game treasure types
        /// <summary>
        /// intitialize the type of treasures in the game
        /// </summary>
        public void InitializeTreasures()
        {
            _treasures = new Treasure();

            // TODO Sprint 3 Mod 06 - initialize the coin types
            Coin goldCoin = new Coin(
                "Small Gold Coin",
                "Gold coin with the Kings's face on one side and the Castle Wilhelm on the other side.",
                Treasure.Material.Gold,
                1);

            Coin silverCoin = new Coin(
                "Samll Silver Coin",
                "Silver coin with the Queen's face on one side and the River Thomes on the other side.",
                Treasure.Material.Silver,
                1);

            Coin bronzeCoin = new Coin(
                "Small Bronze Coin",
                "Bronze coin with the Prince's face on one side and Mount Fidoria on the other side.",
                Treasure.Material.Bronze,
                1);

            _treasures.CoinTypes.Add(goldCoin);
            _treasures.CoinTypes.Add(silverCoin);
            _treasures.CoinTypes.Add(bronzeCoin);
        }
Пример #40
0
 public Equipment()
 {
     Treasure = new Treasure();
 }
Пример #41
0
        private bool Simplify(Treasure treasure)
        {
            Treasure last = null;
            var doSimplify = false;

            foreach (var drop in treasure.Drops)
            {
                if (drop.Type == 0) continue;
                if (!(drop.Content is Treasure)) break;
                if (last != null)
                {
                    if (drop.Content.Equals(last))
                    {
                        doSimplify = true;
                        continue;
                    }
                    if (doSimplify)
                    {
                        treasure.Drops.Remove(drop);
                        treasure.Parent.Drops.Add(drop);
                        return false;
                    }
                }

                last = (Treasure) drop.Content;
            }

            if (doSimplify)
            {
                Drop lastDrop = null;
                foreach (var drop in treasure.Drops)
                {
                    var t = drop.Content as Treasure;
                    if (t == null) break;

                    if (lastDrop != null)
                        if (!(drop.Equals(lastDrop)))
                        {
                            lastDrop = drop;
                            continue;
                        }

                    lastDrop = drop;
                    switch (t.Difficulty)
                    {
                        case 0:
                            treasure.NormalChance = t.NoDrop;
                            break;
                        case 1:
                            treasure.NightmareChance = t.NoDrop;
                            break;
                        case 2:
                            treasure.HellChance = t.NoDrop;
                            break;
                    }

                    treasure.Drops = ((Treasure) drop.Content).Drops;
                }
            }
            return true;
        }
Пример #42
0
        public void NPCIsHalfLevel(int npcLevel, int effectiveLevel)
        {
            characterClass.Level = npcLevel;
            characterClass.Name = "class name";
            npcs.Add(characterClass.Name);

            var npcTreasure = new Treasure();
            mockTreasureGenerator.Setup(g => g.GenerateAtLevel(effectiveLevel)).Returns(npcTreasure);

            var equipment = equipmentGenerator.GenerateWith(feats, characterClass, race);
            Assert.That(equipment.Treasure, Is.EqualTo(npcTreasure));
        }
Пример #43
0
        public void GetTreasureForAllCreatures()
        {
            encounterTypeAndAmount["other creature"] = "other creature amount";

            mockRollSelector.Setup(s => s.SelectFrom("other creature amount", 9876)).Returns("other effective roll");
            mockDice.Setup(d => d.Roll("other effective roll")).Returns(600);

            var otherTreasure = new Treasure();
            otherTreasure.Coin.Quantity = 1337;
            mockEncounterTreasureGenerator.Setup(g => g.GenerateFor(It.Is<Creature>(c => c.Name == "other creature"), level)).Returns(otherTreasure);

            var encounter = encounterGenerator.Generate(environment, level, temperature, timeOfDay);
            Assert.That(encounter, Is.Not.Null);
            Assert.That(encounter.Treasures, Contains.Item(treasure));
            Assert.That(encounter.Treasures, Contains.Item(otherTreasure));
            Assert.That(encounter.Treasures.Count, Is.EqualTo(2));
        }
Пример #44
0
        public void Setup()
        {
            mockTypeAndAmountPercentileSelector = new Mock<ITypeAndAmountPercentileSelector>();
            mockRollSelector = new Mock<IRollSelector>();
            mockPercentileSelector = new Mock<IPercentileSelector>();
            mockCollectionSelector = new Mock<ICollectionSelector>();
            mockDice = new Mock<Dice>();
            mockEncounterCharacterGenerator = new Mock<IEncounterCharacterGenerator>();
            mockEncounterTreasureGenerator = new Mock<IEncounterTreasureGenerator>();
            mockFilterVerifier = new Mock<IFilterVerifier>();
            mockCreatureCollectionSelector = new Mock<IEncounterCollectionSelector>();

            encounterGenerator = new EncounterGenerator(mockTypeAndAmountPercentileSelector.Object, mockRollSelector.Object, mockPercentileSelector.Object, mockCollectionSelector.Object,
                mockDice.Object, mockEncounterCharacterGenerator.Object, mockEncounterTreasureGenerator.Object, mockFilterVerifier.Object, mockCreatureCollectionSelector.Object);

            encounterLevelAndModifier = new Dictionary<string, string>();
            encounterTypeAndAmount = new Dictionary<string, string>();
            requiresSubtype = new List<string>();

            level = 9266;
            environment = "environment";
            temperature = "temperature";
            timeOfDay = "time of day";
            encounterLevelAndModifier["90210"] = "9876";
            encounterTypeAndAmount["creature"] = "creature amount";
            treasure = new Treasure();
            treasure.Coin.Quantity = 8765;

            var tableName = string.Format(TableNameConstants.LevelXEncounterLevel, level);
            mockTypeAndAmountPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(encounterLevelAndModifier);

            mockCreatureCollectionSelector.Setup(s => s.SelectFrom(90210, environment, temperature, timeOfDay)).Returns(encounterTypeAndAmount);
            mockCreatureCollectionSelector.Setup(s => s.SelectAllFrom(level, environment, temperature, timeOfDay)).Returns(new[] { encounterTypeAndAmount });

            mockRollSelector.Setup(s => s.SelectFrom("creature amount", 9876)).Returns("effective roll");
            mockDice.Setup(d => d.Roll(It.IsAny<string>())).Returns((string s) => ParseRoll(s));
            mockDice.Setup(d => d.Roll("effective roll")).Returns(42);

            mockCollectionSelector.Setup(s => s.SelectFrom(TableNameConstants.CreatureGroups, GroupConstants.RequiresSubtype)).Returns(requiresSubtype);
            mockCollectionSelector.Setup(s => s.SelectRandomFrom(It.IsAny<IEnumerable<string>>())).Returns((IEnumerable<string> c) => c.Last());

            mockFilterVerifier.Setup(v => v.FiltersAreValid(environment, level, temperature, timeOfDay)).Returns(true);
            mockFilterVerifier.Setup(v => v.EncounterIsValid(It.IsAny<Dictionary<string, string>>(), It.IsAny<int>())).Returns(true);

            mockEncounterTreasureGenerator.Setup(g => g.GenerateFor(It.Is<Creature>(c => c.Name == "creature"), level)).Returns(treasure);
            mockEncounterTreasureGenerator.Setup(g => g.GenerateFor(It.Is<Creature>(c => c.Name != "creature"), level)).Returns(() => new Treasure());
        }
Пример #45
0
        public void PlayerCharacterIsFullLevel(int level, int effectiveLevel)
        {
            characterClass.Level = level;
            characterClass.Name = "class name";
            npcs.Add("npc class");

            var playerTreasure = new Treasure();
            mockTreasureGenerator.Setup(g => g.GenerateAtLevel(effectiveLevel)).Returns(playerTreasure);

            var equipment = equipmentGenerator.GenerateWith(feats, characterClass, race);
            Assert.That(equipment.Treasure, Is.EqualTo(playerTreasure));
        }
Пример #46
0
        public void Setup()
        {
            mockWeaponGenerator = new Mock<IWeaponGenerator>();
            mockCollectionsSelector = new Mock<ICollectionsSelector>();
            mockArmorGenerator = new Mock<IArmorGenerator>();
            mockTreasureGenerator = new Mock<ITreasureGenerator>();
            generator = new ConfigurableIterationGenerator(3);
            equipmentGenerator = new EquipmentGenerator(mockCollectionsSelector.Object, mockWeaponGenerator.Object,
                mockTreasureGenerator.Object, mockArmorGenerator.Object, generator);
            feats = new List<Feat>();
            characterClass = new CharacterClass();
            meleeWeapon = new Item();
            rangedWeapon = new Item();
            baseRangedWeaponTypes = new List<string>();
            armor = new Item();
            treasure = new Treasure();
            race = new Race();
            shieldProficiencyFeats = new List<string>();
            weaponProficiencyFeats = new List<string>();
            npcs = new List<string>();

            characterClass.Level = 9266;
            meleeWeapon.Name = "melee weapon";
            meleeWeapon.ItemType = ItemTypeConstants.Weapon;
            meleeWeapon.Attributes = new[] { AttributeConstants.Melee };
            rangedWeapon.Name = "ranged weapon";
            rangedWeapon.ItemType = ItemTypeConstants.Weapon;
            rangedWeapon.Attributes = new[] { "not melee" };
            armor.Name = "armor";
            armor.ItemType = ItemTypeConstants.Armor;
            baseRangedWeaponTypes.Add("base ranged weapon");
            treasureItem = new Item { Name = "treasure item" };
            treasure.Items = new[] { treasureItem };

            mockWeaponGenerator.Setup(g => g.GenerateFrom(feats, characterClass, race)).Returns(meleeWeapon);
            mockWeaponGenerator.Setup(g => g.GenerateRangedFrom(feats, characterClass, race)).Returns(rangedWeapon);
            mockWeaponGenerator.Setup(g => g.GenerateMeleeFrom(feats, characterClass, race)).Returns(meleeWeapon);
            mockArmorGenerator.Setup(g => g.GenerateArmorFrom(feats, characterClass, race)).Returns(armor);
            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.ItemGroups, It.IsAny<string>())).Returns((String table, String name) => new[] { name });
            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.ItemGroups, rangedWeapon.Name)).Returns(baseRangedWeaponTypes);
            mockTreasureGenerator.Setup(g => g.GenerateAtLevel(9266)).Returns(treasure);
            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.FeatGroups, AttributeConstants.Shield + GroupConstants.Proficiency))
                .Returns(shieldProficiencyFeats);
            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.FeatGroups, ItemTypeConstants.Weapon + GroupConstants.Proficiency))
                .Returns(weaponProficiencyFeats);
            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.ClassNameGroups, GroupConstants.NPCs))
                .Returns(npcs);
        }
Пример #47
0
        public void Setup()
        {
            mockPercentileSelector = new Mock<IPercentileSelector>();
            mockEncounterGenerator = new Mock<IEncounterGenerator>();
            mockTreasureGenerator = new Mock<ITreasureGenerator>();
            poolGenerator = new DomainPoolGenerator(mockPercentileSelector.Object, mockEncounterGenerator.Object, mockTreasureGenerator.Object);

            selectedPool = string.Empty;
            encounter = new Encounter();
            treasure = new Treasure();

            mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Pools)).Returns(() => selectedPool);
            mockEncounterGenerator.Setup(g => g.Generate(EnvironmentConstants.Dungeon, 9266, "temperature", EnvironmentConstants.TimesOfDay.Night)).Returns(encounter);
            mockTreasureGenerator.Setup(g => g.GenerateAtLevel(9266)).Returns(treasure);
        }
Пример #48
0
 public DungeonTreasure()
 {
     Container = string.Empty;
     Treasure = new Treasure();
     Concealment = string.Empty;
 }
Пример #49
0
 void InitTreasure()
 {
     InitGame();
     treasures=new Treasure[row,col];
     List<int> randomN=new List<int>();
     for(int i=0;i<row*col;i++){
         randomN.Add(i);
         treasures[i/col,i%col]=new Treasure();
         unFindTreasure.Add(i);
     }
     for(int i=0;i<maxNOfTreasure;i++){
         int seed=UnityEngine.Random.Range(0,randomN.Count-1);
         treasures[randomN[seed]/col,randomN[seed]%col].isTreasure=1;
         randomN.Remove(randomN[seed]);
     }
     for(int i=0;i<row;i++){
         for(int j=0;j<col;j++){
             int num=0;
             treasures[i,j].surround=getSurroundTreasure(i,j);
             for(int k=0;k<treasures[i,j].surround.Count;k++){
                 int x=treasures[i,j].surround[k].x;
                 int y=treasures[i,j].surround[k].y;
                 num+=treasures[x,y].isTreasure;
             }
             if(treasures[i,j].isTreasure==0){
                 treasures[i,j].num=num;
                 treasures[i,j].numRemain=num;
             }
         }
     }
 }