package controller import ( "blazing/common/socket/errorcode" "blazing/modules/player/model" "blazing/logic/service/common" "blazing/logic/service/fight" "blazing/logic/service/fight/info" "blazing/logic/service/player" ) //大乱斗 func (h Controller) PetMelee(data *fight.StartPetWarInboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) { c.Fightinfo.Mode = info.BattleMode.PET_MELEE c.Fightinfo.Status = info.BattleMode.PET_MELEE err = c.JoinFight(func(p common.PlayerI) bool { _, err = fight.NewFight(p, c, func(foi model.FightOverInfo) { if foi.Reason == 0 { //我放获胜 if foi.WinnerId == c.GetInfo().UserID { c.Info.MessWin += 1 c.MessWin(true) p.MessWin(false) } else { p.GetInfo().MessWin += 1 p.MessWin(true) c.MessWin(false) } } if foi.Reason == model.BattleOverReason.PlayerOffline { if foi.WinnerId == c.GetInfo().UserID { p.MessWin(false) } else { c.MessWin(false) } } }) ///开始对战,房主方以及被邀请方 return err <= 0 }) return } func (h Controller) PetKing(data *fight.PetKingJoinInboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) { c.Fightinfo.Status = info.BattleMode.PET_TOPLEVEL var ElementTypeNumbers = []int{1, 2, 3, 5, 11, 4, 6, 7, 9} switch data.Type { case 5: c.Fightinfo.Mode = info.BattleMode.SINGLE_MODE case 6: c.Fightinfo.Mode = info.BattleMode.MULTI_MODE case 11: //草","水","火","电","战斗","飞行","机械","地面","冰" // 按顺序:草、水、火、电、战斗、飞行、机械、地面、冰 //println("11", c.GetPetInfo()[0].Type(), ElementTypeNumbers[data.FightType-1]) if c.GetPetInfo()[0].Type() != int(ElementTypeNumbers[data.FightType-1]) { return nil, errorcode.ErrorCode(errorcode.ErrorCodes.ErrVictoryConditionNotMet) } c.Fightinfo.Mode = info.BattleMode.SINGLE_MODE c.Fightinfo.FightType = data.FightType } err = c.JoinFight(func(p common.PlayerI) bool { _, err = fight.NewFight(p, c, func(foi model.FightOverInfo) { if foi.Reason == 0 { //我放获胜 switch data.Type { case 11: if foi.WinnerId == c.GetInfo().UserID { c.ItemAdd(80000000+int64(ElementTypeNumbers[data.FightType-1]), 1) } else { p.ItemAdd(80000000+int64(ElementTypeNumbers[data.FightType-1]), 1) } default: if foi.WinnerId == c.GetInfo().UserID { c.Info.MonKingWin += 1 } else { p.GetInfo().MonKingWin += 1 } } } }) ///开始对战,房主方以及被邀请方 return err <= 0 }) return }