예제 #1
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);
    }
예제 #2
0
    void BasicDefenceAbilities(Being b)
    {
        Ability dodge = new Ability(b, "Dodge", AbilityChassis.Dodge, AbilityType.PublicNormal, 100, 1, false);
        StatusIsNot_Condition    notStaggered = new StatusIsNot_Condition(actionManager, b, "NoCondition", Being.Status.staggered);
        Dodge_DefenceEffect      dodgeEffect  = new Dodge_DefenceEffect(actionManager, b, dodge, "Dodge", CombatState.Hit, 0, 0);
        Others_TargetingCriteria others       = new Others_TargetingCriteria(actionManager, b);

        dodge.conditions.Add(notStaggered);
        dodge.effects.Add(dodgeEffect);
        dodge.targetingCriteria.Add(others);

        b.abilities.Add(dodge);

        Ability block = new Ability(b, "Block", AbilityChassis.Block, AbilityType.PublicNormal, 100, 1, false);
        StatusIsNot_Condition    notStaggered2 = new StatusIsNot_Condition(actionManager, b, "NoCondition", Being.Status.staggered);
        Block_DefenceEffect      block2        = new Block_DefenceEffect(actionManager, b, block, "Block", CombatState.Hit, 0, 0);
        Others_TargetingCriteria others2       = new Others_TargetingCriteria(actionManager, b);

        block.conditions.Add(notStaggered2);
        block.effects.Add(block2);
        block.targetingCriteria.Add(others2);

        b.abilities.Add(block);
    }