예제 #1
0
 public World(BeeMessage messageSender)
 {
     Bees = new List<Bee>();
     Flowers = new List<Flower>();
     Hive = new Hive(this, messageSender);
     Random random = new Random();
     for (int i = 0; i < 10; i++)
         AddFlower(random);
 }
예제 #2
0
 public Hive(World world, BeeMessage MessageSender)
 {
     this.MessageSender = MessageSender;
     this.world = world;
     Honey = InitialHoney;
     InitializeLocations();
     Random random = new Random();
     for (int i = 0; i < InitialBees; i++)
         AddBee(random);
 }
예제 #3
0
        public World(BeeMessage messageSender)
        {
            Flowers = new List <Flower>();
            Bees    = new List <Bee>();
            Hive    = new Hive(this, messageSender);
            Random random = new Random();

            for (int i = 0; i < 10; i++)
            {
                AddFlower(random);
            }
        }
        public Bee(int id, Point location, Hive hive, World world)
        {
            ID = id;
            this.location = location;
            InsideHive = true;
            destinationFlower = null;
            NectarCollected = 0;
            CurrentState = BeeState.Idle;
            this.world = world;
            this.hive = hive;

            MessageSender = hive.MessageSender;
        }
예제 #5
0
파일: Hive.cs 프로젝트: nohe427/HeadFirst
        public Hive(World world, BeeMessage MessageSender)
        {
            this.MessageSender = MessageSender;
            this.world         = world;
            Honey = InitialHoney;
            InitializeLocations();
            Random random = new Random();

            for (int i = 0; i < InitialBees; i++)
            {
                AddBee(random);
            }
        }
        public Hive(World world, BeeMessage messageSender)
        {
            MessageSender = messageSender;
            this.world = world;
            Honey = HoneyInitial;
            InitializeLocations();

            Random random = new Random();
            for (int i = 0; i < QtdeInicialDeAbelhas; i++)
            {
                AddBee(random);
            }
        }
예제 #7
0
        public World(BeeMessage messageSender)
        {
            Bees    = new List <Bee>();
            Flowers = new List <Flower>();
            Hive    = new Hive(this);
            queen   = new Queen(this, Hive, messageSender);
            Random random = new Random();

            for (int i = 0; i < 10; i++) //10 цветов
            {
                AddFlower(random);
            }
            enemy = new Enemy(1, new Point(0, 200), this, this.Hive);
        }
예제 #8
0
        public Queen(World world, Hive hive, BeeMessage MessageSender)
        {
            this.world         = world;
            this.hive          = hive;
            this.MessageSender = MessageSender;
            Random random = new Random();

            for (int i = 0; i < InitialBees; i++)
            {
                AddBee(random);
            }
            //вызови защитника улья
            FindBee(BeeState.LookForEnemiesAndSting);
            //вызови няню
            FindBee(BeeState.EggCare_BabyBeeTutoring_HiveMaintenance);
        }
예제 #9
0
        public Hive(World world, BeeMessage MessageSender)
        {
            this.MessageSender = MessageSender;
            this.world         = world;

            locations = new Dictionary <string, Point>();
            //Startup initial Honey amount
            Honey = InitialHoney;

            //Create Hive's Locations
            InitializeLocations();

            Random random = new Random();

            for (int i = 0; i < InitialBees; i++)
            {
                AddBee(random);
            }
        }
예제 #10
0
        public Hive(World world, BeeMessage MessageSender)
        {
            this.world         = world;
            this.MessageSender = MessageSender;
            Honey = InitialHoney;
            InitializeLocations();

            Random random = new Random();

            for (int i = 0; i < InitialBees; i++)
            {
                AddBee(random);
            }

            //while (beeCount < InitialBees)
            //{
            //    AddBee(random);
            //    beeCount++;
            //}
        }
예제 #11
0
        public World(BeeMessage messageSender, Settings settings = null)
        {
            Bees    = new List <Bee>();
            Flowers = new List <Flower>();

            if (settings == null)
            {
                settings = new Settings();
            }
            this.settings      = settings;
            this.worldSettings = settings.WorldSettings;

            Hive = new Hive(this, messageSender, this.settings.HiveSettings);
            Random random = new Random();

            for (int i = 0; i < 10; i++)
            {
                AddFlower(random);
            }
        }
예제 #12
0
파일: Hive.cs 프로젝트: zangeldar/EXERCISES
        public Hive(World world, BeeMessage MessageSender, HiveSettings hiveSettings = null)
        {
            this.MessageSender = MessageSender;
            this.world         = world;

            if (hiveSettings == null)
            {
                hiveSettings = new HiveSettings();
            }
            this.hiveSettings = hiveSettings;

            Honey = hiveSettings.InitialHoney;
            InitializeLocations();
            Random random = new Random();

            for (int i = 0; i < hiveSettings.InitialBees; i++)
            {
                AddBee(random);
            }
        }
예제 #13
0
        /// 我要寄蜜蜂快递,地址收件人包裹都给你了,你看着办
        public void Send(int opCode, int subCode, BeeMessage message)
        {
            // todo 发送的object可以优化,每次都new 不好吧

            // bee 打个包
            var packet = new BeePacket(opCode, subCode, message);

            // 转成二进制
            var data = BeeCode.EncodePacket(packet);

            // 称重,收费
            var bytes = BeeCode.AddHeadLength(data);

            // 加入发送队列
            _sendQueue.Enqueue(bytes);

            // 发走
            if (!_isSending)
            {
                SendPacket();
            }
        }
예제 #14
0
 protected override Task <HandleResult> HandleError(BeeMessage <ILoggerMessage> msg, Exception ex)
 {
     return(msg.Attemp > 3 ? HandleResult.OkTask() : HandleResult.RetryTask());
 }
예제 #15
0
 protected override Task <HandleResult> HandleError(BeeMessage <TimeoutBeeMsg> msg, Exception ex)
 {
     return(HandleResult.OkTask());
 }
예제 #16
0
 protected override Task <HandleResult> HandleError(BeeMessage <NotificationMessage> msg, Exception ex)
 {
     return(HandleResult.RetryTask(TimeSpan.FromSeconds(3)));
 }
예제 #17
0
 protected override Task <HandleResult> HandleError(BeeMessage <SummatorMessage> msg, Exception ex)
 {
     return(HandleResult.OkTask());
 }
예제 #18
0
 protected override Task <HandleResult> HandleError(BeeMessage <Unit> msg, Exception ex)
 {
     return(HandleResult.RetryTask());
 }
예제 #19
0
 protected override Task <HandleResult> HandleError(BeeMessage <ReplyChannel <int> > msg, Exception ex)
 {
     return(HandleResult.OkTask());
 }