void ProcessBuildingInfo(InvadeResultInfo info, out string resStr) { if (info.Id == -1) { resStr = string.Format("[960000]大门破损不堪,僵尸毫不费力就闯入了庄园![-]"); return; } //sanctuaryPackage NBuildingInfo buildingInfo = sanctuaryPackage.GetBuildingInfo(info.Id); BuildingFunc func = sanctuaryPackage.GetBuildingFuncByConfigID(buildingInfo.configID); if (func == BuildingFunc.Defence) //Gate { if (info.Blood <= 0) { resStr = string.Format("[960000]僵尸攻破了大门,开始疯狂破坏![-]"); } else { resStr = string.Format("[960000]僵尸开始攻击大门![-]"); } } else //Turret { BUILDING config = sanctuaryPackage.GetBuildingConfigDataByConfigID(buildingInfo.configID); resStr = string.Format("{0}击杀了{1}只僵尸", config.BldgName, info.Num); } }
void ProcessSingleInfo(InvadeResultInfo info, out string resStr) { if (info.Type == 1) //player { ProcessPlayerInfo(info, out resStr); } else //building { ProcessBuildingInfo(info, out resStr); } }
void ProcessPlayerInfo(InvadeResultInfo info, out string resStr) { NUserInfo userInfo = userPackage.GetUserInfo(info.Id); if (info.Blood <= 20) { resStr = string.Format("[960000]玩家{0}被僵尸重创,无法继续战斗![-]", userInfo.name); } else { resStr = string.Format("玩家{0}击杀了{1}只僵尸", userInfo.name, info.Num); } UpdatePlayerView(info.Id, info.Blood); }
IEnumerator PlayInvadeAnimation(FightingInfo result) { //init player view for (int i = 0; i < result.UserInfosCount; i++) { UserInfo userInfo = result.GetUserInfos(i); PlayerIndexMap.Add(userInfo.Uid, i); SetPlayerView(ref playerViewList[i], userInfo); } for (int i = result.UserInfosCount; i < 4; i++) { DisablePlayerView(ref playerViewList[i]); } //play animation string resStr = null; resStr = "战斗开始"; AddText(ref resStr, false); for (int i = 3; i > 0; i--) { resStr = ""; int count = i; while (count-- > 0) { resStr += "."; } AddText(ref resStr, false); yield return(new WaitForSeconds(1.0f)); } resStr = ""; AddText(ref resStr); for (int i = 0; i < result.InvadeResultInfosCount; i++) { InvadeResultInfo info = result.GetInvadeResultInfos(i); ProcessSingleInfo(info, out resStr); AddText(ref resStr); yield return(new WaitForSeconds(1.0f)); } ShowResult(result.LossInfo, out resStr); AddText(ref resStr); }