コード例 #1
0
ファイル: EncounterRoles.cs プロジェクト: wladimiiir/vault112
        public static void InitAnimalEvil(Critter critter)
        {
            var builder = new CritterBehaviorBuilder (critter);

            builder
                .Do (new CallReinforcements (BlackboardKeys.Attackers))
                .DoSequence ("3% to attack weakest animal from my team - fight over the area")
                    .Do (new AtFixedRate<CritterBlackboard> (Time.RealSecond (10)))
                    .Do (new AtChance<CritterBlackboard> (3))
                    .Do (new FindCritters (Find.Life).Choose (new Weakest ())).If (new SeesCritter ()).If (new IsTeamMember ())
                    .Do (new Attack ())
                .End ()
                .DoSequence ("10% to attack animal of same type from other team")
                    .Do (new AtFixedRate<CritterBlackboard> (Time.RealSecond (10)))
                    .Do (new AtChance<CritterBlackboard> (10))
                    .Do (new FindCritters (Find.Life).Choose (new BT.Random ())).If (new SeesCritter ()).IfNot (new IsTeamMember ())
                    .Do (new Attack ())
                .End ()
                .DoSequence ("Attack every non member and not same type critter")
                    .Do (new FindCritters (Find.Life)).IfNot (new AmAttacking ()).If (new SeesCritter ()).If (new IsTeamMember ()).IfNot (new IsSameType ())
                    .Do (new Attack ())
                .End ()
                .Do (new ProvideReinforcements ()).IfNot (new AmAttacking ());

            Global.RegisterBehaviorTask (builder.MainTask);
        }
コード例 #2
0
ファイル: JunkyardRoles.cs プロジェクト: wladimiiir/vault112
        public static void InitGyro(Critter npc)
        {
            var builder = new CritterBehaviorBuilder(npc);

            builder
                .DoSequence("I am attacked")
                    .Do(new CallReinforcements(BlackboardKeys.Attackers, BlackboardKeys.SeenAttackers, BlackboardKeys.Killers))
            //TODO: maybe run to guard
                .End();

            Global.RegisterBehaviorTask(builder.MainTask);
        }
コード例 #3
0
ファイル: EncounterRoles.cs プロジェクト: wladimiiir/vault112
        public static void InitAnimalGood(Critter critter)
        {
            var builder = new CritterBehaviorBuilder (critter);

            builder
                .Do (new CallReinforcements (BlackboardKeys.Attackers))
                .Do (new ProvideReinforcements ()).IfNot (new AmAttacking ())
                .DoSequence ("Move randomly every 10-20 seconds")
                    .Do (new AtFixedRate<CritterBlackboard> (Time.RealSecond (10), Time.RealSecond (20)))
                    .Do (new MoveRandomly (1, 5))
                .End ();

            Global.RegisterBehaviorTask (builder.MainTask);
        }
コード例 #4
0
ファイル: Roles.cs プロジェクト: wladimiiir/vault112
        public static Critter InitBully(IntPtr ptr, bool firstTime)
        {
            Global.Log ("Initializing bully");
            Critter npc = (Critter)ptr;
            CritterBehaviorBuilder builder = new CritterBehaviorBuilder (npc);

            builder
                .DoSequence ()
                    .Do (new BT.Say (FOnline.Say.NormOnHead, "Hello Wasteland!"))
                    .Do (new ChangeDirection ())
                    .Do (new Wait (Time.RealSecond (3), Time.RealSecond (10)))
                .End ();

            Global.RegisterBehaviorTask (builder.MainTask);
            return npc;
        }
コード例 #5
0
ファイル: Vault112Roles.cs プロジェクト: wladimiiir/vault112
        /**
         * Init methods for use in Mono
         */
        public static void InitGuard(Critter npc)
        {
            var builder = new CritterBehaviorBuilder(npc);

            builder
                .DoSequence()
                    .Do(new CallReinforcements(BlackboardKeys.Attackers, BlackboardKeys.SeenAttackers, BlackboardKeys.Killers))
                    .Do(new BT.Say(FOnline.Say.NormOnHead, TextMsg.Text, 70140))
                    .Do(new Attack(BlackboardKeys.Attackers))
                .End()
                .DoSelection()
                    .Do(new ProvideReinforcements())
                .End();

            Global.RegisterBehaviorTask(builder.MainTask);
        }
コード例 #6
0
ファイル: JunkyardRoles.cs プロジェクト: wladimiiir/vault112
        /**
         * Init methods for use in Mono
         */
        public static void InitGuard(Critter npc)
        {
            var builder = new CritterBehaviorBuilder(npc);

            builder
                .DoSequence()
                    .Do(new CallReinforcements(BlackboardKeys.Attackers, BlackboardKeys.SeenAttackers, BlackboardKeys.Killers))
                    .Do(new Attack(BlackboardKeys.Attackers))
                .End()
                .DoSelection()
                    .Do(new ProvideReinforcements())
                .End()
                .DoSequence()
                    .Do(new Patrol(Entire.Patrol))
                    .Do(new LookAround(3, Time.RealSecond(15)))
                .End();

            Global.RegisterBehaviorTask(builder.MainTask);
        }
