forked from endernon/PGRData
634 lines
18 KiB
Lua
634 lines
18 KiB
Lua
|
local XMentorDataEntity = XClass(nil, "XMentorDataEntity")
|
|||
|
|
|||
|
function XMentorDataEntity:Ctor()
|
|||
|
self.PlayerType = XMentorSystemConfigs.IdentityType.None --玩家类型0无,1老师,2学生
|
|||
|
self:InitManifesto()
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:InitManifesto()
|
|||
|
self.Teacher = {}--师傅信息
|
|||
|
self.Students = {}--徒弟信息
|
|||
|
self.ApplyList = {}--申请信息
|
|||
|
self.Tag = {}--个性标签
|
|||
|
self.OnlineTag = {}--在线时段标签
|
|||
|
self.Announcement = ""--宣言
|
|||
|
self.GraduateStudentCount = 0--自己是师父时毕业徒弟数量
|
|||
|
self.StageReward = {}--已领取的出师阶段奖励
|
|||
|
self.WeeklyTaskReward = {}--徒弟每周进度奖励
|
|||
|
self.DailyChangeTaskCount = 0--师傅今天更换了几个任务
|
|||
|
self.WeeklyTaskCompleteCount = 0--徒弟本周已完成几个每周任务
|
|||
|
self.WeeklyLevel = 0
|
|||
|
self.MonthlyStudentCount = 0--本月收徒数量
|
|||
|
self.Message = {MessageText = "", PublishTime = 0}
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:UpdateData(Data)
|
|||
|
for key, value in pairs(Data) do
|
|||
|
self[key] = value
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetIdentity()
|
|||
|
return self.PlayerType
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherData()
|
|||
|
return self.Teacher
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTag()
|
|||
|
return self.Tag
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetOnlineTag()
|
|||
|
return self.OnlineTag
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetAnnouncement()
|
|||
|
return self.Announcement
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetGraduateStudentCount()
|
|||
|
return self.GraduateStudentCount
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetWeeklyTaskCompleteCount()
|
|||
|
return self.WeeklyTaskCompleteCount
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStageReward()
|
|||
|
return self.StageReward
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetWeeklyTaskReward()
|
|||
|
return self.WeeklyTaskReward
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetDailyChangeTaskCount()
|
|||
|
return self.DailyChangeTaskCount
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetWeeklyLevel()
|
|||
|
return self.WeeklyLevel
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetMonthlyStudentCount()
|
|||
|
return self.MonthlyStudentCount
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetMessageData()
|
|||
|
return self.Message
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetWeeklyActivation()
|
|||
|
return self.WeeklyActivation
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherGift()
|
|||
|
local itemId = XMentorSystemConfigs.GetMentorSystemData("ActivationItemId")
|
|||
|
local count = XDataCenter.ItemManager.GetCount(itemId)
|
|||
|
return {Id = itemId,Count = count}
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:PlusDailyChangeTaskCount()
|
|||
|
self.DailyChangeTaskCount = self.DailyChangeTaskCount +1
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:AddWeeklyTaskReward(count)
|
|||
|
table.insert(self.WeeklyTaskReward,count)
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:AddStageReward(count)
|
|||
|
table.insert(self.StageReward,count)
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:WeekReset()
|
|||
|
self.WeeklyTaskCompleteCount = 0
|
|||
|
self.WeeklyTaskReward = {}
|
|||
|
for _,student in pairs(self.Students or {}) do
|
|||
|
student.WeeklyTask = {}
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:DayReset()
|
|||
|
self.DailyChangeTaskCount = 0
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetLeftStudentCount()
|
|||
|
local maxStudentCount = XMentorSystemConfigs.GetMentorSystemData("MaxStudentCount")
|
|||
|
return maxStudentCount - self:GetStudentCount()
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentDataList()
|
|||
|
table.sort(self.Students, function(a, b)
|
|||
|
if a.PlayerId == XPlayer.Id or b.PlayerId == XPlayer.Id then
|
|||
|
return a.PlayerId == XPlayer.Id
|
|||
|
else
|
|||
|
if a.IsGraduate ~= b.IsGraduate then
|
|||
|
return a.IsGraduate
|
|||
|
else
|
|||
|
if a.Level ~= b.Level then
|
|||
|
return a.Level > b.Level
|
|||
|
else
|
|||
|
return a.PlayerId > b.PlayerId
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
end)
|
|||
|
return self.Students
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetNotGraduateStudentDataList()
|
|||
|
local list = {}
|
|||
|
for _,student in pairs(self.Students or {}) do
|
|||
|
if not student.IsGraduate then
|
|||
|
table.insert(list, student)
|
|||
|
end
|
|||
|
end
|
|||
|
table.sort(list, function(a, b)
|
|||
|
if a.PlayerId == XPlayer.Id or b.PlayerId == XPlayer.Id then
|
|||
|
return a.PlayerId == XPlayer.Id
|
|||
|
else
|
|||
|
if a.Level ~= b.Level then
|
|||
|
return a.Level > b.Level
|
|||
|
else
|
|||
|
return a.PlayerId > b.PlayerId
|
|||
|
end
|
|||
|
end
|
|||
|
end)
|
|||
|
return list
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckStudentSystemTaskIsEnmtyByIndex(index)
|
|||
|
local student = self:GetNotGraduateStudentDataByIndex(index)
|
|||
|
if student and student.SystemTask and next(student.SystemTask) then
|
|||
|
return true
|
|||
|
else
|
|||
|
return false
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckStudentCanSendGiftByIndex(index)
|
|||
|
local student = self:GetNotGraduateStudentDataByIndex(index)
|
|||
|
if student and student.SendGiftCount == 0 then
|
|||
|
return true
|
|||
|
else
|
|||
|
return false
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentDataByIndex(index)
|
|||
|
return self:GetStudentDataList()[index]
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetNotGraduateStudentDataByIndex(index)
|
|||
|
return self:GetNotGraduateStudentDataList()[index]
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentCount()
|
|||
|
local count = 0
|
|||
|
for _,student in pairs(self.Students or {}) do
|
|||
|
if not student.IsGraduate then
|
|||
|
count = count + 1
|
|||
|
end
|
|||
|
end
|
|||
|
return count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentSystemTaskCountByIndex(index)--本日接受的任务
|
|||
|
local studentData = self:GetNotGraduateStudentDataByIndex(index)
|
|||
|
local count = 0
|
|||
|
if studentData then
|
|||
|
local taskList = studentData.SystemTask
|
|||
|
for _,task in pairs(taskList or {})do
|
|||
|
if task.Status > XMentorSystemConfigs.TaskStatus.Init then
|
|||
|
count = count + 1
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
return count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentWeeklyTaskCountByIndex(index)--本周接受的任务
|
|||
|
local studentData = self:GetNotGraduateStudentDataByIndex(index)
|
|||
|
local count = 0
|
|||
|
if studentData then
|
|||
|
count = #studentData.WeeklyTask
|
|||
|
end
|
|||
|
return count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentWeeklyTaskCompleteCountByIndex(index)--本周的任务完成数
|
|||
|
local studentData = self:GetNotGraduateStudentDataByIndex(index)
|
|||
|
local count = 0
|
|||
|
if studentData then
|
|||
|
local taskList = studentData.WeeklyTask
|
|||
|
for _,task in pairs(taskList or {})do
|
|||
|
if task.Status ~= XMentorSystemConfigs.TaskStatus.Init and
|
|||
|
task.Status ~= XMentorSystemConfigs.TaskStatus.Received then
|
|||
|
count = count + 1
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
return count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherStageRewardList()
|
|||
|
local stageRewards = XMentorSystemConfigs.GetMasterStageRewards()
|
|||
|
local list = {}
|
|||
|
for _,reward in pairs(stageRewards or {}) do
|
|||
|
table.insert(list,reward)
|
|||
|
end
|
|||
|
table.sort(list, function(a, b)
|
|||
|
return a.Count < b.Count
|
|||
|
end)
|
|||
|
return list
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetLastTeacherStageRewardCount()
|
|||
|
local list = self:GetTeacherStageRewardList()
|
|||
|
return list[#list].Count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherStageRewardNum()
|
|||
|
local list = self:GetTeacherStageRewardList()
|
|||
|
return #list
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherStageRewardTotalPercent()
|
|||
|
local maxCount = self:GetLastTeacherStageRewardCount()
|
|||
|
local percent = self.GraduateStudentCount / maxCount
|
|||
|
return percent <= 1 and percent or 1
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherStageRewardAVGTotalPercent()
|
|||
|
local dataList = self:GetTeacherStageRewardList()
|
|||
|
local curBai = 0
|
|||
|
local curTotal = self:GetLastTeacherStageRewardCount()
|
|||
|
for index,data in pairs(dataList or {}) do
|
|||
|
if self.GraduateStudentCount > data.Count then
|
|||
|
curBai = index
|
|||
|
else
|
|||
|
curTotal = data.Count
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
local percent = (curBai + (self.GraduateStudentCount / curTotal)) / #dataList
|
|||
|
return percent <= 1 and percent or 1
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherStageRewardPercentByCount(count)
|
|||
|
local maxCount = self:GetLastTeacherStageRewardCount()
|
|||
|
local percent = count / maxCount
|
|||
|
return percent <= 1 and percent or 1
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetTeacherStageRewardPercentByIndex(index)
|
|||
|
local maxNum = self:GetTeacherStageRewardNum()
|
|||
|
local percent = maxNum > 0 and index / maxNum or 0
|
|||
|
return percent <= 1 and percent or 1
|
|||
|
end
|
|||
|
|
|||
|
|
|||
|
function XMentorDataEntity:CheckTeacherStageRewardCanGetByCount(count)
|
|||
|
return self.GraduateStudentCount >= count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckTeacherStageRewardGetedByCount(count)
|
|||
|
local IsGeted = false
|
|||
|
for _,tmpCount in pairs(self.StageReward or {}) do
|
|||
|
if tmpCount == count then
|
|||
|
IsGeted = true
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
return IsGeted
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentWeeklyRewardList()
|
|||
|
local weeklyRewards = XMentorSystemConfigs.GetStudentWeeklyRewards()
|
|||
|
local list = {}
|
|||
|
local curLevel = 0
|
|||
|
for _,reward in pairs(weeklyRewards or {}) do
|
|||
|
list[reward.Level] = list[reward.Level] or {}
|
|||
|
table.insert(list[reward.Level],reward)
|
|||
|
end
|
|||
|
for level,group in pairs(list or {}) do
|
|||
|
if self.WeeklyLevel >= level and level > curLevel then
|
|||
|
curLevel = level
|
|||
|
end
|
|||
|
table.sort(group, function(a, b)
|
|||
|
return a.Count < b.Count
|
|||
|
end)
|
|||
|
end
|
|||
|
|
|||
|
return list[curLevel]
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetLastStudentWeeklyRewardCount()
|
|||
|
local list = self:GetStudentWeeklyRewardList()
|
|||
|
return list[#list].Count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentWeeklyRewardTotalPercent()
|
|||
|
local maxCount = self:GetLastStudentWeeklyRewardCount()
|
|||
|
local percent = self.WeeklyTaskCompleteCount / maxCount
|
|||
|
return percent <= 1 and percent or 1
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetStudentWeeklyRewardPercentByCount(count)
|
|||
|
local maxCount = self:GetLastStudentWeeklyRewardCount()
|
|||
|
local percent = count / maxCount
|
|||
|
return percent <= 1 and percent or 1
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckStudentWeeklyRewardCanGetByCount(count)
|
|||
|
return self.WeeklyTaskCompleteCount >= count
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckStudentWeeklyRewardGetedByCount(count)
|
|||
|
local IsGeted = false
|
|||
|
for _,tmpCount in pairs(self.WeeklyTaskReward or {}) do
|
|||
|
if tmpCount == count then
|
|||
|
IsGeted = true
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
return IsGeted
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:AddTeacher(teacher,students,message)
|
|||
|
self.Teacher = teacher
|
|||
|
self.Students = students or {}
|
|||
|
self.Message = message
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:RemoveTeacher()
|
|||
|
self.Teacher = {}
|
|||
|
for index = #self.Students, 1, -1 do
|
|||
|
if self.Students[index].PlayerId ~= XPlayer.Id then
|
|||
|
table.remove(self.Students,index)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:AddStudent(student)
|
|||
|
table.insert(self.Students,student)
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:RemoveStudent(student)
|
|||
|
for index = #self.Students, 1, -1 do
|
|||
|
if self.Students[index].PlayerId == student.PlayerId then
|
|||
|
table.remove(self.Students,index)
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GraduateStudent(student)
|
|||
|
for index,tmpStudent in pairs(self.Students or {}) do
|
|||
|
if tmpStudent.PlayerId == student.PlayerId and not tmpStudent.IsGraduate then
|
|||
|
tmpStudent.IsGraduate = true
|
|||
|
self.GraduateStudentCount = self.GraduateStudentCount + 1
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:UpdateStudentSystemTaskById(systemTask, id)--新学生的系统发布任务
|
|||
|
for index,student in pairs(self.Students or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
student.SystemTask = systemTask
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:UpdateStudentWeeklyTaskById(weeklyTask, id)--更新学生的已接任务
|
|||
|
for index,student in pairs(self.Students or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
student.WeeklyTask = weeklyTask
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:UpdateMemberLevelById(level, id)--更新学生的等级
|
|||
|
if self.Teacher.PlayerId == id then
|
|||
|
self.Teacher.Level = level
|
|||
|
return
|
|||
|
end
|
|||
|
for index,student in pairs(self.Students or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
student.Level = level
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:UpdateStudentSendGiftCount(id)--更新学生送礼数量
|
|||
|
for index,student in pairs(self.Students or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
student.SendGiftCount = 1
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:UpdateMemberOnLineState(IsOnLine, lastLoginTime, id)--更新学生的在线状况
|
|||
|
if self.Teacher.PlayerId == id then
|
|||
|
self.Teacher.IsOnline = IsOnLine
|
|||
|
self.Teacher.LastLoginTime = lastLoginTime
|
|||
|
return
|
|||
|
end
|
|||
|
for index,student in pairs(self.Students or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
student.IsOnline = IsOnLine
|
|||
|
student.LastLoginTime = lastLoginTime
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetApplyList()
|
|||
|
return self.ApplyList
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetApplyIdList()
|
|||
|
local idList = {}
|
|||
|
for _,tmp in pairs(self.ApplyList or {}) do
|
|||
|
if not XDataCenter.SocialManager.GetBlackData(tmp.ApplyId) then
|
|||
|
table.insert(idList, tmp.ApplyId)
|
|||
|
end
|
|||
|
end
|
|||
|
return idList
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:AddApplyId(apply)
|
|||
|
local IsNotIn = true
|
|||
|
for _,tmp in pairs(self.ApplyList or {}) do
|
|||
|
if tmp.ApplyId == apply.ApplyId then
|
|||
|
IsNotIn = false
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
if IsNotIn then
|
|||
|
table.insert(self.ApplyList,apply)
|
|||
|
end
|
|||
|
return IsNotIn
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:RemoveApplyId(applyId)
|
|||
|
for index = #self.ApplyList, 1, -1 do
|
|||
|
if self.ApplyList[index].ApplyId == applyId then
|
|||
|
table.remove(self.ApplyList,index)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:ClearApplyIdList()
|
|||
|
self.ApplyList = {}
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsTeacher()
|
|||
|
return self.PlayerType == XMentorSystemConfigs.IdentityType.Teacher
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsStudent()
|
|||
|
return self.PlayerType == XMentorSystemConfigs.IdentityType.Student
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsMyMentorShip(id)
|
|||
|
local IsMy = false
|
|||
|
local studentList = self:GetNotGraduateStudentDataList()
|
|||
|
for _,student in pairs(studentList or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
IsMy = true
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
IsMy = IsMy or (self.Teacher and self.Teacher.PlayerId == id)
|
|||
|
return IsMy
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:GetMenberLastLoginTimeById(id)
|
|||
|
local lastLoginTime = 0
|
|||
|
local IsMy = false
|
|||
|
local studentList = self:GetNotGraduateStudentDataList()
|
|||
|
for _,student in pairs(studentList or {}) do
|
|||
|
if student.PlayerId == id then
|
|||
|
lastLoginTime = student.LastLoginTime
|
|||
|
IsMy = true
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
if lastLoginTime == 0 and (self.Teacher and self.Teacher.PlayerId == id) then
|
|||
|
lastLoginTime = self.Teacher.LastLoginTime
|
|||
|
IsMy = true
|
|||
|
end
|
|||
|
|
|||
|
if not IsMy then
|
|||
|
XLog.Error("This Player Is Not Own MentorShip")
|
|||
|
end
|
|||
|
|
|||
|
return lastLoginTime
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsHasApply()
|
|||
|
local applyIdList = self:GetApplyIdList()
|
|||
|
if not XTool.IsTableEmpty(applyIdList) then
|
|||
|
return true
|
|||
|
else
|
|||
|
return false
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsHasTeacher()
|
|||
|
if next(self.Teacher) and self.Teacher.PlayerId and self.Teacher.PlayerId > 0 then
|
|||
|
return true
|
|||
|
else
|
|||
|
return false
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsHasStudent()
|
|||
|
if self:GetStudentCount() > 0 then
|
|||
|
return true
|
|||
|
else
|
|||
|
return false
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsStudentFull()
|
|||
|
local maxStudentCount = XMentorSystemConfigs.GetMentorSystemData("MaxStudentCount")
|
|||
|
if self:GetStudentCount() >= maxStudentCount then
|
|||
|
return true
|
|||
|
else
|
|||
|
return false
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:IsCanDoApply(IsShowHint)
|
|||
|
if self.PlayerType == XMentorSystemConfigs.IdentityType.Teacher then
|
|||
|
if self:IsStudentFull() then
|
|||
|
if IsShowHint then
|
|||
|
XUiManager.TipText("MentorStudentFullText")
|
|||
|
end
|
|||
|
return false
|
|||
|
end
|
|||
|
elseif self.PlayerType == XMentorSystemConfigs.IdentityType.Student then
|
|||
|
if self:IsHasTeacher() then
|
|||
|
if IsShowHint then
|
|||
|
XUiManager.TipText("MentorTeacherFullText")
|
|||
|
end
|
|||
|
return false
|
|||
|
end
|
|||
|
local graduateLv = XMentorSystemConfigs.GetMentorSystemData("GraduateLv")
|
|||
|
if XPlayer.Level >= graduateLv then
|
|||
|
if IsShowHint then
|
|||
|
XUiManager.TipText("MentorStudentCandApplyOfGraduationedText")
|
|||
|
end
|
|||
|
return false
|
|||
|
end
|
|||
|
elseif self.PlayerType == XMentorSystemConfigs.IdentityType.None then
|
|||
|
return false
|
|||
|
end
|
|||
|
return true
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckIdentity(IsShowHint)--检查玩家是否拥有身份
|
|||
|
if self.PlayerType == XMentorSystemConfigs.IdentityType.None then
|
|||
|
local beStudentLv = XMentorSystemConfigs.GetMentorSystemData("BeStudentLv")
|
|||
|
if IsShowHint then
|
|||
|
XUiManager.TipText("MentorSystemPreStudentHint",beStudentLv)
|
|||
|
end
|
|||
|
return false
|
|||
|
end
|
|||
|
return true
|
|||
|
end
|
|||
|
|
|||
|
function XMentorDataEntity:CheckCanUseChat(IsShowHint)--检查玩家是否能使用聊天
|
|||
|
if self.PlayerType == XMentorSystemConfigs.IdentityType.Teacher then
|
|||
|
if not self:IsHasStudent() then
|
|||
|
if IsShowHint then
|
|||
|
XUiManager.TipText("MentorSystemNoStudentHint")
|
|||
|
end
|
|||
|
return false
|
|||
|
end
|
|||
|
elseif self.PlayerType == XMentorSystemConfigs.IdentityType.Student then
|
|||
|
if not self:IsHasTeacher() then
|
|||
|
if IsShowHint then
|
|||
|
XUiManager.TipText("MentorSystemNoMentorHint")
|
|||
|
end
|
|||
|
return false
|
|||
|
end
|
|||
|
elseif self.PlayerType == XMentorSystemConfigs.IdentityType.None then
|
|||
|
return false
|
|||
|
end
|
|||
|
return true
|
|||
|
end
|
|||
|
|
|||
|
return XMentorDataEntity
|