Ejemplo n.º 1
0
    //Reactions (behaviours with an action parameter)
    void BasicReactions(Being b)
    {
        //Create a new reaction called 'self preservation'
        Reaction selfPreservation = new Reaction(actionManager, b, "Self Preservation", ThoughtType.Reaction);
        AmTarget_ReactionCondition       amtarget    = new AmTarget_ReactionCondition(actionManager, b, "Am target");
        ContainsEffect_ReactionCondition dealsDamage = new ContainsEffect_ReactionCondition(actionManager, b, "Deals Damage", "Damage");
        IncludesEffect_SelectionCriteria dodges      = new IncludesEffect_SelectionCriteria(actionManager, b, "dodges", "Dodge");
        IncludesEffect_SelectionCriteria blocks      = new IncludesEffect_SelectionCriteria(actionManager, b, "blocks", "Block");
        Self_TargetingCriteria           targetSelf  = new Self_TargetingCriteria(actionManager, b);


        selfPreservation.reactionConditions.Add(amtarget);
        selfPreservation.reactionConditions.Add(dealsDamage);
        selfPreservation.selectionCriteria.Add(dodges);
        selfPreservation.selectionCriteria.Add(blocks);
        selfPreservation.targetingCriteria.Add(targetSelf);

        b.reactions.Add(selfPreservation);

        //create a reaction called 'notice danger'
        Reaction noticeDanger = new Reaction(actionManager, b, "Notice Danger", ThoughtType.Reaction);
        ContainsEffect_ReactionCondition dealsDamage2 = new ContainsEffect_ReactionCondition(actionManager, b, "Deals Damage", "Damage");
        IncludesEffect_SelectionCriteria exclamation  = new IncludesEffect_SelectionCriteria(actionManager, b, "Exclamation", "Exclamation");
        Self_TargetingCriteria           targetSelf2  = new Self_TargetingCriteria(actionManager, b);

        noticeDanger.reactionConditions.Add(dealsDamage2);
        noticeDanger.selectionCriteria.Add(exclamation);
        noticeDanger.targetingCriteria.Add(targetSelf2);

        b.reactions.Add(noticeDanger);
    }
Ejemplo n.º 2
0
    //behaviours
    void AttackBehaviour(Being b)
    {
        //Create a new behaviour called 'just attack'
        Behaviour                        justAttack     = new Behaviour(battleManager, b, "Just attack");
        NoCondition_Condition            noCondition    = new NoCondition_Condition(battleManager, b, "NoCondition");
        IncludesEffect_SelectionCriteria includesDamage = new IncludesEffect_SelectionCriteria(battleManager, b, "IncludesDamage", "Damage", 10, 20);

        justAttack.conditions.Add(noCondition);;
        justAttack.selectionCriteria.Add(includesDamage);
        b.behaviours.Add(justAttack);
    }
Ejemplo n.º 3
0
    //defence blocks

    /*
     * void BasicDefences(Being b)
     * {
     *  Ability def1 = new Ability(b,"Block",AbilityChassis.Block, AbilityType.PublicNormal, 100, 1, true);
     *  def1.isDefence = true;
     *  def1.defenceSpeed = 50;
     *  ResourceAtValue_Condition reqStam = new ResourceAtValue_Condition(actionManager, b, "Stamina above 0", "STAMINA", ">", 0);
     *  ModulateResource_Effect costsStamina = new ModulateResource_Effect(actionManager, b, def1, "CostsStamina", "STAMINA", -10, true, CombatState.Activate);
     *  Block_DefenceEffect block = new Block_DefenceEffect(actionManager, b, def1, "Block", CombatState.Hit);
     *  Self_TargetingCriteria self = new Self_TargetingCriteria(actionManager, b);
     *
     *  def1.effects.Add(block);
     *  def1.effects.Add(costsStamina);
     *  def1.conditions.Add(reqStam);
     *  def1.targetingCriteria.Add(self);
     *  b.defences.Add(def1);
     *
     *  //Create a generic 'dodge' defence
     *  Ability def2 = new Ability(b, "Dodge", AbilityChassis.Dodge, AbilityType.PublicNormal, 100, 1, true);
     *  def2.isDefence = true;
     *  def2.defenceSpeed = 40;
     *  ResourceAtValue_Condition reqStam2 = new ResourceAtValue_Condition(actionManager, b, "Stamina above 0", "STAMINA", ">", 0);
     *  ModulateResource_Effect costsStamina2 = new ModulateResource_Effect(actionManager, b, def2, "CostsStamina", "STAMINA", -20, true, CombatState.Activate);
     *  Dodge_DefenceEffect dodge = new Dodge_DefenceEffect(actionManager, b, def2, "Dodge", CombatState.Hit);
     *  Self_TargetingCriteria self2 = new Self_TargetingCriteria(actionManager, b);
     *
     *  def2.effects.Add(dodge);
     *  def2.effects.Add(costsStamina2);
     *  def2.conditions.Add(reqStam2);
     *  def2.targetingCriteria.Add(self2);
     *  b.defences.Add(def2);
     *
     *  //Create a generic 'free action' defence
     *  //Ability def3 = new Ability(b, "Any Action", 100, 1, true);
     * // def3.isDefence = true;
     * // def3.defenceSpeed = 5;
     *  NoCondition_Condition noCondition6 = new NoCondition_Condition(actionManager, b, "NoCondition");
     * //  Self_TargetingCriteria self3 = new Self_TargetingCriteria(actionManager, b, def3);
     * //  AnyAction_DefenceEffect anyAction = new AnyAction_DefenceEffect(actionManager, b, def3, "AnyAction");
     *
     * // def3.effects.Add(anyAction);
     * // def3.conditions.Add(noCondition6);
     * // def3.targetingCriteria.Add(self3);
     * // b.defences.Add(def3);
     * }
     */
    //behaviours
    void BasicBeingBehaviours(Being b)
    {
        //These behaviours will do things like select for attributing focus
        Behaviour attributeFocus = new Behaviour(actionManager, b, "Attribute Focus", ThoughtType.Normal);
        IsBeingsTurn_Condition           isBeingsTurn           = new IsBeingsTurn_Condition(actionManager, b, "Is my turn", b);
        IncludesEffect_SelectionCriteria includesAttributeFocus = new IncludesEffect_SelectionCriteria(actionManager, b, "Attribute Focus", "Attribute Focus");

        attributeFocus.conditions.Add(isBeingsTurn);
        attributeFocus.selectionCriteria.Add(includesAttributeFocus);
        b.behaviours.Add(attributeFocus);
    }
