Skip to content

Commit b882465

Browse files
authored
fix: character death entry with lowercased of-creature (#505)
1 parent 53973d0 commit b882465

File tree

3 files changed

+864
-1
lines changed

3 files changed

+864
-1
lines changed

src/TibiaCharactersCharacter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ func TibiaDataParseKiller(data string) (string, bool, bool, string) {
811811
// containsCreaturesWithOf checks if creature is present in special creatures list
812812
func containsCreaturesWithOf(str string) bool {
813813
// trim away "an " and "a "
814-
str = strings.TrimPrefix(strings.TrimPrefix(str, "an "), "a ")
814+
str = strings.ToLower(strings.TrimPrefix(strings.TrimPrefix(str, "an "), "a "))
815815

816816
switch str {
817817
case "acolyte of darkness",

src/TibiaCharactersCharacter_test.go

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4075,6 +4075,96 @@ func TestNumber17(t *testing.T) {
40754075
}
40764076
}
40774077

4078+
func TestNumber18(t *testing.T) {
4079+
file, err := static.TestFiles.Open("testdata/characters/Tirador Azteca.html")
4080+
if err != nil {
4081+
t.Fatalf("file opening error: %s", err)
4082+
}
4083+
defer file.Close()
4084+
4085+
data, err := io.ReadAll(file)
4086+
if err != nil {
4087+
t.Fatalf("File reading error: %s", err)
4088+
}
4089+
4090+
characterJson, err := TibiaCharactersCharacterImpl(string(data), "")
4091+
if err != nil {
4092+
t.Fatal(err)
4093+
}
4094+
4095+
assert := assert.New(t)
4096+
character := characterJson.Character.CharacterInfo
4097+
4098+
assert.Equal("Tirador Azteca", character.Name)
4099+
assert.False(characterJson.Character.DeathsTruncated)
4100+
4101+
// validate death data
4102+
assert.Equal(3, len(characterJson.Character.Deaths))
4103+
deaths := characterJson.Character.Deaths
4104+
4105+
for idx, tc := range []struct {
4106+
Assists []Killers
4107+
Killers []Killers
4108+
Level int
4109+
Reason string
4110+
Time string
4111+
}{
4112+
{
4113+
Assists: []Killers{},
4114+
Killers: []Killers{
4115+
{Name: "retainer of Baeloc", Player: false, Traded: false, Summon: ""},
4116+
},
4117+
Level: 500,
4118+
Reason: "Died at Level 500 by retainer of Baeloc.",
4119+
Time: "2025-09-14T20:29:01Z",
4120+
},
4121+
{
4122+
Assists: []Killers{},
4123+
Killers: []Killers{
4124+
{Name: "terrorsleep", Player: false, Traded: false, Summon: ""},
4125+
},
4126+
Level: 494,
4127+
Reason: "Died at Level 494 by terrorsleep.",
4128+
Time: "2025-09-07T02:39:55Z",
4129+
},
4130+
{
4131+
Assists: []Killers{},
4132+
Killers: []Killers{
4133+
{Name: "headwalker", Player: false, Traded: false, Summon: ""},
4134+
},
4135+
Level: 487,
4136+
Reason: "Died at Level 487 by headwalker.",
4137+
Time: "2025-08-29T19:09:51Z",
4138+
},
4139+
} {
4140+
assert.True(
4141+
reflect.DeepEqual(deaths[idx].Assists, tc.Assists),
4142+
"Wrong assists\nidx: %d\nwant: %#v\n\ngot: %#v",
4143+
idx, tc.Assists, deaths[idx].Assists,
4144+
)
4145+
assert.True(
4146+
reflect.DeepEqual(deaths[idx].Killers, tc.Killers),
4147+
"Wrong killers\nidx: %d\nwant: %#v\n\ngot: %#v",
4148+
idx, tc.Killers, deaths[idx].Killers,
4149+
)
4150+
assert.Equal(
4151+
deaths[idx].Level, tc.Level,
4152+
"Wrong Level\nidx: %d\nwant: %d\n\ngot: %d",
4153+
idx, tc.Level, deaths[idx].Level,
4154+
)
4155+
assert.Equal(
4156+
deaths[idx].Reason, tc.Reason,
4157+
"Wrong Reason\nidx: %d\nwant: %s\n\ngot: %s",
4158+
idx, tc.Reason, deaths[idx].Reason,
4159+
)
4160+
assert.Equal(
4161+
tc.Time, deaths[idx].Time,
4162+
"Wrong Time\nidx: %d\nwant: %s\n\ngot: %s",
4163+
idx, tc.Time, deaths[idx].Time,
4164+
)
4165+
}
4166+
}
4167+
40784168
func BenchmarkNumber1(b *testing.B) {
40794169
file, err := static.TestFiles.Open("testdata/characters/Darkside Rafa.html")
40804170
if err != nil {

0 commit comments

Comments
 (0)