public void CreatingEnergizer()
        {
            GhostPack gp = new GhostPack();
            Energizer e  = new Energizer(gp);

            Assert.AreEqual(e.ToString(), new Energizer(new GhostPack()).ToString());
        }
Esempio n. 2
0
    public static void Main(string[] args)
    {
        Energizer energizer = new Energizer();

        energizer.Play();
        Application.Run(energizer.form);
    }
        public void EnerGizerPointsPropReadTest()
        {
            GhostPack gp = new GhostPack();
            Energizer e  = new Energizer(gp);

            Assert.AreEqual(e.Points, 500);
        }
Esempio n. 4
0
        public void EnergizerConstructorTest()
        {
            int       expectedPoints = 100;
            Energizer e      = new Energizer();
            int       actual = e.Points;

            Assert.AreEqual(expectedPoints, actual);
        }
Esempio n. 5
0
        public void MemberPropertyTestGet()
        {
            Energizer   expected = new Energizer();
            Path        path     = new Path(1, 1, expected);
            ICollidable actual   = path.Member;

            Assert.AreEqual(expected, actual);
        }
        public void TestGameStateParse_EnergizerPosition()
        {
            GameState game1     = GetGameState();
            GhostPack ghosts    = new GhostPack();
            Energizer energizer = new Energizer(ghosts);
            Tile      path      = new Path(1, 3, energizer);

            Assert.AreEqual(game1.Maze[1, 3].Member().ToString(), path.Member().ToString());
        }
Esempio n. 7
0
        public void EnergizerGetterTest()
        {
            Energizer e = new Energizer();

            e.Points = 400;
            int expected = 400;
            int actual   = e.Points;

            Assert.AreEqual(expected, actual);
        }
Esempio n. 8
0
        public void EnergizerSetterTest_ValidInput()
        {
            Energizer e = new Energizer();

            e.Points = 500;
            int expected = 500;
            int actual   = e.Points;

            Assert.AreEqual(expected, actual);
        }
Esempio n. 9
0
        public void MemberPropertyTestSet()
        {
            Energizer e        = new Energizer();
            Path      path     = new Path(1, 1, e);
            Pellet    expected = new Pellet();

            path.Member = expected;
            ICollidable actual = path.Member;

            Assert.AreEqual(expected, actual);
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Bitmap bitmap = new Bitmap(@"C:\Users\aless\Downloads\141104497-d2a191db-e894-4f72-93a8-92590d692313.jpg");
            //IContentAwarable contentAwarable = new MySeamCarving(bitmap, 10, ReduceType.ByWidth);
            //IContentAwarable contentAwarable = new RavingContent(bitmap, ReduceType.ByWidth);
            IContentAwarable contentAwarable = new Energizer(bitmap, ReduceType.ByWidth);

            bitmap = contentAwarable.Reduce(100);
            bitmap.Save(@"C:\Users\aless\Downloads\monna1.jpg");
        }
Esempio n. 11
0
        public void TestCollide()
        {
            myEnergizer            = new Energizer(myGameState.GhostSquad);
            myEnergizer.Collision += myGameState.Score.incrementScore;
            myEnergizer.Collide();
            Assert.AreEqual(100, myGameState.Score.Score);
            myEnergizer.Collide();
            Assert.AreEqual(200, myGameState.Score.Score);

            foreach (Ghost ghost in myGameState.GhostSquad)
            {
                Assert.AreEqual(GhostState.Scared, ghost.CurrentState);
            }
        }
Esempio n. 12
0
    private void OnCollisionStay(Collision collision)
    {
        // If the enemy collide with the player
        if (collision.gameObject.CompareTag("Player"))
        {
            Energizer energizer = collision.gameObject.GetComponentInChildren <Energizer>();

            if (energizer != null)
            {
                // Enemy steal energy to the player
                energizer.GiveEnergy(energyAbsorbPerSecond * Time.deltaTime);
            }
        }
    }