コード例 #7
0
        public static void InitCritter1(Critter npc)
        {
            var builder = new CritterBehaviorBuilder(npc);

            builder
                .Do(new TakeDrug(ItemPack.HealingDrugs).If(new IsHurt(70)))
                .DoSequence("Attack and call reinforcements")
                    .Do(new CallReinforcements(BlackboardKeys.Attackers, BlackboardKeys.SeenAttackers, BlackboardKeys.Killers))
                    .Do(new CallReinforcements(VirtualRealityReinforcements, BlackboardKeys.Attackers, BlackboardKeys.Killers))
                    .Do(new Attack(BlackboardKeys.Attackers))
                .End()
                .Do(new ProvideReinforcements()).IfNot(new AmAttacking())
                .Do(new ProvideReinforcements(VirtualRealityReinforcements)).IfNot(new AmAttacking()).If(new SeesCritter())
                .DoSequence("Find player and attack him")
                    .Do(new FindCritters(Find.Life | Find.OnlyPlayers).Choose(new Weakest())).If(new SeesCritter()).IfNot(new AmAttacking())
                    .Do(new Attack())
                .End();

            Global.RegisterBehaviorTask(builder.MainTask);
        }
コード例 #8
0
ファイル: Roles.cs プロジェクト: wladimiiir/vault112
        public static Critter InitPatrol(IntPtr ptr, bool firstTime)
        {
            Global.Log ("Initializing patrol");
            Critter npc = (Critter)ptr;
            CritterBehaviorBuilder builder = new CritterBehaviorBuilder (npc);

            builder
                .DoSelection ()
                    .Do (new Attack ("dsadsa"))
                .End ()
                .DoSequence ()
                    .Do (new BT.Say (FOnline.Say.NormOnHead, "Patrolling..."))
                    .Do (new Patrol (401))
                    .Do (new LookAround (3, Time.RealSecond (3)))
                    .Do (new Wait (Time.RealSecond (3), Time.RealSecond (10)))
                .End ();

            Global.RegisterBehaviorTask (builder.MainTask);
            return npc;
        }
コード例 #9
0
ファイル: EncounterRoles.cs プロジェクト: wladimiiir/vault112
        /**
         * Init methods for use in Mono
         */
        public static void InitHumanEvil(Critter critter)
        {
            var builder = new CritterBehaviorBuilder (critter);

            builder
                .Do (new CallReinforcements (BlackboardKeys.Attackers))
                .Do (new TakeDrug (ItemPack.HealingDrugs)).If (new IsHurt (70))
                .DoSequence ("20% to find weakest player and attack him instead")
                    .Do (new AtFixedRate<CritterBlackboard> (Time.RealSecond (10)))
                    .Do (new AtChance<CritterBlackboard> (20))
                    .Do (new FindCritters (Find.Life | Find.OnlyPlayers).Choose (new Weakest ())).If (new SeesCritter ()).IfNot (new IsTeamMember ())
                    .Do (new Attack ())
                .End ()
                .DoSequence ("Attack every non member")
                    .Do (new FindCritters (Find.Life)).If (new SeesCritter ()).IfNot (new AmAttacking ()).IfNot (new IsTeamMember ())
                    .Do (new Attack ())
                .End ()
                .Do (new ProvideReinforcements ()).IfNot (new AmAttacking ());

            Global.RegisterBehaviorTask (builder.MainTask);
        }
コード例 #10
0
ファイル: Roles.cs プロジェクト: wladimiiir/vault112
        public static Critter InitPerformanceTestFindCritters(IntPtr ptr, bool firstTime)
        {
            Critter npc = (Critter)ptr;
            CritterBehaviorBuilder builder = new CritterBehaviorBuilder (npc);

            builder
                .DoSequence ()
                    .Do (new FindCritters (Find.KO | Find.OnlyPlayers))
                    .If (new IsInRange (4))
                    .Do (new LookAt ())
                    .Do (new BT.Say (FOnline.Say.Norm, "Knocked down!"))
                    .Do (new Wait (Time.RealSecond (3), Time.RealSecond (10)))
                .End ()
                .DoSequence ()
                    .Do (new ChangeDirection ())
                    .Do (new Wait (Time.RealSecond (5), Time.RealSecond (10)))
                .End ();

            Global.RegisterBehaviorTask (builder.MainTask);
            return npc;
        }
コード例 #11
0
ファイル: EncounterRoles.cs プロジェクト: wladimiiir/vault112
        public static void InitHumanGood(Critter critter)
        {
            var builder = new CritterBehaviorBuilder (critter);

            builder
                .Do (new CallReinforcements (BlackboardKeys.Attackers))
                .Do (new TakeDrug (ItemPack.HealingDrugs)).If (new IsHurt (70))
                .DoSequence ("Attack enemies in sight")
                    .Do (new FindCritters (Find.Life).Choose (new BT.Random ())).IfNot (new AmAttacking ()).If (new SeesCritter ()).If (new IsEnemy ())
                    .Do (new Attack ())
                .End ()
                .Do (new ProvideReinforcements ()).IfNot (new AmAttacking ())
                .Do (new Attack (BlackboardKeys.Attackers));

            Global.RegisterBehaviorTask (builder.MainTask);
        }