コード例 #1
0
        private void Interoperate()
        {
            LogicService.RequestPlayerInfo(pid).Callback = RequestReturn;
            new Thread(() =>
            {
                while (true)
                {
                    var inputs = Console.ReadLine().Split(' ');
                    int method = 1;

                    if (inputs.Length < 2)
                    {
                        Console.WriteLine("method arg");
                        continue;
                    }
                    if (!int.TryParse(inputs[0], out method) || (method < 0 || method > 4))
                    {
                        Console.WriteLine("1:AskChangeName 2:AskAddMoney 3:AskLearnSkill 4:AskMove");
                        continue;
                    }

                    SceneService.AskMoveTo(1, 1);

                    switch ((Method)method)
                    {
                    case Method.AskChangeName:
                        {
                            //var a = new TestBaseClass() {baseId = 1};
                            //var b = new TestDerived1Class() {baseId = 2, derived1Id = 3,};
                            //var c = new TestDerived2Class() {baseId = 4, derived2Id = 5,};
                            //var e = new TestDerived11Class() {baseId = 6, derived1Id = 7, derived11Id = 8};

                            LogicService.AskChangeName(pid, inputs[1]).Callback = operation =>
                            {
                                if (!operation.IsComplete)
                                {
                                    Console.WriteLine("LogicService.AskChangeName failed");
                                    return;
                                }

                                Console.WriteLine("LogicService.AskChangeName return ret={0}", operation.Result);
                                LogicService.RequestPlayerInfo(pid).Callback = RequestReturn;
                            };
                            break;
                        }

                    case Method.AskAddMoney:
                        {
                            uint money = 0;
                            uint.TryParse(inputs[1], out money);

                            LogicService.AskAddMoney(pid, money).Callback = operation =>
                            {
                                if (!operation.IsComplete)
                                {
                                    Console.WriteLine("LogicService.AskAddMoney failed");
                                    return;
                                }

                                Console.WriteLine("LogicService.AskAddMoney return ret={0}", operation.Result);
                                LogicService.RequestPlayerInfo(pid).Callback = RequestReturn;
                            };
                        }
                        break;

                    case Method.AskLearnSkill:
                        {
                            uint skillId = 0;
                            uint.TryParse(inputs[1], out skillId);

                            LogicService.AskLearnSkill(pid, skillId).Callback = operation =>
                            {
                                if (!operation.IsComplete)
                                {
                                    Console.WriteLine("LogicService.AskLearnSkill failed");
                                    return;
                                }

                                Console.WriteLine("LogicService.AskLearnSkill return ret={0}", operation.Result);
                                LogicService.RequestPlayerInfo(pid).Callback = RequestReturn;
                            };
                        }
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
                       ).Start();
        }