Topic:   Mystic Rogue CODE   (Read 53 times)


0 Members and 1 Guest are viewing this topic.

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
Mystic Rogue CODE
« on: January 16, 2023, 07:20:11 PM »
Im posting the silver creator code for my roguelike in this topic. Any one that wants to try it out can build it from coping and pasting this code into the correct sections. Also paint the all the screen black on a jumbo window with no buttons and no text area. You only need one card because it all takes place on card 1.

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
GLOBAL Open Game
« Reply #1 on: January 16, 2023, 07:22:38 PM »
GLOBAL Open Game

// COLORS

LET whiteR = 250
LET whiteG = 250
LET whiteB = 250

LET grayR = 160
LET grayG = 160
LET grayB = 160

LET blackR = 60
LET blackG = 60
LET blackB = 60

LET greenR = 110
LET greenG = 140
LET greenB = 30

LET brownR = 104
LET brownG = 104
LET brownB = 10

LET purpR = 150
LET purpG = 50
LET purpB = 150

LET blueR = 102
LET blueG = 255
LET blueB = 204

LET redR = 153
LET redG = 0
LET redB = 51

LET yellowR = 144
LET yellowG = 144
LET yellowB = 0

LET goldR = 204
LET goldG = 204
LET goldB = 0


// MAIN CODE

DIM areaTravelID(250000)
DIM areaCountingSaved(250000)

LET areaMaxValue = 550000

DIM area1$(areaMaxValue)
DIM area1E(areaMaxValue)
DIM area1R(areaMaxValue)
DIM area1G(areaMaxValue)
DIM area1B(areaMaxValue)

DIM area2$(areaMaxValue)
DIM area2E(areaMaxValue)
DIM area2R(areaMaxValue)
DIM area2G(areaMaxValue)
DIM area2B(areaMaxValue)

DIM area3$(areaMaxValue)
DIM area3E(areaMaxValue)
DIM area3R(areaMaxValue)
DIM area3G(areaMaxValue)
DIM area3B(areaMaxValue)

DIM area4$(areaMaxValue)
DIM area4E(areaMaxValue)
DIM area4R(areaMaxValue)
DIM area4G(areaMaxValue)
DIM area4B(areaMaxValue)

DIM area5$(areaMaxValue)
DIM area5E(areaMaxValue)
DIM area5R(areaMaxValue)
DIM area5G(areaMaxValue)
DIM area5B(areaMaxValue)

LET area = 1

LET areaTraveling = 125000

DIM area$(550000)
DIM display$(900)
DIM tiles$(900)

DIM colRArea(550000)
DIM colGArea(550000)
DIM colBArea(550000)

DIM colRAreaMain(550000)
DIM colGAreaMain(550000)
DIM colBAreaMain(550000)

DIM colR(900)
DIM colG(900)
DIM colB(900)

DIM areaEvent(550000)
DIM areaMainEvent(550000)

LET areaNumMax = 99999
DIM areaEnviorment(areaNumMax)
DIM areaIsTown(areaNumMax)
DIM itemShops(areaNumMax)
DIM areaIsBurrow(areaNumMax)
DIM areaIsHostile(areaNumMax)

LET maxEnviorments = 4

FOR a = 1 to areaNumMax
   LET areaEnviorment(a) = RANDOM(maxEnviorments)
NEXT

LET areaEnviorment(1) = 1
LET areaIsBurrow(1) = 0

LET areaIsTown(1) = 1
LET itemShops(1) = 2

LET areaIsHostile(1) = 0


// SHOP OWNER

DIM npcItemShopOwner(90)

LET housesMax = 90
DIM placementShopOwner(housesMax)

// PLAYER AND SCREEN POSITION START

LET playerPos = 101903
LET screenPos = 92878

LET areaNum = 1


// SET THE BASE TILES

FOR a = 1 to 900
   LET tiles$(a) = "."
NEXT


// NPC DISPLAY ARRAYS

DIM npcPos(10)
DIM npcCharArea$(10)

// RACE NAMES AND CHAR

LET numOFRaces = 18
DIM race$(numOFRaces)
DIM raceChar$(numOFRaces)
LET race$(1) = "Human"
LET raceChar$(1) = "P"
LET race$(2) = "Dwarf"
LET raceChar$(2) = "D"
LET race$(3) = "Elf"
LET raceChar$(3) = "E"
LET race$(4) = "Halfling"
LET raceChar$(4) = "h"
LET race$(5) = "Gnome"
LET raceChar$(5) = "G"
LET race$(6) = "Nymph"
LET raceChar$(6) = "N"
LET race$(7) = "Sprite"
LET raceChar$(7) = "s"
LET race$(8) = "Sasquatch"
LET raceChar$(8) = "S"
LET race$(9) = "Goblin"
LET raceChar$(9) = "g"
LET race$(10) = "Orc"
LET raceChar$(10) = "O"
LET race$(11) = "Troll"
LET raceChar$(11) = "T"
LET race$(12) = "Snake"
LET raceChar$(12) = "s"
LET race$(13) = "Rat"
LET raceChar$(13) = "r"
LET race$(14) = "Serpent"
LET raceChar$(14) = "S"
LET race$(15) = "Kobold"
LET raceChar$(15) = "k"
LET race$(16) = "Ent"
LET raceChar$(16) = "#"
LET race$(17) = "Fairy"
LET raceChar$(17) = "*"
LET race$(18) = "Poltergeist"
LET raceChar$(18) = "P"


// FLAVOR DATABLASE

