Example #1
0
        public void GetAllTrailsFromDatabase()
        {
            var data = new List <Trail>
            {
                new Trail {
                    Name = "First"
                },
                new Trail {
                    Name = "Second"
                },
                new Trail {
                    Name = "Third"
                },
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Trail> >();

            mockSet.As <IQueryable <Trail> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <Trail> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <Trail> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <Trail> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var mockContext = new Mock <SkiResortContext>();

            mockContext.Setup(c => c.Trails).Returns(mockSet.Object);

            var controller = new TrailController(mockContext.Object);
            var trails     = controller.GetAll();

            Assert.AreEqual(3, trails.Count);
            Assert.AreEqual("First", trails[0].Name);
            Assert.AreEqual("Second", trails[1].Name);
            Assert.AreEqual("Third", trails[2].Name);
        }
Example #2
0
        private BaseController ConfigureCursorTrail()
        {
            var cursorTrailController = new TrailController();

            AddController(cursorTrailController);
            return(cursorTrailController);
        }
Example #3
0
    /*********************************************************************************************************
     *                                                                                      INITIALISATION
     **********************************************************************************************************/

    void Awake()
    {
        rigidBody2D      = GetComponent <Rigidbody2D>();
        spriteController = GetComponent <SpriteController>();
        cameraController = GetComponentInChildren <CameraController>();
        trailController  = GetComponentInChildren <TrailController>();
    }
Example #4
0
 /// <summary>
 /// Funzione che gestisce l'evento di despawn del Trail
 /// </summary>
 /// <param name="_trail"></param>
 private void HandleOnTrailDespawn(TrailController _trail)
 {
     if (trails.Contains(_trail))
     {
         _trail.OnAgentHit     -= HandleOnAgentHit;
         _trail.OnTrailDespawn -= HandleOnTrailDespawn;
         trails.Remove(_trail);
     }
 }
Example #5
0
    /// <summary>
    /// Funzione che interrompe l'aggiornamento dell'ultimo Trail
    /// </summary>
    public void EndTrail()
    {
        if (currentTrail != null)
        {
            currentTrail.EndTrailUpdate(transform.position, trailDespawnDelayTime, trailDespawnTime);
        }

        currentTrail = null;
    }
Example #6
0
    /// <summary>
    /// Funzione che istanzia un nuovo Trail
    /// </summary>
    public void InstantiateNewTrail()
    {
        TrailController newTrail = Instantiate(trailControllerPrefab);

        newTrail.OnAgentHit     += HandleOnAgentHit;
        newTrail.OnTrailDespawn += HandleOnTrailDespawn;

        newTrail.Setup(transform.position, bossCtrl.transform.rotation);
        trails.Add(newTrail);
        currentTrail = newTrail;
    }
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
            return;
        }

        tapArea         = GetComponent <BoxCollider2D>();
        trailController = GetComponent <TrailController>();
    }
    void Start()
    {
        if (trailController == null)
        {
            trailController = FindObjectOfType <TrailController>();
        }

        slider = GetComponent <Slider>();
        slider.interactable = false;
        // Subscribe to receive notifications when TrailPoint is achieved
        TrailController.CallOnTrailPointAchieved += TrailPointAchieved;
        // Setup slider max value based on the number of elements in trail list and update UI text
        slider.maxValue     = trailController.TrailList.Count - 1;
        lastTrailPoint.text = slider.maxValue.ToString();
    }
Example #9
0
    private void Start()
    {
        gameManager     = GameManager.Instance;
        trailController = TrailController.Instance;

        foreach (var bird in birds)
        {
            bird.onBirdDestroyed += ChangeBird;
            bird.onBirdShot      += AssignTrail;
        }

        foreach (var enemy in enemies)
        {
            enemy.onEnemyDestroyed += CheckGameEnd;
        }

        tapCollider.enabled = false;
        slingShooter.InitiateBird(birds[0]);
        shotBird = birds[0];
    }
Example #10
0
        public void AddTrailToDatabase()
        {
            var data = new List <Trail>()
            {
                new Trail("a", "Beginner", "Green"),
                new Trail("b", "Beginner", "Green")
            }.AsQueryable();


            var mockSet = new Mock <DbSet <Trail> >();

            mockSet.As <IQueryable <Trail> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <Trail> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <Trail> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <Trail> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var mockContext = new Mock <SkiResortContext>();

            mockContext.Setup(c => c.Trails).Returns(mockSet.Object);

            var service = new TrailController(mockContext.Object);

            data.ToList().ForEach(t => service.Add(t));
        }
