Exemplo n.º 1
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        pm.AlterWeaponDamage(addedWeaponDamage, weaponDamageMultiplier);

        cae.cardPlayState[currentAction] = 1;
        yield break;
    }
Exemplo n.º 2
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        if (shock)
        {
            if (enemy)
            {
                pm.otherManager.Shock(turns);
            }
            else
            {
                pm.Shock(turns);
            }
        }
        else
        if (enemy)
        {
            pm.otherManager.Unshock();
        }
        else
        {
            pm.Unshock();
        }

        cae.cardPlayState[currentAction] = 1;
        yield return(null);
    }
Exemplo n.º 3
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        Vector3Int[]      enemyAdjs      = GridHelper.GetAdjacentTiles(pm.EnemyCoords());
        List <Vector3Int> standableTiles = new List <Vector3Int>();

        for (int i = 0; i < enemyAdjs.Length; ++i)
        {
            if (GridHelper.CanStandOn(enemyAdjs[i]))
            {
                standableTiles.Add(enemyAdjs[i]);
            }
        }

        if (standableTiles.Count > 0)
        {
            int    random = Random.Range(0, standableTiles.Count);
            Pommel pommel = PhotonNetwork.Instantiate(
                "Prefabs/Items/Pommel",
                GridHelper.grid.CellToWorld(standableTiles[random]),
                Quaternion.identity).GetComponent <Pommel>();
            pommel.photonView.RPC("SetSpawner", RpcTarget.All, pm.photonView.ViewID);
        }

        cae.cardPlayState[currentAction] = 1;
        yield return(null);
    }
Exemplo n.º 4
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        if (evade)
        {
            if (enemy)
            {
                pm.otherManager.AddEvade(turns);
            }
            else
            {
                pm.AddEvade(turns);
            }
        }
        else
        if (enemy)
        {
            pm.otherManager.Unevade();
        }
        else
        {
            pm.Unevade();
        }

        cae.cardPlayState[currentAction] = 1;
        yield break;
    }
Exemplo n.º 5
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        if (refreshBasic)
        {
            if (rbEnemy)
            {
                pm.otherManager.RefreshBasic();
            }
            else
            {
                pm.RefreshBasic();
            }
        }
        if (refreshMove)
        {
            if (rmEnemy)
            {
                pm.otherManager.RefreshMove();
            }
            else
            {
                pm.RefreshMove();
            }
        }

        cae.cardPlayState[currentAction] = 1;
        yield return(null);
    }
Exemplo n.º 6
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        pm.AlterBasicDamage(addedBasicAttack, basicAttackMultiplier, setBasicAttack);

        cae.cardPlayState[currentAction] = 1;
        yield break;
    }
Exemplo n.º 7
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        double startingTurn = pm.gameManager.turnCount;
        bool   prevented    = false;

        while (startingTurn + lastHowLong > pm.gameManager.turnCount)
        {
            if (preventShock && pm.playerInfo.shocked > 0)
            {
                pm.Unshock();
                prevented = true;
            }
            if (preventSlow && pm.playerInfo.slowed > 0)
            {
                pm.Unslow();
                prevented = true;
            }
            if (preventStun && pm.playerInfo.stunned > 0)
            {
                pm.Unstun();
                prevented = true;
            }

            if (prevented && lastHowLong == 0)
            {
                break;
            }
            yield return(null);
        }

        cae.cardPlayState[currentAction] = 1;
        yield return(null);
    }
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        pm.CardSelectTile(new RangeDefined(dist, straight, piercing, basicRange), SelectedTile);
        _cardActionExecutor = cae;
        _currentAction      = currentAction;
        _playerManager      = pm;

        yield break;
    }
Exemplo n.º 9
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        cardActionExecutor = cae;
        currAction         = currentAction;
        playerManager      = pm;

        pm.Moved += OnMoved;
        cae.startedPassiveAction = true;
        yield return(null);
    }
Exemplo n.º 10
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        List <IAttackable> targets = GridHelper.IAttackablesInTiles(GridHelper.TilesInRange(pm.Coords(), new RangeDefined(range, straight, piercing, basicRange)));

        foreach (var target in targets)
        {
            pm.DamageTarget(damage, target, weapon);
        }

        cae.cardPlayState[currentAction] = 1;
        yield break;
    }