LET flavorAMax = 40
DIM flavorA$(flavorAMax)
LET flavorA$(1) = "Dark"
LET flavorA$(2) = "Light"
LET flavorA$(3) = "Dim"
LET flavorA$(4) = "Bright"
LET flavorA$(5) = "Low"
LET flavorA$(6) = "High"
LET flavorA$(7) = "Old"
LET flavorA$(8) = "Young"
LET flavorA$(9) = "Man"
LET flavorA$(10) = "Lady"
LET flavorA$(11) = "Child"
LET flavorA$(12) = "Cold"
LET flavorA$(13) = "Hot"
LET flavorA$(14) = "Warm"
LET flavorA$(15) = "Wood"
LET flavorA$(16) = "Stone"
LET flavorA$(17) = "Ur"
LET flavorA$(18) = "Rock"
LET flavorA$(19) = "Boulder"
LET flavorA$(20) = "Twig"
LET flavorA$(21) = "Branch"
LET flavorA$(22) = "Root"
LET flavorA$(23) = "Vine"
LET flavorA$(24) = "Leaf"
LET flavorA$(25) = "Berry"
LET flavorA$(26) = "Potato"
LET flavorA$(27) = "Tree"
LET flavorA$(28) = "Golden"
LET flavorA$(29) = "Silver"
LET flavorA$(30) = "Grey"
LET flavorA$(31) = "Pale"
LET flavorA$(32) = "Green"
LET flavorA$(33) = "Willow"
LET flavorA$(34) = "Wind"
LET flavorA$(35) = "Breeze"
LET flavorA$(36) = "Crystal"
LET flavorA$(37) = "Amythest"
LET flavorA$(38) = "Diamond"
LET flavorA$(39) = "Peral"
LET flavorA$(40) = "Gem"

// MESSAGE DATABASE

LET numOfMsgA = 3
DIM textMsgA$(numOfMsgA)
LET textMsgA$(1) = "Did you know"
LET textMsgA$(2) = "I heard that"
LET textMsgA$(3) = "A person named"

LET numOfMsgB = 2
DIM textMsgB$(numOfMsgB)
LET textMsgB$(1) = "wants to go on a quest"
LET textMsgB$(2) = "need some help"


// NPC DATABASE

LET numOFNpcs = 1000
DIM npcNameData$(numOFNpcs)
DIM npcName$(10)
DIM npcChar$(numOFNpcs)
DIM msgNpc$(numOFNpcs)
DIM npcHostile(10)

FOR a = 1 to 500
   LET newNpcSelect = RANDOM(4)
   LET npcNameData$(a) = flavorA$(RANDOM(flavorAMax)) + " " + flavorA$(RANDOM(flavorAMax)) + " the " + race$(newNpcSelect)
   LET npcChar$(a) = raceChar$(newNpcSelect)
NEXT


// HOSTLIE

FOR a = 501 to 1000
   LET newNpcSelect = RANDOM(18)
   LET npcNameData$(a) = flavorA$(RANDOM(flavorAMax)) + " " + flavorA$(RANDOM(flavorAMax)) + " the " + race$(newNpcSelect)
   LET npcChar$(a) = raceChar$(newNpcSelect)
NEXT




Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
CARD1 Open Card
« Reply #2 on: January 16, 2023, 07:26:54 PM »
CARD1 Open Card

// CODE

DIM areaMain$(550000)


// TRAVEL

LET areaTravelingGo = 0

IF openGame = 0 THEN
   LET openGame = 1
   LET areaTravelingGo = 1
END IF

IF travelingScrollActiveNorth = 1 THEN
   LET travelingScrollActiveNorth = 0
   LET areaTraveling = areaTraveling - 500
   LET areaTravelingGo = 1
END IF
IF travelingScrollActiveEast = 1 THEN
   LET travelingScrollActiveEast = 0
   LET areaTraveling = areaTraveling + 1
   LET areaTravelingGo = 1
END IF
IF travelingScrollActiveSouth = 1 THEN
   LET travelingScrollActiveSouth = 0
   LET areaTraveling = areaTraveling + 500
   LET areaTravelingGo = 1
END IF
IF travelingScrollActiveWest = 1 THEN
   LET travelingScrollActiveWest = 0
   LET areaTraveling = areaTraveling - 1
   LET areaTravelingGo = 1
END IF

LET bypassAreaTravelAlreadyID = 0

IF areaTravelingGo = 1 THEN
   
   IF areaTraveling > 0 THEN
      IF areaTraveling < 250000 THEN
         IF areaTravelID(areaTraveling) = 0 THEN
            LET areaTravelID(areaTraveling) = 1
            LET bypassAreaTravelAlreadyID = 1
            LET areaCountingLimit = areaCountingLimit + 1
            LET area = areaCountingLimit
            LET areaCountingSaved(areaTraveling) = area
            LET newMap = 0
         END IF
         
         IF bypassAreaTravelAlreadyID = 0 THEN
            IF areaTravelID(areaTraveling) = 1 THEN
               LET area = areaCountingSaved(areaTraveling)
               LET newMap = 0
            END IF
         END IF
      END IF
   END IF
   
END IF


// CREATE AREA MAP

LET skipBuildArea = 0

