forked from YumeMichi/elichika
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmember_love_panel_cell.go
52 lines (43 loc) · 1.62 KB
/
member_love_panel_cell.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package gamedata
import (
"elichika/client"
"elichika/utils"
"fmt"
"xorm.io/xorm"
)
type MemberLovePanelCell struct {
// from m_member_love_panel_cell
Id int32 `xorm:"pk 'id'"`
PanelIndex int32 `xorm:"'panel_index'"`
MemberLovePanelMasterId *int32 `xorm:"'member_love_panel_master_id'"`
MemberLovePanel *MemberLovePanel `xorm:"-"`
BonusType int32 `xorm:"bonus_type" enum:"MemberLovePanelEffectType"`
BonusValue int32 `xorm:"bonus_value"`
// from m_member_love_panel_cell_source_content
Resources []client.Content `xorm:"-"`
}
func (cell *MemberLovePanelCell) populate(gamedata *Gamedata) {
cell.MemberLovePanel = gamedata.MemberLovePanel[*cell.MemberLovePanelMasterId]
cell.MemberLovePanelMasterId = &cell.MemberLovePanel.Id
var err error
gamedata.MasterdataDb.Do(func(session *xorm.Session) {
err = session.Table("m_member_love_panel_cell_source_content").Where("member_love_panel_cell_master_id = ?", cell.Id).Find(&cell.Resources)
})
utils.CheckErr(err)
}
func loadMemberLovePanelCell(gamedata *Gamedata) {
fmt.Println("Loading MemberLovePanelCell")
gamedata.MemberLovePanelCell = make(map[int32]*MemberLovePanelCell)
var err error
gamedata.MasterdataDb.Do(func(session *xorm.Session) {
err = session.Table("m_member_love_panel_cell").Find(&gamedata.MemberLovePanelCell)
})
utils.CheckErr(err)
for _, cell := range gamedata.MemberLovePanelCell {
cell.populate(gamedata)
}
}
func init() {
addLoadFunc(loadMemberLovePanelCell)
addPrequisite(loadMemberLovePanelCell, loadMemberLovePanel)
}