public override int Execute(LogicLevel level) { LogicClientAvatar playerAvatar = level.GetPlayerAvatar(); if (playerAvatar != null) { LogicGameObjectManager gameObjectManager = level.GetGameObjectManagerAt(1); if (gameObjectManager.GetTownHall() == null) { LogicJSONObject jsonObject = level.GetGameListener().ParseCompressedHomeJSON(this.m_compressedHomeJSON, this.m_compressedHomeJSON.Length); level.SetLoadingVillageType(1); this.LoadGameObjectsJsonArray(level, jsonObject.GetJSONArray("buildings2"), 1); this.LoadGameObjectsJsonArray(level, jsonObject.GetJSONArray("obstacles2"), 1); this.LoadGameObjectsJsonArray(level, jsonObject.GetJSONArray("traps2"), 1); this.LoadGameObjectsJsonArray(level, jsonObject.GetJSONArray("decos2"), 1); level.SetLoadingVillageType(-1); if (playerAvatar.GetResourceCount(LogicDataTables.GetGold2Data()) == 0) { playerAvatar.CommodityCountChangeHelper(0, LogicDataTables.GetGold2Data(), LogicDataTables.GetGlobals().GetStartingGold2()); } if (playerAvatar.GetResourceCount(LogicDataTables.GetElixir2Data()) == 0) { playerAvatar.CommodityCountChangeHelper(0, LogicDataTables.GetElixir2Data(), LogicDataTables.GetGlobals().GetStartingElixir2()); } } return(0); } return(-1); }
public int CollectResources() { int collected = -1; if (this.m_parent.GetLevel().GetHomeOwnerAvatar().IsClientAvatar()) { collected = 0; LogicClientAvatar playerAvatar = (LogicClientAvatar)this.m_parent.GetLevel().GetHomeOwnerAvatar(); LogicDataTable table = LogicDataTables.GetTable(LogicDataType.RESOURCE); for (int i = 0; i < table.GetItemCount(); i++) { LogicResourceData data = (LogicResourceData)table.GetItemAt(i); if (data.GetWarResourceReferenceData() != null) { int count = playerAvatar.GetResourceCount(data); if (count > 0) { int unusedResourceCap = playerAvatar.GetUnusedResourceCap(data.GetWarResourceReferenceData()); if (unusedResourceCap != 0) { if (count > unusedResourceCap) { count = unusedResourceCap; } if (data.GetName().Equals("WarGold")) { this.m_parent.GetLevel().GetAchievementManager().IncreaseWarGoldResourceLoot(count); } collected = count; playerAvatar.CommodityCountChangeHelper(0, data.GetWarResourceReferenceData(), count); playerAvatar.CommodityCountChangeHelper(0, data, -count); } } } } } return(collected); }
private void OnCreateAllianceMessageReceived(CreateAllianceMessage message) { if (!this.CanJoinAlliance()) { AllianceCreateFailedMessage allianceCreateFailedMessage = new AllianceCreateFailedMessage(); allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(allianceCreateFailedMessage, 1); return; } LogicClientAvatar playerAvatar = this.m_session.GameMode.GetPlayerAvatar(); if (playerAvatar.GetResourceCount(LogicDataTables.GetGlobals().GetAllianceCreateResourceData()) < LogicDataTables.GetGlobals().GetAllianceCreateCost()) { AllianceCreateFailedMessage allianceCreateFailedMessage = new AllianceCreateFailedMessage(); allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(allianceCreateFailedMessage, 1); return; } ServerSocket allianceServer = ServerManager.GetNextSocket(11); if (allianceServer != null) { ServerRequestManager.Create(new CreateAllianceRequestMessage { AllianceName = message.GetAllianceName(), AllianceDescription = message.GetAllianceDescription(), AllianceType = (AllianceType)message.GetAllianceType(), AllianceBadgeId = message.GetAllianceBadgeId(), RequiredScore = message.GetRequiredScore(), RequiredDuelScore = message.GetRequiredDuelScore(), WarFrequency = message.GetWarFrequency(), PublicWarLog = message.GetPublicWarLog(), ArrangedWarEnabled = message.GetArrangedWarEnabled() }, allianceServer).OnComplete = this.OnCreateAlliance; } else { AllianceCreateFailedMessage allianceCreateFailedMessage = new AllianceCreateFailedMessage(); allianceCreateFailedMessage.SetReason(AllianceCreateFailedMessage.Reason.GENERIC); this.m_session.SendPiranhaMessage(allianceCreateFailedMessage, 1); } }
public override int Execute(LogicLevel level) { LogicClientAvatar playerAvatar = level.GetPlayerAvatar(); if (playerAvatar != null) { if (this.m_allianceCreate) { LogicGlobals globals = LogicDataTables.GetGlobals(); LogicResourceData resource = globals.GetAllianceCreateResourceData(); int removeCount = LogicMath.Min(globals.GetAllianceCreateCost(), playerAvatar.GetResourceCount(resource)); playerAvatar.CommodityCountChangeHelper(0, resource, -removeCount); } playerAvatar.SetAllianceId(this.m_allianceId.Clone()); playerAvatar.SetAllianceName(this.m_allianceName); playerAvatar.SetAllianceBadgeId(this.m_allianceBadgeId); playerAvatar.SetAllianceLevel(this.m_allianceExpLevel); playerAvatar.SetAllianceRole(this.m_allianceCreate ? LogicAvatarAllianceRole.LEADER : LogicAvatarAllianceRole.MEMBER); playerAvatar.GetChangeListener().AllianceJoined(playerAvatar.GetAllianceId(), this.m_allianceName, this.m_allianceBadgeId, this.m_allianceExpLevel, playerAvatar.GetAllianceRole()); LogicGameListener gameListener = level.GetGameListener(); if (gameListener != null) { if (this.m_allianceCreate) { gameListener.AllianceCreated(); } else { gameListener.AllianceJoined(); } } return(0); } return(-1); }