Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EmeraldAiBehaviour.cs
- Lines 15-55 (before Start()):
- public bool ManualControl = false;
- [HideInInspector]
- public EmeraldAISystem EmeraldComponent;
- float BlockTimer;
- bool BackupDelayActive;
- float BackupDistance;
- bool SearchDelayActive = false;
- int StartingDetectionRadius;
- private bool SupportAbilityInvoked = false;
- private bool SummonAbilityInvoked = false;
- private bool OffensiceAbilityInvoked = false;
- private int AbilityInvokedIndex;
- public void InvokeOffensiveAbility(AbilityType abilityType, int AbilityIndex)
- {
- switch (abilityType)
- {
- case AbilityType.Support:
- SupportAbilityInvoked = true;
- break;
- case AbilityType.Summon:
- SummonAbilityInvoked = true;
- break;
- case AbilityType.Offensive:
- OffensiceAbilityInvoked = true;
- break;
- default:
- break;
- }
- AbilityInvokedIndex = AbilityIndex;
- }
- public enum AbilityType
- {
- Support,
- Summon,
- Offensive,
- }
- Lines 788 and on:
- if (EmeraldComponent.EnableBothWeaponTypes == EmeraldAISystem.YesOrNo.No && EmeraldComponent.WeaponTypeRef == EmeraldAISystem.WeaponType.Ranged ||
- EmeraldComponent.EnableBothWeaponTypes == EmeraldAISystem.YesOrNo.Yes && EmeraldComponent.WeaponTypeRef == EmeraldAISystem.WeaponType.Ranged)
- {
- float AbilityOddsRoll = Random.Range(0f, 1f);
- AbilityOddsRoll = AbilityOddsRoll * 100;
- if (ManualControl
- && SupportAbilityInvoked
- || !ManualControl
- &&!EmeraldComponent.m_AbilityPicked
- && EmeraldComponent.SupportAbilities.Count > 0
- && !EmeraldComponent.HealingCooldownActive
- && ((float)EmeraldComponent.CurrentHealth / EmeraldComponent.StartingHealth*100) < EmeraldComponent.HealthPercentageToHeal)
- {
- EmeraldAICombatManager.GenerateSupportAbility(EmeraldComponent);
- EmeraldComponent.AIAnimator.SetInteger("Attack Index", EmeraldComponent.CurrentAnimationIndex + 1);
- EmeraldComponent.AIAnimator.SetTrigger("Attack");
- EmeraldComponent.m_AbilityPicked = true;
- SupportAbilityInvoked = false;
- }
- else if (ManualControl
- && SummonAbilityInvoked
- || !ManualControl
- && !EmeraldComponent.m_AbilityPicked
- && EmeraldComponent.TotalSummonedAI < EmeraldComponent.MaxAllowedSummonedAI
- && EmeraldComponent.SummoningAbilities.Count > 0)
- {
- EmeraldAICombatManager.GenerateSummoningAbility(EmeraldComponent);
- EmeraldComponent.AIAnimator.SetInteger("Attack Index", EmeraldComponent.CurrentAnimationIndex + 1);
- EmeraldComponent.AIAnimator.SetTrigger("Attack");
- EmeraldComponent.m_AbilityPicked = true;
- SummonAbilityInvoked = false;
- }
- else if (!EmeraldComponent.m_AbilityPicked && EmeraldComponent.OffensiveAbilities.Count > 0)
- {
- if (!EmeraldComponent.EmeraldDetectionComponent.m_LookAtInProgress && EmeraldComponent.UseHeadLookRef == EmeraldAISystem.YesOrNo.Yes ||
- EmeraldComponent.UseHeadLookRef == EmeraldAISystem.YesOrNo.No)
- {
- if (ManualControl)
- {
- if (OffensiceAbilityInvoked)
- {
- EmeraldAICombatManager.GenerateOffensiveAbility(EmeraldComponent, AbilityInvokedIndex);
- }
- else
- {
- EmeraldAICombatManager.GenerateOffensiveAbility(EmeraldComponent, 0);
- }
- }
- else
- {
- EmeraldAICombatManager.GenerateOffensiveAbility(EmeraldComponent);
- }
- EmeraldComponent.m_InitialTargetPosition = EmeraldComponent.CurrentTarget.position;
- EmeraldComponent.AIAnimator.SetInteger("Attack Index", EmeraldComponent.CurrentAnimationIndex+1);
- EmeraldComponent.AIAnimator.SetTrigger("Attack");
- EmeraldComponent.m_AbilityPicked = true;
- }
- else
- {
- //If our AI is in the process of rotating with the look at feature, return.
- return;
- }
- }
- }
- EmeraldAiCombatManager.cs:
- somewhere inside add method:
- public static void GenerateOffensiveAbility(EmeraldAISystem EmeraldComponent, int AbilityIndex)
- {
- if (EmeraldComponent.OffensiveAbilities.Count > 0
- && AbilityIndex <= EmeraldComponent.OffensiveAbilities.Count)
- {
- EmeraldComponent.m_EmeraldAIAbility = EmeraldComponent.OffensiveAbilities[AbilityIndex].OffensiveAbility;
- EmeraldComponent.CurrentAnimationIndex = EmeraldComponent.OffensiveAbilities[AbilityIndex].AbilityAnimaition;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement