//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); }
//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); }
//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); }
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); }
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); }
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); }