Пример #1
0
        public async Task DeleteHealthItemTest()
        {
            var objA = new HealthItem
            {
                Id        = Guid.NewGuid(),
                Name      = Guid.NewGuid().ToString(),
                IsEnabled = true,
            };

            using var srv = new TestServer(TestHostBuilder <Startup, IntegrationTestStartup>());
            var client = srv.CreateClient();

            GenerateAuthHeader(client, GenerateTestToken());

            var resp = await client.PostAsJsonAsync($"api/v1/{nameof(HealthItem)}s.json?id={objA.Id}", objA);

            _    = resp.EnsureSuccessStatusCode();
            objA = await DeserializeResponseAsync <HealthItem>(resp);

            //Delete
            resp = await client.DeleteAsync($"api/v1/{nameof(HealthItem)}s.json?id={objA.Id}");

            _ = resp.EnsureSuccessStatusCode();
            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
            var result = await DeserializeResponseAsync <HealthItem>(resp);

            Assert.IsNotNull(result.UpdatedBy);
            Assert.IsFalse(result.IsEnabled);
        }
Пример #2
0
        public async Task HideDisabledHealthItemsTest()
        {
            var objA = new HealthItem()
            {
                Id        = Guid.NewGuid(),
                Name      = "Test",
                IsEnabled = false
            };

            using var srv = new TestServer(TestHostBuilder <Startup, UnigrationODataTestStartup>()
                                           .ConfigureTestServices(x =>
            {
                ExecuteOnContext <HealthItemsContext>(x, db =>
                {
                    db.HealthItems.Add(objA);
                });
            })
                                           );
            var client = srv.CreateClient();

            GenerateAuthHeader(client, GenerateTestToken());

            var resp = await client.GetAsync("odata/v1/healthitems?$count=true");

            var objB = await DeserializeResponseAsync <ODataEnvelope <HealthItem> >(resp);

            Assert.AreEqual(0, objB.Value.Count());
        }
Пример #3
0
        public async Task GetEnabledHealthItemsTest()
        {
            var objA = new HealthItem()
            {
                Id           = Guid.NewGuid(),
                Name         = "Test",
                IsEnabled    = true,
                CreatedOnUtc = DateTime.UtcNow,
            };

            using var srv = new TestServer(TestHostBuilder <Startup, UnigrationODataTestStartup>()
                                           .ConfigureTestServices(x =>
            {
                ExecuteOnContext <HealthItemsContext>(x, db =>
                {
                    db.HealthItems.Add(objA);
                });
            })
                                           );
            var client = srv.CreateClient();

            GenerateAuthHeader(client, GenerateTestToken());

            var resp = await client.GetStringAsync("odata/v1/healthitems?$count=true");

            TestContext.WriteLine($"Server Reponse: {resp}");
            var envelope = JsonConvert.DeserializeObject <ODataEnvelope <HealthItem> >(resp);

            Assert.AreEqual(objA.CreatedOnUtc, envelope.Value.First().CreatedOnUtc.ToUniversalTime());
        }
Пример #4
0
        public async Task DeleteHealthItemTest()
        {
            var objA = new HealthItem
            {
                Id        = Guid.NewGuid(),
                Name      = Guid.NewGuid().ToString(),
                IsEnabled = true,
            };

            using var srv = new TestServer(TestHostBuilder <Startup, UnigrationWebApiTestStartup>()
                                           .ConfigureTestServices(x =>
            {
                ExecuteOnContext <HealthItemsContext>(x, db =>
                {
                    _ = db.HealthItems.Add(objA);
                });
            })
                                           );
            var client = srv.CreateClient();

            GenerateAuthHeader(client, GenerateTestToken());
            //Update
            var resp = await client.DeleteAsync($"api/v1/{nameof(HealthItem)}s.json?id={objA.Id}");

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
            var result = await DeserializeResponseAsync <HealthItem>(resp);

            Assert.AreEqual("*****@*****.**", result.UpdatedBy);
            Assert.IsFalse(result.IsEnabled);
        }
