时间线气泡优化
This commit is contained in:
parent
de6aa4db37
commit
18d6797e56
@ -758,6 +758,7 @@ func (p *Player) LoginBackData() {
|
||||
p.PushClientRes(p.PlayMod.mod_list.Item.BackData())
|
||||
p.PushClientRes(p.GetPlayerBaseMod().BackAsset())
|
||||
p.PushClientRes(p.PlayMod.mod_list.Kv.BackData())
|
||||
p.PushClientRes(p.PlayMod.mod_list.Friend.BubbleBackData())
|
||||
p.BackDataActivity()
|
||||
BackChampship(p)
|
||||
BackUserInfo(p)
|
||||
@ -900,6 +901,7 @@ func (p *Player) AddLog(Uid int, Type int, Param string, Time int64) {
|
||||
Id: int32(Id),
|
||||
Time: int32(Time),
|
||||
},
|
||||
Bubble: FriendMod.GetBubbble(Id),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
cardCfg "server/conf/card"
|
||||
"server/game/mod/card"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
)
|
||||
|
||||
type FriendMod struct {
|
||||
@ -17,8 +18,15 @@ type FriendMod struct {
|
||||
Card map[string]*card.CardInfo // 收到的申请交换
|
||||
Log []*LogInfo // 日志
|
||||
AutoId int
|
||||
Id int64 // 已同步msg ID
|
||||
Npc []int // npc id
|
||||
Id int64 // 已同步msg ID
|
||||
Npc []int // npc id
|
||||
Bubble map[int]*BubbleInfo // 气泡
|
||||
}
|
||||
|
||||
type BubbleInfo struct {
|
||||
Id int // 气泡ID
|
||||
Time int64 // 气泡时间
|
||||
Type int
|
||||
}
|
||||
|
||||
type FriendInfo struct {
|
||||
@ -113,6 +121,9 @@ func (f *FriendMod) InitData() {
|
||||
if f.NewFriendList == nil {
|
||||
f.NewFriendList = make(map[int]*FriendInfo)
|
||||
}
|
||||
if f.Bubble == nil {
|
||||
f.Bubble = make(map[int]*BubbleInfo)
|
||||
}
|
||||
if len(f.FriendList) > 0 && len(f.NewFriendList) == 0 {
|
||||
for k := range f.FriendList {
|
||||
f.NewFriendList[k] = &FriendInfo{
|
||||
@ -258,12 +269,47 @@ func (f *FriendMod) AddLog(Uid, Type int, Param string) int {
|
||||
Time: GoUtil.Now(),
|
||||
Param: Param,
|
||||
})
|
||||
|
||||
switch Type {
|
||||
case LOG_TYPE_HANDBOOK_UPVOTE:
|
||||
f.AddBubble(f.AutoId, Type)
|
||||
case LOG_TYPE_PLAYROOM_UPVOTE:
|
||||
f.AddBubble(f.AutoId, Type)
|
||||
}
|
||||
if len(f.Log) > 30 {
|
||||
f.Log = f.Log[len(f.Log)-30:]
|
||||
}
|
||||
return f.AutoId
|
||||
}
|
||||
func (f *FriendMod) AddBubble(Id, Type int) {
|
||||
f.Bubble[Id] = &BubbleInfo{
|
||||
Id: Id,
|
||||
Time: GoUtil.Now(),
|
||||
Type: Type,
|
||||
}
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetBubbble(Id int) *msg.FriendBubbleInfo {
|
||||
if v, ok := f.Bubble[Id]; ok {
|
||||
return &msg.FriendBubbleInfo{
|
||||
Id: int32(v.Id),
|
||||
Type: int32(v.Type),
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *FriendMod) BubbleBackData() *msg.ResFriendBubble {
|
||||
rs := make([]*msg.FriendBubbleInfo, 0, len(f.Bubble))
|
||||
for _, v := range f.Bubble {
|
||||
rs = append(rs, &msg.FriendBubbleInfo{
|
||||
Id: int32(v.Id),
|
||||
Type: int32(v.Type),
|
||||
})
|
||||
}
|
||||
return &msg.ResFriendBubble{
|
||||
Bubble: rs,
|
||||
}
|
||||
}
|
||||
|
||||
func (f *FriendMod) ResetGoldCardEx() {
|
||||
for _, v := range f.Card {
|
||||
@ -292,24 +338,11 @@ func (f *FriendMod) Upvote(Id int) ([]*item.Item, int, error) {
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetReward(Id int) ([]*item.Item, error) {
|
||||
if len(f.Log) == 0 {
|
||||
return nil, fmt.Errorf("no log")
|
||||
info, ok := f.Bubble[Id]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("bubble not exist")
|
||||
}
|
||||
info := &LogInfo{}
|
||||
reward := make([]*item.Item, 0)
|
||||
for _, v := range f.Log {
|
||||
if v.Id == Id {
|
||||
info = v
|
||||
break
|
||||
}
|
||||
}
|
||||
if info.Id == 0 {
|
||||
return nil, fmt.Errorf("log not exist")
|
||||
}
|
||||
if info.Reward {
|
||||
return nil, fmt.Errorf("already get reward")
|
||||
}
|
||||
info.Reward = true
|
||||
reward := []*item.Item{}
|
||||
switch info.Type {
|
||||
case LOG_TYPE_HANDBOOK_UPVOTE:
|
||||
reward = append(reward, item.NewItem(item.ITEM_ENERGY_ID, 5))
|
||||
@ -318,6 +351,7 @@ func (f *FriendMod) GetReward(Id int) ([]*item.Item, error) {
|
||||
default:
|
||||
return nil, fmt.Errorf("log type not support")
|
||||
}
|
||||
delete(f.Bubble, Id)
|
||||
return reward, nil
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user