Esempio n. 13
0
        public void CollisionEventRaisedTest()
        {
            Boolean   actual   = false;
            Boolean   expected = true;
            Energizer e        = new Energizer();

            e.CollisionEvent += (x) =>
            {
                x.Points += 100;
                actual    = true;
            };
            e.Collide();
            Assert.AreEqual(expected, actual);
        }
Esempio n. 14
0
    private void OnTriggerEnter(Collider other)
    {
        var energizer = other.GetComponent <Energizer>();

        // If the collider is the player (player has Energizer component)
        if (energizer != null)
        {
            energy = energizer;
            // Stop current coroutines (maybe it's decreasing intensity...)
            StopAllCoroutines();
            // Start Increasing Intensity
            StartCoroutine(IncreaseIntensity());
        }
    }
Esempio n. 15
0
        public Tile(Game game, int column, int row, Texture2D colorMap)
        {
            // Data extraction
            rawData       = new Color[1];
            extractRegion = new Rectangle(column, row, 1, 1);
            colorMap.GetData <Color>(0, extractRegion, rawData, 0, 1);

            // Tile property initialization
            Index        = row * 28 + column;
            Line         = row;
            IsWall       = false;
            IsEmpty      = false;
            HasPacdot    = false;
            HasEnergizer = false;
            Reset();

            // Calculate position
            Position = new Vector2(column * 8, row * 8);
            Center   = new Vector2(Position.X + 4.0f, Position.Y + 4.0f);

            Bounds = new Rectangle((int)Position.X, (int)Position.Y, 8, 8);

            // Collectibles
            Pacdot    = new Pacdot(game, this);
            Energizer = new Energizer(game, this);

            // Developer mode only
            if (IsWall)
            {
                DevColor = Color.DarkRed;
            }
            else
            {
                DevColor = Color.Green;
            }
        }
