Example #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);
    }
Example #2
0
    //passive ability packs
    void BasicPassiveAbilities(Being b)
    {
        Ability reg = new Ability(b, "Stamina regen", 100, 1, false);

        reg.isDefence = false;

        NewRound_Condition      nrc          = new NewRound_Condition(battleManager, b, "New round condition");
        ModulateResource_Effect staminaRegen = new ModulateResource_Effect(battleManager, b, reg, "Stamina regen", "STAMINA", +50, true);
        Self_TargetingCriteria  self         = new Self_TargetingCriteria(battleManager, b, reg);

        reg.effects.Add(staminaRegen);
        reg.conditions.Add(nrc);
        reg.targetingCriteria.Add(self);
        b.abilities.Add(reg);
    }
Example #3
0
    void BasicSelfHealingAbility(Being b)
    {
        //Create a new ability called Healself
        Ability ab = new Ability(b, "Heal", 100, 1, false);
        //create a condition that MP must not be greater the 5 (the cost)
        ResourceAtValue_Condition gt = new ResourceAtValue_Condition(battleManager, b, "MP greater than 5", "MP", ">", 5);

        HealSelf_Effect        hs = new HealSelf_Effect(battleManager, b, ab, "HealSelf", 10);
        Self_TargetingCriteria s  = new Self_TargetingCriteria(battleManager, b, ab);

        ab.conditions.Add(gt);
        ab.effects.Add(hs);
        ab.targetingCriteria.Add(s);
        b.abilities.Add(ab);
    }
Example #4
0
    //passive ability packs
    void BasicPassiveAbilities(Being b)
    {
        Ability reg = new Ability(b, "Stamina regen", AbilityChassis.Block, AbilityType.PublicNormal, 100, 1, true);

        reg.isDefence = false;

        //NewRound_Condition nrc = new NewRound_Condition(actionManager, b, "New round condition");
        ModulateResource_Effect staminaRegen = new ModulateResource_Effect(actionManager, b, reg, "Stamina regen", "STAMINA", +50, true, CombatState.Activate, 0, 0);
        Self_TargetingCriteria  self         = new Self_TargetingCriteria(actionManager, b);

        reg.effects.Add(staminaRegen);
        //reg.conditions.Add(nrc);
        reg.targetingCriteria.Add(self);
        b.abilities.Add(reg);
    }
Example #5
0
    void BasicSelfHealingAbility(Being b)
    {
        //Create a new ability called Healself
        Ability ab = new Ability(b, "Heal", AbilityChassis.Melee, AbilityType.PublicNormal, 100, 1, false);
        //create a condition that MP must not be greater the 5 (the cost)
        ResourceAtValue_Condition gt = new ResourceAtValue_Condition(actionManager, b, "MP greater than 5", "MP", ">", 5);

        HealSelf_Effect        hs = new HealSelf_Effect(actionManager, b, ab, "HealSelf", 10, CombatState.Hit, 0, 0);
        Self_TargetingCriteria s  = new Self_TargetingCriteria(actionManager, b);

        ab.conditions.Add(gt);
        ab.effects.Add(hs);
        ab.targetingCriteria.Add(s);
        b.abilities.Add(ab);
    }