Пример #5
0
    public void Login()
    {
        if (username.text.Trim ().Equals ("")) {
            ShowHint.Hint (StringCollection.NEEDUSERNAME);
            return;
        }

        if (password.text.Trim ().Equals ("")) {
            ShowHint.Hint (StringCollection.NEEDPASSWORD);
            return;
        }

        bool vali = false;

        //去服务器验证
        vali = true;
        //如果成功
        if (vali) {

            bool haveInfo = true;

            if (haveInfo) {
                //如果有玩家信息,加载并跳转城市场景

                //从服务器端获取玩家数据初始化
                gData.isPlayer = false; //初始的时候总是佣兵模式,玩家在线后与其他玩家组队,才会变成联机模式
                gData.characterList = new List<Character> ();

                Equipment e = new Equipment (1, 2, 0, 0, Equipment.EquipPos.BODY, "2", "学者的思考", 1, 200);
                List<Equipment> eList = new List<Equipment> ();
                eList.Add (e);

                Character c = new Character (2000, 30, 100, 0, 0, "zhouhui", true, 50, 0, ProFactory.getPro ("Geomancer", "1"), 10, 0, eList, -1);

                HealthItem item = new HealthItem (Item.RangeType.SINGLE, 10, "1", "单体治疗药剂", 50);
                List<Baggrid> bgList = new List<Baggrid> ();
                Baggrid bg = new Baggrid (item, 2);
                bgList.Add (bg);

                //		Equipment e2 = new Equipment(2,3,Equipment.EquipPos.BODY,"3","学者的幻想",1,500);
                //		Baggrid bg2 = new Baggrid (e2, 1);
                //		bgList.Add (bg2);

                c.BgList = bgList;
                gData.characterList.Add (c);
                Character c2 = new Character (0, 40, 100, 0, 0, "unity", false, 100, 100, ProFactory.getPro ("Settler", "1"), 1, 0, null, -1);
                gData.characterList.Add (c2);

                Application.LoadLevel ("city");

            } else {
                //如果没有,跳转角色创建场景
                Application.LoadLevel ("create");
            }

        } else {
            ShowHint.Hint (StringCollection.INVALIDACCOUNT);
        }
    }
Пример #6
0
    public void OnTriggerEnter2D(Collider2D Other)
    {
        HealthItem health = Other.GetComponent <HealthItem>();

        if (health != null && CurrentHP < MaxHP)
        {
            CurrentHP += health.HealthAmount;
        }
    }
