cmd: create ship type

This commit is contained in:
Ilia Denisov
2025-09-30 23:40:50 +03:00
parent c6ccc2df9f
commit 6f29288096
8 changed files with 280 additions and 10 deletions
+34 -5
View File
@@ -9,12 +9,23 @@ const (
ErrStorageFailure int = 1000
ErrGameStateInvalid int = 2000
ErrInputUnknownHostRace int = 3000
ErrInputUnknownOpponentRace int = 3001
)
func errorText(code int) string {
const (
ErrInputUnknownHostRace int = 3000 + iota
ErrInputUnknownOpponentRace
ErrInputEntityTypeNameInvalid
ErrInputEntityTypeNameExists
ErrInputShipTypeDriveValue
ErrInputShipTypeWeaponsValue
ErrInputShipTypeShieldsValue
ErrInputShipTypeCargoValue
ErrInputShipTypeArmamentValue
ErrInputShipTypeWeaponsAndArmamentValue
ErrInputShipTypeZeroValues
)
func GenericErrorText(code int) string {
switch code {
case ErrDummy:
return "Dummy"
@@ -26,6 +37,24 @@ func errorText(code int) string {
return "Host race name is unknown to this game"
case ErrInputUnknownOpponentRace:
return "Opponent race name is unknown to this game"
case ErrInputEntityTypeNameInvalid:
return "Name has invalid length or symbols"
case ErrInputEntityTypeNameExists:
return "Name already exists"
case ErrInputShipTypeDriveValue:
return "Invalid Drive value"
case ErrInputShipTypeWeaponsValue:
return "Invalid Weapons value"
case ErrInputShipTypeShieldsValue:
return "Invalid Shields value"
case ErrInputShipTypeCargoValue:
return "Invalid Cargo value"
case ErrInputShipTypeArmamentValue:
return "Invalid Armament value"
case ErrInputShipTypeWeaponsAndArmamentValue:
return "Invalid Armament or Weapons value"
case ErrInputShipTypeZeroValues:
return "Ship type values cannot be all zeros"
default:
return fmt.Sprintf("Undescribed error with code %d", code)
}
@@ -38,7 +67,7 @@ type GenericError struct {
}
func (ge GenericError) Error() string {
msg := errorText(ge.code)
msg := GenericErrorText(ge.code)
if ge.subject != "" {
msg += ": " + ge.subject
}