IF newMap = 0 THEN
   
   LET setHostileNpc = 0
   
   LET newMap = 1
   
   IF area = 1 THEN
      IF mapAlreadyVisetedArea1 = 1 THEN
         LET skipBuildArea = 1
         FOR a = 1 to 550000
            LET area$(a) = area1$(a)
            LET areaEvent(a) = area1E(a)
            LET colRArea(a) = area1R(a)
            LET colGArea(a) = area1G(a)
            LET colBArea(a) = area1B(a)
         NEXT
      END IF
      LET mapAlreadyVisetedArea1 = 1
   END IF
   IF area = 2 THEN
      IF mapAlreadyVisetedArea2 = 1 THEN
         LET skipBuildArea = 1
         FOR a = 1 to 550000
            LET area$(a) = area2$(a)
            LET areaEvent(a) = area2E(a)
            LET colRArea(a) = area2R(a)
            LET colGArea(a) = area2G(a)
            LET colBArea(a) = area2B(a)
         NEXT
      END IF
      LET mapAlreadyVisetedArea2 = 1
   END IF
   IF area = 3 THEN
      IF mapAlreadyVisetedArea3 = 1 THEN
         LET skipBuildArea = 1
         FOR a = 1 to 550000
            LET area$(a) = area3$(a)
            LET areaEvent(a) = area3E(a)
            LET colRArea(a) = area3R(a)
            LET colGArea(a) = area3G(a)
            LET colBArea(a) = area3B(a)
         NEXT
      END IF
      LET mapAlreadyVisetedArea3 = 1
   END IF
   IF area = 4 THEN
      IF mapAlreadyVisetedArea4 = 1 THEN
         LET skipBuildArea = 1
         FOR a = 1 to 550000
            LET area$(a) = area4$(a)
            LET areaEvent(a) = area4E(a)
            LET colRArea(a) = area4R(a)
            LET colGArea(a) = area4G(a)
            LET colBArea(a) = area4B(a)
         NEXT
      END IF
      LET mapAlreadyVisetedArea4 = 1
   END IF
   IF area = 5 THEN
      IF mapAlreadyVisetedArea5 = 1 THEN
         LET skipBuildArea = 1
         FOR a = 1 to 550000
            LET area$(a) = area5$(a)
            LET areaEvent(a) = area5E(a)
            LET colRArea(a) = area5R(a)
            LET colGArea(a) = area5G(a)
            LET colBArea(a) = area5B(a)
         NEXT
      END IF
      LET mapAlreadyVisetedArea5 = 1
   END IF
   
   
   
   
   
   IF skipBuildArea = 0 THEN
     
      FOR a = 1 to 550000
         LET areaEvent(a) = 0
      NEXT
     
     
      // LEVEL VAR
     
      IF areaIsTown(area) = 1 THEN
         LET itemShopsLoaded = itemShops(area)
         LET nextItemShopOwner = 0
         LET shopOwnerPlacements = 0
         LET shopOwnerPlacementsPlacement = 0
      END IF
     
     
      // BURROW
     
      IF areaIsBurrow(area) = 1 THEN
         FOR a = 1 to 550000
            LET area$(a) = " "
            LET areaEvent(a) = 1
            LET colRArea(a) = grayR
            LET colGArea(a) = grayG
            LET colBArea(a) = grayB
         NEXT
         
         LET newTile = playerPos
         LET newTile = newTile - 1
         LET newTile = newTile - 530
         
         LET startDigType = 0
         LET counterDigType = 0
         
         FOR b = 1 to 1000
           
            IF b = 1 THEN
               LET newTile = newTile - 1
            END IF
           
            IF b > 1 THEN
               IF startDigType = 0 THEN
                  LET startDigType = 1
                  LET burrowRoom = 1
               END IF
               
               LET counterDigType = counterDigType + 1
               IF counterDigType = 7 THEN
                  LET counterDigType = 0
                  LET burrowRoom = 0
                  LET burrowHall = 0
                 
                  LET digTypeRND = RANDOM(2)
                  IF digTypeRND = 1 THEN
                     LET burrowRoom = 1
                  END IF
                  IF digTypeRND = 1 THEN
                     LET burrowHall = 1
                  END IF
               END IF
               
               IF burrowRoom = 1 THEN
                  LET changeBurrowDir = 1
               END IF
               
               LET counterBurrowHall = 0
               
               IF burrowHall = 1 THEN
                  LET counterBurrowHall = counterBurrowHall + 1
                  IF counterBurrowHall = 7 THEN
                     LET counterBurrowHall = 0
                     LET changeBurrowDir = 1
                  END IF
               END IF
               
               IF changeBurrowDir = 1 THEN
                  LET RND = RANDOM(4)
               END IF
               IF RND = 1 THEN
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
               END IF
               IF RND = 2 THEN
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile + 530
                  LET newTile = newTile + 530
               END IF
               IF RND = 3 THEN
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 530
                  LET newTile = newTile - 530
               END IF
               IF RND = 4 THEN
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
                  LET newTile = newTile - 1
               END IF
               
            END IF
           
            FOR a = 1 to 16
               
               IF a < 5 THEN
                  LET newTile = newTile + 1
                  IF a = 1 THEN
                     LET newTile = newTile - 1
                  END IF
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               IF a = 5 THEN
                  LET newTile = newTile + 530
                  LET newTile = newTile - 3
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               IF a > 5 THEN
                  IF a < 8 THEN
                     LET newTile = newTile + 1
                     IF newTile > 600 THEN
                        IF newTile < 540000 THEN
                           LET area$(newTile) = "."
                           LET areaEvent(newTile) = 1
                        END IF
                     END IF
                  END IF
               END IF
               IF a = 8 THEN
                  LET newTile = newTile + 1
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               IF a = 9 THEN
                  LET newTile = newTile + 530
                  LET newTile = newTile - 3
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               IF a > 9 THEN
                  IF a < 12 THEN
                     LET newTile = newTile + 1
                     IF newTile > 600 THEN
                        IF newTile < 540000 THEN
                           LET area$(newTile) = "."
                           LET areaEvent(newTile) = 1
                        END IF
                     END IF
                  END IF
               END IF
               IF a = 12 THEN
                  LET newTile = newTile + 1
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               IF a = 13 THEN
                  LET newTile = newTile + 530
                  LET newTile = newTile - 3
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               IF a > 13 THEN
                  LET newTile = newTile + 1
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                        IF area$(newTile) = " " THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                        END IF
                     END IF
                  END IF
               END IF
               
               IF newTile > 600 THEN
                  IF newTile < 540000 THEN
                     LET colRArea(newTile) = grayR
                     LET colGArea(newTile) = grayG
                     LET colBArea(newTile) = grayB
                  END IF
               END IF
               
            NEXT
           
            LET newTile = newTile - 530
            LET newTile = newTile - 530
            LET newTile = newTile - 530
           
           
         NEXT
         
      END IF
     
     
     
      DIM npcSpots(10)
      LET townCharNum = area + 10
     
     
      IF areaIsBurrow(area) = 0 THEN
         
         
         // RANDOM TREES
         
         FOR a = 1 to 4000
           
            LET newTile = RANDOM(540000)
            LET area$(newTile) = "#"
            LET areaEvent(newTile) = 2
            LET colRArea(newTile) = greenR
            LET colGArea(newTile) = greenG
            LET colBArea(newTile) = greenB
           
         NEXT
         

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
CARD1 Open Card CONTINUED
« Reply #3 on: January 16, 2023, 07:29:45 PM »
CARD1 Open Card CONTINUED


         // FOREST CLUSTER 1
         
         LET newTile = playerPos
         
         FOR forestClusters = 1 to 90
           
           
            // CREATE CLUSTER
           
            FOR a = 1 to 500
               LET RND = RANDOM(4)
               IF RND = 1 THEN
                  LET newTile = newTile + 1
               END IF
               IF RND = 2 THEN
                  LET newTile = newTile - 1
               END IF
               IF RND = 3 THEN
                  LET newTile = newTile + 530
               END IF
               IF RND = 4 THEN
                  LET newTile = newTile - 530
               END IF
               
               IF newTile > 600 THEN
                  IF newTile < 540000 THEN
                     
                     IF areaEnviorment(area) = 0 THEN
                        LET area$(newTile) = "#"
                        LET areaEvent(newTile) = 2
                        LET colRArea(newTile) = greenR
                        LET colGArea(newTile) = greenG
                        LET colBArea(newTile) = greenB
                     END IF
                     IF areaEnviorment(area) = 1 THEN
                        LET area$(newTile) = "#"
                        LET areaEvent(newTile) = 2
                        LET colRArea(newTile) = greenR
                        LET colGArea(newTile) = greenG
                        LET colBArea(newTile) = greenB
                     END IF
                     IF areaEnviorment(area) = 2 THEN
                        LET area$(newTile) = "#"
                        LET areaEvent(newTile) = 2
                        LET colRArea(newTile) = brownR
                        LET colGArea(newTile) = brownG
                        LET colBArea(newTile) = brownB
                     END IF
                     IF areaEnviorment(area) = 3 THEN
                        LET RND = RANDOM(7)
                        IF RND = 1 THEN
                           LET area$(newTile) = "#"
                           LET areaEvent(newTile) = 2
                           LET colRArea(newTile) = purpR
                           LET colGArea(newTile) = purpG
                           LET colBArea(newTile) = purpB
                           
                        END IF
                        IF RND > 1 THEN
                           LET area$(newTile) = "."
                           LET areaEvent(newTile) = 1
                           LET colRArea(newTile) = blueR
                           LET colGArea(newTile) = blueG
                           LET colBArea(newTile) = blueB
                        END IF
                       
                     END IF
                     IF areaEnviorment(area) = 4 THEN
                        LET area$(newTile) = "#"
                        LET areaEvent(newTile) = 2
                        LET colRArea(newTile) = whiteR
                        LET colGArea(newTile) = whiteG
                        LET colBArea(newTile) = whiteB
                     END IF
                     
                     
                     
                  END IF
               END IF
               
            NEXT
           
            LET RND = RANDOM(4)
            IF RND = 1 THEN
               LET newTile = newTile + 50
            END IF
            IF RND = 2 THEN
               LET newTile = newTile - 50
            END IF
            IF RND = 3 THEN
               FOR a = 1 to 50
                  LET newTile = newTile + 530
               NEXT
            END IF
            IF RND = 4 THEN
               FOR a = 1 to 50
                  LET newTile = newTile - 530
               NEXT
            END IF
           
           
         NEXT
         
         
         // PATHS
         
         FOR pathBranches = 1 to 4
            LET newTile = playerPos
           
            FOR paths = 1 to 3
               // PATH VAR
               
               LET pathNS1 = 0
               LET pathEW1 = 0
               LET pathNS2 = 0
               LET pathEW1 = 0
               
               LET RND = RANDOM(8)
               IF RND = 1 THEN
                  LET pathNS1 = 1
               END IF
               IF RND = 2 THEN
                  LET pathEW1 = 1
               END IF
               IF RND = 3 THEN
                  LET pathNS1 = 1
                  LET pathEW1 = 1
               END IF
               IF RND = 4 THEN
                  LET pathNS2 = 1
               END IF
               IF RND = 5 THEN
                  LET pathEW2 = 1
               END IF
               IF RND = 6 THEN
                  LET pathNS2 = 1
                  LET pathEW2 = 1
               END IF
               IF RND = 7 THEN
                  LET pathNS1 = 1
                  LET pathEW2 = 1
               END IF
               IF RND = 8 THEN
                  LET pathNS2 = 1
                  LET pathEW1 = 1
               END IF
               
               
               // CREATE PATH SECTION
               
               FOR a = 1 to 50
                 
                  IF toggle = 0 THEN
                     LET toggle = 1
                     LET bypass = 1
                  END IF
                 
                  IF bypass = 0 THEN
                     IF toggle = 1 THEN
                        LET toggle = 0
                     END IF
                  END IF
                 
                  LET bypass = 0
                 
                  IF toggle = 0 THEN
                     IF pathNS1 = 0 THEN
                        IF pathNS2 = 0 THEN
                           LET newTile = newTile + 530
                        END IF
                     END IF
                     IF pathNS1 = 1 THEN
                        LET newTile = newTile + 530
                     END IF
                     IF pathNS2 = 1 THEN
                        LET newTile = newTile - 530
                     END IF
                  END IF
                  IF toggle = 1 THEN
                     IF pathEW1 = 0 THEN
                        IF pathEW2 = 0 THEN
                           LET newTile = newTile + 1
                        END IF
                     END IF
                     IF pathEW1 = 1 THEN
                        LET newTile = newTile + 1
                     END IF
                     IF pathEW2 = 1 THEN
                        LET newTile = newTile - 1
                     END IF
                  END IF
                 
                 
                  IF newTile > 600 THEN
                     IF newTile < 540000 THEN
                       
                        LET area$(newTile) = "."
                        LET colRArea(newTile) = brownR
                        LET colGArea(newTile) = brownG
                        LET colBArea(newTile) = brownB
                       
                        IF areaIsTown(areaNum) = 1 THEN
                           
                           LET colRArea(newTile) = grayR
                           LET colGArea(newTile) = grayG
                           LET colBArea(newTile) = grayB
                           
                        END IF
                       
                        LET areaEvent(newTile) = 1
                       
                     END IF
                  END IF
                 
                  LET newTileB = newTile + 1
                 
                  IF newTileB > 600 THEN
                     IF newTileB < 540000 THEN
                       
                        LET area$(newTileB) = "."
                        LET colRArea(newTileB) = brownR
                        LET colGArea(newTileB) = brownG
                        LET colBArea(newTileB) = brownB
                       
                        IF areaIsTown(areaNum) = 1 THEN
                           
                           LET colRArea(newTileB) = grayR
                           LET colGArea(newTileB) = grayG
                           LET colBArea(newTileB) = grayB
                           
                        END IF
                       
                        LET areaEvent(newTileB) = 1
                       
                     END IF
                  END IF
                 
                  LET newTileB = newTile - 1
                 
                  IF newTileB > 600 THEN
                     IF newTileB < 540000 THEN
                       
                        LET area$(newTileB) = "."
                        LET colRArea(newTileB) = brownR
                        LET colGArea(newTileB) = brownG
                        LET colBArea(newTileB) = brownB
                       
                        IF areaIsTown(areaNum) = 1 THEN
                           
                           LET colRArea(newTileB) = grayR
                           LET colGArea(newTileB) = grayG
                           LET colBArea(newTileB) = grayB
                           
                        END IF
                       
                        LET areaEvent(newTileB) = 1
                       
                     END IF
                  END IF
                 
                 
                  LET newTileB = newTile + 530
                 
                  IF newTileB > 600 THEN
                     IF newTileB < 540000 THEN
                       
                        LET area$(newTileB) = "."
                        LET colRArea(newTileB) = brownR
                        LET colGArea(newTileB) = brownG
                        LET colBArea(newTileB) = brownB
                       
                        IF areaIsTown(areaNum) = 1 THEN
                           
                           LET colRArea(newTileB) = grayR
                           LET colGArea(newTileB) = grayG
                           LET colBArea(newTileB) = grayB
                           
                        END IF
                       
                       
                        LET areaEvent(newTileB) = 1
                       
                     END IF
                  END IF
                 
                  LET newTileB = newTile - 530
                 
                  IF newTileB > 600 THEN
                     IF newTileB < 540000 THEN
                       
                        LET area$(newTileB) = "."
                        LET colRArea(newTileB) = brownR
                        LET colGArea(newTileB) = brownG
                        LET colBArea(newTileB) = brownB
                       
                        IF areaIsTown(areaNum) = 1 THEN
                           
                           LET colRArea(newTileB) = grayR
                           LET colGArea(newTileB) = grayG
                           LET colBArea(newTileB) = grayB
                           
                        END IF
                       
                       
                        LET areaEvent(newTileB) = 1
                       
                     END IF
                  END IF
                 
                                    IF areaIsTown(areaNum) = 1 THEN
                     

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
CARD1 Open Card CONTINUED 2
« Reply #4 on: January 16, 2023, 07:30:54 PM »
CARD1 Open Card CONTINUED 2
                     
                     // HOUSE PLACEMENT AND DESIGN
                     
                     LET housePlaceCounter = housePlaceCounter + 1
                     
                     IF housePlaceCounter = 50 THEN
                        LET housePlaceCounter = 0
                       
                        LET newTileHouseStart = newTile + 6
                       
                        // ROW 1
                       
                        LET newTileHouse = newTileHouseStart
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           
                           IF newTileHouse > 600 THEN
                              IF newTileHouse < 540000 THEN
                                 
                                 LET area$(newTileHouse) = "#"
                                 LET colRArea(newTileHouse) = yellowR
                                 LET colGArea(newTileHouse) = yellowG
                                 LET colBArea(newTileHouse) = yellowB
                                 LET areaEvent(newTileHouse) = 2
                                 
                              END IF
                           END IF
                        NEXT
                       
                       
                        // ROW 2
                       
                        LET newTileHouse = newTileHouseStart + 530
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "."
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 1
                                   
                                 END IF
                              END IF
                           END IF
                        NEXT
                       
                       
                        // ROW 3
                       
                        LET newTileHouse = newTileHouseStart + 530
                        LET newTileHouse = newTileHouse + 530
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "."
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 1
                                   
                                 END IF
                              END IF
                           END IF
                        NEXT
                       
                       
                        // ROW 4
                       
                        LET newTileHouse = newTileHouseStart + 530
                        FOR a = 1 to 2
                           LET newTileHouse = newTileHouse + 530
                        NEXT
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    IF bypassFloorCreate = 0 THEN
                                       LET area$(newTileHouse) = "."
                                       LET colRArea(newTileHouse) = yellowR
                                       LET colGArea(newTileHouse) = yellowG
                                       LET colBArea(newTileHouse) = yellowB
                                       LET areaEvent(newTileHouse) = 1
                                    END IF
                                   
                                   
                                    // ITEM SHOP CREATION
                                    IF a = 3 THEN
                                       LET itemShopsLoadedMax = itemShopsLoaded + 1
                                       IF shopOwnerPlacements < itemShopsLoadedMax THEN
                                          LET shopOwnerPlacements = shopOwnerPlacements + 1
                                          LET placementShopOwner(shopOwnerPlacements) = newTileHouse
                                          LET nextItemShopOwner = nextItemShopOwner + 1
                                          LET npcItemShopOwner(nextItemShopOwner) = 1
                                         
                                       END IF
                                       
                                       
                                    END IF
                                   
                                 END IF
                              END IF
                           END IF
                        NEXT
                       
                       
                        // ROW 5
                       
                        LET newTileHouse = newTileHouseStart + 530
                        FOR a = 1 to 3
                           LET newTileHouse = newTileHouse + 530
                        NEXT
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "."
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 1
                                   
                                 END IF
                              END IF
                           END IF
                        NEXT
                       
                       
                        // ROW 6
                       
                        LET newTileHouse = newTileHouseStart + 530
                        FOR a = 1 to 4
                           LET newTileHouse = newTileHouse + 530
                        NEXT
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "."
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 1
                                   
                                 END IF
                              END IF
                           END IF
                        NEXT
                       
                       
                        // ROW 7
                       
                        LET newTileHouse = newTileHouseStart + 530
                        FOR a = 1 to 5
                           LET newTileHouse = newTileHouse + 530
                        NEXT
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "."
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 1
                                   
                                 END IF
                              END IF
                           END IF
                        NEXT
                       
                       
                       
                        // ROW 8
                       
                        LET newTileHouse = newTileHouseStart + 530
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 530
                        NEXT
                       
                        FOR a = 1 to 6
                           LET newTileHouse = newTileHouse + 1
                           LET wall = 0
                           IF a = 1 THEN
                              LET wall = 1
                           END IF
                           IF a = 2 THEN
                              LET wall = 1
                           END IF
                           IF a = 3 THEN
                              LET wall = 1
                           END IF
                           IF a = 5 THEN
                              LET wall = 1
                           END IF
                           IF a = 6 THEN
                              LET wall = 1
                           END IF
                           IF wall = 1 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "#"
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 2
                                   
                                 END IF
                              END IF
                           END IF
                           
                           IF wall = 0 THEN
                              IF newTileHouse > 600 THEN
                                 IF newTileHouse < 540000 THEN
                                   
                                    LET area$(newTileHouse) = "."
                                    LET colRArea(newTileHouse) = yellowR
                                    LET colGArea(newTileHouse) = yellowG
                                    LET colBArea(newTileHouse) = yellowB
                                    LET areaEvent(newTileHouse) = 1
                                   
                                 END IF
                              END IF
                           END IF
                           
                        NEXT
                       
                       
                       
                     END IF
                     

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
CARD1 Open Card CONTINUED 3
« Reply #5 on: January 16, 2023, 07:31:22 PM »
CARD1 Open Card CONTINUED 3

                     
                     // NPC START PLACEMENT
                     
                     LET npcPlaceCounter = npcPlaceCounter + 1
                     
                     IF npcPlaceCounter = 20 THEN
                        LET npcPlaceCounter = 0
                       
                        IF nextNpc < 10 THEN
                           LET nextNpc = nextNpc + 1
                           LET npcSpots(nextNpc) = newTile
                           
                        END IF
                     END IF
                     
                  END IF
                 
               NEXT
               
            NEXT
         NEXT
         
         
         
      END IF
     
     
      FOR a = 1 to 10
         LET npcPos(a) = npcSpots(a)
      NEXT
     
     
      // PLACE NPC SHOP OWNER
     
      FOR a = 1 to 10
         IF npcItemShopOwner(a) = 1 THEN
            LET npcPos(a) = placementShopOwner(a)
         END IF
      NEXT
     
     
      // NPC GET FROM DATABASE
     
      LET b = townCharNum
      FOR a = 1 to 10
         LET b = b + 1
         LET npcCharArea$(a) = npcChar$(b)
         LET npcName$(a) = npcNameData$(b)
      NEXT
     
     
   END IF
   
   