Esempio n. 16
0
    // Use to process your families.
    protected override void onProcess(int familiesUpdateCount)
    {
        foreach (GameObject go in _triggeredGO)
        {
            Triggered2D t2d      = go.GetComponent <Triggered2D>();
            Predator    predator = go.GetComponent <Predator>();
            Eat         eat      = go.GetComponent <Eat>();

            eat.timeSinceLastEffect += Time.deltaTime;
            bool effectApplied = false;

            foreach (GameObject target in t2d.Targets)
            {
                if (_preysGO.contains(target.GetInstanceID()))
                {
                    Prey prey = target.GetComponent <Prey>();

                    if (predator.myPreys.Contains(prey.myType))
                    {
                        //"eat" the target
                        Transform collidedTr = target.GetComponent <Transform>();

                        Health collidedH = target.GetComponent <Health>();

                        if (eat.timeSinceLastEffect >= eat.effectFreq)
                        {
                            collidedH.healthPoints -= eat.damage;

                            if (collidedH.healthPoints <= 0)
                            {
                                Vector3 pos = target.transform.position;

                                if (eat.infectOnKill)
                                {
                                    //Debug.Log(pos);
                                    prey.myType = eat.newPreyTag;

                                    GameObjectManager.addComponent <Infected>(target, new { myParasit = go });
                                    GameObjectManager.addComponent <Factory>(target, new { reloadTime = eat.timerFactory, prefab = eat.prefab });
                                    collidedH.healthPoints = collidedH.maxHealthPoints;

                                    Energizer collidedE = target.GetComponent <Energizer>();
                                    Energizer e         = go.GetComponent <Energizer>();
                                    if (collidedE != null)
                                    {
                                        if (e != null)
                                        {
                                            collidedE.recoverPoints = e.recoverPoints;
                                            collidedE.reloadTime    = e.reloadTime;
                                        }
                                        else
                                        {
                                            GameObjectManager.removeComponent(collidedE);
                                        }
                                    }
                                    else
                                    {
                                        if (e != null)
                                        {
                                            GameObjectManager.addComponent <Energizer>(target, new { recoverPoints = e.recoverPoints, reloadTime = e.reloadTime });
                                        }
                                    }

                                    if (eat.applyColor)
                                    {
                                        Renderer r = target.GetComponentInChildren <Renderer>();

                                        if (r != null)
                                        {
                                            if (r is SpriteRenderer)
                                            {
                                                ((SpriteRenderer)r).color = eat.color;
                                            }
                                            else
                                            {
                                                r.material.color = eat.color;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    GameObjectManager.unbind(target);
                                    Object.Destroy(target);
                                }

                                Move mv = go.GetComponent <Move>();
                                if (mv != null)
                                {
                                    mv.targetObject = null;
                                }

                                /* Previous functionnality of duplication on kill * /
                                 * GameObject myDuplicate = Object.Instantiate<GameObject>(eat.prefab, pos, Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)));
                                 *
                                 * //WARNING: should not do that but looks like that even if instance come frome a prefab, it is instanciated with a Triggered2D...
                                 * //If this line is commented, FYFY will generate an error
                                 * Object.Destroy(myDuplicate.GetComponent<Triggered2D>());
                                 *
                                 * GameObjectManager.bind(myDuplicate);
                                 *
                                 * Move mv = myDuplicate.GetComponent<Move>();
                                 * if (mv != null) {
                                 *      Vector2 posTarget = new Vector2(Random.Range(pos.x - 1f, pos.x + 1f), Random.Range(pos.y -1f, pos.y -1f));
                                 *
                                 *      mv.targetPosition = posTarget;
                                 *      mv.forcedTarget = true;
                                 *      mv.newTargetPosition = true;
                                 * }
                                 * /* */
                            }

                            effectApplied = true;
                        }
                    }
                }
            }

            if (effectApplied)
            {
                eat.timeSinceLastEffect = 0f;
            }
        }
    }
Esempio n. 17
0
 public EnergizerPickupEventArgs(Energizer energizer, int totalCollected)
 {
     TotalCollected = totalCollected;
     Energizer      = energizer;
 }
Esempio n. 18
0
    // Use to process your families.
    protected override void onProcess(int familiesUpdateCount)
    {
        if (!levelInit)
        {
            // Pause all game system during initialisation
            foreach (FSystem system in SystemHolder.pausableSystems)
            {
                if (system == this)
                {
                    continue;
                }
                system.Pause = true;
            }

            foreach (GameObject go in _mapSpawnerGO)
            {
                Factory factory = go.GetComponent <Factory>();
                Tilemap tilemap = go.GetComponent <Tilemap>();

                //factory.reloadProgress += Time.deltaTime;
                if (factory.reloadProgress >= factory.reloadTime)
                {
                    foreach (var pos in tilemap.cellBounds.allPositionsWithin)
                    {
                        Vector3Int localPos = new Vector3Int(pos.x, pos.y, pos.z);

                        if (tilemap.HasTile(localPos))
                        {
                            Vector3 worldPos = tilemap.CellToWorld(localPos);

                            //Instantiate and bind to FYFY a new instance of antibodies drift (factory prefab)
                            GameObject mySpawn = Object.Instantiate <GameObject>(factory.prefab, worldPos, Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)));
                            GameObjectManager.bind(mySpawn);
                        }
                    }

                    factory.reloadProgress = 0f;
                }
            }

            foreach (GameObject go in _playerGO)
            {
                Player player = go.GetComponent <Player>();

                foreach (GameObject buyableGO in player.levelBuyablePrefabs)
                {
                    Buyable buyable = buyableGO.GetComponent <Buyable>();

                    //Create a new visual
                    GameObject myUI = Object.Instantiate <GameObject>(player.unitUIVisual, player.unitContainer.transform);
                    GameObjectManager.bind(myUI);

                    //Add height to container (each new element is 100px height here)
                    RectTransform rt = player.unitContainer.GetComponent <RectTransform>();
                    rt.sizeDelta = new Vector2(rt.sizeDelta.x, rt.sizeDelta.y + 100);

                    SpriteRenderer sr   = buyableGO.GetComponentInChildren <SpriteRenderer>();
                    Info           info = buyableGO.GetComponent <Info>();

                    //Update UI image and text
                    UIUnit ui = myUI.GetComponent <UIUnit>();
                    ui.image.sprite = sr.sprite;
                    ui.image.color  = sr.color;

                    ui.text.text = info.myName.Replace("\\n", "\n");;
                    if (buyable != null)
                    {
                        ui.text.text += "\nCost : " + buyable.energyPrice.ToString("F0") + " energy";
                    }

                    ui.prefab = buyableGO;
                }
            }

            levelInit = true;

            // Resume systems
            foreach (FSystem system in SystemHolder.pausableSystems)
            {
                system.Pause = false;
            }
        }
        else
        {
            foreach (GameObject go in _playerGO)
            {
                Health playerHealth = go.GetComponent <Health>();
                Energy playerEnergy = go.GetComponent <Energy>();

                //Update health
                if (playerHealth != null && !gamePaused)
                {
                    bool init = false;

                    if (playerHealth.maxHealthPoints == 0)
                    {
                        init = true;
                    }
                    playerHealth.healthPoints = 0;

                    foreach (GameObject cellGO in _cellsGO)
                    {
                        Health cellHealth = cellGO.GetComponent <Health>();

                        if (init)
                        {
                            playerHealth.maxHealthPoints += cellHealth.maxHealthPoints;
                        }

                        playerHealth.healthPoints += cellHealth.healthPoints;
                    }
                }

                //Update energy
                if (playerEnergy != null && !gamePaused)
                {
                    foreach (GameObject energizerGO in _energizerGO)
                    {
                        Energizer energizer = energizerGO.GetComponent <Energizer>();

                        energizer.reloadProgress += Time.deltaTime;

                        if (energizer.reloadProgress >= energizer.reloadTime)
                        {
                            playerEnergy.energyPoints += energizer.recoverPoints;

                            energizer.reloadProgress = 0f;
                        }
                    }

                    //Cap at max
                    if (playerEnergy.energyPoints > playerEnergy.maxEnergyPoints)
                    {
                        playerEnergy.energyPoints = playerEnergy.maxEnergyPoints;
                    }

                    if (playerEnergy.energyPoints < 0)
                    {
                        playerEnergy.energyPoints = 0f;
                    }
                }
            }

            //Check cell spawn position of cell is dead
            foreach (GameObject go in _mapSpawnerGO)
            {
                Tilemap tilemap = go.GetComponent <Tilemap>();

                //Remove cell tile position when cell is dead
                foreach (var pos in tilemap.cellBounds.allPositionsWithin)
                {
                    Vector3Int localPos = new Vector3Int(pos.x, pos.y, pos.z);

                    if (tilemap.HasTile(localPos))
                    {
                        bool    cellFound = false;
                        Vector3 worldPos  = tilemap.CellToWorld(localPos);

                        Collider2D[] colliders = Physics2D.OverlapCircleAll(worldPos, 1f, LayerMask.GetMask("Ignore Raycast"));

                        foreach (Collider2D collider in colliders)
                        {
                            GameObject collidedGO = collider.gameObject;

                            if (_cellsGO.contains(collidedGO.GetInstanceID()))
                            {
                                //There is a cell at position
                                cellFound = true;
                                break;
                            }
                        }

                        if (!cellFound)
                        {
                            tilemap.SetTile(localPos, null);
                        }
                    }
                }
            }

            //Spawn waves
            if (!gamePaused)
            {
                foreach (GameObject go in _levelSpawnerGO)
                {
                    FactoryLevel factory = go.GetComponent <FactoryLevel>();

                    factory.reloadProgress += Time.deltaTime;

                    if (factory.reloadProgress >= factory.reloadTime)
                    {
                        if (factory.currentWave < factory.waves.Count)
                        {
                            Wave wave = factory.waves[factory.currentWave];

                            List <Vector3> spawnArea  = TilemapUtils.getAllWorldPosition(factory.spawnArea);
                            List <Vector3> targetArea = TilemapUtils.getAllWorldPosition(factory.spawnTargetArea);

                            //Spawn each group of entity
                            foreach (Group g in wave.groups)
                            {
                                int i = 0;

                                while (i < g.nbSpawn)
                                {
                                    Vector3 position = Vector3.zero;
                                    if (spawnArea.Count > 0)
                                    {
                                        position = spawnArea[Random.Range(0, spawnArea.Count)];
                                    }

                                    GameObject mySpawn = Object.Instantiate <GameObject>(g.prefab, position, Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)));
                                    GameObjectManager.bind(mySpawn);

                                    //Init first target move
                                    Vector3 target = Vector3.zero;
                                    if (targetArea.Count > 0)
                                    {
                                        target = targetArea[Random.Range(0, targetArea.Count)];
                                    }

                                    Move mv = mySpawn.GetComponent <Move>();
                                    if (mv != null)
                                    {
                                        mv.targetPosition    = target;
                                        mv.targetObject      = null;
                                        mv.newTargetPosition = true;
                                        mv.forcedTarget      = true;
                                    }

                                    i++;
                                }
                            }

                            factory.reloadTime     = wave.timeBeforeNext;
                            factory.reloadProgress = 0f;

                            factory.currentWave += 1;
                        }
                    }



                    //Destroy level wave factory if last wave was released (for victory condition)
                    if (factory.currentWave >= factory.waves.Count)
                    {
                        if (factory.waveIndicator != null)
                        {
                            StringBuilder sb = new StringBuilder();

                            sb.AppendLine("Wave : " + factory.currentWave + " / " + factory.waves.Count);
                            sb.AppendLine("Final Wave");

                            factory.waveIndicator.text = sb.ToString();
                        }

                        GameObjectManager.removeComponent <FactoryLevel>(go);
                        //GameObjectManager.unbind(go);
                        //Object.Destroy(go);
                    }
                    else
                    {
                        if (factory.waveIndicator != null)
                        {
                            StringBuilder sb = new StringBuilder();

                            sb.AppendLine("Wave : " + factory.currentWave + " / " + factory.waves.Count);
                            float time = factory.reloadTime - factory.reloadProgress;
                            sb.AppendLine("Time remain : " + time.ToString("F0"));

                            factory.waveIndicator.text = sb.ToString();
                        }
                    }
                }
            }

            //Check level status
            if (_attackersGO.Count == 0)
            {
                levelStatus = "Victory";
            }
            else
            {
                int nbHealth     = 0;
                int nbHealthZero = 0;

                foreach (GameObject go in _playerGO)
                {
                    Health playerHealth = go.GetComponent <Health>();

                    if (playerHealth != null)
                    {
                        nbHealth += 1;

                        if (playerHealth.healthPoints == 0)
                        {
                            nbHealthZero += 1;
                        }
                    }
                }

                if (nbHealthZero == nbHealth)
                {
                    levelStatus = "Defeat";
                }
            }
        }

        GameObject playerGO = _playerGO.First();

        if (playerGO != null)
        {
            Player player = playerGO.GetComponent <Player>();

            string title, descr;
            switch (levelStatus)
            {
            case "Victory":
                title = "Victoire !";
                descr = "Vous avez réussi à vous protéger de la menace pathogène.";
                endGame(player, title, descr);
                break;

            case "Defeat":
                title = "Défaite.";
                descr = "La menace pathogène s'est trop répandue et est maintenant hors de contrôle.";
                endGame(player, title, descr);
                break;

            case "Pending":
            default:
                break;
            }
        }
    }
Esempio n. 19
0
        public void EnergizerSetterTest_InvalidInput()
        {
            Energizer e = new Energizer();

            e.Points = -1;
        }