Ejemplo n.º 1
0
    protected void OnTriggerEnter(Collider other)
    {
        // If the other object is a reindeer, and we're moving TOWARDS it at
        // reasonably high speed, then we'll count this as a charge and inflict
        // damage!
        if (curSpeed < maxSpeed / 2)
        {
            return;                                     // too slow
        }
        Reindeer victim = other.GetComponent <Reindeer>();

        if (victim == null)
        {
            return;                                     // didn't hit a reindeer
        }
        Vector2 forward = transform.right;
        Vector2 dvec    = victim.transform.position - transform.position;
        float   angle   = Vector2.Angle(forward, dvec);

        //Debug.Log(name + " hits " + other + " at speed " + curSpeed + " and angle " + angle);
        if (angle > 30)
        {
            return;                                     // glancing blow
        }
        float damage = chargeDamage * curSpeed / maxSpeed;

        victim.TakeCrashDamage(damage, name);

        GetComponent <AudioSource>().PlayOneShot(crashSound, curSpeed / maxSpeed);
    }
        public IActionResult Post([FromBody] Reindeer Reindeer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Reindeer.Add(Reindeer);

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (ReindeerExists(Reindeer.ReindeerId))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("GetReindeer", new { id = Reindeer.ReindeerId }, Reindeer));
        }
 public ReindeerUpdateResponseViewModel(Reindeer reindeer)
 {
     this.ReindeerID     = reindeer.ID;
     this.CaretakerElfID = reindeer.CaretakerElfID;
     this.Name           = reindeer.Name;
     this.Status         = reindeer.Status;
 }
Ejemplo n.º 4
0
 public static State Tick(State s, Reindeer r)
 {
     if (s.Flying && s.FlightTime > 0)
     {
         return(s with {
             Distance = s.Distance + r.Flight, FlightTime = s.FlightTime - 1
         });
     }
     else if (s.Flying && s.FlightTime == 0)
     {
         return(s with {
             Flying = false, RestTime = r.RestTime - 1
         });
     }
     else if (s.Resting && s.RestTime > 0)
     {
         return(s with {
             RestTime = s.RestTime - 1
         });
     }
     else
     {
         return(s with {
             Distance = s.Distance + r.Flight, Flying = true, FlightTime = r.FlightTime - 1
         });
     }
 }
        public IActionResult Put(int id, [FromBody] Reindeer Reindeer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != Reindeer.ReindeerId)
            {
                return(BadRequest());
            }

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

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ReindeerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(new StatusCodeResult(StatusCodes.Status204NoContent));
        }
Ejemplo n.º 6
0
    public void Reindeer_Should_Travel_X_Distance_In_Y_Seconds(string name, int speed, int stamina, int restTime, int expectedDistance, int seconds)
    {
        var reindeer = new Reindeer(name, speed, stamina, restTime);

        var result = reindeer.GetDistanceTravelledAfterSecondsFromStart(seconds);

        Assert.Equal(expectedDistance, result);
    }
