Example #1
0
        private void InitDefaultCombat()
        {
            defaultAction = new Action(Constants.ActionType.Default);
            defaultAction.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerGreaterThan, subject.Vision));
            preDeterminedActions.Add(defaultAction);

            chase = new Action(Constants.ActionType.Chase);
            chase.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerLowerThan, subject.Vision));
            chase.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerGreaterThan, subject.AttackRange));

            preDeterminedActions.Add(chase);

            stop = new Action(Constants.ActionType.Stop);
            stop.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerLowerThan, subject.AttackRange));
            stop.AddCondition(new Condition(Constants.ConditionType.VelocityOtherThan, 0f));

            preDeterminedActions.Add(stop);

            flee = new Action(Constants.ActionType.Flee, true);
            flee.AddCondition(new Condition(Constants.ConditionType.HealthLowerThan, subject.maxHealth / 4));
            flee.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerLowerThan, subject.Vision));
            flee.AddCondition(new Condition(Constants.ConditionType.Blocked, false));

            //preDeterminedActions.Add(flee);

            /*cower = new Action(Constants.ActionType.Stop, true);
            cower.AddCondition(new Condition(Constants.ConditionType.HealthLowerThan, subject.maxHealth / 4));
            cower.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerGreaterThan, subject.Vision));

            preDeterminedActions.Add(cower);*/
        }
Example #2
0
        private void InitWormLatching()
        {
            latch = new Action(Constants.ActionType.Latch, true);
            latch.AddCondition(new Condition(Constants.ConditionType.CollidesWithPlayer, true));

            preDeterminedActions.Add(latch);
        }
Example #3
0
        private void InitAttackAndFlee()
        {
            defaultAction = new Action(Constants.ActionType.Default);
            defaultAction.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerGreaterThan, subject.Vision));

            preDeterminedActions.Add(defaultAction);

            flee = new Action(Constants.ActionType.Default);
            flee.AddCondition(new Condition(Constants.ConditionType.AttackReady, false));

            preDeterminedActions.Add(flee);

            chase = new Action(Constants.ActionType.Chase);
            chase.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerLowerThan, subject.Vision));
            chase.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerGreaterThan, subject.AttackRange));
            chase.AddCondition(new Condition(Constants.ConditionType.AttackReady, true));

            preDeterminedActions.Add(chase);

            attack = new Action(Constants.ActionType.Attack);
            attack.AddCondition(new Condition(Constants.ConditionType.DistanceToPlayerLowerThan, subject.AttackRange));
            attack.AddCondition(new Condition(Constants.ConditionType.AttackReady, true));

            preDeterminedActions.Add(attack);
        }