Exemplo n.º 11
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        Vector3Int[] adjTiles1 = GridHelper.GetAdjacentTiles(pm.Coords());
        for (int i = 0; i < 6; ++i)
        {
            if (GridHelper.CanStandOn(adjTiles1[i]))
            {
                Vector3Int cTile = GridHelper.GetChargeTile(pm.Coords(), i, chargeRange);
                GridHelper.groundTilemap.SetTileFlags(cTile, UnityEngine.Tilemaps.TileFlags.None);
                GridHelper.groundTilemap.SetColor(cTile, GridHelper.standableTileColor);
            }
        }

        bool       moved       = false;
        int        acDist      = 0;
        Vector3Int newPosition = new Vector3Int();

        while (true)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Vector3Int mouseCoords = pm.MouseCoords();

                Vector3Int[] adjTiles = GridHelper.GetAdjacentTiles(pm.Coords());
                for (int i = 0; i < 6; ++i)
                {
                    if (GridHelper.CanStandOn(adjTiles[i]))
                    {
                        Vector3Int cTile = GridHelper.GetChargeTile(pm.Coords(), i, chargeRange, ref acDist);
                        GridHelper.groundTilemap.SetColor(cTile, Color.white);
                        if (GridHelper.CanStandOn(cTile) && cTile == mouseCoords)
                        {
                            newPosition = cTile;
                            moved       = true;
                        }
                    }
                }
                break;
            }
            yield return(null);
        }
        if (moved)
        {
            pm.MoveTo(newPosition);
            cae.cardPlayState[currentAction] = 1;
        }
        else
        {
            cae.cardPlayState[currentAction] = 2;
        }
    }
Exemplo n.º 12
0
    private void Start()
    {
        player1   = GameObject.Find("Player1").GetComponent <PlayerManager>();
        player2   = GameObject.Find("Player2").GetComponent <PlayerManager>();
        caePrefab = Resources.Load <CardActionExecutor>("Prefabs/CardActionExecutor");

        cardVisuals     = GetComponent <CardVisuals>();
        realResolveCost = card.resolveCost;
        cardCostHandler = card.cardCostHandler;
        if (cardCostHandler != null)
        {
            StartCoroutine(cardCostHandler.StartChecking(CurrentPlayer(), this));
        }
    }
Exemplo n.º 13
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        if (toTheBottom)
        {
            pm.cardManager.AddCardToBottom(card, new CardInfo());
        }
        else
        {
            pm.cardManager.ShuffleNewCard(card, new CardInfo());
        }

        cae.cardPlayState[currentAction] = 1;
        yield return(null);
    }
Exemplo n.º 14
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        List <Vector3Int> blinkTiles = GridHelper.TilesInDistance(pm.Coords(), blinkRange);

        foreach (var tile in blinkTiles)
        {
            if (GridHelper.CanStandOn(tile))
            {
                GridHelper.groundTilemap.SetTileFlags(tile, UnityEngine.Tilemaps.TileFlags.None);
                GridHelper.groundTilemap.SetColor(tile, GridHelper.standableTileColor);
            }
        }

        Vector3Int newPosition = new Vector3Int();
        bool       moved       = false;

        while (true)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Vector3Int mouseCoords = pm.MouseCoords();

                for (int i = 0; i < blinkTiles.Count; ++i)
                {
                    var tile = blinkTiles[i];
                    GridHelper.groundTilemap.SetColor(tile, Color.white);
                    if (GridHelper.CanStandOn(tile) && tile == mouseCoords)
                    {
                        newPosition = tile;
                        moved       = true;
                    }
                }
                break;
            }
            yield return(null);
        }
        if (moved)
        {
            pm.MoveTo(newPosition);
            cae.cardPlayState[currentAction] = 1;
        }
        else
        {
            cae.cardPlayState[currentAction] = 2;
        }

        yield return(null);
    }
Exemplo n.º 15
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        if (unshaken)
            if (enemy)
                pm.otherManager.Unshaken(turns);
            else
                pm.Unshaken(turns);
        else
            if (enemy)
                pm.otherManager.Deunshaken();
            else
                pm.Deunshaken();

        cae.cardPlayState[currentAction] = 1;
        yield return null;
    }
Exemplo n.º 16
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        cae.startedPassiveAction = true;

        double playedTurn  = pm.gameManager.turnCount;
        double currentTurn = playedTurn;

        while (playedTurn + turns > currentTurn)
        {
            currentTurn = pm.gameManager.turnCount;
            yield return(null);
        }

        cae.cardPlayState[currentAction] = 1;
        yield return(null);
    }
