Skip to content

Releases: ChronoBlasted/Isandre

AfterSwap

Choose a tag to compare

@SebastienChevallier SebastienChevallier released this 07 Mar 12:25

Lien Itch.io :

https://grorian.itch.io/isandre

Ajouter en runtime des decorateurs :

  • Window->Bullet Decorator Manager

Ajout de code

  • Creation de decorators :
    • creer un nouveau script qui prend en parent ProjectileDecorator,

    • Ajouter les fonctions constructeur et OnHit()

      public class ExplosiveProjectileDecorator : ProjectileDecorator
        {
            public float explosionRadius;
            public float explosionDamage;
            public float explosionForce;    // Force de recul appliquée aux ennemis
            public GameObject explosionVFX; // Prefab du VFX à instancier lors de l'explosion
        
            // Le constructeur doit prendre en premier le comportement de base, puis les paramètres.
            public ExplosiveProjectileDecorator(IProjectileBehaviour decoratedBehaviour, float explosionRadius, float explosionDamage, float explosionForce)
                : base(decoratedBehaviour)
            {
                this.explosionRadius = explosionRadius;
                this.explosionDamage = explosionDamage;
                this.explosionForce = explosionForce;        
            }
        
            public override void OnHit()
            {
                // Essayer de récupérer le projectile depuis le comportement de base.
                BasicProjectileBehaviour baseBehaviour = decoratedBehaviour as BasicProjectileBehaviour;
               
                  //Do Something
        
                // Enfin, appel du comportement de base (libération du projectile, etc.)
                base.OnHit();
            }
        }
    • Prendre exemple sur ExplosiveProjectileDecorator pour la nomenclature

    • Creer un SO PowerUp, qui va ajouter le decorator

         [CreateAssetMenu(fileName = "Scriptable Objects", menuName = "PowerUp/Explosive", order = 1)]
        public class Explosive : PowerUp
        {
            [SerializeField] private float explosionRadius = 2f;
            [SerializeField] private float explosionDamage = 5f;
            [SerializeField] private float explosionForce = 5f;
            public override void OnUse()
            {
                base.OnUse();
                PlayerManager.Instance.playerWeapon.RegisterBulletDecorator<ExplosiveProjectileDecorator>(explosionRadius, explosionDamage, explosionForce);
            }
        }
    • ex : PlayerManager.Instance.playerWeapon.RegisterBulletDecorator(explosionRadius, explosionDamage, explosionForce);

    • Ajouter le nouveau SO au SO ChestLvlUpData, pour qu'il puisse apparaitre en jeu

BeforeSwap

Choose a tag to compare

@ChronoBlasted ChronoBlasted released this 13 Feb 15:31
19ec3c0
Update README.md