public void RemovePlayer(Enums.Characters character)
        {
            Controller removePlayer = controllers.Find(x => x.ID.Equals(characterToPlayer[character]));

            controllers.Remove(removePlayer);
            characterToPlayer.Remove(character);
        }
예제 #2
0
    public void Initialize(Sprite image, Vector3 position, float time, HUD_Controller inst, Enums.Characters player, int id_num)
    {
        Image img = GetComponent <Image>();

        img.sprite = image;
        img.rectTransform.localPosition = position;
        life           = time;
        hud_controller = inst;
        character      = player;
        id             = id_num;
        start_clock    = true;
    }
예제 #3
0
    public int CreateEffect(Enums.CharactersEffects effect, Enums.Characters character, float duration)
    {
        Vector3 position = new Vector3();
        Vector3 delay_position;

        int id = 0;

        //Search best position by character
        switch (character)
        {
        case Enums.Characters.BARION:

            delay_position = SearchBestPositionEffect(ref barion_effects, ref id);
            position       = barion_effect_position + delay_position;
            break;

        case Enums.Characters.COSMO:

            delay_position = SearchBestPositionEffect(ref cosmo_effects, ref id);
            position       = cosmo_effect_position + delay_position;
            break;

        case Enums.Characters.NYX:

            delay_position = SearchBestPositionEffect(ref nyx_effects, ref id);
            position       = nyx_effect_position + delay_position;
            break;
        }

        //Create effect
        GameObject effect_created = Instantiate(effect_prefab) as GameObject;

        effect_created.transform.SetParent(canvas.transform, false);
        HUD_Effect effect_controller = effect_created.GetComponent <HUD_Effect>();

        Sprite image = null;

        switch (effect)
        {
        case Enums.CharactersEffects.INVISIBLE:
            image = invisible_image;
            break;

        case Enums.CharactersEffects.SHIELD:
            image = shield_image;
            break;
        }

        effect_controller.Initialize(image, position, duration, this, character, id);

        return(id);
    }
        public void InitializePlayer(Enums.Characters character, PlayerID id)
        {
            GameObject newPlayer = Instantiate(players[(int)character]);

            DontDestroyOnLoad(newPlayer);
            Controller controller = newPlayer.GetComponent <Controller>();

            controller.ID        = id;
            controller.Character = character;
            controllers.Add(controller);
            controller.Disable();
            characterToPlayer.Add(character, id);
        }
예제 #5
0
    public void EffectFinished(Enums.Characters character, int id)
    {
        switch (character)
        {
        case Enums.Characters.BARION:

            barion_effects[id] = false;
            break;

        case Enums.Characters.COSMO:

            cosmo_effects[id] = false;
            break;

        case Enums.Characters.NYX:

            nyx_effects[id] = false;
            break;
        }
    }
        private bool IncrementPlayerScore(List <PlayerID> winners)
        {
            bool scoreReached = false;

            foreach (PlayerID id in winners)
            {
                GameObject go = (GameObject)GameObject.Instantiate(bloodDrainPrefab);
                go.GetComponent <BloodDrainEffect>().start = GetPlayer(id).transform.position;
                Enums.Characters c = characterToPlayer.FirstOrDefault(x => x.Value == id).Key;
                Goblet           g = goblets.Find(x => x.character.Equals(c));
                go.GetComponent <BloodDrainEffect>().end = g.transform.position;
                playerScores[((int)id) - 1] += pointStep;
                g.UpdateScale(Mathf.Clamp01(((float)playerScores[((int)id) - 1]) / (float)MAX_SCORE));
                if (playerScores[((int)id) - 1] >= MAX_SCORE)
                {
                    scoreReached     = true;
                    winningCharacter = c;
                }
            }
            return(scoreReached);
        }
        public void ResetGame()
        {
            Camera.main.GetComponent <Animator>().SetTrigger("RestartGame");

            for (int i = 0; i < 4; i++)
            {
                playerScores[i] = 0;
            }
            foreach (PlayerID id in characterToPlayer.Values)
            {
                Enums.Characters c = characterToPlayer.FirstOrDefault(x => x.Value == id).Key;
                Goblet           g = goblets.Find(x => x.character.Equals(c));
                g.UpdateScale(Mathf.Clamp01(((float)playerScores[((int)id) - 1]) / (float)MAX_SCORE));
            }

            inGame = true;

            for (int i = 0; i < controllers.Count; i++)
            {
                controllers[i].Enable();
                RespawnNode playerNode = respawnNodes.Find(x => x.ID.Equals(controllers[i].ID));
                controllers[i].transform.position = playerNode.transform.position;
            }
        }
        private bool IncrementPlayerScore(List<PlayerID> winners)
        {
            bool scoreReached = false;
            foreach(PlayerID id in winners)
            {
				GameObject go = (GameObject)GameObject.Instantiate(bloodDrainPrefab);
				go.GetComponent<BloodDrainEffect>().start = GetPlayer(id).transform.position;
				Enums.Characters c = characterToPlayer.FirstOrDefault(x => x.Value == id).Key;
				Goblet g = goblets.Find(x => x.character.Equals(c));
				go.GetComponent<BloodDrainEffect>().end = g.transform.position;
                playerScores[((int)id)-1] += pointStep;
				g.UpdateScale(Mathf.Clamp01(((float)playerScores[((int)id) - 1]) / (float)MAX_SCORE));
				if (playerScores[((int)id)-1] >= MAX_SCORE) {
					scoreReached = true;
					winningCharacter = c;
				}
            }
            return scoreReached;
        }
예제 #9
0
        private bool IncrementPlayerScore(List<PlayerID> winners)
        {
            bool scoreReached = false;
            foreach(PlayerID id in winners)
            {
                playerScores[((int)id)-1] += pointStep;
                Enums.Characters c = characterToPlayer.FirstOrDefault(x => x.Value == id).Key;
                Goblet g = goblets.Find(x => x.character.Equals(c));
				g.UpdateScale(Mathf.Clamp01(((float)playerScores[((int)id) - 1]) / (float)MAX_SCORE));
				if (playerScores[((int)id)-1] >= MAX_SCORE) {
					scoreReached = true;
					winningCharacter = c;
				}
            }
            return scoreReached;
        }