Ejemplo n.º 1
0
    private void RunMovementControls()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit2D boardHit    = Physics2D.Raycast(camera.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, Mathf.Infinity, boardMask);
            RaycastHit2D movementHit = Physics2D.Raycast(camera.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, Mathf.Infinity, moveOptionMask);

            if (boardHit.collider != null)
            {
                Vector3    mouseWorldPos = camera.ScreenToWorldPoint(Input.mousePosition);
                Vector3Int clickPosition = movementBoard.WorldToCell(mouseWorldPos);
                if (validMoves.ContainsKey(clickPosition) || (clickPosition == unitPos && unitsManager.GetUnit(unitPos).HasMoved == false))
                {
                    targetPos = clickPosition;
                    Debug.Log("Unit at  " + unitPos + " target at " + targetPos);
                    //Run method to start movement
                    MoveUnit();
                    return;
                }

                if (SelectableUnitClicked(clickPosition))
                {
                    ResetMovementTiles();
                    unitPos = clickPosition;
                    CreateMovementTiles(clickPosition);
                }
            }
        }
    }
Ejemplo n.º 2
0
        public void ConversionCorrectness()
        {
            var manager = new UnitsManager(new UnitCollection(UnitCollection.CreateUnits()));

            var inches = manager.GetUnit(UnitID.Inch);

            Assert.IsNotNull(inches);

            var feet = manager.GetUnit(UnitID.Foot);

            Assert.IsNotNull(feet);

            inches.Magnitude = 32;
            manager.UpdateUnits(sourceUnit: inches);

            Assert.AreEqual <double>(expected: 2.6666666666666667, actual: feet.Magnitude.Value, message: "Conversion from inches to feet is incorrect!");
        }
Ejemplo n.º 3
0
        public void RoundingTest()
        {
            var manager = new UnitsManager(new UnitCollection(UnitCollection.CreateUnits()));

            var meter = manager.GetUnit(UnitID.Meter);

            meter.Magnitude = 123456789;

            double d    = 1000000;
            string dstr = d.ToString();
        }
Ejemplo n.º 4
0
        public void ManagerTest()
        {
            var manager = new UnitsManager(new UnitCollection(UnitCollection.CreateUnits()));

            var meter = manager.GetUnit(UnitID.Meter); //manager.Units.First(p => p.Name.Equals("Meter", StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(meter, "The unit Meter was not found.");

            meter.Magnitude = 5;   // 5m

            manager.UpdateUnits(meter);
        }
Ejemplo n.º 5
0
    /// <summary>
    /// Initiates combat sequence
    /// </summary>
    /// <param name="attacker"></param>
    /// <param name="defender"></param>
    public IEnumerator Fight(Vector3Int attackerPos, Vector3Int defenderPos)
    {
        Unit attacker = unitsManager.GetUnit(attackerPos);
        Unit defender = unitsManager.GetUnit(defenderPos);

        if (defender == null)
        {
            yield break;
        }
        double attackerStrength = CalculateStrength(attacker, defender.GetUnitType());
        double defenderStrenth  = CalculateStrength(defender, attacker.GetUnitType());
        double odds             = CalculateVictoryOdds(attackerStrength, defenderStrenth);
        bool   hasAdvantage     = RollAdvantage(odds);

        if (RangeAdvantage(attacker, defender))
        {
            yield return(Attack(attacker, defender));

            if (defender.GetCount() <= 0)
            {
                //TODO death stuff
                UnitDestroyed(defender);
            }
            yield break;            //Exit function without retaliation.
        }

        if (hasAdvantage)
        {
            //Attacker swings first
            yield return(Attack(attacker, defender));

            //If unit destroyed, do death sequence instead
            if (defender.GetCount() <= 0)
            {
                //TODO death stuff
                UnitDestroyed(defender);
                yield break;                //Exit function without retaliation.
            }
            //If alive, defender attacks
            yield return(Attack(defender, attacker));

            if (attacker.GetCount() <= 0)
            {
                //TODO death stuff
                UnitDestroyed(attacker);
                Debug.Log(unitsManager.GetAllPlayerUnits().Count);
                yield break;                //Exit function without retaliation.
            }
        }
        else
        {
            //Defender swings first
            yield return(Attack(defender, attacker));

            if (attacker.GetCount() <= 0)
            {
                //TODO death stuff
                UnitDestroyed(attacker);
                yield break;
            }
            //if alive, attacker attacks
            yield return(Attack(attacker, defender));

            if (defender.GetCount() <= 0)
            {
                //TODO death stuff
                UnitDestroyed(defender);
                yield break;
            }
        }
    }