END IF





// SAVE AREA

IF skipBuildArea = 0 THEN
   
   IF area = 1 THEN
      IF newMapAlreadyViseted1 = 0 THEN
         LET newMapAlreadyViseted1 = 1
         FOR a = 1 to 550000
            LET area1$(a) = area$(a)
            LET area1E(a) = areaEvent(a)
            LET area1R(a) = colRArea(a)
            LET area1G(a) = colGArea(a)
            LET area1B(a) = colBArea(a)
         NEXT
      END IF
   END IF
   IF area = 2 THEN
      IF newMapAlreadyViseted2 = 0 THEN
         LET newMapAlreadyViseted2 = 1
         FOR a = 1 to 550000
            LET area2$(a) = area$(a)
            LET area2E(a) = areaEvent(a)
            LET area2R(a) = colRArea(a)
            LET area2G(a) = colGArea(a)
            LET area2B(a) = colBArea(a)
         NEXT
      END IF
   END IF
   IF area = 3 THEN
      IF newMapAlreadyViseted3 = 0 THEN
         LET newMapAlreadyViseted3 = 1
         FOR a = 1 to 550000
            LET area3$(a) = area$(a)
            LET area3E(a) = areaEvent(a)
            LET area3R(a) = colRArea(a)
            LET area3G(a) = colGArea(a)
            LET area3B(a) = colBArea(a)
         NEXT
      END IF
   END IF
   IF area = 4 THEN
      IF newMapAlreadyViseted4 = 0 THEN
         LET newMapAlreadyViseted4 = 1
         FOR a = 1 to 550000
            LET area4$(a) = area$(a)
            LET area4E(a) = areaEvent(a)
            LET area4R(a) = colRArea(a)
            LET area4G(a) = colGArea(a)
            LET area4B(a) = colBArea(a)
         NEXT
      END IF
   END IF
   IF area = 5 THEN
      IF newMapAlreadyViseted5 = 0 THEN
         LET newMapAlreadyViseted5 = 1
         FOR a = 1 to 550000
            LET area5$(a) = area$(a)
            LET area5E(a) = areaEvent(a)
            LET area5R(a) = colRArea(a)
            LET area5G(a) = colGArea(a)
            LET area5B(a) = colBArea(a)
         NEXT
      END IF
   END IF
   
