/// <summary>
 /// Removes Electrified if the BattleEntity is afflicted with it. This is called when removing the badge.
 /// </summary>
 private void RemoveElectrified()
 {
     if (EntityEquipped.EntityProperties.HasStatus(Enumerations.StatusTypes.Electrified) == true)
     {
         EntityEquipped.RemoveStatus(Enumerations.StatusTypes.Electrified, true, true);
     }
 }
        protected override void OnEquip()
        {
            //NOTE: Think of a way to make this more flexible to easily add more SpriteSheet swaps with different Badges
            //Building a system to allow for more combinations would be great as well and add more possibilities
            //Examples include Partner SpriteSheet swaps (especially Yoshi)

            BattleMario mario = EntityEquipped as BattleMario;

            if (mario == null)
            {
                Debug.LogWarning($"L Emblem will not work on {EntityEquipped.Name}; it currently works only for Mario");
                return;
            }

            string sheetPath = $"{ContentGlobals.SpriteRoot}/Characters/Mario";

            //Check if W Emblem is equipped and change to Waluigi's clothes
            if (EntityEquipped.GetEquippedBadgeCount(BadgeGlobals.BadgeTypes.WEmblem) > 0)
            {
                sheetPath += ContentGlobals.WaluigiPaletteExtension;
            }
            //Otherwise change to Luigi's clothes
            else
            {
                sheetPath += ContentGlobals.LuigiPaletteExtension;
            }

            EntityEquipped.AnimManager.SetSpriteSheet(AssetManager.Instance.LoadAsset <Texture2D>(sheetPath), ObjAnimManager.SetSpriteSheetOptions.ReplaceSame);
        }
 /// <summary>
 /// Causes Zap Tap to inflict Electrified if the BattleEntity equipped isn't afflicted with it.
 /// This bypasses any immunities or other conditions that would prevent it from being afflicted (Ex. Allergic).
 /// </summary>
 private void InflictElectrified()
 {
     if (EntityEquipped.EntityProperties.HasStatus(Enumerations.StatusTypes.Electrified) == false)
     {
         EntityEquipped.AfflictStatus(new ElectrifiedStatus(StatusGlobals.InfiniteDuration), false);
     }
 }
Esempio n. 4
0
        protected override void OnUnequip()
        {
            EntityEquipped.DealtDamageEvent -= OnDamagedEntity;

            EntityEquipped.TurnEndEvent -= OnEntityTurnEnd;

            EntityEquipped.RaiseAttack(AttackReduction);

            QueuedHeal = false;
        }
 /// <summary>
 /// Handles adding/removing Feeling Fine's Status Effect immunities.
 /// </summary>
 /// <param name="immune">Whether to add or remove the immunity.</param>
 private void HandleStatusImmunities(bool immune)
 {
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Electrified, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Poison, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Dizzy, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Confused, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Stop, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Sleep, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.DEFDown, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.POWDown, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.Tiny, immune);
     EntityEquipped.AddRemoveStatusImmunity(Enumerations.StatusTypes.KO, immune);
 }
Esempio n. 6
0
 private void HealFP(InteractionHolder damageInfo)
 {
     //The entity doesn't recover FP if dead (TEST THIS) or if the damage dealt was 0 or less
     if (EntityEquipped.IsDead == false && damageInfo.TotalDamage > 0)
     {
         //Test for recovering FP
         if (UtilityGlobals.TestRandomCondition(FPRecoverChance) == true)
         {
             //Recover FP
             EntityEquipped.HealFP(FPRecoverAmount);
         }
     }
 }
        protected override void OnUnequip()
        {
            BattleMario mario = EntityEquipped as BattleMario;

            //Don't do anything, as the badge made no changes when equipped
            if (mario == null)
            {
                return;
            }

            string sheetPath = $"{ContentGlobals.SpriteRoot}/Characters/Mario";

            //Check if W Emblem is equipped and change to Wario's clothes
            if (EntityEquipped.GetEquippedBadgeCount(BadgeGlobals.BadgeTypes.WEmblem) > 0)
            {
                sheetPath += ContentGlobals.WarioPaletteExtension;
            }

            EntityEquipped.AnimManager.SetSpriteSheet(AssetManager.Instance.LoadAsset <Texture2D>(sheetPath), ObjAnimManager.SetSpriteSheetOptions.ReplaceSame);
        }
