GmAction.go 1.43 KB
package action

import (
	"github.com/golang/protobuf/proto"
	"pro2d/common/db/mongoproxy"
	"pro2d/common/logger"
	"pro2d/models"
	"pro2d/pb"
	"strconv"
)

type GmAction struct {
}

func (gm *GmAction) AddExp(role *models.RoleModel, params ...interface{}) {
	logger.Debug(params)
	expIncrease, _ := strconv.Atoi(params[0].(string))
	exp := role.IncrProperty("exp", int64(expIncrease))
	role.UpdateProperty("exp", exp, true)
}

func (gm *GmAction) AddEquip(role *models.RoleModel, params ...interface{}) {
	logger.Debug(params)
	//TODO 验证装备是否存在

	equip := &pb.Equipment{
		Id:      role.IncreEquipByKey(1),
		RoleId:  role.Role.Id,
		Type:    params[0].(string),
		Quality: 1,
	}
	role.AddEquip(equip)
}

func (gm *GmAction) DelEquip(role *models.RoleModel, params ...interface{}) {
	logger.Debug(params)
	id := params[0].(string)
	if err := mongoproxy.DelOne("equip", "id", id); err != nil {
		logger.Error(err.Error())
		return
	}
	delete(role.Equipments, id)
	update := &pb.EquipmentDelRsp{Id: id}
	if rsp, err := proto.Marshal(update); err != nil {
		logger.Error(" err:", err.Error())
		return
	} else {
		if role.GetConn() != nil {
			role.GetConn().SendSuccess(uint32(pb.ProtoCode_EquipmentDelRsp), rsp)
		}
	}
}

func (gm *GmAction) DelItem(role *models.RoleModel, params ...interface{}) {
	logger.Debug(params)
	id := params[0].(string)
	count := params[1].(int32)

	if !role.CostItem(id, count) {
		logger.Error("item cost error: ", id)
	}
}