Esempio n. 1
0
    // flips a player's monster card
    public void PlayMonster(MonsterAsset monsterAsset, int index)
    {
        GameObject monster;

        monster = CreateAMonsterAtPosition(monsterAsset, slots.Children[index].position, new Vector3(0f, -179f, 0f));
        MonsterManager monsterManager = monster.GetComponent <MonsterManager>();

        monsterManager.index = index;
        monsterManager.CardFaceGlowImage.enabled = false;
        monsterManagers.Insert(index, monsterManager);

        // pass this monster to HandVisual class
        AddMonster(monster, index);

        // bring monster to front
        WhereIsTheCardOrMonster w = monster.GetComponent <WhereIsTheCardOrMonster>();

        w.BringToFront();
        w.Slot = index;

        // flip monster
        Sequence s = DOTween.Sequence();

        s.Insert(0f, monster.transform.DORotate(Vector3.zero, GameStateSync.Instance.MonsterFlipTime));

        // displace the monster so that we can select it in the scene easier.
        s.Append(monster.transform.DOLocalMove(slots.Children[0].transform.localPosition, GameStateSync.Instance.MonsterFlipTime));

        s.OnComplete(() => ChangeLastCardStatusToInHand(monster, w));
    }
Esempio n. 2
0
    // creates a monster and returns a new monster as a GameObject
    GameObject CreateAMonsterAtPosition(MonsterAsset monsterAsset, Vector3 position, Vector3 eulerAngles)
    {
        // Instantiate a card depending on its type
        GameObject monster;

        // this is a spell: checking for targeted or non-targeted spell
        monster = GameObject.Instantiate(GameStateSync.Instance.MonsterCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;

        // apply the look of the monster
        MonsterManager manager = monster.GetComponent <MonsterManager>();

        manager.monsterAsset = monsterAsset;
        manager.ReadCardFromAsset();

        return(monster);
    }
Esempio n. 3
0
    // Play monsters
    public void PlayMonsters(PlayerArea area, ref List <Monster> playerMonsters, List <Monster> newPlayerMonsters)
    {
        if (playerMonsters.Count == 0)
        {
            playerMonsters = new List <Monster>();

            for (int i = 0; i < newPlayerMonsters.Count; i++)
            {
                // play this monster for the first time
                Monster      monster      = newPlayerMonsters[i];
                MonsterAsset monsterAsset = Resources.Load <MonsterAsset>("Cards/" + monster.mainLineage + "/" + monster.id) as MonsterAsset;
                new PlayAMonsterCommand(area, monsterAsset, i).AddToQueue();
                // sync monster data to local
                playerMonsters.Insert(i, monster);
            }
        }
    }
Esempio n. 4
0
 public Wave(MonsterAsset asset, int count, float timeUntilThisWave)
 {
     Asset             = asset;
     Count             = count;
     TimeUntilThisWave = timeUntilThisWave;
 }
 public PlayAMonsterCommand(PlayerArea playerArea, MonsterAsset monsterAsset, int index)
 {
     this.playerArea   = playerArea;
     this.monsterAsset = monsterAsset;
     this.index        = index;
 }