Exemplo n.º 17
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        playerManager = pm;
        if (dir == -1)
        {
            pm.CardAttack(damage, true, DamageFunction, new RangeDefined(1, true, false, true), cae, currentAction);
        }
        else
        {
            pm.CardAttack(damage, true, new RangeDefined(1, true, false, true, new List <int>()
            {
                dir
            }, null), cae, currentAction);
        }

        yield break;
    }
Exemplo n.º 18
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        List <Vector3Int> tiles = new List <Vector3Int>(GridHelper.GetAdjacentTiles(pm.Coords()));

        tiles.Add(pm.Coords());

        List <RaycastHit2D> hits = GridHelper.RaycastTilesNoEmptyHits(tiles);

        foreach (var hit in hits)
        {
            PlayerManager hitPlayer = hit.transform.parent.GetComponent <PlayerManager>();
            if (hitPlayer != null)
            {
                ApplyEffects(hitPlayer);
            }
        }

        cae.cardPlayState[currentAction] = 1;
        yield break;
    }
Exemplo n.º 19
0
    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        tiles = GridHelper.TilesInRange(pm.Coords(), new RangeDefined(range, straight, piercing, basicRange, null, StandableChecker));

        foreach (var tile in tiles)
        {
            GridHelper.groundTilemap.SetColor(tile, GridHelper.spawnTileColor);
        }

        bool spawned = false;

        while (true)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Vector3Int mousePos = pm.MouseCoords();
                //add raycast here if u want, and check in if
                if (GridHelper.TileInList(mousePos, tiles))
                {
                    Spawnable acItem = PhotonNetwork.Instantiate("Prefabs/Items/" + itemName, GridHelper.grid.CellToWorld(mousePos), Quaternion.identity).GetComponent <Spawnable>();
                    acItem.photonView.RPC("SetSpawner", RpcTarget.All, pm.photonView.ViewID);
                    spawned = true;
                    break;
                }
                else
                {
                    spawned = false;
                    break;
                }
            }
            yield return(null);
        }

        foreach (var tile in tiles)
        {
            GridHelper.groundTilemap.SetColor(tile, Color.white);
        }
        cae.cardPlayState[currentAction] = spawned ? 1 : 2;
    }
Exemplo n.º 20
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     pm.CardAttack((int)Mathf.Pow(2, 1 + Mathf.Max(pm.playerInfo.stillStandingTurns - 1, 0)), isWeaponAtk, new RangeDefined(dist, straight, piercing, basicRange), cae, currentAction);
     yield break;
 }
Exemplo n.º 21
0
 public abstract IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction);
Exemplo n.º 22
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     pm.GainBlock((int)(pm.playerInfo.block * (currentBlockMultiplier - 1) + blockAmount));
     cae.cardPlayState[currentAction] = 1;
     yield return(null);
 }
Exemplo n.º 23
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     pm.AlterBasicRange(addedBasicRange, basicRangeMultiplier, setBasicRange);
     cae.cardPlayState[currentAction] = 1;
     yield return(null);
 }
Exemplo n.º 24
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     pm.CardAttack(damage, weapon, new RangeDefined(range, straight, piercing, basicRange), cae, currentAction); //action state gets set in here
     yield return(null);
 }
Exemplo n.º 25
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     pm.cardManager.DrawHandCards(num);
     cae.cardPlayState[currentAction] = 1;
     yield return(null);
 }
    //private PlayerManager playerManager;

    public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
    {
        //playerManager = pm;
        pm.CardAttack(0, false, DamageFunction, new RangeDefined(dist, false, false, false, self), cae, currentAction);
        yield break;
    }
Exemplo n.º 27
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     playerManager = pm;
     pm.CardAttack(0, true, DamageFunction, new RangeDefined(0, false, false, true), cae, currentAction);
     yield return(null);
 }
Exemplo n.º 28
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     pm.SetHealth(health);
     cae.cardPlayState[currentAction] = 1;
     yield return(null);
 }
Exemplo n.º 29
0
    public void PlayCard()   //called by PlayingCard(State)
    {
        CardActionExecutor cae = Instantiate(caePrefab); cae.player1 = player1; cae.player2 = player2;

        cae.Execute(this);
    }
Exemplo n.º 30
0
 public override IEnumerator Execute(PlayerManager pm, CardActionExecutor cae, int currentAction)
 {
     cae.cardLogic.cardInfo.doubleCast = true;
     cae.cardPlayState[currentAction]  = 1;
     yield return(null);
 }