Пример #7
0
        private async Task <HealthItem> ProduceTest()
        {
            HealthItem item = new HealthItem
            {
                ItemName = "Produce"
            };

            try
            {
                DateTime start = DateTime.Now;
                var      re    = await producer.ProduceAsync(KafkaOption.Instance.Message.TestTopic,
                                                             new Message <byte[], string> {
                    Value = "HealthCheck"
                });

                item.Value   = (DateTime.Now - start).TotalMilliseconds;
                item.Details = re.Status.ToString();
                switch (re.Status)
                {
                case PersistenceStatus.NotPersisted:
                    item.Level = 0;
                    break;

                default:
                    if (item.Value < 10)
                    {
                        item.Level = 5;
                    }
                    else if (item.Value < 100)
                    {
                        item.Level = 4;
                    }
                    else if (item.Value < 500)
                    {
                        item.Level = 3;
                    }
                    else if (item.Value < 3000)
                    {
                        item.Level = 2;
                    }
                    else
                    {
                        item.Level = 1;
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                item.Level   = -1;
                item.Details = ex.Message;
            }
            return(item);
        }
Пример #8
0
    public void OnPointerClick(PointerEventData eventData)
    {
        if (healthItem)
        {
            HealthItem thisItem = healthItem.GetComponent <HealthItem>();

            if (thisItem.type == "healthItem")
            {
                player.GetComponent <PlayerHealth>().Health(thisItem.increaseRate);
                Destroy(healthItem);
            }
        }
    }
Пример #9
0
        private void OnTimedEvent(SpawnLocation l)
        {
            string itemType = "";

            switch (l.itemType)
            {
            case "DamageBoost":
                Item damageBoost = new Item(l);
                l.addItem(damageBoost);
                cmdManager.InitializeItem(damageBoost);
                break;

            case "SpeedBoost":
                Item speedBoost = new Item(l);
                l.addItem(speedBoost);
                cmdManager.InitializeItem(speedBoost);
                break;

            case "AHA":
                Random   random      = new Random();
                string[] itemOptions = new string[] { "HealthItem", "HealthItem", "ArmourItem", "AmmoItem", "AmmoItem" };
                itemType = itemOptions[random.Next(5)];
                break;
            }

            if (itemType == "HealthItem")
            {
                l.changeItem(itemType);
                HealthItem newHItem = new HealthItem(l);
                l.addItem(newHItem);
                cmdManager.InitializeItem(newHItem);
                l.changeItem("AHA");
            }
            if (itemType == "ArmourItem")
            {
                l.changeItem(itemType);
                ArmourItem newAItem = new ArmourItem(l);
                l.addItem(newAItem);
                cmdManager.InitializeItem(newAItem);
                l.changeItem("AHA");
            }
            if (itemType == "AmmoItem")
            {
                l.changeItem(itemType);
                AmmoItem newAmmoItem = new AmmoItem(l);
                l.addItem(newAmmoItem);
                cmdManager.InitializeItem(newAmmoItem);
                l.changeItem("AHA");
            }
        }
Пример #10
0
        private static async Task <HealthItem> ConnectionTest(string name, string constr)
        {
            HealthItem item = new HealthItem
            {
                ItemName = name
            };
            var      connection = new MySqlConnection(constr);
            DateTime start      = DateTime.Now;

            try
            {
                await connection.OpenAsync();

                await connection.CloseAsync();

                item.Value = (DateTime.Now - start).TotalMilliseconds;
                if (item.Value < 10)
                {
                    item.Level = 5;
                }
                else if (item.Value < 100)
                {
                    item.Level = 4;
                }
                else if (item.Value < 500)
                {
                    item.Level = 3;
                }
                else if (item.Value < 3000)
                {
                    item.Level = 2;
                }
                else
                {
                    item.Level = 1;
                }
            }
            catch (Exception ex)
            {
                item.Level   = -1;
                item.Details = ex.Message;
            }
            finally
            {
                connection.Dispose();
            }
            return(item);
        }
Пример #11
0
        private async Task <HealthItem> DelTest()
        {
            HealthItem item = new HealthItem
            {
                ItemName = "Del"
            };

            try
            {
                DateTime start = DateTime.Now;
                if (await client.DelAsync("_health_") != 1)
                {
                    item.Value = (DateTime.Now - start).TotalMilliseconds;
                    item.Level = 0;
                }
                else
                {
                    item.Value = (DateTime.Now - start).TotalMilliseconds;
                    if (item.Value < 10)
                    {
                        item.Level = 5;
                    }
                    else if (item.Value < 100)
                    {
                        item.Level = 4;
                    }
                    else if (item.Value < 500)
                    {
                        item.Level = 3;
                    }
                    else if (item.Value < 3000)
                    {
                        item.Level = 2;
                    }
                    else
                    {
                        item.Level = 1;
                    }
                }
                await client.DelAsync("_health_");
            }
            catch (Exception ex)
            {
                item.Level   = -1;
                item.Details = ex.Message;
            }
            return(item);
        }
Пример #12
0
 // Update is called once per frame
 void Update()
 {
     fwd = rayOut.TransformDirection(Vector3.forward);
     if (_plyrInput.interact)
     {
         RaycastHit hit;
         if (Physics.Raycast(rayOut.position, fwd, out hit, detectRange))
         {
             if (hit.collider.CompareTag("Health"))
             {
                 HealthItem health = GameObject.FindGameObjectWithTag("Health").GetComponent <HealthItem>();
                 health.Heal();
             }
         }
     }
 }
Пример #13
0
        private HealthItem ConsumerTest()
        {
            HealthItem item = new HealthItem
            {
                ItemName = "Consumer"
            };

            try
            {
                var config = KafkaOption.Instance.Consumer;
                config.GroupId = ZeroAppOption.Instance.AppName;
                var builder = new ConsumerBuilder <Ignore, string>(config);
                using var consumer = builder.Build();
                consumer.Subscribe(KafkaOption.Instance.Message.TestTopic);

                DateTime start = DateTime.Now;
                var      re    = consumer.Consume(new TimeSpan(0, 0, 3));

                item.Value = (DateTime.Now - start).TotalMilliseconds;
                if (item.Value < 10)
                {
                    item.Level = 5;
                }
                else if (item.Value < 100)
                {
                    item.Level = 4;
                }
                else if (item.Value < 500)
                {
                    item.Level = 3;
                }
                else if (item.Value < 3000)
                {
                    item.Level = 2;
                }
                else
                {
                    item.Level = 1;
                }
            }
            catch (Exception ex)
            {
                item.Level   = -1;
                item.Details = ex.Message;
            }
            return(item);
        }
Пример #14
0
        private static HealthItem ProduceTest()
        {
            HealthItem item = new HealthItem
            {
                ItemName = "Produce"
            };

            try
            {
                IConnectionFactory conFactory = new ConnectionFactory //创建连接工厂对象
                {
                    HostName = RabbitMQOption.Instance.HostName,      //IP地址
                    Port     = RabbitMQOption.Instance.Port,          //端口号
                    UserName = RabbitMQOption.Instance.UserName,      //用户账号
                    Password = RabbitMQOption.Instance.Password       //用户密码
                };
                using var con     = conFactory.CreateConnection();    //创建连接对象
                using var channel = con.CreateModel();                //创建连接会话对象
                channel.QueueDeclare(
                    queue: "HealthCheck",                             //消息队列名称
                    durable: false,                                   //是否缓存
                    exclusive: false,
                    autoDelete: false,
                    arguments: null);

                byte[] body = Encoding.UTF8.GetBytes("HealthCheck Test");
                //发送消息
                DateTime start = DateTime.Now;
                channel.BasicPublish(exchange: "", routingKey: "HealthCheck", basicProperties: null, body: body);


                item.Value   = (DateTime.Now - start).TotalMilliseconds;
                item.Details = "Success";
                item.Level   = 5;
            }
            catch (Exception ex)
            {
                item.Level   = -1;
                item.Details = ex.Message;
            }
            return(item);
        }
Пример #15
0
        static int LoadBodySublocations(int locId)
        {
            List <HealthItem> bodySublocations = _diagnosisClient.LoadBodySubLocations(locId);

            if (bodySublocations == null || bodySublocations.Count == 0)
            {
                throw new Exception("Empty body sublocations results");
            }

            foreach (var loc in bodySublocations)
            {
                Console.WriteLine("{0} ({1})", loc.Name, loc.ID);
            }

            int        randomLocIndex = GetRandom(bodySublocations.Count);
            HealthItem randomLocation = bodySublocations[randomLocIndex];

            WriteHeaderMessage(string.Format("Sublocations symptoms for selected location {0}", randomLocation.Name));

            return(randomLocation.ID);
        }
Пример #16
0
        public async Task UpdateHealthItemTest()
        {
            var objA = new HealthItem
            {
                Id        = Guid.NewGuid(),
                Name      = Guid.NewGuid().ToString(),
                IsEnabled = true,
            };

            using var srv = new TestServer(TestHostBuilder <Startup, UnigrationWebApiTestStartup>()
                                           .ConfigureTestServices(x =>
            {
                ExecuteOnContext <HealthItemsContext>(x, db =>
                {
                    _ = db.HealthItems.Add(objA);
                });
            })
                                           );
            var client = srv.CreateClient();

            GenerateAuthHeader(client, GenerateTestToken());
            //Update
            objA.Name = Guid.NewGuid().ToString();
            var resp = await client.PutAsJsonAsync($"api/v1/{nameof(HealthItem)}s.json?id={objA.Id}", objA);

            var result = await DeserializeResponseAsync <HealthItem>(resp);

            Assert.AreEqual("*****@*****.**", result.UpdatedBy);
            Assert.AreEqual(objA.Name, result.Name);

            var ctx  = srv.GetDbContext <HealthItemsContext>();
            var item = await ctx.HealthItems.FirstOrDefaultAsync(t => t.Name == result.Name);

            Assert.IsNotNull(item);
            Assert.AreEqual(result.UpdatedOnUtc, item.UpdatedOnUtc);
            Assert.AreEqual("*****@*****.**", item.UpdatedBy);
        }
Пример #17
0
        private HealthItem ConsumerTest()
        {
            HealthItem item = new HealthItem
            {
                ItemName = "Consumer"
            };

            try
            {
                //var config = RabbitMQOption.Instance.CopyConsumer();
                //config.GroupId = ZeroAppOption.Instance.AppName;
                //var builder = new ConsumerBuilder<Ignore, string>(config);
                //using var consumer = builder.Build();
                //consumer.Subscribe(RabbitMQOption.Instance.TestTopic);

                //DateTime start = DateTime.Now;
                //var re = consumer.Consume(new TimeSpan(0, 0, 3));

                //item.Value = (DateTime.Now - start).TotalMilliseconds;
                //if (item.Value < 10)
                //    item.Level = 5;
                //else if (item.Value < 100)
                //    item.Level = 4;
                //else if (item.Value < 500)
                //    item.Level = 3;
                //else if (item.Value < 3000)
                //    item.Level = 2;
                //else item.Level = 1;
            }
            catch (Exception ex)
            {
                item.Level   = -1;
                item.Details = ex.Message;
            }
            return(item);
        }
Пример #18
0
        public async Task UpdateHealthItemTest()
        {
            var objA = new HealthItem
            {
                Id        = Guid.NewGuid(),
                Name      = Guid.NewGuid().ToString(),
                IsEnabled = true,
            };

            using var srv = new TestServer(TestHostBuilder <Startup, IntegrationTestStartup>());
            var client = srv.CreateClient();

            GenerateAuthHeader(client, GenerateTestToken());

            var resp = await client.PostAsJsonAsync($"api/v1/{nameof(HealthItem)}s.json?id={objA.Id}", objA);

            _    = resp.EnsureSuccessStatusCode();
            objA = await DeserializeResponseAsync <HealthItem>(resp);

            //Update
            objA.Name = Guid.NewGuid().ToString();
            resp      = await client.PutAsJsonAsync($"api/v1/{nameof(HealthItem)}s.json?id={objA.Id}", objA);

            _ = resp.EnsureSuccessStatusCode();
            var result = await DeserializeResponseAsync <HealthItem>(resp);

            Assert.IsNotNull(result.UpdatedBy);
            Assert.AreEqual(objA.Name, result.Name);

            var ctx  = srv.GetDbContext <HealthItemsContext>();
            var item = await ctx.HealthItems.FirstOrDefaultAsync(t => t.Name == result.Name);

            Assert.IsNotNull(item);
            Assert.AreEqual(result.UpdatedOnUtc.ToString(), item.UpdatedOnUtc.ToString());
            Assert.IsNotNull(item.UpdatedBy);
        }
Пример #19
0
 void Awake()
 {
     GlobalVars.playerHealth = 100;
     healthItem = GameObject.FindGameObjectWithTag(Tags.HealthPickup).GetComponent<HealthItem>();
     healthItem.Pickup += FullHeal;
 }
Пример #20
0
        public void Reset()
        {
            Singleton.Instance.turnCount++;
            voBall = new Ball(ball)
            {
                Name = "voBall"
            };
            wizBall = new Ball(ball2)
            {
                Name = "wizBall"
            };
            gameObjects.Add(voBall);
            gameObjects.Add(wizBall);


            //สุ่มไอเท็ม
            if (Singleton.Instance.turnCount % 2 == 0)
            {
                int x;
                do
                {
                    x = itemRand.Next(0, 4);
                } while (x == 2);

                int y    = itemRand.Next(0, 2);
                int type = itemRand.Next(0, 3);
                type = 2;



                if (y == 0)
                {
                    switch (type)
                    {
                    case 0:
                        item1 = new HealthItem(ball)
                        {
                            Name     = "health",
                            Position = new Vector2(Singleton.Instance.leftArea[x], 800)
                        };
                        break;

                    case 1:
                        item1 = new walkSlotItem(ball)
                        {
                            Name     = "walk",
                            Position = new Vector2(Singleton.Instance.leftArea[x], 800)
                        };
                        break;

                    case 2:
                        item1 = new powerItem(ball)
                        {
                            Name     = "power",
                            Position = new Vector2(Singleton.Instance.leftArea[x], 800)
                        };
                        break;
                    }
                    gameObjects.Add(item1);
                }
                else
                {
                    switch (type)
                    {
                    case 0:
                        item2 = new HealthItem(ball)
                        {
                            Name     = "health",
                            Position = new Vector2(Singleton.Instance.rightArea[x], 800)
                        };

                        break;

                    case 1:
                        item2 = new walkSlotItem(ball)
                        {
                            Name     = "walk",
                            Position = new Vector2(Singleton.Instance.rightArea[x], 800)
                        };
                        break;

                    case 2:
                        item2 = new powerItem(ball)
                        {
                            Name     = "power",
                            Position = new Vector2(Singleton.Instance.leftArea[x], 800)
                        };
                        break;
                    }

                    gameObjects.Add(item2);
                }
            }



            virtualPos = Vector2.Zero;
            Singleton.Instance.isRightMove   = false;
            Singleton.Instance.isLeftMove    = false;
            Singleton.Instance.leftSideMove  = 2;
            Singleton.Instance.rightSideMove = 2;
            Singleton.Instance.count         = 0;
            Singleton.Instance.timer         = 30;
            canWalk = true;
            Singleton.Instance.ballVisible         = false;
            Singleton.Instance.ball2Visible        = false;
            Singleton.Instance.virtualVisible      = false;
            Singleton.Instance.virtualShootVisible = false;
            _isDecreaseHealth = false;
            Singleton.Instance.rightChooseShoot = false;
            Singleton.Instance.leftChooseShoot  = false;
            Singleton.Instance.leftSideShoot    = 2;
            Singleton.Instance.rightSideShoot   = 2;
            player1.WalkSlot++;
            player2.WalkSlot++;



            //set ball position according to player position this is open to change screen resolution.
            ball2pos = player2.Position;
            ball1pos = player1.Position;

            foreach (GameObject g in gameObjects)
            {
                g.Reset();
            }
        }
Пример #21
0
 public void AddHealthItem(HealthItem item)
 {
     _flyObjectsController.AddObject(item);
 }
Пример #22
0
    public void InitBag(string shopType)
    {
        if (!init) {
            //init all grid
            for (int i=0; i<gridRow; i++) {
                for (int j=0; j<gridCol; j++) {
                    GameObject gridO = Instantiate (grid, new Vector3 (firstX + j * (border + gridSize), firstY - i * (border + gridSize), 0), Quaternion.identity) as GameObject;
                    gridO.transform.SetParent (transform);
                    grids.Add (gridO);
                }
            }

            init = true;
        }

        for (int i=0; i<grids.Count; i++) {
            if (grids [i].transform.childCount > 0)
                Destroy (grids [i].transform.GetChild (0).gameObject);
        }

        List<Baggrid> bgList = new List<Baggrid> ();

        //获得商店物品列表
        switch (shopType) {
        case "item":
            HealthItem item = new HealthItem (Item.RangeType.SINGLE, 10, "1", "单体治疗药剂", 50);
            Baggrid bg = new Baggrid (item, 0);
            bgList.Add (bg);

            Equipment e2 = new Equipment (2, 3, 0, 0, Equipment.EquipPos.BODY, "3", "学者的幻想", 1, 500);
            Baggrid bg2 = new Baggrid (e2, 0);
            bgList.Add (bg2);

            break;
        case "mercenary":

            Character c = new Character (0, 500, 500, 0, 0, "潘子", false, 500, 500, ProFactory.getPro ("Settler", "100"), 1, 0, null, -1);
            Mercenary m = new Mercenary (c);

            Baggrid bg3 = new Baggrid (m, 0);
            bgList.Add (bg3);

            break;
        }

        for (int i=0; i<bgList.Count; i++) {
            Baggrid bg = bgList [i];

            GameObject itemO = Instantiate (itemPrefab, new Vector3 (grids [i].transform.position.x, grids [i].transform.position.y, 0), Quaternion.identity) as GameObject;
            itemO.GetComponent<Image> ().sprite = Resources.Load <Sprite> (bg.Item.prefabName);
            itemO.GetComponent<UI_Item> ().Bg = bg;
            itemO.GetComponent<UI_Item> ().fromShop = true;

            string num = bg.Num.ToString ();

            if (num.Equals ("0")) {
                num = "";
            }

            itemO.transform.FindChild ("Num").GetComponent<Text> ().text = num;
            itemO.transform.SetParent (grids [i].transform);
        }
    }
Пример #23
0
 public override void Start()
 {
     base.Start();
     item = new HealthItem();
 }