//ability packs void BasicAttackAbilities(Being b) { Ability ab3 = new Ability(b, "Poor punch", 100, 1, false); NoCondition_Condition noCondition2 = new NoCondition_Condition(battleManager, b, "NoCondition"); ModulateResource_Effect damage = new ModulateResource_Effect(battleManager, b, ab3, "Damage", "HP", -3, false); Others_TargetingCriteria o = new Others_TargetingCriteria(battleManager, b, ab3); ab3.conditions.Add(noCondition2); ab3.effects.Add(damage); ab3.targetingCriteria.Add(o); ab3.numberOfTargets = 1; // b.abilities.Add(ab3); Ability ab4 = new Ability(b, "Punch", 100, 1, false); ResourceAtValue_Condition reqStam = new ResourceAtValue_Condition(battleManager, b, "Stamina above 0", "STAMINA", ">", 0); ModulateResource_Effect costsStamina = new ModulateResource_Effect(battleManager, b, ab3, "CostsStamina", "STAMINA", -20, true); ModulateResource_Effect damage2 = new ModulateResource_Effect(battleManager, b, ab4, "Damage", "HP", -10, false); Others_TargetingCriteria o2 = new Others_TargetingCriteria(battleManager, b, ab4); ab4.abilityType = AbilityType.PublicNormal; ab4.conditions.Add(reqStam); ab4.effects.Add(costsStamina); ab4.effects.Add(damage2); ab4.targetingCriteria.Add(o2); ab4.numberOfTargets = 1; b.abilities.Add(ab4); }
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); }
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); }
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); }
//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); }
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); }