Example #11
0
 public DisplayTrail()
 {
     trailController = new TrailController();
     liftController  = new LiftController();
     InputLifts();
 }
Example #12
0
    public void PlayTrailEffect(RectTransform rect)
    {
        TrailController trail = Instantiate(trailEffect).GetComponent <TrailController>();

        trail.Assign(rect);
    }
        public static void DeconstructProjectile(Projectile bullet, bool vfx, bool deconstructProjectileComponents)
        {
            if (!string.IsNullOrEmpty(bullet.name))
            {
                ETGModConsole.Log("<color=#ff0000ff>        Name: </color>" + bullet.name);
            }
            else
            {
                ETGModConsole.Log("<color=#ff0000ff>        Bullet has no name.</color>");
            }

            ETGModConsole.Log("<color=#ff0000ff>        BaseData:</color>");
            if (bullet.baseData != null)
            {
                ETGModConsole.Log("<color=#ff0000ff>        Damage: </color>" + bullet.baseData.damage);
                ETGModConsole.Log("<color=#ff0000ff>        Speed: </color>" + bullet.baseData.speed);
                ETGModConsole.Log("<color=#ff0000ff>        Range: </color>" + bullet.baseData.range);
                ETGModConsole.Log("<color=#ff0000ff>        Knockback: </color>" + bullet.baseData.force);
            }
            else
            {
                ETGModConsole.Log("<color=#ff0000ff>           BaseData is somehow null?</color>");
            }
            ETGModConsole.Log("<color=#ff0000ff>        Other Stats:</color>");
            ETGModConsole.Log("<color=#ff0000ff>        BossDMGMult: </color>" + bullet.BossDamageMultiplier);
            ETGModConsole.Log("<color=#ff0000ff>        Damage Types: </color>" + bullet.damageTypes);

            if (deconstructProjectileComponents)
            {
                ETGModConsole.Log("<color=#ff0000ff>        Components:</color>");
                foreach (Component component in bullet.GetComponents <Component>())
                {
                    ETGModConsole.Log("        " + component.GetType().ToString());
                }

                int childIterator = 0;
                foreach (var child in bullet.gameObject.transform)
                {
                    ETGModConsole.Log($"<color=#ff0000ff>        Found Child [{childIterator}]:</color>");
                    if ((child as Transform).gameObject)
                    {
                        GameObject childObj = (child as Transform).gameObject;
                        ETGModConsole.Log($"<color=#ff0000ff>           Child Name:</color> {childObj.name}");

                        foreach (Component component in childObj.GetComponents <Component>())
                        {
                            ETGModConsole.Log("               " + component.GetType().ToString());
                            if (component.GetType().ToString().ToLower().Contains("trailcontroller"))
                            {
                                TrailController trail = component as TrailController;
                                ETGModConsole.Log("<color=#ff0000ff>                UsesStartAnim: </color>" + trail.usesStartAnimation);
                                ETGModConsole.Log("<color=#ff0000ff>                StartAnim: </color>" + trail.startAnimation);
                                ETGModConsole.Log("<color=#ff0000ff>                UsesAnim: </color>" + trail.usesAnimation);
                                ETGModConsole.Log("<color=#ff0000ff>                Anim: </color>" + trail.animation);
                                ETGModConsole.Log("<color=#ff0000ff>                UsesCascadeTimer: </color>" + trail.usesCascadeTimer);
                                ETGModConsole.Log("<color=#ff0000ff>                CascadeTimer: </color>" + trail.cascadeTimer);
                                ETGModConsole.Log("<color=#ff0000ff>                UsesSoftMaxLength: </color>" + trail.usesSoftMaxLength);
                                ETGModConsole.Log("<color=#ff0000ff>                SoftMaxLength: </color>" + trail.softMaxLength);
                                ETGModConsole.Log("<color=#ff0000ff>                UsesGlobalTimer: </color>" + trail.usesGlobalTimer);
                                ETGModConsole.Log("<color=#ff0000ff>                GlobalTimer: </color>" + trail.globalTimer);
                                ETGModConsole.Log("<color=#ff0000ff>                DestroyOnEmpty: </color>" + trail.destroyOnEmpty);
                                ETGModConsole.Log("<color=#ff0000ff>                GlobalTimer: </color>" + trail.globalTimer);
                                ETGModConsole.Log("<color=#ff0000ff>                UsesDispersalParticles: </color>" + trail.UsesDispersalParticles);
                                ETGModConsole.Log("<color=#ff0000ff>                DispersalDensity: </color>" + trail.DispersalDensity);
                                ETGModConsole.Log("<color=#ff0000ff>                DispersalMinCoherency: </color>" + trail.DispersalMinCoherency);
                                ETGModConsole.Log("<color=#ff0000ff>                DispersalMaxCoherency: </color>" + trail.DispersalMaxCoherency);
                                if (trail.DispersalParticleSystemPrefab != null)
                                {
                                    ETGModConsole.Log("<color=#ff0000ff>                Dispersal Particle System: </color>" + trail.DispersalParticleSystemPrefab.name);
                                    foreach (Component component2 in trail.DispersalParticleSystemPrefab.GetComponentsInChildren <Component>())
                                    {
                                        ETGModConsole.Log("                        " + component2.GetType().ToString());
                                    }
                                }
                            }
                        }
                    }
                    childIterator++;
                }
            }
        }
