零件消耗优化

This commit is contained in:
hahwu 2025-09-03 17:51:36 +08:00
parent 2d3c42bcb5
commit 2b601c6d52
3 changed files with 30 additions and 0 deletions

View File

@ -596,6 +596,20 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
case item.ITEM_TYPE_CHESS: // 棋子
ChessMod := p.PlayMod.getChessMod()
if v.Num < 0 {
err := ChessMod.LosePart(v.Id, -v.Num)
if err != nil {
return err
}
p.TeLog("chess_part_consume", map[string]interface{}{
"chess_id": v.Id,
"chess_name": mergeDataCfg.GetNameById(v.Id),
"consume_num": -v.Num,
"remain_num": ChessMod.PartBag.List[v.Id].Num,
"consume_from": Label,
})
continue
}
for i := 0; i < v.Num; i++ {
ChessMod.AddChessBuff(v.Id)
}

View File

@ -241,6 +241,11 @@ func UnitDecoratePartCost(p *Player) error {
DecorateMod.PartClassPool = []int{}
DecorateMod.PartPool = make(map[int]int)
DecorateMod.InitData()
Items, _ := DecorateMod.GetDecorateCostItem(1, 41)
err := p.HandleLoseItem(Items, "")
if err != nil {
fmt.Print(err)
}
return nil
}
@ -252,5 +257,6 @@ func UnitOrderTrigger(p *Player) error {
Emit := ChessMod.GetEmitList()
EnergyMul := BaseMod.GetEnergyMul()
OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul)
return nil
}

View File

@ -357,6 +357,16 @@ func (cb *ChessBorad) GetChessFromBuff(Chess int) error {
return errors.New("chess id not exist")
}
func (cb *ChessBorad) LosePart(PartId int, Num int) error {
v, ok := cb.PartBag.List[PartId]
if !ok || v.Num < Num {
return errors.New("part id not exist or num not enough")
}
v.Num -= Num
cb.PartBag.List[PartId] = v
return nil
}
// 返回数据
func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo {
var ChessBagGrids []*msg.ChessBagGrid