public static void SetSenderInfo(StreamEntry entry, LogicClientAvatar avatar) { entry.SetSenderAvatarId(avatar.GetId()); entry.SetSenderHomeId(avatar.GetCurrentHomeId()); entry.SetSenderName(avatar.GetName()); entry.SetSenderLevel(avatar.GetExpLevel()); entry.SetSenderLeagueType(avatar.GetLeagueType()); entry.SetSenderRole(avatar.GetAllianceRole()); }
/// <summary> /// Sets the data. /// </summary> public void SetData(LogicClientAvatar avatar) { this._avatarId = avatar.GetId(); this._homeId = avatar.GetCurrentHomeId(); this._avatarName = avatar.GetName(); this._facebookId = avatar.GetFacebookId(); this._expLevel = avatar.GetExpLevel(); this._leagueType = avatar.GetLeagueType(); this._nameChangeState = avatar.GetNameChangeState(); this._nameSetByUser = avatar.GetNameSetByUser(); if (avatar.IsInAlliance()) { this._allianceId = avatar.GetAllianceId(); this._allianceName = avatar.GetAllianceName(); this._allianceExpLevel = avatar.GetAllianceExpLevel(); this._allianceRole = avatar.GetAllianceRole(); this._badgeId = avatar.GetAllianceBadge(); } }
public static void SetLogicClientAvatarToAllianceMemberEntry(LogicClientAvatar avatar, AllianceMemberEntry allianceMemberEntry, Alliance alliance = null) { bool updateScoring = avatar.GetScore() != avatar.GetScore(); allianceMemberEntry.SetAvatarId(avatar.GetId()); allianceMemberEntry.SetHomeId(avatar.GetCurrentHomeId()); allianceMemberEntry.SetName(avatar.GetName()); allianceMemberEntry.SetExpLevel(avatar.GetExpLevel()); allianceMemberEntry.SetLeagueType(avatar.GetLeagueType()); allianceMemberEntry.SetScore(avatar.GetScore()); allianceMemberEntry.SetDuelScore(avatar.GetDuelScore()); allianceMemberEntry.SetWarPreference(avatar.GetWarPreference()); if (alliance != null) { if (updateScoring) { alliance.UpdateScoring(); } } }
public void PublishMessage(LogicClientAvatar logicClientAvatar, string message) { GlobalChatLineMessage globalChatLineMessage = new GlobalChatLineMessage(); globalChatLineMessage.SetMessage(message); globalChatLineMessage.SetAvatarName(logicClientAvatar.GetName()); globalChatLineMessage.SetAvatarExpLevel(logicClientAvatar.GetExpLevel()); globalChatLineMessage.SetAvatarLeagueType(logicClientAvatar.GetLeagueType()); globalChatLineMessage.SetAvatarId(logicClientAvatar.GetId()); globalChatLineMessage.SetHomeId(logicClientAvatar.GetCurrentHomeId()); if (logicClientAvatar.IsInAlliance()) { globalChatLineMessage.SetAllianceId(logicClientAvatar.GetAllianceId()); globalChatLineMessage.SetAllianceName(logicClientAvatar.GetAllianceName()); globalChatLineMessage.SetAllianceBadgeId(logicClientAvatar.GetAllianceBadgeId()); } foreach (ChatSession session in this.m_sessions.Values) { session.SendPiranhaMessage(globalChatLineMessage, 1); } }
public void RefreshStatus() { if (this.m_level.GetState() == 1) { LogicClientAvatar playerAvatar = this.m_level.GetPlayerAvatar(); LogicDataTable dataTable = LogicDataTables.GetTable(LogicDataType.ACHIEVEMENT); for (int i = 0, progress = 0; i < dataTable.GetItemCount(); i++, progress = 0) { LogicAchievementData achievementData = (LogicAchievementData)dataTable.GetItemAt(i); switch (achievementData.GetActionType()) { case LogicAchievementData.ACTION_TYPE_NPC_STARS: progress = playerAvatar.GetTotalNpcStars(); break; case LogicAchievementData.ACTION_TYPE_UPGRADE: progress = this.m_level.GetGameObjectManager().GetHighestBuildingLevel(achievementData.GetBuildingData()) + 1; break; case LogicAchievementData.ACTION_TYPE_VICTORY_POINTS: progress = playerAvatar.GetScore(); break; case LogicAchievementData.ACTION_TYPE_UNIT_UNLOCK: progress = achievementData.GetCharacterData() .IsUnlockedForBarrackLevel( LogicMath.Max(this.m_level.GetComponentManagerAt(achievementData.GetVillageType()).GetMaxBarrackLevel(), 0)) ? 1 : 0; break; case LogicAchievementData.ACTION_TYPE_LEAGUE: progress = playerAvatar.GetLeagueType(); break; case LogicAchievementData.ACTION_TYPE_ACCOUNT_BOUND: progress = playerAvatar.IsAccountBound() ? 1 : 0; break; case LogicAchievementData.ACTION_TYPE_VERSUS_BATTLE_TROPHIES: progress = playerAvatar.GetDuelScore(); break; case LogicAchievementData.ACTION_TYPE_GEAR_UP: progress = this.m_level.GetGameObjectManager().GetGearUpBuildingCount(); break; case LogicAchievementData.ACTION_TYPE_REPAIR_BUILDING: LogicArrayList <LogicAchievementData> achievementLevels = achievementData.GetAchievementLevels(); if (achievementLevels.Size() > 0) { for (int j = 0; j < achievementLevels.Size(); j++) { if (!this.IsBuildingUnlocked(achievementLevels[j].GetBuildingData())) { break; } if (achievementLevels[j] == achievementData) { progress = 1; break; } } } break; } this.RefreshAchievementProgress(playerAvatar, achievementData, progress); } } }
/// <summary> /// Refreshes status of all achievements. /// </summary> public void RefreshStatus() { if (this._level.GetState() == 1) { LogicClientAvatar playerAvatar = this._level.GetPlayerAvatar(); LogicDataTable dataTable = LogicDataTables.GetTable(22); for (int i = 0, progress = 0; i < dataTable.GetItemCount(); i++, progress = 0) { LogicAchievementData achievementData = (LogicAchievementData)dataTable.GetItemAt(i); switch (achievementData.GetActionType()) { case 0: progress = playerAvatar.GetTotalNpcStars(); break; case 1: progress = this._level.GetGameObjectManager().GetHighestBuildingLevel(achievementData.GetBuildingData()) + 1; break; case 2: progress = playerAvatar.GetScore(); break; case 3: progress = achievementData.GetCharacterData().IsUnlockedForBarrackLevel(LogicMath.Max(this._level.GetComponentManagerAt(achievementData.GetVillageType()).GetMaxBarrackLevel(), 0)) ? 1 : 0; break; case 12: progress = playerAvatar.GetLeagueType(); break; case 16: progress = playerAvatar.IsAccountBound() ? 1 : 0; break; case 17: progress = playerAvatar.GetDuelScore(); break; case 18: progress = this._level.GetGameObjectManager().GetGearUpBuildingCount(); break; case 19: LogicArrayList <LogicAchievementData> achievementLevels = achievementData.GetAchievementLevels(); if (achievementLevels.Count <= 0) { break; } for (int j = 0; j < achievementLevels.Count; j++) { if (!this._level.IsBuildingUnlocked(achievementLevels[j].GetBuildingData())) { goto refresh; } } progress = 1; break; } refresh: this.RefreshAchievementProgress(playerAvatar, achievementData, progress); } } }
private void CreateBattleReport() { LogicClientAvatar attacker = (LogicClientAvatar)this.m_logicGameMode.GetLevel().GetVisitorAvatar(); LogicClientAvatar defender = (LogicClientAvatar)this.m_logicGameMode.GetLevel().GetHomeOwnerAvatar(); string attackerBattleLogJSON = LogicJSONParser.CreateJSONString(this.m_logicGameMode.GetLevel().GetBattleLog().GenerateAttackerJSON()); string defenderBattleLogJSON = LogicJSONParser.CreateJSONString(this.m_logicGameMode.GetLevel().GetBattleLog().GenerateDefenderJSON()); ServerRequestManager.Create(new CreateReplayStreamRequestMessage { JSON = LogicJSONParser.CreateJSONString(this.m_logicGameMode.GetReplay().GetJson(), 1536) }, ServerManager.GetNextSocket(11)).OnComplete = args => { LogicLong replayId = null; if (args.ErrorCode == ServerRequestError.Success && args.ResponseMessage.Success) { replayId = ((CreateReplayStreamResponseMessage)args.ResponseMessage).Id; } BattleReportStreamEntry attackerBattleReportStreamEntry = new BattleReportStreamEntry(AvatarStreamEntryType.ATTACKER_BATTLE_REPORT); attackerBattleReportStreamEntry.SetSenderAvatarId(defender.GetId()); attackerBattleReportStreamEntry.SetSenderLevel(defender.GetExpLevel()); attackerBattleReportStreamEntry.SetSenderLeagueType(defender.GetLeagueType()); attackerBattleReportStreamEntry.SetSenderName(defender.GetName()); attackerBattleReportStreamEntry.SetMajorVersion(LogicVersion.MAJOR_VERSION); attackerBattleReportStreamEntry.SetBuildVersion(LogicVersion.BUILD_VERSION); attackerBattleReportStreamEntry.SetContentVersion(ResourceManager.GetContentVersion()); attackerBattleReportStreamEntry.SetBattleLogJSON(attackerBattleLogJSON); attackerBattleReportStreamEntry.SetReplayId(replayId); ServerRequestManager.Create(new CreateAvatarStreamRequestMessage { OwnerId = attacker.GetId(), Entry = attackerBattleReportStreamEntry }, ServerManager.GetDocumentSocket(11, attacker.GetId())).OnComplete = args2 => { if (args2.ErrorCode == ServerRequestError.Success && args2.ResponseMessage.Success) { ServerMessageManager.SendMessage(new CreateAvatarStreamMessage { AccountId = attacker.GetId(), Entry = ((CreateAvatarStreamResponseMessage)args2.ResponseMessage).Entry }, 9); } }; if (this.m_gameDefenderLocked) { BattleReportStreamEntry defenderBattleReportStreamEntry = new BattleReportStreamEntry(AvatarStreamEntryType.DEFENDER_BATTLE_REPORT); defenderBattleReportStreamEntry.SetSenderAvatarId(attacker.GetId()); defenderBattleReportStreamEntry.SetSenderLevel(attacker.GetExpLevel()); defenderBattleReportStreamEntry.SetSenderLeagueType(attacker.GetLeagueType()); defenderBattleReportStreamEntry.SetSenderName(attacker.GetName()); defenderBattleReportStreamEntry.SetMajorVersion(LogicVersion.MAJOR_VERSION); defenderBattleReportStreamEntry.SetBuildVersion(LogicVersion.BUILD_VERSION); defenderBattleReportStreamEntry.SetContentVersion(ResourceManager.GetContentVersion()); defenderBattleReportStreamEntry.SetBattleLogJSON(defenderBattleLogJSON); defenderBattleReportStreamEntry.SetReplayId(replayId); ServerRequestManager.Create(new CreateAvatarStreamRequestMessage { OwnerId = defender.GetId(), Entry = defenderBattleReportStreamEntry }, ServerManager.GetDocumentSocket(11, defender.GetId())).OnComplete = args2 => { if (args2.ErrorCode == ServerRequestError.Success && args2.ResponseMessage.Success) { ServerMessageManager.SendMessage(new CreateAvatarStreamMessage { AccountId = defender.GetId(), Entry = ((CreateAvatarStreamResponseMessage)args2.ResponseMessage).Entry }, 9); } }; } }; }
public static void UpdateLeagueRank(LogicClientAvatar clientAvatar, int score, bool defender) { if (LogicDataTables.GetGlobals().EnableLeagues()) { LogicDataTable leagueTable = LogicDataTables.GetTable(LogicDataType.LEAGUE); LogicLeagueData data = clientAvatar.GetLeagueTypeData(); int leagueType = clientAvatar.GetLeagueType(); if (leagueType != 0) { int leagueItemCount = leagueTable.GetItemCount(); if (data.GetPromoteLimit() <= score) { if (data.IsPromoteEnabled()) { while (leagueType + 1 < leagueItemCount) { LogicLeagueData leagueData = (LogicLeagueData)leagueTable.GetItemAt(++leagueType); if (leagueData.GetPromoteLimit() > score || !leagueData.IsPromoteEnabled()) { break; } } if (leagueType != clientAvatar.GetLeagueType()) { clientAvatar.SetLeagueType(leagueType); } } } else if (data.GetDemoteLimit() >= score) { if (data.IsDemoteEnabled()) { while (leagueType > 0) { LogicLeagueData leagueData = (LogicLeagueData)leagueTable.GetItemAt(--leagueType); if (leagueData.GetDemoteLimit() < score || !leagueData.IsDemoteEnabled()) { break; } } if (leagueType != clientAvatar.GetLeagueType()) { clientAvatar.SetLeagueType(leagueType); } } } } else if (!defender) { for (int i = 0; i < leagueTable.GetItemCount(); i++) { LogicLeagueData leagueData = (LogicLeagueData)leagueTable.GetItemAt(i); if (leagueData.GetPlacementLimitLow() <= score && leagueData.GetPlacementLimitHigh() >= score) { if (i != 0) { clientAvatar.SetLeagueType(i); } break; } } } } }