Example #6
0
    void HealSelfBehaviour(Being b)
    {
        //Create a new behaviour called 'heal self'
        Behaviour healSelf = new Behaviour(actionManager, b, "Heal self", ThoughtType.Normal);
        //Create a condition that hp must be below 20
        ResourceAtValue_Condition hpLessThanTwenty = new ResourceAtValue_Condition(actionManager, 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(actionManager, b, "IncludesHealSelf", "HealSelf");
        Self_TargetingCriteria           targetSelf       = new Self_TargetingCriteria(actionManager, b);

        healSelf.conditions.Add(hpLessThanTwenty);;
        healSelf.selectionCriteria.Add(includesHealSelf);
        healSelf.targetingCriteria.Add(targetSelf);
        b.behaviours.Add(healSelf);
    }
Example #7
0
    //defence blocks
    void BasicDefences(Being b)
    {
        Ability def1 = new Ability(b, "Block", 100, 1, true);

        def1.isDefence    = true;
        def1.defenceSpeed = 50;
        ResourceAtValue_Condition reqStam      = new ResourceAtValue_Condition(battleManager, b, "Stamina above 0", "STAMINA", ">", 0);
        ModulateResource_Effect   costsStamina = new ModulateResource_Effect(battleManager, b, def1, "CostsStamina", "STAMINA", -10, true);
        Block_DefenceEffect       block        = new Block_DefenceEffect(battleManager, b, def1, "Block");
        Self_TargetingCriteria    self         = new Self_TargetingCriteria(battleManager, b, def1);

        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", 100, 1, true);

        def2.isDefence    = true;
        def2.defenceSpeed = 40;
        ResourceAtValue_Condition reqStam2      = new ResourceAtValue_Condition(battleManager, b, "Stamina above 0", "STAMINA", ">", 0);
        ModulateResource_Effect   costsStamina2 = new ModulateResource_Effect(battleManager, b, def2, "CostsStamina", "STAMINA", -20, true);
        Dodge_DefenceEffect       dodge         = new Dodge_DefenceEffect(battleManager, b, def2, "Dodge");
        Self_TargetingCriteria    self2         = new Self_TargetingCriteria(battleManager, b, def2);

        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(battleManager, b, "NoCondition");
        Self_TargetingCriteria  self3        = new Self_TargetingCriteria(battleManager, b, def3);
        AnyAction_DefenceEffect anyAction    = new AnyAction_DefenceEffect(battleManager, b, def3, "AnyAction");

        def3.effects.Add(anyAction);
        def3.conditions.Add(noCondition6);
        def3.targetingCriteria.Add(self3);
        b.defences.Add(def3);
    }
Example #8
0
    //ability packs
    void BasicBeingAbilities(Being b)
    {
        //This pack is for things like being able to attribute focus (that's not passive because you need to be concious to do it, unlike reganing stamina which skirts close to being a rule rather than an 'ability')

        Ability a = new Ability(b, "Attribute Focus", AbilityChassis.Thought, AbilityType.Instant, 100, 1, false);

        a.isDefence = false;

        NewRound_Condition nrc = new NewRound_Condition(actionManager, b, "New round condition");

        AttributeFocus_Effect  attributeFocus_Effect = new AttributeFocus_Effect(actionManager, b, a, "Attribute Focus", CombatState.Activate, 0, 0);
        Self_TargetingCriteria self = new Self_TargetingCriteria(actionManager, b);

        a.effects.Add(attributeFocus_Effect);
        a.targetingCriteria.Add(self);
        b.abilities.Add(a);
    }
Example #9
0
    void BasicAttackAbilities(Being b)
    {
        Ability ab3 = new Ability(b, "Echoing Punch", AbilityChassis.Melee, AbilityType.PublicNormal, 100, 1, false);
        StatusIsNot_Condition     notStaggered  = new StatusIsNot_Condition(actionManager, b, "IsNotStaggered", Being.Status.staggered);
        ResourceAtValue_Condition reqStam1      = new ResourceAtValue_Condition(actionManager, b, "Stamina above 0", "STAMINA", ">", 0);
        ModulateResource_Effect   costsStamina1 = new ModulateResource_Effect(actionManager, b, ab3, "CostsStamina", "STAMINA", -20, true, CombatState.Activate, 0, 0);
        Damage_Effect             damage        = new Damage_Effect(actionManager, b, ab3, "Damage", "HP", 1, CombatState.Hit, 0, 0);
        Others_TargetingCriteria  o             = new Others_TargetingCriteria(actionManager, b);

        ab3.conditions.Add(notStaggered);
        ab3.conditions.Add(reqStam1);
        ab3.effects.Add(costsStamina1);
        ab3.effects.Add(damage);
        ab3.targetingCriteria.Add(o);
        ab3.numberOfTargets = 1;
        b.abilities.Add(ab3);


        Ability ab4 = new Ability(b, "Punch", AbilityChassis.Melee, AbilityType.PublicNormal, 100, 1, false);
        StatusIsNot_Condition     notStaggered2 = new StatusIsNot_Condition(actionManager, b, "NoCondition", Being.Status.staggered);
        ResourceAtValue_Condition reqStam       = new ResourceAtValue_Condition(actionManager, b, "Stamina above 0", "STAMINA", ">", 0);
        ModulateResource_Effect   costsStamina  = new ModulateResource_Effect(actionManager, b, ab3, "CostsStamina", "STAMINA", -20, true, CombatState.Activate, 0, 0);
        Damage_Effect             damage2       = new Damage_Effect(actionManager, b, ab3, "Damage", "HP", 2, CombatState.Hit, 0, 0);
        Others_TargetingCriteria  o2            = new Others_TargetingCriteria(actionManager, b);

        ab4.abilityType = AbilityType.PublicNormal;
        ab4.conditions.Add(notStaggered2);
        //ab4.conditions.Add(reqStam);
        ab4.effects.Add(costsStamina);
        ab4.effects.Add(damage2);
        ab4.targetingCriteria.Add(o2);
        ab4.numberOfTargets = 1;
        b.abilities.Add(ab4);

        Ability                   overcome    = new Ability(b, "Overcome Stagger", AbilityChassis.StaggerRecover, AbilityType.PublicNormal, 100, 1, false);
        StatusIs_Condition        isStaggered = new StatusIs_Condition(actionManager, b, "Staggered", Being.Status.staggered);
        ResourceAtValue_Condition reqStam2    = new ResourceAtValue_Condition(actionManager, b, "Stamina above 0", "STAMINA", ">", 0);
        Self_TargetingCriteria    selftarget  = new Self_TargetingCriteria(actionManager, b);

        overcome.conditions.Add(isStaggered);
        overcome.conditions.Add(reqStam2);
        overcome.targetingCriteria.Add(selftarget);
        b.abilities.Add(overcome);
    }