示例#1
0
    public void StartAbilityAtIndx(int indx)
    {
        Ability abilityToPass = null;

        foreach (Ability ab in view.curCombatAbilities)
        {
            if (ab == view.curAbilityCluster.abilityButtons[indx].ability)
            {
                abilityToPass = ab;
                break;
            }
        }
        if (abilityToPass == null)
        {
            //Debug.LogError("We just called a null ability from the menu. did the hero get switched or the ability list change?");
            return;
        }
        else if (AbilityManager.abManager.IsCharacterCurrentlyDoingAbility(curHero) == false)
        {
            BaseBattleActor curHeroBattleActor = curHero.GetComponent <BaseBattleActor>();
            Debug.Log("character was not doing other thing");
            curHeroBattleActor.DoAbility(abilityToPass);
        }
        //else just do nothing and continue
    }
示例#2
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     if (IsOnlyStatusOfType(bbA))
     {
         SetAbilityUseablility(true, bbA);
         CleanUpStatus(bbA);
     }
 }
示例#3
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     Debug.Log("stun status end");
     if (IsOnlyStatusOfType(bbA))
     {
         CleanUpStatus(bbA);
     }
 }
示例#4
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     Debug.Log("stun status end");
     if (IsOnlyStatusOfType(bbA))
     {
         SetAbilityUseablility(true, bbA);
         CleanUpStatus(bbA);
     }
 }
示例#5
0
 public override void DoStatus(BaseBattleActor bbA)
 {
     if (curKnockBackAmount.sqrMagnitude >= squareKnockBackDistance)
     {
         //TODO: this should End knockback
         return;
     }
     thisKnockBackAmount     = knockBackDirection * knockBackSpeedMod * Time.deltaTime;
     bbA.transform.position += thisKnockBackAmount;
     curKnockBackAmount     += thisKnockBackAmount;
 }
示例#6
0
    public override void DoStatusEnd(BaseBattleActor bbA)
    {
        bbA.OnDeathCallback(bbA.gameObject);
        bbA.gameObject.GetComponent <Collider2D>().enabled = true;

        bbA.battleActorView.StopShowStatus(this);
        if (IsOnlyStatusOfType(bbA))
        {
            CleanUpStatus(bbA);
        }
    }
示例#7
0
    public override bool OnStatusAdded(BaseBattleActor bbA, Status statusAdded)
    {
        for (int i = 0; i < statusesToResist.Count; i++)
        {
            if (statusAdded.GetType() == statusesToResist[i].GetType())
            {
                return(false);
            }
        }

        return(true);
    }
示例#8
0
    //TODO: this may cause problems if abilities are not properly reset
    public override void DoStatusInitialEffect(BaseBattleActor bbA)
    {
        //bbA.battleActorView.ShowStatus(this);
        bbA.battleActorView.PlayInteruptingCharacterAnimation("victory");
        AbilityManager.abManager.StopAllAbilitiesFromCharacter(bbA.gameObject);
        SetAbilityUseablility(false, bbA);
        bbA.stats.modified.exp += stats.modified.exp;

        if (bbA.stats.modified.exp >= bbA.stats.modified.nextLevel)
        {
            bbA.LevelUp();
        }
    }
示例#9
0
 private void SetAbilityUseablility(bool useableValue, BaseBattleActor bbA)
 {
     for (int i = 0; i < bbA.abilities.Count; i++)
     {
         if (useableValue == true)
         {
             bbA.abilities[i].RemoveUsePreventor(this);
         }
         else if (useableValue == false)
         {
             bbA.abilities[i].AddUsePreventor(this);
         }
     }
 }
    public override void DoStatusInitialEffect(BaseBattleActor bbA)
    {
        Debug.Log("magic mult val " + magicMultiplier.val);
        Debug.Log("magic power " + bbA.stats.basic.magicalPower);

        Debug.Log("power x magic " + bbA.stats.basic.magicalPower * magicMultiplier.val);

        Debug.Log("magic mult val again " + magicMultiplier.val);
        Debug.Log("magic power again" + bbA.stats.basic.magicalPower);

        Debug.Log("whole thing " + ((bbA.stats.basic.magicalPower * magicMultiplier.val) - bbA.stats.basic.magicalPower));
        totalModifier = ((bbA.stats.basic.magicalPower * magicMultiplier.val) - bbA.stats.basic.magicalPower);
        Debug.Log("total modifier " + totalModifier);
        bbA.stats.modified.magicalPower += totalModifier;
    }
