
-----------------------------------
programmer_needs_help
Tue Jun 06, 2017 11:07 am

Player Attack Mechanics In Turing
-----------------------------------
So I'm making a game involving sword fighting, and i want the enemy to attack the player sometimes, so i made the following code to simulate the atttack chance. Unfortunately, the enemy either attacks, or doesn't attack throughout the whole game. 

Here's a portion of the code:

% Enemy AI
        process enemyOneAttack
            for repeatChance : 1 .. 1
                randint (attackChance, 1, 4)
                put attackChance
            end for
            loop
                enemyOnePlayerDistance := Math.Distance (playerXValue, playerYValue, enemyOneXValue, enemyOneYValue)
                if enemyOnePlayerDistance > 0 and playerXValue < enemyOneXValue then
                    enemyOneXValue := enemyOneXValue - 1
                    Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
                    delay (7)
                elsif enemyOnePlayerDistance > 0 and playerXValue > enemyOneXValue then
                    enemyOneXValue := enemyOneXValue + 1
                    Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
                elsif enemyOnePlayerDistance < 10 then

                    if attackChance = 1 then
                        Sprite.Hide (enemyOneSprite)
                        enemyOne := Pic.FileNew ("enemyOneSword.bmp")
                        enemyOne := Pic.Scale (enemyOne, 152, 165)
                        enemyOneSprite := Sprite.New (enemyOne)
                        Sprite.Show (enemyOneSprite)
                        Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
                        delay (20)
                        View.Update
                        Sprite.Hide (enemyOneSprite)
                        enemyOne := Pic.FileNew ("enemyOne.bmp")
                        enemyOne := Pic.Scale (enemyOne, 155, 165)
                        enemyOneSprite := Sprite.New (enemyOne)
                        Sprite.Show (enemyOneSprite)
                        Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
                    end if
                end if
                delay (7)

            end loop
        end enemyOneAttack

        fork enemyOneAttack

Pretty  much when the "attakChance" is 1, I want the enemy to attack the player when they are close together. I appreciate any help!  :o