END IF

// AREA MAIN TRANSFER

LET valueA = 0
LET valueTile = 0

FOR a = 1 to 30
   FOR b = 1 to 30
      LET valueTile = valueTile + 1
      LET valueA = valueA + 1
      LET screenPick = screenPos + valueA
     
      IF screenPick > 600 THEN
         IF screenPick < 540000 THEN
           
           
            LET areaMain$(screenPick) = tiles$(valueTile)
            LET colRAreaMain(screenPick) = brownR
            LET colGAreaMain(screenPick) = brownG
            LET colBAreaMain(screenPick) = brownB
           
            IF areaEvent(screenPick) > 0 THEN
               
               LET areaMain$(screenPick) = area$(screenPick)
               
               LET colRAreaMain(screenPick) = colRArea(screenPick)
               LET colGAreaMain(screenPick) = colGArea(screenPick)
               LET colBAreaMain(screenPick) = colBArea(screenPick)
               
               LET areaMainEvent(screenPick) = areaEvent(screenPick)
               
            END IF
           
         END IF
      END IF
     
   NEXT
   LET valueA = valueA + 500
NEXT



// PLAYER AND ENTITIES


// SET HOSTILE NPCS

IF setHostileNpc = 0 THEN
   LET setHostileNpc = 1
   IF areaIsHostile(area) = 1 THEN
     
      // NPC GET FROM DATABASE
     
      LET b = 501
      FOR a = 1 to 10
         
         LET b = b + 1
         LET npcCharArea$(a) = npcChar$(b)
         LET npcName$(a) = npcNameData$(b)
         LET npcPos(a) = RANDOM(540000)
      NEXT
     
   END IF
