package gatesofolympus import ( "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" "mongo.games.com/game/gamesrv/slotspkg/slots/intf" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" ) type PluginSpecial struct { generic.PluginBase } type Special struct { CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` //消除的次数 一次为一个结果 FreeStatus int `json:"fss,omitempty"` //free状态 FreeSpinNum int64 `json:"fsn,omitempty"` //剩余freespin FreeNumMax int64 `json:"fnm,omitempty"` //总次数 FreeNumTrigger int64 `json:"fnt,omitempty"` //新增freespin ScatterWin int64 `json:"sw"` Pay float64 `json:"Pay,omitempty"` Multi int64 `json:"Multi,omitempty"` MultiStr string `json:"multi_str,omitempty"` MultiStrVal string `json:"multi_str_val,omitempty"` SymbolsAbove []int64 `json:"symbols_above,omitempty"` SymbolsBelow []int64 `json:"symbols_below,omitempty"` } func (p *PluginSpecial) Theme() string { return key.GatesOfOlympus } func (p *PluginSpecial) Customs() []interface{} { return []interface{}{ &Special{}, } } func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special { customSpecial := new(Special) if len(m.CursorCustoms(customSpecial)) == 0 { m.AddCursorFeature(customSpecial).SetLifetime(0) } return m.CursorCustom(customSpecial).(*Special) } func (p *PluginSpecial) AfterSpin(m intf.Master) { //cf := m.CursorFeatures(&CustomEliminate{}) ces := m.CursorCustoms(&CustomEliminate{}) sp := p.getCustomSpecial(m) if len(ces) > 0 { for _, i2 := range ces { ce := i2.(*CustomEliminate) wc := make([]float64, len(ce.WinCoins)) for j := 0; j < len(ce.WinCoins); j++ { wc[j] = ce.WinCoins[j] / 10000 } sp.CustomEliminates = append(sp.CustomEliminates, CustomEliminate{ LinkPositions: ce.LinkPositions, AppendSymbols: ce.AppendSymbols, FormattedSymbols: ce.FormattedSymbols, LinePays: ce.LinePays, WinCoins: wc, MultiStr: ce.MultiStr, }) } } customFortune := getCustomFortune(m) sp.FreeStatus = customFortune.FreeStatus sp.FreeSpinNum = customFortune.FreeSpinNum sp.FreeNumMax = customFortune.FreeNumMax sp.FreeNumTrigger = customFortune.FreeNumTrigger sp.ScatterWin = customFortune.ScatterWin customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) sp.Multi = customMulti.Multi sp.MultiStr = customMulti.MultiStr sp.MultiStrVal = customMulti.MultiStrVal sp.Pay = customPay.Pay sp.SymbolsAbove = m.CursorFormation().GetSymbolsAbove() sp.SymbolsBelow = m.CursorFormation().GetSymbolsBelow() }