Ejemplo n.º 7
0
        public ActionResult DeleteConfirmed(int id)
        {
            Reindeer reindeer = db.Reindeer.Find(id);

            db.Reindeer.Remove(reindeer);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 8
0
 public ReindeerState(Reindeer data)
 {
     Data             = data;
     DistanceTraveled = 0;
     Points           = 0;
     DurationLeft     = data.FlyDuration;
     IsFlying         = true;
 }
Ejemplo n.º 9
0
        private static void MoveDeer(Reindeer deer, int second)
        {
            var movementPhase = second % (deer.RestTime + deer.TravelTime);

            if (movementPhase != 0 && movementPhase <= deer.TravelTime)
            {
                deer.DistanceTravelled += deer.Speed;
            }
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            //new gecko
            Console.WriteLine("                        ");
            Console.WriteLine("                        ");
            Console.WriteLine("Welcome to to the Zoo!!");
            Gecko gecko = new Gecko();

            Console.WriteLine("                        ");
            Console.WriteLine("      ** The Gecko ** ");
            Console.WriteLine("                        ");
            Console.WriteLine($" I have {gecko.Legs} legs.");
            Console.WriteLine(gecko.GrowTailBack());
            Console.WriteLine("                        ");
            Console.WriteLine("                        ");

            //new golden monkey
            Golden_Monkey monkey = new Golden_Monkey();

            Console.WriteLine("                        ");
            Console.WriteLine("    ** Golden Monkey ** ");
            Console.WriteLine("                        ");
            Console.WriteLine("                        ");
            Console.WriteLine($" I have {monkey.Legs} legs.");
            Console.WriteLine(monkey.Swing());
            Console.WriteLine("                        ");

            // new Reindeer
            Reindeer reindeer = new Reindeer();

            Console.WriteLine("                        ");
            Console.WriteLine("      ** Reindeer **   ");
            Console.WriteLine("                        ");
            Console.WriteLine($" I have {reindeer.Legs} legs.");
            Console.WriteLine("                        ");

            //new Deer
            Elk elk = new Elk();

            Console.WriteLine("                        ");
            Console.WriteLine("      ** Elk **    ");
            Console.WriteLine("                        ");
            Console.WriteLine($" I have {elk.Legs} legs.");
            Console.WriteLine("                        ");


            // new sea turtle
            Sea_turtle turtle = new Sea_turtle();

            Console.WriteLine("                        ");
            Console.WriteLine("       ** Sea Turtle **    ");
            Console.WriteLine("                        ");
            Console.WriteLine($" I have {turtle.Legs} legs.");
            Console.WriteLine($" I have this many teeth {turtle.Teeth} :D ");
            Console.WriteLine("                        ");
        }
Ejemplo n.º 11
0
        public ReindeerInZone(Reindeer reindeer, string countryCode, string cityName, GeoPoint center, Radius radius)
            : base(countryCode, cityName, center, radius)
        {
            if (!Enum.IsDefined(typeof(Reindeer), reindeer))
            {
                throw new InvalidEnumArgumentException(nameof(reindeer), (int)reindeer, typeof(Reindeer));
            }

            Reindeer = reindeer;
        }
Ejemplo n.º 12
0
        //
        // GET: /Reindeer/Details/5

        public ActionResult Details(int id = 0)
        {
            Reindeer reindeer = db.Reindeer.Find(id);

            if (reindeer == null)
            {
                return(HttpNotFound());
            }
            return(View(reindeer));
        }
Ejemplo n.º 13
0
 public ActionResult Edit(Reindeer reindeer)
 {
     if (ModelState.IsValid)
     {
         db.Entry(reindeer).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.WorkshopId = new SelectList(db.Workshop, "WorkshopId", "Name", reindeer.WorkshopId);
     return(View(reindeer));
 }
Ejemplo n.º 14
0
        //
        // GET: /Reindeer/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Reindeer reindeer = db.Reindeer.Find(id);

            if (reindeer == null)
            {
                return(HttpNotFound());
            }
            ViewBag.WorkshopId = new SelectList(db.Workshop, "WorkshopId", "Name", reindeer.WorkshopId);
            return(View(reindeer));
        }
        public ReindeerDetailsViewModel(Reindeer reindeer)
        {
            this.ID             = reindeer.ID;
            this.Name           = reindeer.Name;
            this.CaretakerElfID = reindeer.CaretakerElfID;
            this.Status         = reindeer.Status;

            var caretakerElf = ElvesManager.GetByID(reindeer.CaretakerElfID);

            this.CaretakerElfName = caretakerElf.Name;
        }
Ejemplo n.º 16
0
        public void DistanceAfterTime(string name, int speed, int flightTime, int restTime, int time, int expectedDistance)
        {
            var day14    = new Day14();
            var reindeer = new Reindeer {
                Name = name, Speed = speed, FlightTime = flightTime, RestTime = restTime
            };

            var actualDistance = day14.DistanceAfterTime(reindeer, time);

            Assert.Equal(expectedDistance, actualDistance);
        }
Ejemplo n.º 17
0
        static void Main()
        {
            List <Reindeer> stable = new List <Reindeer>();
            bool            test   = false;
            int             ticks  = 0;
            int             finish = 0;

            if (!test)
            {
                stable.Add(new Reindeer("Rudolph", 22, 8, 165));
                stable.Add(new Reindeer("Cupid", 8, 17, 114));
                stable.Add(new Reindeer("Prancer", 18, 6, 103));
                stable.Add(new Reindeer("Donner", 25, 6, 145));
                stable.Add(new Reindeer("Dasher", 11, 12, 125));
                stable.Add(new Reindeer("Comet", 21, 6, 121));
                stable.Add(new Reindeer("Blitzen", 18, 3, 50));
                stable.Add(new Reindeer("Vixen", 20, 4, 75));
                stable.Add(new Reindeer("Dancer", 7, 20, 119));
                finish = 2503;
            }
            else
            {
                stable.Add(new Reindeer("Comet", 14, 10, 127));
                stable.Add(new Reindeer("Dancer", 16, 11, 162));
                finish = 1000;
            }

            while (ticks < finish)
            {
                foreach (Reindeer deer in stable)
                {
                    deer.tick();
                }
                int maxdist = stable.Max(d => d.distance);
                foreach (Reindeer deer in stable.FindAll(d => d.distance == maxdist))
                {
                    deer.score += 1;
                }
                ticks++;
            }

            foreach (Reindeer deer in stable)
            {
                Console.WriteLine(deer.name + "[" + deer.resting + "] (" + deer.distance + ") ** " + deer.score + " **");
            }

            Reindeer scoreWinner = stable.First(d => d.score == stable.Max(e => e.score));
            Reindeer distWinner  = stable.First(d => d.distance == stable.Max(e => e.distance));

            Console.WriteLine("Winner by score: " + scoreWinner.name + " **" + scoreWinner.score + " **");
            Console.WriteLine("Winner by distance: " + distWinner.name + " (" + distWinner.distance + "km)");
            Console.ReadLine();
        }
Ejemplo n.º 18
0
    public void LoadIntoDeer(string data, Reindeer deer)
    {
        string[] lines = data.Trim().Split(new string[] { "\r\n", "\n" }, 2,
                                           System.StringSplitOptions.None);
        string firstLine = lines[0];

        if (firstLine.StartsWith("// Name:"))
        {
            deer.name = firstLine.Substring(8).Trim();
        }
        deer.miniscript = data;
    }
Ejemplo n.º 19
0
        public ActionResult Create(Reindeer reindeer)
        {
            if (ModelState.IsValid)
            {
                db.Reindeer.Add(reindeer);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.WorkshopId = new SelectList(db.Workshop, "WorkshopId", "Name", reindeer.WorkshopId);
            return(View(reindeer));
        }
Ejemplo n.º 20
0
        private IEnumerable <Reindeer> Parse()
        {
            var result = new List <Reindeer>();

            foreach (var deertxt in input.Split('\n'))
            {
                //Dancer can fly 7 km/s for 20 seconds, but then must rest for 119 seconds.";
                var parts = deertxt.Split(' ');
                var deer  = new Reindeer(parts[0], int.Parse(parts[3]), int.Parse(parts[6]), int.Parse(parts[13]));
                result.Add(deer);
            }
            return(result);
        }
Ejemplo n.º 21
0
    public void Reindeer_Should_Travel_X_Distance_In_Y_Seconds_In_Second_Intervals(string name, int speed, int stamina, int restTime, int expectedDistance, int seconds)
    {
        var reindeer = new Reindeer(name, speed, stamina, restTime);

        for (int i = 0; i < seconds; i++)
        {
            reindeer.Travel(1);
        }

        var result = reindeer.DistanceTravelled;

        Assert.Equal(expectedDistance, result);
    }
        public ActionResult Create(ReindeerUpdateRequestViewModel requestModel) //Needs a request view model
        {
            var reindeer = new Reindeer();

            requestModel.UpdateReindeerModel(reindeer);

            bool success = DataManager <Reindeer> .Save(reindeer);

            var viewModel = new ReindeerUpdateResponseViewModel(reindeer);

            viewModel.UpdateSuccess = success;

            return(RedirectToAction("Details", new { id = reindeer.ID }));
        }
Ejemplo n.º 23
0
    protected void OnTriggerEnter(Collider other)
    {
        if (!isArmed)
        {
            return;
        }
        Reindeer deer = other.GetComponent <Reindeer>();

        if (deer == null)
        {
            return;
        }
        GoBoom();
        deer.TakeMineDamage(damage, this);
    }
Ejemplo n.º 24
0
    public void LoadSlot(int slot, Reindeer deer)
    {
        string key  = "DEER" + slot;
        string data = PlayerPrefs.GetString(key);

        if (string.IsNullOrEmpty(data))
        {
            //Debug.Log("Loading default data for " + key);
            data = defaultData;
        }
        else
        {
            //Debug.Log("Loaded data from prefs for " + key);
        }
        LoadIntoDeer(data, deer);
    }
Ejemplo n.º 25
0
    public void SaveSlot(int slot, Reindeer deer)
    {
        if (deer == null)
        {
            return;
        }
        string key  = "DEER" + slot;
        string data = deer.miniscript.Trim();

        if (!data.StartsWith("// Name:"))
        {
            data = "// Name: " + deer.name + System.Environment.NewLine + data;
        }
        PlayerPrefs.SetString(key, data);
        //Debug.Log("Stored data for " + key);
    }
Ejemplo n.º 26
0
 public void Init()
 {
     string[][] input = Aoc.Framework.Input.GetStringMatrix(this, " ");
     _reinders = new Reindeer[input.Length];
     for (int i = 0; i < input.Length; ++i)
     {
         string[] line = input[i];
         _reinders[i] = new Reindeer
         {
             Name     = line[0],
             Speed    = int.Parse(line[3]),
             TimeRun  = int.Parse(line[6]),
             TimeRest = int.Parse(line[13])
         };
     }
 }
Ejemplo n.º 27
0
            static public Reindeer Parse(string input)
            {
                Reindeer reindeer = new Reindeer();

                string[] split = input.Split(' ');
                reindeer.Name = split[0];
                int[] values = split.Where(s => { int v; return(int.TryParse(s, out v)); }).Select(int.Parse).ToArray();
                reindeer.Speed    = values[0];
                reindeer.Burst    = values[1];
                reindeer.Cooldown = values[2];

                reindeer.Score          = 0;
                reindeer.Distance       = 0;
                reindeer.m_timeTillSwap = reindeer.Burst;
                reindeer.m_state        = State.Flying;
                return(reindeer);
            }
Ejemplo n.º 28
0
    static int deerCountFrame  = -1;            // frame num on which deerCount was last updated

    #endregion
    //--------------------------------------------------------------------------------
    #region MonoBehaviour Events
    void Awake()
    {
        AddIntrinsics();

        reindeer = GetComponent <Reindeer>();

        interpreter                = new Interpreter();
        interpreter.hostData       = this;
        interpreter.standardOutput = (string s) => reindeer.Say(s);
        interpreter.implicitOutput = (string s) => reindeer.Say(
            "<color=#66bb66>" + s + "</color>");
        interpreter.errorOutput = (string s) => {
            reindeer.Say("<color=red>" + s + "</color>");
            interpreter.Stop();
            lastError = s;
        };
    }
    //--------------------------------------------------------------------------------
    #region Public Methods

    public void Show(Reindeer deer)
    {
        this.deer            = deer;
        background.color     = new Color(deer.color.r, deer.color.g, deer.color.b, 0.5f);
        nameField.text       = deer.name;
        codeField.source     = deer.miniscript;
        checkResultText.text = "Enter MiniScript code above.  Click Check Syntax to check for basic errors.";
        ReindeerScript scp = deer.GetComponent <ReindeerScript>();

        if (!string.IsNullOrEmpty(scp.lastError))
        {
            ShowError(scp.lastError);
        }
        Debug.Log("scp.lastError: " + scp.lastError);
        gameObject.SetActive(true);
        codeField.Select();
    }
        public IActionResult Delete(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Reindeer Reindeer = _context.Reindeer.Single(m => m.ReindeerId == id);

            if (Reindeer == null)
            {
                return(NotFound());
            }

            _context.Reindeer.Remove(Reindeer);
            _context.SaveChanges();

            return(Ok(Reindeer));
        }
Ejemplo n.º 31
0
 public ReindeerRacingInfo(Reindeer reindeer)
 {
     Reindeer = reindeer;
     CurrentDistance = 0;
     BonusValue = 0;
 }