END IF


// PLAYER DISPLAY

IF playerPos > 600 THEN
   IF playerPos < 540000 THEN
      LET areaMain$(playerPos) = "P"
      LET colRAreaMain(playerPos) = whiteR
      LET colGAreaMain(playerPos) = whiteG
      LET colBAreaMain(playerPos) = whiteB
   END IF
END IF


// NPC MOVEMENT

IF menuOpen = 0 THEN
   
   FOR a = 1 to 10
      IF npcItemShopOwner(a) = 0 THEN
         LET RND = RANDOM(7)
         
         IF RND = 1 THEN
            IF npcPos(a) > 600 THEN
               
               LET npcPosTest = npcPos(a) - 530
               IF areaMainEvent(npcPosTest) < 2 THEN
                  LET npcPos(a) = npcPos(a) - 530
               END IF
               
            END IF
         END IF
         
         IF RND = 2 THEN
            IF npcPos(a) < 540000 THEN
               
               LET npcPosTest = npcPos(a) + 530
               IF areaMainEvent(npcPosTest) < 2 THEN
                  LET npcPos(a) = npcPos(a) + 530
               END IF
               
            END IF
         END IF
         
         IF RND = 3 THEN
            IF npcPos(a) < 540000 THEN
               
               LET npcPosTest = npcPos(a) + 1
               IF areaMainEvent(npcPosTest) < 2 THEN
                  LET npcPos(a) = npcPos(a) + 1
               END IF
               
            END IF
         END IF
         
         IF RND = 4 THEN
            IF npcPos(a) > 600 THEN
               
               LET npcPosTest = npcPos(a) - 1
               IF areaMainEvent(npcPosTest) < 2 THEN
                  LET npcPos(a) = npcPos(a) - 1
               END IF
               
            END IF
         END IF
         
      END IF
   NEXT
   
