Exemple #1
0
        protected void UpdateLair(IAction action, RabbitLair rabbitLair)
        {
            if ((rabbitLair.State == LairState.Empty) && (this.rand.Next(10) < CLOSE_PROB))
            {
                //closes the lair if open with certain probability
                rabbitLair.State = LairState.Closed;
            }
            else if ((rabbitLair.State == LairState.Closed) && (action != null) && (action is OpenLair) &&
                     (this.Agent.Cell == rabbitLair.Cell))
            {
                //shows prey if the lair if closed, agent is colocated and performed action "open"
                rabbitLair.State = LairState.Rabbit;
            }
            else if (rabbitLair.State == LairState.Rabbit)
            {
                //the prey flees after one time step
                rabbitLair.State = LairState.Empty;
            }
            else
            {
                rabbitLair.ForceRepaint = false;
                return;
            }

            rabbitLair.ForceRepaint = true;
        }
Exemple #2
0
        public override void Init()
        {
            base.Init();

            //creates lair elements
            this.Lair1 = new RabbitLair
            {
                IdToken             = "lair1",
                Description         = "lair",
                Reward              = RABBIT_REWARD,
                Visible             = true,
                Walkable            = true,
                HasSmell            = true,
                ImagePath           = RABBIT_IMG_PATH,
                ClosedLairImagePath = CLOSED_LAIR_IMG_PATH,
                OpenedLairImagePath = OPENED_LAIR_IMG_PATH,
            };

            this.Lair2 = new RabbitLair
            {
                IdToken             = "lair2",
                Description         = "lair",
                Reward              = RABBIT_REWARD,
                Visible             = true,
                Walkable            = true,
                HasSmell            = true,
                ImagePath           = RABBIT_IMG_PATH,
                ClosedLairImagePath = CLOSED_LAIR_IMG_PATH,
                OpenedLairImagePath = OPENED_LAIR_IMG_PATH,
            };
        }
Exemple #3
0
 protected void AddLairSensations(RabbitLair lair)
 {
     //adds lair state
     this.CurrentSensations.Add((lair.State != LairState.Rabbit ? lair.IdToken + "-" : string.Empty) + lair.State);
 }