Ejemplo n.º 6
0
        protected IList <WebUnit> CreateWebUnits()
        {
            var webUnits = new List <WebUnit>();


            // Length
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Meter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Centimeter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Millimeter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Yard))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Foot))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Inch))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilometer))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Mile))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.NauticalMile))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Lightyear))
            {
                Enabled = true, IsMetric = true
            });

            // Area
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.SquareMeter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.SquareFoot))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.SquareInch))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Acre))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.SquareKilometer))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Hectare))
            {
                Enabled = true, IsMetric = true
            });

            // Volume
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.CubicMeter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Liter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Milliliter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.CC))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Gallon))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Quart))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Pint))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.FluidOunce))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.CubicFoot))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.CubicInch))
            {
                Enabled = true, IsMetric = true
            });

            // Temperature
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Celsius))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Fahrenheit))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kelvin))
            {
                Enabled = true, IsMetric = true
            });

            // Mass
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilogram))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Gram))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Stone))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Pound))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Ounce))
            {
                Enabled = true, IsMetric = true
            });

            // Speed
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.KilometerPerHour))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.MilePerHour))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.MeterPerSecond))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Knot))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Mach))
            {
                Enabled = true, IsMetric = false
            });

            //Energy
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Joule))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilojoule))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Watthour))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilowatthour))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Calorie))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilocalorie))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.FootPound))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Megaelectronvolt))
            {
                Enabled = true, IsMetric = true
            });

            // Power
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Watt))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilowatt))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Megawatt))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Horsepower))
            {
                Enabled = true, IsMetric = false
            });

            // Pressure
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Pascal))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Bar))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Torr))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Atmosphere))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.PoundForcePerSquareInch))
            {
                Enabled = true, IsMetric = false
            });

            // Time
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Second))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Minute))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Hour))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Day))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Year))
            {
                Enabled = true, IsMetric = false
            });

            // Fuel Economy
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.MilesPerGallon))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.LitersPer100Kilometers))
            {
                Enabled = true, IsMetric = true
            });

            // Frequency
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Hertz))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilohertz))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Megahertz))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Gigahertz))
            {
                Enabled = true, IsMetric = true
            });

            // Acceleration
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.MeterPerSecondSquared))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.FootPerSecondSquared))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.GForce))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Galileo))
            {
                Enabled = true, IsMetric = true
            });

            // Density
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.KilogramPerCubicMeter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.GramPerCubicCentimeter))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.PoundPerCubicFoot))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.PoundPerCubicInch))
            {
                Enabled = true, IsMetric = false
            });

            // Angle
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Degree))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Radian))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Grad))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.MinuteOfArc))
            {
                Enabled = true, IsMetric = true
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.SecondOfArc))
            {
                Enabled = true, IsMetric = true
            });

            // Digital Storage
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Bit))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilobit))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Megabit))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Byte))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Kilobyte))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Megabyte))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Gigabyte))
            {
                Enabled = true, IsMetric = false
            });
            webUnits.Add(new WebUnit(_unitsManager.GetUnit(UnitID.Terabyte))
            {
                Enabled = true, IsMetric = false
            });

            return(webUnits);
        }