END IF


// NPC DISPLAY

FOR a = 1 to 10
   IF npcPos(a) > 600 THEN
      IF npcPos(a) < 540000 THEN
         
         LET areaMain$(npcPos(a)) = npcCharArea$(a)
         
         LET colRAreaMain(npcPos(a)) = yellowR
         LET colGAreaMain(npcPos(a)) = yellowG
         LET colBAreaMain(npcPos(a)) = yellowB
      END IF
   END IF
NEXT



FOR a = 1 to 10
   LET msgNpc$(a) = npcName$(a) + " : " + textMsgA$(RANDOM(numOfMsgA)) + " " + npcName$(RANDOM(10)) + " " + textMsgB$(RANDOM(numOfMsgB)) + ". "
   
NEXT


// TALKING SELECTING

IF talklingChooseNpc = 1 THEN
   
   IF newSel = 0 THEN
      LET newSel = 1
      LET selectingPos = playerPos
   END IF
   
   
   IF selectingPos > 600 THEN
      IF selectingPos < 540000 THEN
         
         LET areaMain$(selectingPos) = "X"
         
         LET colRAreaMain(selectingPos) = redR
         LET colGAreaMain(selectingPos) = redG
         LET colBAreaMain(selectingPos) = redB
      END IF
   END IF
END IF

LET msg$ = " "

IF talkingToNpc = 1 THEN
   
   FOR a = 1 to 10
      IF selectingPos = npcPos(a) THEN
         LET talkingToNpc = 0
         LET msg$ = msgNpc$(a)
      END IF
   NEXT
   
END IF


// ATTACKING

LET attacking = 0

FOR a = 1 to 10
   IF playerPos = npcPos(a) THEN
     
      LET bypassAttackTurn = 0
     
      IF npcHostile(a) = 1 THEN
         LET attackingNpc = a
         
         IF attackTurn = 0 THEN
            LET attackTurn = 1
            LET bypassAttackTurn = 1
            LET npcAttacking = 1
            LET attacking = 0
         END IF
         
         IF bypassAttackTurn = 0 THEN
            IF attackTurn = 1 THEN
               LET attackTurn = 0
               LET npcAttacking = 0
               LET attacking = 1
            END IF
         END IF
         
      END IF
     
      IF npcHostile(a) = 0 THEN
         LET attacking = 1
         LET attackingNpc = a
         LET npcHostile(a) = 1
      END IF
     
   END IF
NEXT

IF attacking = 1 THEN
   LET msg$ = "You Attacked " + npcName$(attackingNpc) + " ! "
END IF

IF npcAttacking = 1 THEN
   LET npcAttacking = 0
   LET msg$ = "You got Attacked by " + npcName$(attackingNpc) + " ! "
END IF


// DISPLAY TRANSFER

LET valueA = 0
LET valueTile = 0

FOR a = 1 to 30
   FOR b = 1 to 30
      LET valueTile = valueTile + 1
      LET valueA = valueA + 1
      LET screenPick = screenPos + valueA
     
     
      LET display$(valueTile) = tiles$(valueTile)
      LET colR(valueTile) = blackR
      LET colG(valueTile) = blackG
      LET colB(valueTile) = blackB
     
      IF screenPick > 600 THEN
         IF screenPick < 540000 THEN
            LET display$(valueTile) = areaMain$(screenPick)
           
            LET colR(valueTile) = colRAreaMain(screenPick)
            LET colG(valueTile) = colGAreaMain(screenPick)
            LET colB(valueTile) = colBAreaMain(screenPick)
           
         END IF
      END IF
     
   NEXT
   LET valueA = valueA + 500
NEXT


Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
CARD1 Key Down
« Reply #6 on: January 16, 2023, 07:33:02 PM »
CARD1 Key Down

// TALKING

IF talklingChooseNpc = 1 THEN
   IF SPACEBARKEY = TRUE THEN
     
      FOR a = 1 to 10
         IF selectingPos = npcPos(a) THEN
            LET talkingToNpc = 1
         END IF
      NEXT
     
      IF  talkingToNpc = 0 THEN
         
         LET talklingChooseNpc = 0
         LET talkingToNpc = 0
         LET msg$ = " "
         LET menuOpen = 0
         
      END IF
     
   END IF
END IF


// PLAYER MOVEMENT

IF menuOpen = 0 THEN
   
   IF UPKEY = TRUE THEN
      IF playerPos > 600 THEN
         
         LET playerPosTest = playerPos - 530
         IF areaMainEvent(playerPosTest) < 2 THEN
            LET north = north + 1
            LET south = south - 1
            LET playerPos = playerPos - 530
         END IF
         
      END IF
   END IF
   
   IF DOWNKEY = TRUE THEN
      IF playerPos < 540000 THEN
         
         LET playerPosTest = playerPos + 530
         IF areaMainEvent(playerPosTest) < 2 THEN
            LET north = north - 1
            LET south = south + 1
            LET playerPos = playerPos + 530
         END IF
         
      END IF
   END IF
   
   IF RIGHTKEY = TRUE THEN
      IF playerPos < 540000 THEN
         
         LET playerPosTest = playerPos + 1
         IF areaMainEvent(playerPosTest) < 2 THEN
            LET east = east + 1
            LET west = west - 1
            LET playerPos = playerPos + 1
         END IF
         
      END IF
   END IF
   
   IF LEFTKEY = TRUE THEN
      IF playerPos > 600 THEN
         
         LET playerPosTest = playerPos - 1
         IF areaMainEvent(playerPosTest) < 2 THEN
            LET east = east - 1
            LET west = west + 1
            LET playerPos = playerPos - 1
         END IF
         
      END IF
   END IF
   
   
   // SCREEN SCROLL
   
   IF north = 5 THEN
      LET north = 4
      LET south = 1 - 5
      LET screenPos = screenPos - 530
   END IF
   
   IF south = 5 THEN
      LET north = 1 - 5
      LET south = 4
      LET screenPos = screenPos + 530
   END IF
   
   IF east = 5 THEN
      LET east = 4
      LET west = 1 - 5
      LET screenPos = screenPos + 1
   END IF
   
   IF west = 5 THEN
      LET east = 1 - 5
      LET west = 4
      LET screenPos = screenPos - 1
   END IF
   
