Example #1
0
    public override ApplyBuffResponse GenerateResponse
        (ApplyBuffRequest req, StateManager from, StateManager opponent)
    {
        var cell          = from.publicGrid.GetCellAt(req.coord);
        int religionLevel = cell.building.religion - 1;
        Ack ack;

        // opponent gained control
        if (religionLevel == 0)
        {
            // By this time the packet has been sent, so ignore
            ack = Ack.Failure;
        }
        // opponent gets vision
        else if (religionLevel == 1)
        {
            ack = Ack.Warning;
        }
        else
        {
            ack = Ack.Success;
        }

        return(new ApplyZealotsBuffResponse
        {
            coord = req.coord,
            religionLevel = religionLevel,
            ack = ack,
        });
    }
Example #2
0
 public override ApplyBuffResponse GenerateResponse
     (ApplyBuffRequest req, StateManager from, StateManager opponent)
 {
     return(new ApplyShieldBuffResponse
     {
         ack = Ack.Success,
         coord = req.coord,
     });
 }
Example #3
0
    public override ApplyBuffPacket GeneratePacket(ApplyBuffRequest req, StateManager from, StateManager opponent)
    {
        var request = (ApplySwapcellsBuffRequest)req;

        return(new ApplySwapcellsBuffPacket
        {
            coord = request.coord,
            coordTo = request.coordTo,
        });
    }
Example #4
0
    public override ApplyBuffResponse GenerateResponse
        (ApplyBuffRequest req, StateManager from, StateManager opponent)
    {
        var r = (ApplySwapcellsBuffRequest)req;

        return(new ApplySwapcellsBuffResponse
        {
            coord = r.coord,
            coordTo = r.coordTo,
        });
    }
Example #5
0
    public override ApplyBuffResponse GenerateResponse
        (ApplyBuffRequest req, StateManager from, StateManager opponent)
    {
        var cell = from.publicGrid.GetCellAt(req.coord);

        // This spell cannot cause a cell to change its owner
        // because if can only be applied on a cell you control
        return(new ApplyPurgeBuffResponse
        {
            coord = req.coord,
            religionLevel = cell.building.religion,
            ack = Ack.Success,
        });
    }
Example #6
0
    public override ApplyBuffResponse GenerateResponse
        (ApplyBuffRequest req, StateManager from, StateManager opponent)
    {
        var cell = opponent.privateGrid.GetCellAt(req.coord);

        // generate a response with the necessary data
        var res = new ApplyIlluminateBuffResponse
        {
            // respond with the list of bonuses that the tile has
            bonuses = Bonus.ConvertToStructs(cell.bonuses),
            coord   = req.coord,
        };

        return(res);
    }
Example #7
0
    public virtual ApplyBuffPacket GeneratePacket
        (ApplyBuffRequest req, StateManager from, StateManager opponent)
    {
        var cell = opponent.privateGrid.GetCellAt(req.coord);

        // opponent has vision
        if (cell.building != null && cell.building.religion <= 2)
        {
            var illumTwinSpell = (TwinSpell)opponent.FindSpell(SpellName.Illuminate);
            var illumSpell     = illumTwinSpell.spell;
            var publicCell     = from.publicGrid.GetCellAt(req.coord);
            var res            = illumSpell.ApplyEffect(publicCell, from);
            var response       = (ApplyIlluminateSpellResponse)res;

            return(new ApplyBuffVisionPacket
            {
                illuminate = response,
            });
        }
        return(null);
    }
Example #8
0
 public override ApplyBuffPacket GeneratePacket
     (ApplyBuffRequest req, StateManager from, StateManager opponent)
 {
     return(null);
 }
Example #9
0
 public abstract ApplyBuffResponse GenerateResponse
     (ApplyBuffRequest req, StateManager from, StateManager opponent);