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); } } } }
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!"); }
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(); }
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); }
/// <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; } } }
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); }