END IF


// MENU

IF SPACEBARKEY = TRUE THEN
   IF menuOpen = 0 THEN
      LET bypass2ndSpace = 1
      LET menuOpen = 1
      LET menuOption = 1
      LET maxMenuItems = 6
   END IF
   
   IF bypass2ndSpace = 0 THEN
      IF menuOption = 1 THEN
         LET menuOpen = 0
      END IF
   END IF
   LET bypass2ndSpace = 0
   
   IF menuOpen = 1 THEN
      IF menuOption = 2 THEN
         IF talklingChooseNpc = 0 THEN
            LET talklingChooseNpc = 1
            LET newSel = 0
         END IF
      END IF
   END IF
   
   
   IF menuOpen = 1 THEN
      IF menuOption = 3 THEN
         LET travelingScrollActiveNorth = 1
         LET newSel = 0
      END IF
   END IF
   
   IF menuOpen = 1 THEN
      IF menuOption = 4 THEN
         LET travelingScrollActiveEast = 1
         LET newSel = 0
      END IF
   END IF
   
   IF menuOpen = 1 THEN
      IF menuOption = 5 THEN
         LET travelingScrollActiveSouth = 1
         LET newSel = 0
      END IF
   END IF
   
   IF menuOpen = 1 THEN
      IF menuOption = 6 THEN
         LET travelingScrollActiveWest = 1
         LET newSel = 0
      END IF
   END IF
   
   
   
END IF


IF menuOpen = 1 THEN
   
   IF talklingChooseNpc = 0 THEN
     
      IF UPKEY = TRUE THEN
         IF menuOption > 1 THEN
            LET menuOption = menuOption - 1
         END IF
      END IF
     
      IF DOWNKEY = TRUE THEN
         IF menuOption < maxMenuItems THEN
            LET menuOption = menuOption + 1
         END IF
      END IF
     
   END IF
   
   IF talklingChooseNpc = 1 THEN
      IF UPKEY = TRUE THEN
         LET selectingPos = selectingPos - 530
      END IF
      IF DOWNKEY = TRUE THEN
         LET selectingPos = selectingPos + 530
      END IF
      IF RIGHTKEY = TRUE THEN
         LET selectingPos = selectingPos + 1
      END IF
      IF LEFTKEY = TRUE THEN
         LET selectingPos = selectingPos - 1
      END IF
     
     
   END IF
   
END IF

GOTOCARD 1


Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
CARD1 Paint
« Reply #7 on: January 16, 2023, 07:33:54 PM »
CARD1 Paint

LET y = 0
LET counter = 0
FOR a = 1 to 30
   LET y = y + 10
   LET x = 0
   FOR b = 1 to 30
      LET x = x + 10
      LET counter = counter + 1
     
      LET tile$ = display$(counter)
      SETPENCOLOR colR(counter), colG(counter), colB(counter)
      DRAWSTRING tile$, x, y, "Courier", 15
     
   NEXT
NEXT

IF menuOpen = 1 THEN
   LET menuX = 400
   LET menuY = 15
   SETPENCOLOR grayR, grayG, grayB
   IF menuOption = 1 THEN
      SETPENCOLOR whiteR, whiteG, whiteB
   END IF
   LET menuY = menuY + 12
   DRAWSTRING "close menu", menuX, menuY, "Courier", 12
   
   SETPENCOLOR grayR, grayG, grayB
   IF menuOption = 2 THEN
      SETPENCOLOR whiteR, whiteG, whiteB
   END IF
   LET menuY = menuY + 12
   DRAWSTRING "talk", menuX, menuY, "Courier", 12
   
   SETPENCOLOR grayR, grayG, grayB
   IF menuOption = 3 THEN
      SETPENCOLOR whiteR, whiteG, whiteB
   END IF
   LET menuY = menuY + 12
   DRAWSTRING "north", menuX, menuY, "Courier", 12
   
   SETPENCOLOR grayR, grayG, grayB
   IF menuOption = 4 THEN
      SETPENCOLOR whiteR, whiteG, whiteB
   END IF
   LET menuY = menuY + 12
   DRAWSTRING "east", menuX, menuY, "Courier", 12
   
   SETPENCOLOR grayR, grayG, grayB
   IF menuOption = 5 THEN
      SETPENCOLOR whiteR, whiteG, whiteB
   END IF
   LET menuY = menuY + 12
   DRAWSTRING "south", menuX, menuY, "Courier", 12
   
   SETPENCOLOR grayR, grayG, grayB
   IF menuOption = 6 THEN
      SETPENCOLOR whiteR, whiteG, whiteB
   END IF
   LET menuY = menuY + 12
   DRAWSTRING "west", menuX, menuY, "Courier", 12
   
END IF

SETPENCOLOR whiteR, whiteG, whiteB
DRAWSTRING msg$, 10, 315, "Courier", 12

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
NOTES
« Reply #8 on: January 16, 2023, 07:38:07 PM »
You can alter the global variables to get different types of maps and things. Right now there are only about 5 maps that load but I will be adding more soon. It just takes some time to code the arrays for each area.

Johna100


  • GMG-er

  • **


  • Posts: 173

  • lalala
HOW TO PLAY
« Reply #9 on: January 16, 2023, 07:54:13 PM »
Use the spacebar key to perform an action. Arrow keys to move around the map. When you overlap with a npc you or the npc attack.