diff options
Diffstat (limited to 'internal/game/cmd_task.go')
| -rw-r--r-- | internal/game/cmd_task.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/game/cmd_task.go b/internal/game/cmd_task.go new file mode 100644 index 0000000..2dcf3f4 --- /dev/null +++ b/internal/game/cmd_task.go @@ -0,0 +1,34 @@ +package game + +import ( + "fmt" + + "thehouseoficarus/internal/net" + "thehouseoficarus/internal/player" +) + +func (g *Game) doTask(sess *net.Session) { + p := sess.Player.(*player.Player) + + mobID := getPlayerFlagString(p, "assassin_task_mob") + remaining := getPlayerFlagInt(p, "assassin_task_remaining") + total := getPlayerFlagInt(p, "assassin_task_total") + streak := getPlayerFlagInt(p, "assassin_streak") + rep := getPlayerFlagInt(p, "assassin_reputation") + + if mobID == "" || remaining <= 0 { + if getPlayerFlagInt(p, "assassin_tasks_completed") > 0 { + sess.WriteLine("You have no active task. Talk to The Client for a new assignment.") + } else { + sess.WriteLine("You don't have an Assassin task. Talk to The Client to get one.") + } + } else { + def, err := g.MobStore.LoadDef(mobID) + name := mobID + if err == nil { + name = def.Name + } + sess.WriteLine(fmt.Sprintf("Assassin task: Kill %ss. %d of %d remaining.", name, remaining, total)) + } + sess.WriteLine(fmt.Sprintf("Streak: %d | Reputation: %d", streak, rep)) +} |