示例#11
0
    public bool IsOnlyStatusOfType(BaseBattleActor bbA)
    {
        foreach (Status status in bbA.curStatuses) //if there is another status of this type and if it is not actually this status and if the status is not going to end on the same frame as this then don't do anything because one of the statuses is still ongoing
        {
            if (status.GetType() == this.GetType())
            {
                if (status != this)
                {
                    if (status.endTime > Time.time)
                    {
                        return(false);
                    }
                }
            }
        }

        return(true);
    }
示例#12
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     //bbA.stats.armor -= armorChange;
 }
示例#13
0
 //TODO: this may cause problems if abilities are not properly reset
 public override void DoStatusInitialEffect(BaseBattleActor bbA)
 {
     // armorChange = bbA.stats.armor;
     // bbA.stats.armor += armorChange;
     //Send to view for armor up! message once that system is in place
 }
示例#14
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     //make sure character is inside boundaries at this point and move him in if not
 }
示例#15
0
 //TODO: this may cause problems if abilities are not properly reset
 public override void DoStatusInitialEffect(BaseBattleActor bbA)
 {
     Debug.Log("stun added to  " + bbA.gameObject.name);
     bbA.battleActorView.ShowStatus(this);
     AbilityManager.abManager.StopAllAbilitiesFromCharacter(bbA.gameObject);
 }
示例#16
0
 //Right now the actuall prevention of action is handled by checking if a stun is in the characters statuses on BaseBattleActor.
 public override void DoStatus(BaseBattleActor bbA)
 {
     SetAbilityUseablility(false, bbA);
 }
示例#17
0
 public virtual void OnAbilityUsed(BaseBattleActor bbA, Ability abilityUsed)
 {
 }
示例#18
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     //bbA.stats.physicalPower -= physicalPowerBuff.val;
 }
示例#19
0
 public override void DoStatusInitialEffect(BaseBattleActor bbA)
 {
     bbA.ChangeHp(healthBuff.val);
     //bbA.stats.physicalPower += physicalPowerBuff.val;
     bbA.battleActorView.ShowBuff(physicalPowerBuff.val, "PWR", BuffStyle.Positive);
 }
示例#20
0
 public void CleanUpStatus(BaseBattleActor bbA)
 {
     bbA.battleActorView.StopShowStatus(this);//otherwise stop showing the status. Consider doing all this just after status removeal?
 }
示例#21
0
 public virtual void DoStatusInitialEffect(BaseBattleActor bbA)
 {
 }
示例#22
0
 public override void OnAbilityUsed(BaseBattleActor bbA, Ability abilityUsed)
 {
     FinishStatus(this);
 }
示例#23
0
 public virtual bool OnStatusAdded(BaseBattleActor bbA, Status statusAdded)
 {
     return(true);
 }
示例#24
0
 public virtual void DoStatusEnd(BaseBattleActor bbA)
 {
 }
示例#25
0
 //TODO: this may cause problems if abilities are not properly reset
 public override void DoStatusInitialEffect(BaseBattleActor bbA)
 {
     bbA.battleActorView.PlayInteruptingCharacterAnimation("down");
     bbA.gameObject.GetComponent <Collider2D>().enabled = false;
     AbilityManager.abManager.StopAllAbilitiesFromCharacter(bbA.gameObject);
 }
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     bbA.stats.modified.magicalPower -= totalModifier;
 }
示例#27
0
 public override void DoStatusInitialEffect(BaseBattleActor bbA)
 {
     curKnockBackAmount      = Vector3.zero;
     squareKnockBackDistance = Mathf.Pow(knockBackDistance, 2f);
     knockBackDirection      = (bbA.gameObject.transform.position - retainedDeliveryObject.transform.position).normalized;
 }
示例#28
0
 public override void DoStatusInitialEffect(BaseBattleActor bbA)
 {
     finalMagicSkillBuff              = Mathf.FloorToInt(magicSkillBuff);
     bbA.stats.modified.magicalSkill += finalMagicSkillBuff;
 }
示例#29
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
 }
示例#30
0
 public override void DoStatusEnd(BaseBattleActor bbA)
 {
     bbA.stats.modified.magicalSkill -= finalMagicSkillBuff;
 }