public void SendShipInfo(int index) { BgoProtocolWriter buffer = NewMessage(); buffer.Write((ushort)Reply.ShipInfo); uint worldGuid = Server.GetClientByIndex(index).Character.PlayerShip.WorldGuid; ShipCard currentShip = (ShipCard)Catalogue.FetchCard(worldGuid, CardView.Ship); buffer.Write((ushort)currentShip.HangarID); buffer.Write(currentShip.Durability); SendMessageToUser(index, buffer); }
public void SendStatsHullPoints(int index) { BgoProtocolWriter buffer = NewMessage(); buffer.Write((ushort)Reply.Stats); ShipCard currentShip = ((ShipCard)Catalogue.FetchCard(Server.GetClientByIndex(index).Character.PlayerShip.WorldGuid, CardView.Ship)); buffer.Write((ushort)1); buffer.Write((byte)7); buffer.Write(currentShip.Stats.MaxHullPoints); SendMessageToUser(index, buffer); }
public void SendStats(int index) { BgoProtocolWriter buffer = NewMessage(); buffer.Write((ushort)Reply.Stats); ShipCard currentShip = ((ShipCard)Catalogue.FetchCard(Server.GetClientByIndex(index).Character.WorldCardGUID, CardView.Ship)); buffer.Write((ushort)currentShip.Stats.ObjStats.Count); foreach (KeyValuePair <ObjectStat, float> stat in currentShip.Stats.ObjStats) { buffer.Write((byte)1); buffer.Write((ushort)stat.Key); buffer.Write(stat.Value); } SendMessageToUser(index, buffer); }
//Unfinished public void SendSlots(int index) { BgoProtocolWriter buffer = NewMessage(); buffer.Write((ushort)Reply.Slots); uint worldGuid = Server.GetClientByIndex(index).Character.PlayerShip.WorldGuid; ShipCard currentShip = (ShipCard)Catalogue.FetchCard(worldGuid, CardView.Ship); buffer.Write((ushort)currentShip.HangarID); int slotsCount = currentShip.Slots.Count; buffer.Write((ushort)slotsCount); for (int i = 0; i < slotsCount; i++) { buffer.Write(currentShip.Slots[i].SlotId); buffer.Write((byte)0); buffer.Write((uint)1); buffer.Write(false); } SendMessageToUser(index, buffer); }
// This method will generate all "static" cards that the server is going to send to the client. public static void SetupCards() { RewardCard colonialBonusReward = new RewardCard(3027, CardView.Reward, 0, AugmentActionType.None, "", 0); RewardCard cylonBonusReward = new RewardCard(3127, CardView.Reward, 0, AugmentActionType.None, "", 0); AddCard(colonialBonusReward); AddCard(cylonBonusReward); // These two cards shouldn't be static since they are most likely set according to the database. // Since we are just debugging this, there's no need to hook it up even with the fake database yet. GUICard colonialBonus = new GUICard(colonialBonusReward.CardGUID, CardView.GUI, "bonus_faction_balance_neutral", (byte)0, "", 0, "", "", "", new string[0]); GUICard cylonBonus = new GUICard(cylonBonusReward.CardGUID, CardView.GUI, "bonus_faction_balance_neutral", (byte)0, "", 0, "", "", "", new string[0]); AddCard(colonialBonus); AddCard(cylonBonus); AvatarCatalogueCard avatarCatalogue = new AvatarCatalogueCard(109873795, CardView.AvatarCatalogue); AddCard(avatarCatalogue); Color ambientColor = Color.FromArgb(255, 100, 100, 100); Color fogColor = Color.FromArgb(255, 100, 100, 100); Color dustColor = Color.FromArgb(255, 100, 100, 100); BackgroundDesc backgroundDesc = new BackgroundDesc("nebula1", new Quaternion(0, 0, 0, 0), Color.FromArgb(100, 100, 100, 100), new Vector3(0, 0, 0)); BackgroundDesc starsDesc = new BackgroundDesc("stars", new Quaternion(0, 0, 0, 0), Color.FromArgb(100, 100, 100, 100), new Vector3(0, 0, 0)); BackgroundDesc starsMult = new BackgroundDesc("starsmultiply_mid", new Quaternion(0, 0, 0, 0), Color.FromArgb(100, 100, 100, 100), new Vector3(0, 0, 0)); BackgroundDesc starsVariance = new BackgroundDesc("starsvariances", new Quaternion(0, 0, 0, 0), Color.FromArgb(100, 100, 100, 100), new Vector3(0, 0, 0)); MovingNebulaDesc[] movingNebulas = new MovingNebulaDesc[0]; LightDesc[] lightDescs = new LightDesc[0]; SunDesc[] sunDescs = new SunDesc[0]; JGlobalFog jGlobalFog = new JGlobalFog(false, Color.FromArgb(0, 0, 0, 0), 0, 0); JCameraFx jCameraFx = new JCameraFx(false); SectorCard sector4 = new SectorCard(1427, CardView.Sector, 1000, 1000, 1000, 1427, ambientColor, fogColor, 12, dustColor, 12, backgroundDesc, starsDesc, starsMult, starsVariance, movingNebulas, lightDescs, sunDescs, jGlobalFog, jCameraFx, new string[0]); GUICard sector4GUI = new GUICard(1427, CardView.GUI, "sector4", 0, "", 0, "", "", "", new string[0]); RegulationCard sector4Reg = new RegulationCard(1427, CardView.Regulation, new ConsumableEffectType[0], new Dictionary <uint, HashSet <ShipAbilitySide> >(), new Dictionary <uint, HashSet <ShipAbilityTarget> >(), TargetBracketMode.Default, true); AddCard(sector4); AddCard(sector4GUI); AddCard(sector4Reg); Dictionary <ObjectStat, float> mk7Stats = new Dictionary <ObjectStat, float>(); mk7Stats.Add(ObjectStat.MaxHullPoints, 585); mk7Stats.Add(ObjectStat.HullRecovery, 4.5f); mk7Stats.Add(ObjectStat.ArmorValue, 5); mk7Stats.Add(ObjectStat.CriticalDefense, 80); mk7Stats.Add(ObjectStat.Avoidance, 510); mk7Stats.Add(ObjectStat.TurnSpeed, 50); mk7Stats.Add(ObjectStat.TurnAcceleration, 55); mk7Stats.Add(ObjectStat.InertiaCompensation, 100); mk7Stats.Add(ObjectStat.Acceleration, 12); mk7Stats.Add(ObjectStat.Speed, 55); mk7Stats.Add(ObjectStat.BoostSpeed, 85); mk7Stats.Add(ObjectStat.BoostCost, 0.75f); mk7Stats.Add(ObjectStat.FtlRange, 4.5f); mk7Stats.Add(ObjectStat.FtlCharge, 15); mk7Stats.Add(ObjectStat.FtlCost, 30); mk7Stats.Add(ObjectStat.MaxPowerPoints, 150); mk7Stats.Add(ObjectStat.PowerRecovery, 5); mk7Stats.Add(ObjectStat.FirewallRating, 100); mk7Stats.Add(ObjectStat.DradisRange, 2000); mk7Stats.Add(ObjectStat.DetectionVisualRadius, 200); mk7Stats.Add(ObjectStat.StrafeAcceleration, 145); mk7Stats.Add(ObjectStat.StrafeMaxSpeed, 40); mk7Stats.Add(ObjectStat.PitchMaxSpeed, 65); mk7Stats.Add(ObjectStat.PitchAcceleration, 120); mk7Stats.Add(ObjectStat.YawMaxSpeed, 65); mk7Stats.Add(ObjectStat.YawAcceleration, 120); mk7Stats.Add(ObjectStat.RollMaxSpeed, 135); mk7Stats.Add(ObjectStat.RollAcceleration, 120); ShipCard mk7ShipCard = new ShipCard(22131177, CardView.Ship, 100, 2, 2, 1, 100, 0, 100, 1, new ShipRole[1] { ShipRole.Assault }, ShipRoleDeprecated.Fighter, "ship_viper_mk7_paperdoll_layouts", new List <ShipSlotCard>(), false, new List <uint>(), -1, new ObjectStats(mk7Stats), Faction.Colonial, new List <ShipImmutableSlot>()); GUICard mk7GuiCard = new GUICard(22131177, CardView.GUI, "vipermk7", 0, "", 0, "", "gui/infojournal/ships/Human11", "", new string[0]); ShopItemCard mk7ShopItemCard = new ShopItemCard(22131177, CardView.Price, ShopCategory.Ship, ShopItemType.Ship, 1, new string[0], 0, new Price(), new Price(), new Price(), Faction.Colonial, false); CameraCard mk7CameraCard = new CameraCard(22131177, CardView.Camera, 20, 40, 10, 20, 20); WorldCard mk7WorldCard = new WorldCard(22131177, CardView.World, "HumanT1Merit", 0, 0, new SpotDesc[0], "", 0, 0, true, true, true); ShipLightCard mk7ShipLightCard = new ShipLightCard(22131177, CardView.ShipLight, 100, 1, new ShipRole[1] { ShipRole.Assault }, ShipRoleDeprecated.Fighter); MovementCard movementCard = new MovementCard(22131177, CardView.Movement); AddCard(movementCard); AddCard(mk7ShipCard); AddCard(mk7GuiCard); AddCard(mk7ShopItemCard); AddCard(mk7CameraCard); AddCard(mk7WorldCard); AddCard(mk7ShipLightCard); RewardCard idk2 = new RewardCard(49842157, CardView.Reward, 0, AugmentActionType.LootItem, "", 0); GlobalCard idk = new GlobalCard(49842157, CardView.Global, 100, 100, 100, 10, idk2, new Dictionary <int, RewardCard>()); GUICard idk3 = new GUICard(49842157, CardView.GUI, "", (byte)0, "", 0, "", "", "", new string[0]); AddCard(idk2); AddCard(idk); AddCard(idk3); GUICard idk4 = new GUICard(130920111, CardView.GUI, "", (byte)0, "", 0, "", "", "", new string[0]); AddCard(idk4); GalaxyMapCard galaxyMapCard = new GalaxyMapCard(150576033, CardView.GalaxyMap, new Dictionary <uint, MapStarDesc>(), new int[0], 0); AddCard(galaxyMapCard); StickerListCard stickerListCard = new StickerListCard(166885587, CardView.StickerList); AddCard(stickerListCard); }
public void AddShip(ShipCard shipCard) { ShipCards.Add(shipCard); UpgradeShipCards.Add(shipCard); }