func (s *Source) NewLaunchRecord(turn int, o overpower.LaunchOrderDat, ship overpower.ShipDat) { lr := &LaunchRecord{ GID: s.GID, FID: o.FID(), Turn: turn, Source: o.Source(), Target: o.Target(), OrderSize: o.Size(), } if ship != nil { lr.Size = ship.Size() } s.M.CreateLaunchRecord(lr) }
func (s *Source) NewBattleRecord(ship overpower.ShipDat, fid, turn, initPrimaryFac, initPrPres, initSecondaryFac, initSePres int, result overpower.PlanetDat, betrayals [][2]int, ) { btr := make([]int, 0, len(betrayals)*2) for _, pt := range betrayals { btr = append(btr, pt[0], pt[1]) } br := &BattleRecord{ GID: s.GID, FID: fid, Turn: turn, Loc: result.Loc(), Betrayals: btr, InitPrimaryPresence: initPrPres, InitSecondaryPresence: initSePres, PrimaryPresence: result.PrimaryPresence(), SecondaryPresence: result.SecondaryPresence(), } if ship != nil { br.ShipFaction = sql.NullInt64{Valid: true, Int64: int64(ship.FID())} br.ShipSize = ship.Size() } if initPrimaryFac != 0 { br.InitPrimaryFaction = sql.NullInt64{Valid: true, Int64: int64(initPrimaryFac)} } if initSecondaryFac != 0 { br.InitSecondaryFaction = sql.NullInt64{Valid: true, Int64: int64(initSecondaryFac)} } if resPrFac := result.PrimaryFaction(); resPrFac != 0 { br.PrimaryFaction = sql.NullInt64{Valid: true, Int64: int64(resPrFac)} } if resSeFac := result.SecondaryFaction(); resSeFac != 0 { br.SecondaryFaction = sql.NullInt64{Valid: true, Int64: int64(resSeFac)} } s.M.CreateBattleRecord(br) }
func (s *Source) NewShipView(sh overpower.ShipDat, fid, turn int, loc, dest hexagon.NullCoord, trail hexagon.CoordList) overpower.ShipViewDat { sv := &ShipView{ GID: s.GID, FID: fid, Turn: turn, Loc: loc, Dest: dest, Trail: trail, Controller: sh.FID(), SID: sh.SID(), Size: sh.Size(), } s.M.CreateShipView(sv) return sv.Intf() }