aboutsummaryrefslogtreecommitdiff
path: root/internal/game/cmd_task.go
blob: 2dcf3f4e1b5e384b6986ec99e3d490f9523a0989 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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))
}