private ITicker _DiscardItemStrategy()
        {
            var builder = new Regulus.BehaviourTree.Builder();

            var timeTrigger = new TimeTriggerStrategy(10f);

            var node = builder
                    .Sequence()
                        .Action(timeTrigger.Tick)
                        .Action((delta) => timeTrigger.Reset(10f))
                        .Selector()
                            .Sequence()
                                .Action((delta) => _CheckItemAmount("Axe", (count) => count >= 2))
                                .Action((delta) => _DiscardItem("Axe" , 1))
                                .Action((delta) => _Talk("Discard axe."))
                            .End()
                            .Sequence()
                                .Action((delta) => _CheckItemAmount("Sword", (count) => count >= 2))
                                .Action((delta) => _DiscardItem("Sword", 1))
                                .Action((delta) => _Talk("Discard sword."))
                            .End()

                            .Sequence()
                                .Action((delta) => _CheckItemAmount("Lamp", (count) => count >= 2))
                                .Action((delta) => _DiscardItem("Lamp", 1))
                                .Action((delta) => _Talk("Discard lamp."))
                            .End()

                            .Sequence()
                                .Action((delta) => _CheckItemAmount("AidKit", (count) => count >= 2))
                                .Action((delta) => _DiscardItem("AidKit", 1))
                                .Action((delta) => _Talk("Discard AidKit."))
                            .End()
                        .End()

                    .End()
                .Build();
            return node;
        }
        private ITicker _EquipItemStrategy()
        {
            var timeTrigger = new TimeTriggerStrategy(1f);
            var builder = new Regulus.BehaviourTree.Builder();
            var node = builder
                    .Sequence()
                        .Action(timeTrigger.Tick)
                        .Action((delta) => timeTrigger.Reset(1))
                        .Selector()
                            .Action((delta) => _Equip(EQUIP_PART.RIGHT_HAND))
                            .Action((delta) => _Equip(EQUIP_PART.FIXTURES))
                        .End()

                    .End()
                .Build();
            return node;
        }
        private ITicker _MakeItemStrategy()
        {
            var index = 0;
            var builder = new Regulus.BehaviourTree.Builder();

            var timeTrigger = new TimeTriggerStrategy(10f);

            var node = builder
                    .Sequence()
                        .Action(timeTrigger.Tick)
                        .Action((delta) => timeTrigger.Reset(10f))
                        .Action(_ToMake)
                        .Action(()=>new WaitSecondStrategy(3))
                        .Action((delta) => _GetRandomIndex(0, 4 , out index))
                        .Selector()
                            .Sequence()
                                .Action((delta) => _If( index == 0) )
                                .Action((delta) => _CheckItemAmount("Axe" , (count) => count < 2 ))
                                .Action((delta) => _MakeItem("Axe"))
                                .Action((delta) => _Talk("Produced axe."))
                            .End()
                            .Sequence()
                                .Action((delta) => _If(index == 1))
                                .Action((delta) => _CheckItemAmount("Sword", (count) => count < 2))
                                .Action((delta) => _MakeItem("Sword"))
                                .Action((delta) => _Talk("Produced sword."))
                            .End()

                            .Sequence()
                                .Action((delta) => _If(index == 2))
                                .Action((delta) => _CheckItemAmount("Lamp", (count) => count < 2))
                                .Action((delta) => _MakeItem("Lamp"))
                                .Action((delta) => _Talk("Produced lamp."))
                            .End()

                            .Sequence()
                                .Action((delta) => _If(index == 3))
                                .Action((delta) => _CheckItemAmount("AidKit", (count) => count < 2))
                                .Action((delta) => _MakeItem("AidKit"))
                                .Action((delta) => _Talk("Produced aid."))
                            .End()
                            .Sequence()
                                .Action((delta) => _Talk("Nothing maked."))
                            .End()

                        .End()
                        .Action(_ReleaseMake)
                    .End()
                .Build();
            return node;
        }