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, }); }
public override ApplyBuffResponse GenerateResponse (ApplyBuffRequest req, StateManager from, StateManager opponent) { return(new ApplyShieldBuffResponse { ack = Ack.Success, coord = req.coord, }); }
public override ApplyBuffPacket GeneratePacket(ApplyBuffRequest req, StateManager from, StateManager opponent) { var request = (ApplySwapcellsBuffRequest)req; return(new ApplySwapcellsBuffPacket { coord = request.coord, coordTo = request.coordTo, }); }
public override ApplyBuffResponse GenerateResponse (ApplyBuffRequest req, StateManager from, StateManager opponent) { var r = (ApplySwapcellsBuffRequest)req; return(new ApplySwapcellsBuffResponse { coord = r.coord, coordTo = r.coordTo, }); }
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, }); }
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); }
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); }
public override ApplyBuffPacket GeneratePacket (ApplyBuffRequest req, StateManager from, StateManager opponent) { return(null); }
public abstract ApplyBuffResponse GenerateResponse (ApplyBuffRequest req, StateManager from, StateManager opponent);