Ejemplo n.º 4
0
    void HealSelfBehaviour(Being b)
    {
        //Create a new behaviour called 'heal self'
        Behaviour healSelf = new Behaviour(battleManager, b, "Heal self");
        //Create a condition that hp must be below 20
        ResourceAtValue_Condition hpLessThanTwenty = new ResourceAtValue_Condition(battleManager, b, "HP less that 20", "HP", "<", 20);
        //Create a selectionCriteria for appropriate abilities that the must have a 'healself' effect
        IncludesEffect_SelectionCriteria includesHealSelf = new IncludesEffect_SelectionCriteria(battleManager, b, "IncludesHealSelf", "HealSelf", 20, 30);

        healSelf.conditions.Add(hpLessThanTwenty);;
        healSelf.selectionCriteria.Add(includesHealSelf);
        b.behaviours.Add(healSelf);
    }
Ejemplo n.º 5
0
    public void AttackTeamBehaviour(Being b, int team)
    {
        //Create a new behaviour called 'just attack'
        Behaviour                        attackTeam     = new Behaviour(actionManager, b, "Attack Team", ThoughtType.Normal);
        NoCondition_Condition            noCondition    = new NoCondition_Condition(actionManager, b, "NoCondition");
        IncludesEffect_SelectionCriteria includesDamage = new IncludesEffect_SelectionCriteria(actionManager, b, "IncludesDamage", "Damage");
        OnTeam_TargetingCriteria         onTeam         = new OnTeam_TargetingCriteria(actionManager, b, team);

        attackTeam.conditions.Add(noCondition);;
        attackTeam.selectionCriteria.Add(includesDamage);
        attackTeam.targetingCriteria.Add(onTeam);
        b.behaviours.Add(attackTeam);
    }
Ejemplo n.º 6
0
    public void DefendTeamReaction(Being b, int team)
    {
        //Create a new reaction called 'self preservation'
        Reaction defendTeam = new Reaction(actionManager, b, "Defend Team", ThoughtType.Reaction);
        NoCondition_Condition                noCondition        = new NoCondition_Condition(actionManager, b, "No Condition");
        TargetOnTeam_ReactionCondition       targetOnTeam       = new TargetOnTeam_ReactionCondition(actionManager, b, "target on team", team);
        ContainsEffect_ReactionCondition     dealsDamage        = new ContainsEffect_ReactionCondition(actionManager, b, "Deals Damage", "Damage");
        IncludesEffect_SelectionCriteria     blocks             = new IncludesEffect_SelectionCriteria(actionManager, b, "blocks", "Block");
        CurrentActionActor_TargetingCriteria currentActionActor = new CurrentActionActor_TargetingCriteria(actionManager, b);

        defendTeam.conditions.Add(noCondition);
        defendTeam.reactionConditions.Add(targetOnTeam);
        defendTeam.reactionConditions.Add(dealsDamage);
        defendTeam.selectionCriteria.Add(blocks);
        defendTeam.targetingCriteria.Add(currentActionActor);

        b.reactions.Add(defendTeam);
    }