39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package lvlobj
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/inkyblackness/hacked/ss1/content/interpreters"
|
|
)
|
|
|
|
var baseDoor = interpreters.New().
|
|
With("LockVariableIndex", 0, 2).As(interpreters.SpecialValue("LockVariable")).
|
|
With("LockMessageIndex", 2, 1).As(interpreters.FormattedRangedValue(0, 255,
|
|
func(value int) (result string) {
|
|
return fmt.Sprintf("%d", value+7)
|
|
})).
|
|
With("ForceDoorColor", 3, 1).As(interpreters.FormattedRangedValue(0, 255,
|
|
func(value int) (result string) {
|
|
return forceColors[value]
|
|
})).
|
|
With("RequiredAccessLevel", 4, 1).As(interpreters.FormattedRangedValue(0, 255,
|
|
func(value int) (result string) {
|
|
if value == 255 {
|
|
result = "SHODAN"
|
|
} else if accessLevel, known := accessLevelMasks[1<<uint32(value)]; known {
|
|
result = accessLevel
|
|
} else {
|
|
result = "Unknown"
|
|
}
|
|
return
|
|
})).
|
|
With("AutoCloseTime", 5, 1).As(interpreters.FormattedRangedValue(0, 255,
|
|
func(value int) string {
|
|
return fmt.Sprintf("%.2f sec", float64(value)*0.5)
|
|
})).
|
|
With("OtherObjectID", 6, 2).As(interpreters.ObjectID())
|
|
|
|
func initDoors() interpreterRetriever {
|
|
return newInterpreterLeaf(baseDoor)
|
|
}
|