Example #14
0
        /// <summary>
        /// Adds a tiled trail to the Projectile
        /// </summary>
        /// <param name="timeTillAnimStart">How long after spawning until the trail will begin to play it's animation, if it has one.</param>
        public static void AddTrailToProjectile(this Projectile target, string spritePath, Vector2 colliderDimensions, Vector2 colliderOffsets, List <string> animPaths = null, int animFPS = -1, List <string> startAnimPaths = null, int startAnimFPS = -1, float timeTillAnimStart = -1, float cascadeTimer = -1, float softMaxLength = -1, bool destroyOnEmpty = false)
        {
            try
            {
                GameObject newTrailObject = new GameObject();
                newTrailObject.InstantiateAndFakeprefab();
                newTrailObject.transform.parent = target.transform;

                float convertedColliderX = colliderDimensions.x / 16f;
                float convertedColliderY = colliderDimensions.y / 16f;
                float convertedOffsetX   = colliderOffsets.x / 16f;
                float convertedOffsetY   = colliderOffsets.y / 16f;

                int             spriteID    = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection);
                tk2dTiledSprite tiledSprite = newTrailObject.GetOrAddComponent <tk2dTiledSprite>();

                tiledSprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID);
                tk2dSpriteDefinition def = tiledSprite.GetCurrentSpriteDef();
                def.colliderVertices = new Vector3[] {
                    new Vector3(convertedOffsetX, convertedOffsetY, 0f),
                    new Vector3(convertedColliderX, convertedColliderY, 0f)
                };

                def.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft);

                tk2dSpriteAnimator  animator  = newTrailObject.GetOrAddComponent <tk2dSpriteAnimator>();
                tk2dSpriteAnimation animation = newTrailObject.GetOrAddComponent <tk2dSpriteAnimation>();
                animation.clips  = new tk2dSpriteAnimationClip[0];
                animator.Library = animation;

                TrailController trail = newTrailObject.AddComponent <TrailController>();

                //---------------- Sets up the animation for the main part of the trail
                if (animPaths != null)
                {
                    BeamToolbox.SetupBeamPart(animation, animPaths, "trail_mid", animFPS, null, null, def.colliderVertices);
                    trail.animation     = "trail_mid";
                    trail.usesAnimation = true;
                }
                else
                {
                    trail.usesAnimation = false;
                }

                if (startAnimPaths != null)
                {
                    BeamToolbox.SetupBeamPart(animation, startAnimPaths, "trail_start", startAnimFPS, null, null, def.colliderVertices);
                    trail.startAnimation     = "trail_start";
                    trail.usesStartAnimation = true;
                }
                else
                {
                    trail.usesStartAnimation = false;
                }

                //Trail Variables
                if (softMaxLength > 0)
                {
                    trail.usesSoftMaxLength = true; trail.softMaxLength = softMaxLength;
                }
                if (cascadeTimer > 0)
                {
                    trail.usesCascadeTimer = true; trail.cascadeTimer = cascadeTimer;
                }
                if (timeTillAnimStart > 0)
                {
                    trail.usesGlobalTimer = true; trail.globalTimer = timeTillAnimStart;
                }
                trail.destroyOnEmpty = destroyOnEmpty;
            }
            catch (Exception e)
            {
                ETGModConsole.Log(e.ToString());
            }
        }