diff options
Diffstat (limited to 'internal/game')
| -rw-r--r-- | internal/game/act_steal.go | 23 | ||||
| -rw-r--r-- | internal/game/cmd_verbs.go | 4 |
2 files changed, 13 insertions, 14 deletions
diff --git a/internal/game/act_steal.go b/internal/game/act_steal.go index 0aae6d1..d081d8b 100644 --- a/internal/game/act_steal.go +++ b/internal/game/act_steal.go @@ -93,7 +93,7 @@ func (g *Game) resolveStealTarget(sess *net.Session, p *player.Player, input str roomMobs := g.MobStore.MobsInRoom(p.RoomID) var stealMobs []*world.MobInstance for _, m := range roomMobs { - if m.StealTable != "" { + if len(m.StealDrops) > 0 { stealMobs = append(stealMobs, m) } } @@ -102,7 +102,7 @@ func (g *Game) resolveStealTarget(sess *net.Session, p *player.Player, input str var stealObjs []*object.ObjectDef for _, st := range roomObjs { def, err := g.ObjectStore.Load(st.DefID) - if err != nil || def.Steal == nil || def.Steal.Table == "" { + if err != nil || def.Steal == nil || len(def.Steal.Drops) == 0 { continue } stealObjs = append(stealObjs, def) @@ -183,7 +183,7 @@ func (g *Game) resolveStealTarget(sess *net.Session, p *player.Player, input str } func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string, mob *world.MobInstance, objDef *object.ObjectDef) { - var stealTable string + var stealDrops []behavior.DropEntry var stealLevel int var stealXP int var stealSpeed float64 @@ -195,7 +195,7 @@ func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string guardWatching := false if targetType == "mob" { - stealTable = mob.StealTable + stealDrops = mob.StealDrops stealLevel = mob.StealLevel stealXP = mob.StealXP stealSpeed = mob.StealSpeed @@ -207,7 +207,7 @@ func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string sess.WriteLine("They don't seem interested in you.") return } - if stealTable == "" { + if len(stealDrops) == 0 { sess.WriteLine(fmt.Sprintf("You can't steal from the %s.", targetName)) return } @@ -224,7 +224,7 @@ func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string return } } else { - stealTable = objDef.Steal.Table + stealDrops = objDef.Steal.Drops stealLevel = objDef.Steal.Level stealXP = objDef.Steal.XP stealSpeed = objDef.Steal.Speed @@ -233,7 +233,7 @@ func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string objDefID = objDef.ID guardMob = objDef.Steal.GuardMob - if stealTable == "" { + if len(stealDrops) == 0 { sess.WriteLine(fmt.Sprintf("You can't steal from the %s.", targetName)) return } @@ -270,7 +270,7 @@ func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string WaitLeft: engine.ToTicks(stealSpeed), Data: &behavior.StealData{ TargetType: targetType, - StealTable: stealTable, + StealDrops: stealDrops, StealLevel: stealLevel, StealXP: stealXP, StealSpeed: stealSpeed, @@ -286,7 +286,7 @@ func (g *Game) startSteal(sess *net.Session, p *player.Player, targetType string func (g *Game) advanceSteal(sess *net.Session, p *player.Player) { d := p.Action.Data.(*behavior.StealData) targetType := d.TargetType - stealTable := d.StealTable + stealDrops := d.StealDrops stealLevel := d.StealLevel stealXP := d.StealXP stealSpeed := d.StealSpeed @@ -362,11 +362,10 @@ func (g *Game) advanceSteal(sess *net.Session, p *player.Player) { } if rand.Float64() < chance { - dt, err := behavior.LoadDropTable(g.DataDir, stealTable) - if err != nil || len(dt.Drops) == 0 { + if len(stealDrops) == 0 { sess.WriteLine("You steal nothing of value.") } else { - drop := behavior.ResolveDrop(g.DataDir, dt.Drops) + drop := behavior.ResolveDrop(g.DataDir, stealDrops) if drop == nil || drop.ItemID == "" { sess.WriteLine("You steal nothing of value.") } else { diff --git a/internal/game/cmd_verbs.go b/internal/game/cmd_verbs.go index b5c69ce..e32910a 100644 --- a/internal/game/cmd_verbs.go +++ b/internal/game/cmd_verbs.go @@ -114,7 +114,7 @@ func (g *Game) executeVerbs(sess *net.Session, args []string, rawInput string) { } } - if def.Steal != nil && def.Steal.Table != "" { + if def.Steal != nil && len(def.Steal.Drops) > 0 { addUnique(§ionObjs, &seen, "steal "+name) } @@ -130,7 +130,7 @@ func (g *Game) executeVerbs(sess *net.Session, args []string, rawInput string) { if m.IsTalkable() { addUnique(§ionMobs, &seen, "talk "+mName) } - if m.StealTable != "" { + if len(m.StealDrops) > 0 { addUnique(§ionMobs, &seen, "steal "+mName) } addUnique(§ionMobs, &seen, "look "+mName) |
