예제 #1
0
        private IEnumerable <Item> GetTemplates(IEnumerable <string> setTreasure, string size, string weaponSize)
        {
            var templates = new List <Item>();
            var sizes     = SizeConstants.GetOrdered();

            foreach (var setItemTemplate in setTreasure)
            {
                var template = itemSelector.SelectFrom(setItemTemplate);
                if (!template.Traits.Intersect(sizes).Any())
                {
                    if (template.ItemType == ItemTypeConstants.Weapon)
                    {
                        template.Traits.Add(weaponSize);
                    }
                    else
                    {
                        template.Traits.Add(size);
                    }
                }

                templates.Add(template);
            }

            return(templates);
        }
예제 #2
0
 // Called when the node enters the scene tree for the first time.
 public override void _Ready()
 {
     _sizeConstants = GetNode <SizeConstants>("/root/SizeConstants");
     _colorRect     = GetNode <ColorRect>("ColorRect");
     // set teh size of the cell to the one defined in the constants file
     _colorRect.SetSize(new Vector2(_sizeConstants.CellSize, _sizeConstants.CellSize));
 }
예제 #3
0
파일: Grid.cs 프로젝트: retrolux/GameOfLife
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
        _sizeConstants = GetNode <SizeConstants>("/root/SizeConstants");
        CellGrid       = new Cell[_sizeConstants.Width, _sizeConstants.Height];

        // set the number of columns to the constant's value
        this.Columns = _sizeConstants.Width;

        cell = ResourceLoader.Load("res://Cell.tscn") as PackedScene;

        for (int x = 0; x < CellGrid.GetLength(0); x++)
        {
            for (int y = 0; y < CellGrid.GetLength(1); y++)

            {
                var cell = this.cell.Instance() as Cell;
                // set the cells X and Y
                cell.X = x;
                cell.Y = y;
                // add the cell to the grid
                CellGrid[x, y] = cell;
                // add the cell to the GridContainer
                AddChild(cell);
            }
        }
    }
예제 #4
0
        private int GetHideSkillSizeModifier(string size)
        {
            var sizes       = SizeConstants.GetOrdered();
            var mediumIndex = Array.IndexOf(sizes, SizeConstants.Medium);
            var sizeIndex   = Array.IndexOf(sizes, size);

            return((mediumIndex - sizeIndex) * 4);
        }
예제 #5
0
        private string GetBiggerSize(string size1, string size2)
        {
            var ordered = SizeConstants.GetOrdered();
            var index1  = Array.IndexOf(ordered, size1);
            var index2  = Array.IndexOf(ordered, size2);

            if (index1 >= index2)
            {
                return(size1);
            }

            return(size2);
        }
예제 #6
0
        private string GetAdjustedDamage(string originalDamage, string originalSize, string advancedSize)
        {
            var adjustedDamage = originalDamage;

            var orderedSizes   = SizeConstants.GetOrdered();
            var sizeDifference = Array.IndexOf(orderedSizes, advancedSize) - Array.IndexOf(orderedSizes, originalSize);

            while (sizeDifference-- > 0 && damageMaps.ContainsKey(adjustedDamage))
            {
                adjustedDamage = damageMaps[adjustedDamage];
            }

            return(adjustedDamage);
        }
예제 #7
0
        public void OrderedSizes()
        {
            var orderedSizes = SizeConstants.GetOrdered();

            Assert.That(orderedSizes[0], Is.EqualTo(SizeConstants.Fine));
            Assert.That(orderedSizes[1], Is.EqualTo(SizeConstants.Diminutive));
            Assert.That(orderedSizes[2], Is.EqualTo(SizeConstants.Tiny));
            Assert.That(orderedSizes[3], Is.EqualTo(SizeConstants.Small));
            Assert.That(orderedSizes[4], Is.EqualTo(SizeConstants.Medium));
            Assert.That(orderedSizes[5], Is.EqualTo(SizeConstants.Large));
            Assert.That(orderedSizes[6], Is.EqualTo(SizeConstants.Huge));
            Assert.That(orderedSizes[7], Is.EqualTo(SizeConstants.Gargantuan));
            Assert.That(orderedSizes[8], Is.EqualTo(SizeConstants.Colossal));
            Assert.That(orderedSizes.Length, Is.EqualTo(9));
        }
예제 #8
0
        private void UpdateCreatureSpeeds(Creature creature)
        {
            var sizes      = SizeConstants.GetOrdered();
            var largeIndex = Array.IndexOf(sizes, SizeConstants.Large);
            var sizeIndex  = Array.IndexOf(sizes, creature.Size);

            if (sizeIndex >= largeIndex &&
                creature.Speeds.ContainsKey(SpeedConstants.Land) &&
                !creature.Speeds.ContainsKey(SpeedConstants.Fly))
            {
                var dragonSpeeds = speedsGenerator.Generate(DragonSpecies);

                var dragonFlySpeedValue = Math.Min(120, creature.Speeds[SpeedConstants.Land].Value * 2);
                creature.Speeds[SpeedConstants.Fly]       = dragonSpeeds[SpeedConstants.Fly];
                creature.Speeds[SpeedConstants.Fly].Value = dragonFlySpeedValue;
            }
        }
예제 #9
0
        private string AdjustChallengeRating(string originalSize, string advancedSize, string originalChallengeRating)
        {
            var sizes             = SizeConstants.GetOrdered();
            var originalSizeIndex = Array.IndexOf(sizes, originalSize);
            var advancedIndex     = Array.IndexOf(sizes, advancedSize);
            var largeIndex        = Array.IndexOf(sizes, SizeConstants.Large);

            if (advancedIndex < largeIndex || originalSize == advancedSize)
            {
                return(originalChallengeRating);
            }

            var increase = advancedIndex - Math.Max(largeIndex - 1, originalSizeIndex);
            var adjustedChallengeRating = ChallengeRatingConstants.IncreaseChallengeRating(originalChallengeRating, increase);

            return(adjustedChallengeRating);
        }
예제 #10
0
        public bool IsCompatible(string creature)
        {
            var types = collectionSelector.SelectFrom(TableNameConstants.Collection.CreatureTypes, creature);

            if (!creatureTypes.Contains(types.First()))
            {
                return(false);
            }

            var creatureData  = creatureDataSelector.SelectFor(creature);
            var animalData    = creatureDataSelector.SelectFor(AnimalSpecies);
            var sizes         = SizeConstants.GetOrdered();
            var creatureIndex = Array.IndexOf(sizes, creatureData.Size);
            var animalIndex   = Array.IndexOf(sizes, animalData.Size);

            if (Math.Abs(creatureIndex - animalIndex) > 1)
            {
                return(false);
            }

            return(true);
        }
예제 #11
0
 // Called when the node enters the scene tree for the first time.
 public override void _Ready()
 {
     _sizeConstants = GetNode <SizeConstants>("/root/SizeConstants");
     _grid          = GetNode <GridContainer>("Grid") as Grid;
 }
예제 #12
0
 // Called when the node enters the scene tree for the first time.
 public override void _Ready()
 {
     _sizeConstants     = GetNode <SizeConstants>("/root/SizeConstants");
     _grid              = GetNode <GridContainer>("Grid") as Grid;
     _epocheNumberLabel = GetNode <Label>("Label");
 }