main.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package main
  2. import (
  3. "errors"
  4. "strings"
  5. "time"
  6. door "git.red-green.com/RedGreen/doorgo/door"
  7. )
  8. var (
  9. d door.Door
  10. db *DataBase
  11. )
  12. func Notice(msg string) {
  13. if d.Disconnected {
  14. return
  15. }
  16. d.WriteS(door.SavePos + door.GotoS(0, door.Height-1) + door.Reset + strings.Repeat(" ", door.Width) + door.GotoS(0, door.Height-1) + msg + door.RestorePos)
  17. }
  18. func main() {
  19. d := door.Door{}
  20. d.Init("space_construct")
  21. defer d.Close()
  22. d.WriteS(door.Reset + door.Clrscr)
  23. // This entire thing takes 3/4 of a second (And stops immediately if any key or extended key occurs)
  24. txt := "Space Construct v1.0 Apollo@21:1/236"
  25. d.WriteS(door.SavePos + door.GotoS(door.Width/2-(len(txt)/2), door.Height/2) + door.ColorTextS("BRI WHI ON BLA") + txt + door.RestorePos)
  26. cont_display := true
  27. r, ext, err := d.WaitKey(time.Duration(250) * time.Millisecond)
  28. if err != nil {
  29. if errors.Is(err, door.ErrDisconnected) {
  30. return
  31. }
  32. }
  33. if r != 0 || ext != door.NOP {
  34. cont_display = false
  35. }
  36. if cont_display {
  37. d.WriteS(door.SavePos + door.GotoS(door.Width/2-(len(txt)/2), door.Height/2) + door.ColorTextS("WHI ON BLA") + txt + door.RestorePos)
  38. r, ext, err = d.WaitKey(time.Duration(250) * time.Millisecond)
  39. if err != nil {
  40. if errors.Is(err, door.ErrDisconnected) {
  41. return
  42. }
  43. }
  44. if r != 0 || ext != door.NOP {
  45. cont_display = false
  46. }
  47. if cont_display {
  48. d.WriteS(door.SavePos + door.GotoS(door.Width/2-(len(txt)/2), door.Height/2) + door.ColorTextS("BRI BLA ON BLA") + txt + door.RestorePos)
  49. _, _, err = d.WaitKey(time.Duration(250) * time.Millisecond)
  50. if err != nil {
  51. if errors.Is(err, door.ErrDisconnected) {
  52. return
  53. }
  54. }
  55. }
  56. }
  57. d.WriteS(door.Clrscr)
  58. db, err = OpenDB("data.db3")
  59. if err != nil {
  60. Notice(door.ColorTextS("BRI RED ON BLA") + "Err: " + err.Error())
  61. d.WaitKey(door.Inactivity)
  62. return
  63. }
  64. defer db.Close()
  65. if db.GetShipModelById(1) == nil {
  66. db.SaveShipModel(&ShipModel{
  67. Name: "Neptune I",
  68. BaseHull: 10,
  69. BaseShields: 0,
  70. Purchaseable: false,
  71. CostMetal: 10,
  72. CostCircuit: 0,
  73. MaxGuns: 2,
  74. MaxRocketLaunchers: 1,
  75. MaxArmorPlates: 1,
  76. MaxRepairBays: 0,
  77. MaxShieldCapacitors: 1,
  78. MaxShieldGenerators: 1,
  79. MaxEngines: 1,
  80. StartingGuns: 1,
  81. StartingRocketLaunchers: 0,
  82. StartingArmorPlates: 1,
  83. StartingRepairBays: 0,
  84. StartingRepairDrones: 0,
  85. StartingShieldCapacitors: 0,
  86. StartingShieldGenerators: 0,
  87. StartingEngines: 1,
  88. })
  89. }
  90. }