Esempio n. 8
0
        private void OnEntityEnteredBattle(BattleEntity entity)
        {
            //Check if the BattleEntity this Badge is equipped to is added to battle
            //If so, grant it one of the Status Effects
            if (EntityEquipped == entity)
            {
                BattleManager.Instance.EntityAddedEvent -= OnEntityEnteredBattle;

                //Get the statuses and choose a random one
                StatusEffect[] statuses   = GetPossibleGrantedStatuses();
                int            randStatus = GeneralGlobals.Randomizer.Next(0, statuses.Length);

                //Despite the badge's effects, the Status Effect isn't guaranteed to be inflicted
                //If you have Feeling Fine equipped in TTYD and get Electrified with Lucky Start,
                //it's not inflicted yet the "LUCKY" text is displayed and the sound plays
                if (EntityEquipped.EntityProperties.TryAfflictStatus(100d, statuses[randStatus]) == true)
                {
                    EntityEquipped.AfflictStatus(statuses[randStatus], true);
                }
            }
        }
 protected override void OnUnequip()
 {
     EntityEquipped.LowerMaxHP(HPValue);
 }
 protected override void ApplyEffects()
 {
     EntityEquipped.AddEvasionMod(EvasionValue);
 }
 protected override void OnEquip()
 {
     EntityEquipped.RaiseDefense(DefenseBonus);
 }
 protected sealed override void OnEquip()
 {
     EntityEquipped.AddEvasionMod(EvasionValue);
 }
Esempio n. 13
0
 protected override void OnEquip()
 {
     //Flag that this BattleEntity should have Stylish Move timings shown
     EntityEquipped.AddIntAdditionalProperty(Enumerations.AdditionalProperty.ShowStylishTimings, 1);
 }
 protected override void OnUnequip()
 {
     EntityEquipped.LowerAttack(AttackBonus);
 }
 protected override void OnEquip()
 {
     EntityEquipped.RaiseAttack(AttackBonus);
 }
 protected sealed override void RemoveEffects()
 {
     EntityEquipped.LowerAttack(AttackBonus);
 }
 protected sealed override void ApplyEffects()
 {
     EntityEquipped.RaiseAttack(AttackBonus);
 }
Esempio n. 18
0
 protected override void OnUnequip()
 {
     //Remove the flag that Stylish Move timings should be shown
     EntityEquipped.SubtractIntAdditionalProperty(Enumerations.AdditionalProperty.ShowStylishTimings, 1);
 }
        protected override void OnEquip()
        {
            EntityEquipped.RaiseAttack(1);

            EntityEquipped.EntityProperties.DisableMoveCategory(Enumerations.MoveCategories.Jump);
        }
 protected sealed override void OnUnequip()
 {
     EntityEquipped.RemoveEvasionMod(EvasionValue);
 }
        protected override void OnUnequip()
        {
            EntityEquipped.LowerAttack(1);

            EntityEquipped.EntityProperties.EnableMoveCategory(Enumerations.MoveCategories.Jump);
        }
 protected override void OnUnequip()
 {
     EntityEquipped.LowerDefense(DefenseBonus);
 }
Esempio n. 23
0
 protected override void OnUnequip()
 {
     EntityEquipped.SubtractIntAdditionalProperty(Enumerations.AdditionalProperty.AutoActionCommands, 1);
     EntityEquipped.SubtractIntAdditionalProperty(Enumerations.AdditionalProperty.AutoStylishMoves, 1);
 }
 protected override void RemoveEffects()
 {
     EntityEquipped.RemoveEvasionMod(EvasionValue);
 }
 protected override void OnEquip()
 {
     EntityEquipped.RaiseMaxHP(HPValue);
 }