update package

This commit is contained in:
wh_zcy 2022-08-15 18:17:51 +08:00
parent eefc249ba3
commit 0e5dab20cf
43 changed files with 212 additions and 94 deletions

View File

@ -1,5 +1,7 @@
package model
import "github.com/sirupsen/logrus"
type ItemModel struct {
Id string
Label string
@ -16,7 +18,8 @@ func NewItemModelList() *ItemModelList {
}
func (s *ItemModelList) AsInterfaceArray() []interface{} {
rs := make([]interface{}, len(s.DataList), len(s.DataList))
logrus.Debug(len(s.DataList))
rs := make([]interface{}, len(s.DataList))
for i := range s.DataList {
rs[i] = s.DataList[i]
}

View File

@ -1,92 +0,0 @@
package formview
import (
"fmt"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
"go_dreamfactory/modules/hero"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type HeroListView struct {
ListBaseView
}
func (this *HeroListView) CreateView(t *model.TestCase) fyne.CanvasObject {
// init required
this.initItemList()
// create friend list view
this.createItemList()
// hero list button
heroListBtn := widget.NewButtonWithIcon("英雄列表", theme.ConfirmIcon(), func() {
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.HeroListReq{}); err != nil {
logrus.Error(err)
}
})
//升星
starBtn := widget.NewButtonWithIcon("升星", theme.ConfirmIcon(), func() {
// if err := service.GetPttService().SendToClient(
// t.MainType,
// t.SubType,
// &pb.HeroStrengthenUpStarReq{
// HeroObjID: heroObjID.Text,
// HeroRace: heroRace,
// Hero: hero,
// }); err != nil {
// logrus.Error(err)
// }
})
//升级
// layout
split := container.NewHSplit(this.dataListWidget, container.NewVBox(heroListBtn, starBtn))
split.Offset = 1
//data listener for
this.dataListener()
return split
}
func (this *HeroListView) dataListener() {
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
OnNotify: func(d interface{}, args ...interface{}) {
data := d.(*pb.UserMessage)
if !(data.MainType == string(comm.ModuleHero) &&
data.SubType == hero.HeroSubTypeList) {
return
}
rsp := &pb.HeroListResp{}
if !comm.ProtoUnmarshal(data, rsp) {
logrus.Error("unmarshal err")
}
this.itemListData = model.NewItemModelList()
for _, v := range rsp.List {
if v.CardType != 3 { //不显示类型是3的
fm := &model.ItemModel{
Id: cast.ToString(v.Id),
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
}
this.itemListData.DataList = append(this.itemListData.DataList, fm)
}
}
this.reloadListData()
},
})
}

View File

@ -4,7 +4,7 @@ import (
"fmt"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/cmd/v2/ui/formview"
formview "go_dreamfactory/cmd/v2/ui/views"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules/friend"

View File

@ -0,0 +1,138 @@
package formview
import (
"fmt"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
"go_dreamfactory/modules/hero"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type HeroListView struct {
ListBaseView
subWindows *SubWindowListView
heroList []*pb.DBHero
}
func (this *HeroListView) CreateView(t *model.TestCase) fyne.CanvasObject {
// init required
this.initItemList()
// create friend list view
l := this.createItemList()
l.OnSelected = func(id widget.ListItemID) {
//创建window
m := this.itemListData.DataList[id]
// if this.subWindows == nil {
this.subWindows = NewSubWindowView(m.Id, m.Label, this.obs)
this.subWindows.initItemList()
this.subWindows.createItemListWithCheck()
this.subWindows.createWindows()
// }
// TODO 升星
starBtn := widget.NewButtonWithIcon("升星", theme.ConfirmIcon(), func() {
if err := service.GetPttService().SendToClient(t.MainType, hero.StrengthenUpStar,
&pb.HeroStrengthenUpStarReq{
HeroObjID: m.Id,
// HeroRace: heroRace,
// Hero: hero,
}); err != nil {
logrus.Error(err)
return
}
})
lvBtn := widget.NewButtonWithIcon("升级", theme.ConfirmIcon(), func() {
var cards []*pb.MapStringInt32
for _, v := range this.subWindows.selItemIds {
cards = append(cards, &pb.MapStringInt32{
Key: v,
Value: 1,
})
}
if err := service.GetPttService().SendToClient(t.MainType, hero.StrengthenUplv,
&pb.HeroStrengthenUplvReq{
HeroObjID: m.Id,
ExpCards: cards,
}); err != nil {
logrus.Error(err)
return
}
})
this.subWindows.itemListData = model.NewItemModelList()
for _, v := range this.heroList {
if v.CardType == 3 { //不显示类型是3的
fm := &model.ItemModel{
Id: cast.ToString(v.Id),
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
}
this.subWindows.itemListData.DataList = append(this.subWindows.itemListData.DataList, fm)
}
}
this.subWindows.reloadListData()
split := container.NewHSplit(this.subWindows.dataListWidget, container.NewVBox(starBtn, lvBtn))
split.Offset = 1
this.subWindows.w.SetContent(split)
this.subWindows.w.Show()
}
// hero list button
heroListBtn := widget.NewButtonWithIcon("英雄列表", theme.ConfirmIcon(), func() {
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.HeroListReq{}); err != nil {
logrus.Error(err)
}
})
// layout
split := container.NewHSplit(this.dataListWidget, container.NewVBox(heroListBtn))
split.Offset = 1
//data listener for
this.dataListener()
return split
}
func (this *HeroListView) dataListener() {
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
OnNotify: func(d interface{}, args ...interface{}) {
data := d.(*pb.UserMessage)
if !(data.MainType == string(comm.ModuleHero) &&
data.SubType == hero.HeroSubTypeList) {
return
}
rsp := &pb.HeroListResp{}
if !comm.ProtoUnmarshal(data, rsp) {
logrus.Error("unmarshal err")
}
this.heroList = rsp.List
this.itemListData = model.NewItemModelList()
for _, v := range rsp.List {
if v.CardType != 3 { //不显示类型是3的
fm := &model.ItemModel{
Id: cast.ToString(v.Id),
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
}
this.itemListData.DataList = append(this.itemListData.DataList, fm)
}
}
this.reloadListData()
},
})
}

View File

@ -0,0 +1,69 @@
package formview
import (
"fmt"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
"go_dreamfactory/modules/hero"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type SubWindowListView struct {
ListBaseView
title string
winId string
obs observer.Observer
w fyne.Window
}
func NewSubWindowView(winId, title string, obs observer.Observer) *SubWindowListView {
return &SubWindowListView{
title: title,
winId: winId,
obs: obs,
}
}
func (this *SubWindowListView) createWindows() fyne.Window {
this.w = fyne.CurrentApp().NewWindow(this.title)
this.w.CenterOnScreen()
this.w.SetFixedSize(true)
this.w.Resize(fyne.Size{Width: 800, Height: 650})
this.dataListener()
return this.w
}
func (this *SubWindowListView) dataListener() {
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
OnNotify: func(d interface{}, args ...interface{}) {
data := d.(*pb.UserMessage)
if !(data.MainType == string(comm.ModuleHero) &&
data.SubType == hero.HeroSubTypeList) {
return
}
rsp := &pb.HeroListResp{}
if !comm.ProtoUnmarshal(data, rsp) {
logrus.Error("unmarshal err")
}
this.itemListData = model.NewItemModelList()
for _, v := range rsp.List {
if v.CardType == 3 { //只显示类型是3的
fm := &model.ItemModel{
Id: cast.ToString(v.Id),
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
}
this.itemListData.DataList = append(this.itemListData.DataList, fm)
}
}
this.reloadListData()
},
})
}